Introduce RenegotiatedFunding monitor update variant - #3822

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update
Jun 24, 2025
Merged

Introduce RenegotiatedFunding monitor update variant#3822
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update

Conversation

@wpaulino

@wpaulinowpaulino commented Jun 2, 2025

Copy link
Copy Markdown
Contributor

This is a new ChannelMonitorUpdateStep variant intended to be used whenever a new funding transaction for the channel has been negotiated via the InteractiveTxConstructor. This commit primarily focuses on its use for splices, but future work will expand where needed to support RBFs (both for the initial dual funding transaction, and splice transactions).

To draw a parallel to channel open, we generally want to have the commitment transactions negotiated for the funding transaction and committed to the respective ChannelMonitor before attempting to sign the funding transaction itself. This monitor update fulfills this need for a newly negotiated splice; it includes both the new holder and counterparty commitment transactions, and the new set of applicable ChannelTransactionParameters. Once the monitor update has been applied to the monitor and persisted, we allow the release of our tx_signatures for the splice transaction to wait for its confirmation.

Depends on #3774.

@ldk-reviews-bot

ldk-reviews-bot commented Jun 2, 2025

Copy link
Copy Markdown

👋 I see @TheBlueMatt was un-assigned.
If you'd like another reviewer assignemnt, please click here.

@wpaulino
wpaulino requested a review from jkczyzJune 2, 2025 23:53
@codecov

codecovBot commented Jun 3, 2025

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 35.61644% with 188 lines in your changes missing coverage. Please review.

Project coverage is 89.63%. Comparing base (db165ad) to head (180b53d).
Report is 44 commits behind head on main.

Files with missing linesPatch %Lines
lightning/src/chain/channelmonitor.rs11.49%154 Missing ⚠️
lightning/src/ln/channel.rs81.18%15 Missing and 4 partials ⚠️
lightning/src/chain/chainmonitor.rs11.76%15 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #3822 +/- ##
==========================================
- Coverage 89.74% 89.63% -0.12% 
==========================================
Files 164 164 Lines 133079 134658 +1579 Branches 133079 134658 +1579 ==========================================
+ Hits 119437 120694 +1257 - Misses 10960 11275 +315 - Partials 2682 2689 +7 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@ldk-reviews-bot

Copy link
Copy Markdown

👋 The first review has been submitted!

Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer.

Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 6c78591 to ac8c8c5CompareJune 9, 2025 00:35
@wpaulino
wpaulino requested a review from jkczyzJune 9, 2025 00:35
@tankyleo
tankyleo self-requested a review June 9, 2025 19:55

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass in channel monitor

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from ac8c8c5 to 5f0709fCompareJune 10, 2025 18:58
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stared at the code again today, picked up nits on the way.

Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 5f0709f to 689d0c1CompareJune 11, 2025 17:04
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 689d0c1 to 4a38fd2CompareJune 13, 2025 17:20
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 2nd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 3rd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 4a38fd2 to b274f78CompareJune 16, 2025 17:13
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Needs rebase, it seems.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from b274f78 to a201837CompareJune 17, 2025 17:38
@wpaulino
wpaulino requested review from TheBlueMatt and tankyleo and removed request for jkczyzJune 17, 2025 17:39

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically LGTM

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a201837 to a94ac4cCompareJune 18, 2025 01:55
@TheBlueMatt

TheBlueMatt commented Jun 18, 2025

Copy link
Copy Markdown
Collaborator

LGTM, I think, modulo the comment request above @jkczyz or @tankyleo can take a look now.

@TheBlueMatt
TheBlueMatt removed their request for review June 18, 2025 14:39

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code all LGTM pending Matt's last unresolved comment above.

@jkczyz would you be able to take a look at channel.rs on this PR ? Code makes sense to me, but not as confident with the p2p splicing dance :)

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a94ac4c to 75a7cb6CompareJune 20, 2025 19:26
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@TheBlueMatt
TheBlueMatt removed their request for review June 23, 2025 15:51
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Did you want to take a look, @jkczyz? Given @tankyleo didn't ACK above.

Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
This is a new `ChannelMonitorUpdateStep` variant intended to be used
whenever a new funding transaction for the channel has been negotiated
via the `InteractiveTxConstructor`. This commit primarily focuses on its
use for splices, but future work will expand where needed to support
RBFs (both for the initial dual funding transaction, and splice
transactions).
To draw a parallel to channel open, we generally want to have the
commitment transactions negotiated for the funding transaction and
committed to the respective `ChannelMonitor` before attempting to sign
the funding transaction itself. This monitor update fulfills this need
for a newly negotiated splice; it includes both the new holder
and counterparty commitment transactions, and the new set of applicable
`ChannelTransactionParameters`. Once the monitor update has been applied
to the monitor and persisted, we allow the release of our
`tx_signatures` for the splice transaction to wait for its confirmation.
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 75a7cb6 to 180b53dCompareJune 23, 2025 17:26

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two minor notes that might be worth following up on.

);
chain_source.register_tx(&funding_outpoint.txid, &funding_script);
chain_source.register_output(WatchedOutput {
block_hash: None,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure any downstream applications use it, but we could fill this in with the current chain tip, AFAIU? (and honestly rename the field while we're at it lol)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately this would only last until the next restart (assuming the chain_source is not persisting WatchedOutputs), so we'd have to track the block hash if we always want to set it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should? Seems weird to offer this and never use it? At a minimum we could set it to the block hash in which the existing funding tx was confirmed, I imagine (modulo 0conf?).

Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt
TheBlueMatt merged commit c48e0a8 into lightningdevkit:mainJun 24, 2025
@wpaulino
wpaulino deleted the renegotiated-funding-monitor-update branch June 24, 2025 02:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@wpaulino@ldk-reviews-bot@TheBlueMatt@jkczyz@tankyleo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Introduce RenegotiatedFunding monitor update variant - #3822

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update
Jun 24, 2025
Merged

Introduce RenegotiatedFunding monitor update variant#3822
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update

Conversation

@wpaulino

@wpaulinowpaulino commented Jun 2, 2025

Copy link
Copy Markdown
Contributor

This is a new ChannelMonitorUpdateStep variant intended to be used whenever a new funding transaction for the channel has been negotiated via the InteractiveTxConstructor. This commit primarily focuses on its use for splices, but future work will expand where needed to support RBFs (both for the initial dual funding transaction, and splice transactions).

To draw a parallel to channel open, we generally want to have the commitment transactions negotiated for the funding transaction and committed to the respective ChannelMonitor before attempting to sign the funding transaction itself. This monitor update fulfills this need for a newly negotiated splice; it includes both the new holder and counterparty commitment transactions, and the new set of applicable ChannelTransactionParameters. Once the monitor update has been applied to the monitor and persisted, we allow the release of our tx_signatures for the splice transaction to wait for its confirmation.

Depends on #3774.

@ldk-reviews-bot

ldk-reviews-bot commented Jun 2, 2025

Copy link
Copy Markdown

👋 I see @TheBlueMatt was un-assigned.
If you'd like another reviewer assignemnt, please click here.

@wpaulino
wpaulino requested a review from jkczyzJune 2, 2025 23:53
@codecov

codecovBot commented Jun 3, 2025

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 35.61644% with 188 lines in your changes missing coverage. Please review.

Project coverage is 89.63%. Comparing base (db165ad) to head (180b53d).
Report is 44 commits behind head on main.

Files with missing linesPatch %Lines
lightning/src/chain/channelmonitor.rs11.49%154 Missing ⚠️
lightning/src/ln/channel.rs81.18%15 Missing and 4 partials ⚠️
lightning/src/chain/chainmonitor.rs11.76%15 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #3822 +/- ##
==========================================
- Coverage 89.74% 89.63% -0.12% 
==========================================
Files 164 164 Lines 133079 134658 +1579 Branches 133079 134658 +1579 ==========================================
+ Hits 119437 120694 +1257 - Misses 10960 11275 +315 - Partials 2682 2689 +7 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@ldk-reviews-bot

Copy link
Copy Markdown

👋 The first review has been submitted!

Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer.

Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 6c78591 to ac8c8c5CompareJune 9, 2025 00:35
@wpaulino
wpaulino requested a review from jkczyzJune 9, 2025 00:35
@tankyleo
tankyleo self-requested a review June 9, 2025 19:55

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass in channel monitor

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from ac8c8c5 to 5f0709fCompareJune 10, 2025 18:58
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stared at the code again today, picked up nits on the way.

Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 5f0709f to 689d0c1CompareJune 11, 2025 17:04
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 689d0c1 to 4a38fd2CompareJune 13, 2025 17:20
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 2nd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 3rd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 4a38fd2 to b274f78CompareJune 16, 2025 17:13
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Needs rebase, it seems.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from b274f78 to a201837CompareJune 17, 2025 17:38
@wpaulino
wpaulino requested review from TheBlueMatt and tankyleo and removed request for jkczyzJune 17, 2025 17:39

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically LGTM

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a201837 to a94ac4cCompareJune 18, 2025 01:55
@TheBlueMatt

TheBlueMatt commented Jun 18, 2025

Copy link
Copy Markdown
Collaborator

LGTM, I think, modulo the comment request above @jkczyz or @tankyleo can take a look now.

@TheBlueMatt
TheBlueMatt removed their request for review June 18, 2025 14:39

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code all LGTM pending Matt's last unresolved comment above.

@jkczyz would you be able to take a look at channel.rs on this PR ? Code makes sense to me, but not as confident with the p2p splicing dance :)

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a94ac4c to 75a7cb6CompareJune 20, 2025 19:26
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@TheBlueMatt
TheBlueMatt removed their request for review June 23, 2025 15:51
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Did you want to take a look, @jkczyz? Given @tankyleo didn't ACK above.

Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
This is a new `ChannelMonitorUpdateStep` variant intended to be used
whenever a new funding transaction for the channel has been negotiated
via the `InteractiveTxConstructor`. This commit primarily focuses on its
use for splices, but future work will expand where needed to support
RBFs (both for the initial dual funding transaction, and splice
transactions).
To draw a parallel to channel open, we generally want to have the
commitment transactions negotiated for the funding transaction and
committed to the respective `ChannelMonitor` before attempting to sign
the funding transaction itself. This monitor update fulfills this need
for a newly negotiated splice; it includes both the new holder
and counterparty commitment transactions, and the new set of applicable
`ChannelTransactionParameters`. Once the monitor update has been applied
to the monitor and persisted, we allow the release of our
`tx_signatures` for the splice transaction to wait for its confirmation.
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 75a7cb6 to 180b53dCompareJune 23, 2025 17:26

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two minor notes that might be worth following up on.

);
chain_source.register_tx(&funding_outpoint.txid, &funding_script);
chain_source.register_output(WatchedOutput {
block_hash: None,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure any downstream applications use it, but we could fill this in with the current chain tip, AFAIU? (and honestly rename the field while we're at it lol)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately this would only last until the next restart (assuming the chain_source is not persisting WatchedOutputs), so we'd have to track the block hash if we always want to set it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should? Seems weird to offer this and never use it? At a minimum we could set it to the block hash in which the existing funding tx was confirmed, I imagine (modulo 0conf?).

Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt
TheBlueMatt merged commit c48e0a8 into lightningdevkit:mainJun 24, 2025
@wpaulino
wpaulino deleted the renegotiated-funding-monitor-update branch June 24, 2025 02:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@wpaulino@ldk-reviews-bot@TheBlueMatt@jkczyz@tankyleo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Introduce RenegotiatedFunding monitor update variant - #3822

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update
Jun 24, 2025
Merged

Introduce RenegotiatedFunding monitor update variant#3822
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update

Conversation

@wpaulino

@wpaulinowpaulino commented Jun 2, 2025

Copy link
Copy Markdown
Contributor

This is a new ChannelMonitorUpdateStep variant intended to be used whenever a new funding transaction for the channel has been negotiated via the InteractiveTxConstructor. This commit primarily focuses on its use for splices, but future work will expand where needed to support RBFs (both for the initial dual funding transaction, and splice transactions).

To draw a parallel to channel open, we generally want to have the commitment transactions negotiated for the funding transaction and committed to the respective ChannelMonitor before attempting to sign the funding transaction itself. This monitor update fulfills this need for a newly negotiated splice; it includes both the new holder and counterparty commitment transactions, and the new set of applicable ChannelTransactionParameters. Once the monitor update has been applied to the monitor and persisted, we allow the release of our tx_signatures for the splice transaction to wait for its confirmation.

Depends on #3774.

@ldk-reviews-bot

ldk-reviews-bot commented Jun 2, 2025

Copy link
Copy Markdown

👋 I see @TheBlueMatt was un-assigned.
If you'd like another reviewer assignemnt, please click here.

@wpaulino
wpaulino requested a review from jkczyzJune 2, 2025 23:53
@codecov

codecovBot commented Jun 3, 2025

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 35.61644% with 188 lines in your changes missing coverage. Please review.

Project coverage is 89.63%. Comparing base (db165ad) to head (180b53d).
Report is 44 commits behind head on main.

Files with missing linesPatch %Lines
lightning/src/chain/channelmonitor.rs11.49%154 Missing ⚠️
lightning/src/ln/channel.rs81.18%15 Missing and 4 partials ⚠️
lightning/src/chain/chainmonitor.rs11.76%15 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #3822 +/- ##
==========================================
- Coverage 89.74% 89.63% -0.12% 
==========================================
Files 164 164 Lines 133079 134658 +1579 Branches 133079 134658 +1579 ==========================================
+ Hits 119437 120694 +1257 - Misses 10960 11275 +315 - Partials 2682 2689 +7 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@ldk-reviews-bot

Copy link
Copy Markdown

👋 The first review has been submitted!

Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer.

Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 6c78591 to ac8c8c5CompareJune 9, 2025 00:35
@wpaulino
wpaulino requested a review from jkczyzJune 9, 2025 00:35
@tankyleo
tankyleo self-requested a review June 9, 2025 19:55

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass in channel monitor

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from ac8c8c5 to 5f0709fCompareJune 10, 2025 18:58
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stared at the code again today, picked up nits on the way.

Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 5f0709f to 689d0c1CompareJune 11, 2025 17:04
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 689d0c1 to 4a38fd2CompareJune 13, 2025 17:20
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 2nd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 3rd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 4a38fd2 to b274f78CompareJune 16, 2025 17:13
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Needs rebase, it seems.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from b274f78 to a201837CompareJune 17, 2025 17:38
@wpaulino
wpaulino requested review from TheBlueMatt and tankyleo and removed request for jkczyzJune 17, 2025 17:39

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically LGTM

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a201837 to a94ac4cCompareJune 18, 2025 01:55
@TheBlueMatt

TheBlueMatt commented Jun 18, 2025

Copy link
Copy Markdown
Collaborator

LGTM, I think, modulo the comment request above @jkczyz or @tankyleo can take a look now.

@TheBlueMatt
TheBlueMatt removed their request for review June 18, 2025 14:39

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code all LGTM pending Matt's last unresolved comment above.

@jkczyz would you be able to take a look at channel.rs on this PR ? Code makes sense to me, but not as confident with the p2p splicing dance :)

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a94ac4c to 75a7cb6CompareJune 20, 2025 19:26
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@TheBlueMatt
TheBlueMatt removed their request for review June 23, 2025 15:51
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Did you want to take a look, @jkczyz? Given @tankyleo didn't ACK above.

Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
This is a new `ChannelMonitorUpdateStep` variant intended to be used
whenever a new funding transaction for the channel has been negotiated
via the `InteractiveTxConstructor`. This commit primarily focuses on its
use for splices, but future work will expand where needed to support
RBFs (both for the initial dual funding transaction, and splice
transactions).
To draw a parallel to channel open, we generally want to have the
commitment transactions negotiated for the funding transaction and
committed to the respective `ChannelMonitor` before attempting to sign
the funding transaction itself. This monitor update fulfills this need
for a newly negotiated splice; it includes both the new holder
and counterparty commitment transactions, and the new set of applicable
`ChannelTransactionParameters`. Once the monitor update has been applied
to the monitor and persisted, we allow the release of our
`tx_signatures` for the splice transaction to wait for its confirmation.
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 75a7cb6 to 180b53dCompareJune 23, 2025 17:26

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two minor notes that might be worth following up on.

);
chain_source.register_tx(&funding_outpoint.txid, &funding_script);
chain_source.register_output(WatchedOutput {
block_hash: None,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure any downstream applications use it, but we could fill this in with the current chain tip, AFAIU? (and honestly rename the field while we're at it lol)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately this would only last until the next restart (assuming the chain_source is not persisting WatchedOutputs), so we'd have to track the block hash if we always want to set it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should? Seems weird to offer this and never use it? At a minimum we could set it to the block hash in which the existing funding tx was confirmed, I imagine (modulo 0conf?).

Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt
TheBlueMatt merged commit c48e0a8 into lightningdevkit:mainJun 24, 2025
@wpaulino
wpaulino deleted the renegotiated-funding-monitor-update branch June 24, 2025 02:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@wpaulino@ldk-reviews-bot@TheBlueMatt@jkczyz@tankyleo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Introduce RenegotiatedFunding monitor update variant - #3822

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update
Jun 24, 2025
Merged

Introduce RenegotiatedFunding monitor update variant#3822
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update

Conversation

@wpaulino

@wpaulinowpaulino commented Jun 2, 2025

Copy link
Copy Markdown
Contributor

This is a new ChannelMonitorUpdateStep variant intended to be used whenever a new funding transaction for the channel has been negotiated via the InteractiveTxConstructor. This commit primarily focuses on its use for splices, but future work will expand where needed to support RBFs (both for the initial dual funding transaction, and splice transactions).

To draw a parallel to channel open, we generally want to have the commitment transactions negotiated for the funding transaction and committed to the respective ChannelMonitor before attempting to sign the funding transaction itself. This monitor update fulfills this need for a newly negotiated splice; it includes both the new holder and counterparty commitment transactions, and the new set of applicable ChannelTransactionParameters. Once the monitor update has been applied to the monitor and persisted, we allow the release of our tx_signatures for the splice transaction to wait for its confirmation.

Depends on #3774.

@ldk-reviews-bot

ldk-reviews-bot commented Jun 2, 2025

Copy link
Copy Markdown

👋 I see @TheBlueMatt was un-assigned.
If you'd like another reviewer assignemnt, please click here.

@wpaulino
wpaulino requested a review from jkczyzJune 2, 2025 23:53
@codecov

codecovBot commented Jun 3, 2025

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 35.61644% with 188 lines in your changes missing coverage. Please review.

Project coverage is 89.63%. Comparing base (db165ad) to head (180b53d).
Report is 44 commits behind head on main.

Files with missing linesPatch %Lines
lightning/src/chain/channelmonitor.rs11.49%154 Missing ⚠️
lightning/src/ln/channel.rs81.18%15 Missing and 4 partials ⚠️
lightning/src/chain/chainmonitor.rs11.76%15 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #3822 +/- ##
==========================================
- Coverage 89.74% 89.63% -0.12% 
==========================================
Files 164 164 Lines 133079 134658 +1579 Branches 133079 134658 +1579 ==========================================
+ Hits 119437 120694 +1257 - Misses 10960 11275 +315 - Partials 2682 2689 +7 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@ldk-reviews-bot

Copy link
Copy Markdown

👋 The first review has been submitted!

Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer.

Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 6c78591 to ac8c8c5CompareJune 9, 2025 00:35
@wpaulino
wpaulino requested a review from jkczyzJune 9, 2025 00:35
@tankyleo
tankyleo self-requested a review June 9, 2025 19:55

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass in channel monitor

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from ac8c8c5 to 5f0709fCompareJune 10, 2025 18:58
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stared at the code again today, picked up nits on the way.

Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 5f0709f to 689d0c1CompareJune 11, 2025 17:04
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 689d0c1 to 4a38fd2CompareJune 13, 2025 17:20
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 2nd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 3rd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 4a38fd2 to b274f78CompareJune 16, 2025 17:13
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Needs rebase, it seems.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from b274f78 to a201837CompareJune 17, 2025 17:38
@wpaulino
wpaulino requested review from TheBlueMatt and tankyleo and removed request for jkczyzJune 17, 2025 17:39

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically LGTM

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a201837 to a94ac4cCompareJune 18, 2025 01:55
@TheBlueMatt

TheBlueMatt commented Jun 18, 2025

Copy link
Copy Markdown
Collaborator

LGTM, I think, modulo the comment request above @jkczyz or @tankyleo can take a look now.

@TheBlueMatt
TheBlueMatt removed their request for review June 18, 2025 14:39

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code all LGTM pending Matt's last unresolved comment above.

@jkczyz would you be able to take a look at channel.rs on this PR ? Code makes sense to me, but not as confident with the p2p splicing dance :)

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a94ac4c to 75a7cb6CompareJune 20, 2025 19:26
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@TheBlueMatt
TheBlueMatt removed their request for review June 23, 2025 15:51
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Did you want to take a look, @jkczyz? Given @tankyleo didn't ACK above.

Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
This is a new `ChannelMonitorUpdateStep` variant intended to be used
whenever a new funding transaction for the channel has been negotiated
via the `InteractiveTxConstructor`. This commit primarily focuses on its
use for splices, but future work will expand where needed to support
RBFs (both for the initial dual funding transaction, and splice
transactions).
To draw a parallel to channel open, we generally want to have the
commitment transactions negotiated for the funding transaction and
committed to the respective `ChannelMonitor` before attempting to sign
the funding transaction itself. This monitor update fulfills this need
for a newly negotiated splice; it includes both the new holder
and counterparty commitment transactions, and the new set of applicable
`ChannelTransactionParameters`. Once the monitor update has been applied
to the monitor and persisted, we allow the release of our
`tx_signatures` for the splice transaction to wait for its confirmation.
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 75a7cb6 to 180b53dCompareJune 23, 2025 17:26

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two minor notes that might be worth following up on.

);
chain_source.register_tx(&funding_outpoint.txid, &funding_script);
chain_source.register_output(WatchedOutput {
block_hash: None,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure any downstream applications use it, but we could fill this in with the current chain tip, AFAIU? (and honestly rename the field while we're at it lol)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately this would only last until the next restart (assuming the chain_source is not persisting WatchedOutputs), so we'd have to track the block hash if we always want to set it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should? Seems weird to offer this and never use it? At a minimum we could set it to the block hash in which the existing funding tx was confirmed, I imagine (modulo 0conf?).

Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt
TheBlueMatt merged commit c48e0a8 into lightningdevkit:mainJun 24, 2025
@wpaulino
wpaulino deleted the renegotiated-funding-monitor-update branch June 24, 2025 02:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@wpaulino@ldk-reviews-bot@TheBlueMatt@jkczyz@tankyleo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Introduce RenegotiatedFunding monitor update variant - #3822

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update
Jun 24, 2025
Merged

Introduce RenegotiatedFunding monitor update variant#3822
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update

Conversation

@wpaulino

@wpaulinowpaulino commented Jun 2, 2025

Copy link
Copy Markdown
Contributor

This is a new ChannelMonitorUpdateStep variant intended to be used whenever a new funding transaction for the channel has been negotiated via the InteractiveTxConstructor. This commit primarily focuses on its use for splices, but future work will expand where needed to support RBFs (both for the initial dual funding transaction, and splice transactions).

To draw a parallel to channel open, we generally want to have the commitment transactions negotiated for the funding transaction and committed to the respective ChannelMonitor before attempting to sign the funding transaction itself. This monitor update fulfills this need for a newly negotiated splice; it includes both the new holder and counterparty commitment transactions, and the new set of applicable ChannelTransactionParameters. Once the monitor update has been applied to the monitor and persisted, we allow the release of our tx_signatures for the splice transaction to wait for its confirmation.

Depends on #3774.

@ldk-reviews-bot

ldk-reviews-bot commented Jun 2, 2025

Copy link
Copy Markdown

👋 I see @TheBlueMatt was un-assigned.
If you'd like another reviewer assignemnt, please click here.

@wpaulino
wpaulino requested a review from jkczyzJune 2, 2025 23:53
@codecov

codecovBot commented Jun 3, 2025

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 35.61644% with 188 lines in your changes missing coverage. Please review.

Project coverage is 89.63%. Comparing base (db165ad) to head (180b53d).
Report is 44 commits behind head on main.

Files with missing linesPatch %Lines
lightning/src/chain/channelmonitor.rs11.49%154 Missing ⚠️
lightning/src/ln/channel.rs81.18%15 Missing and 4 partials ⚠️
lightning/src/chain/chainmonitor.rs11.76%15 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #3822 +/- ##
==========================================
- Coverage 89.74% 89.63% -0.12% 
==========================================
Files 164 164 Lines 133079 134658 +1579 Branches 133079 134658 +1579 ==========================================
+ Hits 119437 120694 +1257 - Misses 10960 11275 +315 - Partials 2682 2689 +7 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@ldk-reviews-bot

Copy link
Copy Markdown

👋 The first review has been submitted!

Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer.

Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 6c78591 to ac8c8c5CompareJune 9, 2025 00:35
@wpaulino
wpaulino requested a review from jkczyzJune 9, 2025 00:35
@tankyleo
tankyleo self-requested a review June 9, 2025 19:55

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass in channel monitor

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from ac8c8c5 to 5f0709fCompareJune 10, 2025 18:58
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stared at the code again today, picked up nits on the way.

Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 5f0709f to 689d0c1CompareJune 11, 2025 17:04
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 689d0c1 to 4a38fd2CompareJune 13, 2025 17:20
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 2nd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 3rd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 4a38fd2 to b274f78CompareJune 16, 2025 17:13
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Needs rebase, it seems.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from b274f78 to a201837CompareJune 17, 2025 17:38
@wpaulino
wpaulino requested review from TheBlueMatt and tankyleo and removed request for jkczyzJune 17, 2025 17:39

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically LGTM

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a201837 to a94ac4cCompareJune 18, 2025 01:55
@TheBlueMatt

TheBlueMatt commented Jun 18, 2025

Copy link
Copy Markdown
Collaborator

LGTM, I think, modulo the comment request above @jkczyz or @tankyleo can take a look now.

@TheBlueMatt
TheBlueMatt removed their request for review June 18, 2025 14:39

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code all LGTM pending Matt's last unresolved comment above.

@jkczyz would you be able to take a look at channel.rs on this PR ? Code makes sense to me, but not as confident with the p2p splicing dance :)

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a94ac4c to 75a7cb6CompareJune 20, 2025 19:26
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@TheBlueMatt
TheBlueMatt removed their request for review June 23, 2025 15:51
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Did you want to take a look, @jkczyz? Given @tankyleo didn't ACK above.

Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
This is a new `ChannelMonitorUpdateStep` variant intended to be used
whenever a new funding transaction for the channel has been negotiated
via the `InteractiveTxConstructor`. This commit primarily focuses on its
use for splices, but future work will expand where needed to support
RBFs (both for the initial dual funding transaction, and splice
transactions).
To draw a parallel to channel open, we generally want to have the
commitment transactions negotiated for the funding transaction and
committed to the respective `ChannelMonitor` before attempting to sign
the funding transaction itself. This monitor update fulfills this need
for a newly negotiated splice; it includes both the new holder
and counterparty commitment transactions, and the new set of applicable
`ChannelTransactionParameters`. Once the monitor update has been applied
to the monitor and persisted, we allow the release of our
`tx_signatures` for the splice transaction to wait for its confirmation.
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 75a7cb6 to 180b53dCompareJune 23, 2025 17:26

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two minor notes that might be worth following up on.

);
chain_source.register_tx(&funding_outpoint.txid, &funding_script);
chain_source.register_output(WatchedOutput {
block_hash: None,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure any downstream applications use it, but we could fill this in with the current chain tip, AFAIU? (and honestly rename the field while we're at it lol)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately this would only last until the next restart (assuming the chain_source is not persisting WatchedOutputs), so we'd have to track the block hash if we always want to set it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should? Seems weird to offer this and never use it? At a minimum we could set it to the block hash in which the existing funding tx was confirmed, I imagine (modulo 0conf?).

Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt
TheBlueMatt merged commit c48e0a8 into lightningdevkit:mainJun 24, 2025
@wpaulino
wpaulino deleted the renegotiated-funding-monitor-update branch June 24, 2025 02:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@wpaulino@ldk-reviews-bot@TheBlueMatt@jkczyz@tankyleo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Introduce RenegotiatedFunding monitor update variant - #3822

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update
Jun 24, 2025
Merged

Introduce RenegotiatedFunding monitor update variant#3822
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update

Conversation

@wpaulino

@wpaulinowpaulino commented Jun 2, 2025

Copy link
Copy Markdown
Contributor

This is a new ChannelMonitorUpdateStep variant intended to be used whenever a new funding transaction for the channel has been negotiated via the InteractiveTxConstructor. This commit primarily focuses on its use for splices, but future work will expand where needed to support RBFs (both for the initial dual funding transaction, and splice transactions).

To draw a parallel to channel open, we generally want to have the commitment transactions negotiated for the funding transaction and committed to the respective ChannelMonitor before attempting to sign the funding transaction itself. This monitor update fulfills this need for a newly negotiated splice; it includes both the new holder and counterparty commitment transactions, and the new set of applicable ChannelTransactionParameters. Once the monitor update has been applied to the monitor and persisted, we allow the release of our tx_signatures for the splice transaction to wait for its confirmation.

Depends on #3774.

@ldk-reviews-bot

ldk-reviews-bot commented Jun 2, 2025

Copy link
Copy Markdown

👋 I see @TheBlueMatt was un-assigned.
If you'd like another reviewer assignemnt, please click here.

@wpaulino
wpaulino requested a review from jkczyzJune 2, 2025 23:53
@codecov

codecovBot commented Jun 3, 2025

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 35.61644% with 188 lines in your changes missing coverage. Please review.

Project coverage is 89.63%. Comparing base (db165ad) to head (180b53d).
Report is 44 commits behind head on main.

Files with missing linesPatch %Lines
lightning/src/chain/channelmonitor.rs11.49%154 Missing ⚠️
lightning/src/ln/channel.rs81.18%15 Missing and 4 partials ⚠️
lightning/src/chain/chainmonitor.rs11.76%15 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #3822 +/- ##
==========================================
- Coverage 89.74% 89.63% -0.12% 
==========================================
Files 164 164 Lines 133079 134658 +1579 Branches 133079 134658 +1579 ==========================================
+ Hits 119437 120694 +1257 - Misses 10960 11275 +315 - Partials 2682 2689 +7 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@ldk-reviews-bot

Copy link
Copy Markdown

👋 The first review has been submitted!

Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer.

Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 6c78591 to ac8c8c5CompareJune 9, 2025 00:35
@wpaulino
wpaulino requested a review from jkczyzJune 9, 2025 00:35
@tankyleo
tankyleo self-requested a review June 9, 2025 19:55

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass in channel monitor

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from ac8c8c5 to 5f0709fCompareJune 10, 2025 18:58
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stared at the code again today, picked up nits on the way.

Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 5f0709f to 689d0c1CompareJune 11, 2025 17:04
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 689d0c1 to 4a38fd2CompareJune 13, 2025 17:20
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 2nd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 3rd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 4a38fd2 to b274f78CompareJune 16, 2025 17:13
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Needs rebase, it seems.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from b274f78 to a201837CompareJune 17, 2025 17:38
@wpaulino
wpaulino requested review from TheBlueMatt and tankyleo and removed request for jkczyzJune 17, 2025 17:39

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically LGTM

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a201837 to a94ac4cCompareJune 18, 2025 01:55
@TheBlueMatt

TheBlueMatt commented Jun 18, 2025

Copy link
Copy Markdown
Collaborator

LGTM, I think, modulo the comment request above @jkczyz or @tankyleo can take a look now.

@TheBlueMatt
TheBlueMatt removed their request for review June 18, 2025 14:39

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code all LGTM pending Matt's last unresolved comment above.

@jkczyz would you be able to take a look at channel.rs on this PR ? Code makes sense to me, but not as confident with the p2p splicing dance :)

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a94ac4c to 75a7cb6CompareJune 20, 2025 19:26
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@TheBlueMatt
TheBlueMatt removed their request for review June 23, 2025 15:51
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Did you want to take a look, @jkczyz? Given @tankyleo didn't ACK above.

Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
This is a new `ChannelMonitorUpdateStep` variant intended to be used
whenever a new funding transaction for the channel has been negotiated
via the `InteractiveTxConstructor`. This commit primarily focuses on its
use for splices, but future work will expand where needed to support
RBFs (both for the initial dual funding transaction, and splice
transactions).
To draw a parallel to channel open, we generally want to have the
commitment transactions negotiated for the funding transaction and
committed to the respective `ChannelMonitor` before attempting to sign
the funding transaction itself. This monitor update fulfills this need
for a newly negotiated splice; it includes both the new holder
and counterparty commitment transactions, and the new set of applicable
`ChannelTransactionParameters`. Once the monitor update has been applied
to the monitor and persisted, we allow the release of our
`tx_signatures` for the splice transaction to wait for its confirmation.
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 75a7cb6 to 180b53dCompareJune 23, 2025 17:26

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two minor notes that might be worth following up on.

);
chain_source.register_tx(&funding_outpoint.txid, &funding_script);
chain_source.register_output(WatchedOutput {
block_hash: None,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure any downstream applications use it, but we could fill this in with the current chain tip, AFAIU? (and honestly rename the field while we're at it lol)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately this would only last until the next restart (assuming the chain_source is not persisting WatchedOutputs), so we'd have to track the block hash if we always want to set it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should? Seems weird to offer this and never use it? At a minimum we could set it to the block hash in which the existing funding tx was confirmed, I imagine (modulo 0conf?).

Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt
TheBlueMatt merged commit c48e0a8 into lightningdevkit:mainJun 24, 2025
@wpaulino
wpaulino deleted the renegotiated-funding-monitor-update branch June 24, 2025 02:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@wpaulino@ldk-reviews-bot@TheBlueMatt@jkczyz@tankyleo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Introduce RenegotiatedFunding monitor update variant - #3822

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update
Jun 24, 2025
Merged

Introduce RenegotiatedFunding monitor update variant#3822
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update

Conversation

@wpaulino

@wpaulinowpaulino commented Jun 2, 2025

Copy link
Copy Markdown
Contributor

This is a new ChannelMonitorUpdateStep variant intended to be used whenever a new funding transaction for the channel has been negotiated via the InteractiveTxConstructor. This commit primarily focuses on its use for splices, but future work will expand where needed to support RBFs (both for the initial dual funding transaction, and splice transactions).

To draw a parallel to channel open, we generally want to have the commitment transactions negotiated for the funding transaction and committed to the respective ChannelMonitor before attempting to sign the funding transaction itself. This monitor update fulfills this need for a newly negotiated splice; it includes both the new holder and counterparty commitment transactions, and the new set of applicable ChannelTransactionParameters. Once the monitor update has been applied to the monitor and persisted, we allow the release of our tx_signatures for the splice transaction to wait for its confirmation.

Depends on #3774.

@ldk-reviews-bot

ldk-reviews-bot commented Jun 2, 2025

Copy link
Copy Markdown

👋 I see @TheBlueMatt was un-assigned.
If you'd like another reviewer assignemnt, please click here.

@wpaulino
wpaulino requested a review from jkczyzJune 2, 2025 23:53
@codecov

codecovBot commented Jun 3, 2025

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 35.61644% with 188 lines in your changes missing coverage. Please review.

Project coverage is 89.63%. Comparing base (db165ad) to head (180b53d).
Report is 44 commits behind head on main.

Files with missing linesPatch %Lines
lightning/src/chain/channelmonitor.rs11.49%154 Missing ⚠️
lightning/src/ln/channel.rs81.18%15 Missing and 4 partials ⚠️
lightning/src/chain/chainmonitor.rs11.76%15 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #3822 +/- ##
==========================================
- Coverage 89.74% 89.63% -0.12% 
==========================================
Files 164 164 Lines 133079 134658 +1579 Branches 133079 134658 +1579 ==========================================
+ Hits 119437 120694 +1257 - Misses 10960 11275 +315 - Partials 2682 2689 +7 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@ldk-reviews-bot

Copy link
Copy Markdown

👋 The first review has been submitted!

Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer.

Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 6c78591 to ac8c8c5CompareJune 9, 2025 00:35
@wpaulino
wpaulino requested a review from jkczyzJune 9, 2025 00:35
@tankyleo
tankyleo self-requested a review June 9, 2025 19:55

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass in channel monitor

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from ac8c8c5 to 5f0709fCompareJune 10, 2025 18:58
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stared at the code again today, picked up nits on the way.

Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 5f0709f to 689d0c1CompareJune 11, 2025 17:04
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 689d0c1 to 4a38fd2CompareJune 13, 2025 17:20
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 2nd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 3rd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 4a38fd2 to b274f78CompareJune 16, 2025 17:13
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Needs rebase, it seems.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from b274f78 to a201837CompareJune 17, 2025 17:38
@wpaulino
wpaulino requested review from TheBlueMatt and tankyleo and removed request for jkczyzJune 17, 2025 17:39

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically LGTM

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a201837 to a94ac4cCompareJune 18, 2025 01:55
@TheBlueMatt

TheBlueMatt commented Jun 18, 2025

Copy link
Copy Markdown
Collaborator

LGTM, I think, modulo the comment request above @jkczyz or @tankyleo can take a look now.

@TheBlueMatt
TheBlueMatt removed their request for review June 18, 2025 14:39

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code all LGTM pending Matt's last unresolved comment above.

@jkczyz would you be able to take a look at channel.rs on this PR ? Code makes sense to me, but not as confident with the p2p splicing dance :)

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a94ac4c to 75a7cb6CompareJune 20, 2025 19:26
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@TheBlueMatt
TheBlueMatt removed their request for review June 23, 2025 15:51
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Did you want to take a look, @jkczyz? Given @tankyleo didn't ACK above.

Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
This is a new `ChannelMonitorUpdateStep` variant intended to be used
whenever a new funding transaction for the channel has been negotiated
via the `InteractiveTxConstructor`. This commit primarily focuses on its
use for splices, but future work will expand where needed to support
RBFs (both for the initial dual funding transaction, and splice
transactions).
To draw a parallel to channel open, we generally want to have the
commitment transactions negotiated for the funding transaction and
committed to the respective `ChannelMonitor` before attempting to sign
the funding transaction itself. This monitor update fulfills this need
for a newly negotiated splice; it includes both the new holder
and counterparty commitment transactions, and the new set of applicable
`ChannelTransactionParameters`. Once the monitor update has been applied
to the monitor and persisted, we allow the release of our
`tx_signatures` for the splice transaction to wait for its confirmation.
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 75a7cb6 to 180b53dCompareJune 23, 2025 17:26

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two minor notes that might be worth following up on.

);
chain_source.register_tx(&funding_outpoint.txid, &funding_script);
chain_source.register_output(WatchedOutput {
block_hash: None,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure any downstream applications use it, but we could fill this in with the current chain tip, AFAIU? (and honestly rename the field while we're at it lol)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately this would only last until the next restart (assuming the chain_source is not persisting WatchedOutputs), so we'd have to track the block hash if we always want to set it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should? Seems weird to offer this and never use it? At a minimum we could set it to the block hash in which the existing funding tx was confirmed, I imagine (modulo 0conf?).

Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt
TheBlueMatt merged commit c48e0a8 into lightningdevkit:mainJun 24, 2025
@wpaulino
wpaulino deleted the renegotiated-funding-monitor-update branch June 24, 2025 02:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@wpaulino@ldk-reviews-bot@TheBlueMatt@jkczyz@tankyleo
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Introduce RenegotiatedFunding monitor update variant - #3822

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update
Jun 24, 2025
Merged

Introduce RenegotiatedFunding monitor update variant#3822
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
wpaulino:renegotiated-funding-monitor-update

Conversation

@wpaulino

@wpaulinowpaulino commented Jun 2, 2025

Copy link
Copy Markdown
Contributor

This is a new ChannelMonitorUpdateStep variant intended to be used whenever a new funding transaction for the channel has been negotiated via the InteractiveTxConstructor. This commit primarily focuses on its use for splices, but future work will expand where needed to support RBFs (both for the initial dual funding transaction, and splice transactions).

To draw a parallel to channel open, we generally want to have the commitment transactions negotiated for the funding transaction and committed to the respective ChannelMonitor before attempting to sign the funding transaction itself. This monitor update fulfills this need for a newly negotiated splice; it includes both the new holder and counterparty commitment transactions, and the new set of applicable ChannelTransactionParameters. Once the monitor update has been applied to the monitor and persisted, we allow the release of our tx_signatures for the splice transaction to wait for its confirmation.

Depends on #3774.

@ldk-reviews-bot

ldk-reviews-bot commented Jun 2, 2025

Copy link
Copy Markdown

👋 I see @TheBlueMatt was un-assigned.
If you'd like another reviewer assignemnt, please click here.

@wpaulino
wpaulino requested a review from jkczyzJune 2, 2025 23:53
@codecov

codecovBot commented Jun 3, 2025

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 35.61644% with 188 lines in your changes missing coverage. Please review.

Project coverage is 89.63%. Comparing base (db165ad) to head (180b53d).
Report is 44 commits behind head on main.

Files with missing linesPatch %Lines
lightning/src/chain/channelmonitor.rs11.49%154 Missing ⚠️
lightning/src/ln/channel.rs81.18%15 Missing and 4 partials ⚠️
lightning/src/chain/chainmonitor.rs11.76%15 Missing ⚠️
Additional details and impacted files
@@ Coverage Diff @@## main #3822 +/- ##
==========================================
- Coverage 89.74% 89.63% -0.12% 
==========================================
Files 164 164 Lines 133079 134658 +1579 Branches 133079 134658 +1579 ==========================================
+ Hits 119437 120694 +1257 - Misses 10960 11275 +315 - Partials 2682 2689 +7 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@ldk-reviews-bot

Copy link
Copy Markdown

👋 The first review has been submitted!

Do you think this PR is ready for a second reviewer? If so, click here to assign a second reviewer.

Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 6c78591 to ac8c8c5CompareJune 9, 2025 00:35
@wpaulino
wpaulino requested a review from jkczyzJune 9, 2025 00:35
@tankyleo
tankyleo self-requested a review June 9, 2025 19:55

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass in channel monitor

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from ac8c8c5 to 5f0709fCompareJune 10, 2025 18:58
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stared at the code again today, picked up nits on the way.

Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 5f0709f to 689d0c1CompareJune 11, 2025 17:04
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 689d0c1 to 4a38fd2CompareJune 13, 2025 17:20
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 2nd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 3rd Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt@jkczyz! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 4a38fd2 to b274f78CompareJune 16, 2025 17:13
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Needs rebase, it seems.

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from b274f78 to a201837CompareJune 17, 2025 17:38
@wpaulino
wpaulino requested review from TheBlueMatt and tankyleo and removed request for jkczyzJune 17, 2025 17:39

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically LGTM

Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/ln/channel.rs Outdated
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a201837 to a94ac4cCompareJune 18, 2025 01:55
@TheBlueMatt

TheBlueMatt commented Jun 18, 2025

Copy link
Copy Markdown
Collaborator

LGTM, I think, modulo the comment request above @jkczyz or @tankyleo can take a look now.

@TheBlueMatt
TheBlueMatt removed their request for review June 18, 2025 14:39

@tankyleotankyleo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code all LGTM pending Matt's last unresolved comment above.

@jkczyz would you be able to take a look at channel.rs on this PR ? Code makes sense to me, but not as confident with the p2p splicing dance :)

@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from a94ac4c to 75a7cb6CompareJune 20, 2025 19:26
@ldk-reviews-bot

Copy link
Copy Markdown

🔔 1st Reminder

Hey @TheBlueMatt! This PR has been waiting for your review.
Please take a look when you have a chance. If you're unable to review, please let us know so we can find another reviewer.

@TheBlueMatt
TheBlueMatt removed their request for review June 23, 2025 15:51
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Did you want to take a look, @jkczyz? Given @tankyleo didn't ACK above.

Comment threadlightning/src/ln/channel.rs Outdated
Comment threadlightning/src/ln/channel.rs
Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs Outdated
Comment threadlightning/src/chain/channelmonitor.rs
This is a new `ChannelMonitorUpdateStep` variant intended to be used
whenever a new funding transaction for the channel has been negotiated
via the `InteractiveTxConstructor`. This commit primarily focuses on its
use for splices, but future work will expand where needed to support
RBFs (both for the initial dual funding transaction, and splice
transactions).
To draw a parallel to channel open, we generally want to have the
commitment transactions negotiated for the funding transaction and
committed to the respective `ChannelMonitor` before attempting to sign
the funding transaction itself. This monitor update fulfills this need
for a newly negotiated splice; it includes both the new holder
and counterparty commitment transactions, and the new set of applicable
`ChannelTransactionParameters`. Once the monitor update has been applied
to the monitor and persisted, we allow the release of our
`tx_signatures` for the splice transaction to wait for its confirmation.
@wpaulino
wpaulinoforce-pushed the renegotiated-funding-monitor-update branch from 75a7cb6 to 180b53dCompareJune 23, 2025 17:26

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two minor notes that might be worth following up on.

);
chain_source.register_tx(&funding_outpoint.txid, &funding_script);
chain_source.register_output(WatchedOutput {
block_hash: None,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure any downstream applications use it, but we could fill this in with the current chain tip, AFAIU? (and honestly rename the field while we're at it lol)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately this would only last until the next restart (assuming the chain_source is not persisting WatchedOutputs), so we'd have to track the block hash if we always want to set it.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should? Seems weird to offer this and never use it? At a minimum we could set it to the block hash in which the existing funding tx was confirmed, I imagine (modulo 0conf?).

Comment threadlightning/src/chain/channelmonitor.rs
@TheBlueMatt
TheBlueMatt merged commit c48e0a8 into lightningdevkit:mainJun 24, 2025
@wpaulino
wpaulino deleted the renegotiated-funding-monitor-update branch June 24, 2025 02:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@wpaulino@ldk-reviews-bot@TheBlueMatt@jkczyz@tankyleo