Open alecchendev opened 3 months ago
Attention: Patch coverage is 82.91815%
with 48 lines
in your changes missing coverage. Please review.
Project coverage is 89.92%. Comparing base (
6662c5c
) to head (ab345cd
). Report is 29 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
the commits from #3115 are second from the end, will rebase on top later this week, but generally most of the stuff here is in place
When we get back to this, please address the comments from https://github.com/lightningdevkit/rust-lightning/pull/3152#pullrequestreview-2183958862
This also needs rebase now.
Will probably squash some of these commits together at some point but just kept them separate for now
rebased and force pushed with the new approach. Previous branch is still here if it's helpful to see
Also CI is very sad
Finally, if you get a chance, can you flesh out your commit messages more? Describe why we're doing each commit, what considerations went into the approach, and what risks we might have in the design we took, even just a few sentences may be helpful in the future when someone is looking at old code for what we were thinking when we made changes.
CI still looks to be failing.
Handles fallible
get_per_commitment_point
signer method (except for channel reestablish).We make
get_per_commitment_point
return a result type so that in theErr
case, we (LDK) can resume operation while an async signer fetches the commitment point. This will typically block sending out a message, but otherwise most state updates will occur. When the signature arrives, the user is expected to callChannelManager::signer_unblocked
and we will retryget_per_commitment_point
however this time the signer will return the commitment point withOk
, and we'll send out our message.This PR implements this flow for channel establishment, i.e.
open_channel
,accept_channel
, andchannel_ready
.Rough outline of how our
HolderCommitmentPoint
advances and gets new signatures:open_channel
- creates new outbound channel, immediately requests the first commit point, waits to have the first 2 commit points to be unblocked to send the messageaccept_channel
- same ^funding_created
- no op regarding commit pointsfunding_created
- uses point to verify first commitment, then advances commitment, requesting next pointfunding_signed
- no opfunding_signed
- same as above, verifies, advances, requests next pointchannel_ready
- waits to have the next commit point ready, then once unblocked sends the current point in thechannel_ready
message