-
-
Notifications
You must be signed in to change notification settings - Fork 36
Fix open channel management (Bolt 2) #69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report
📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more @@ Coverage Diff @@
## master #69 +/- ##
=======================================
- Coverage 0.1% 0.1% -0.0%
=======================================
Files 41 41
Lines 3273 3355 +82
=======================================
Hits 3 3
- Misses 3270 3352 +82
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
|
@crisdut looks interesting! Can you provide some comments which functionality should it add to the node specifically? |
a80e155 to
33578a8
Compare
Hi @dr-orlovsky, Yes, sure. For now, I'm adding the final steps to create a channel and correctly persist the state channel. After that, I will finish the track transactions worker on Also, I started updating the workflows (here) to help us to review the bolts implementations. I will split each workflow into two flows: internal and external. The first flow is how daemons interact with others along the channel events. The other flow is how the Does it make sense to you? BTW, I saw your comment here, and I was wondering if it's worth continuing to correct the code or is it better to wait for the re-architecture? |
Not sure how this can work, since these two workflows are not independent...
With the new architecture the things which would change are not parts of the business logic; it is just that connections will run on the same thread (while today we have a thread per each remote peer connection). Watchd and channels will remain on an independent threads. So not sure whether it worth waiting for the new architecture, I think parts which you are doing shouldn't be affected by that much. |
OK sure. This week I have worked on this issue less than I'd liked. I'm finishing testing this first part. Next week, I'll update this branch again. Thanks for review. |
3d0b020 to
c14d526
Compare
|
Hi @dr-orlovsky I finished the PR, I updated description #69 (comment) |
dr-orlovsky
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is excellent work! Thank you @crisdut!
I see just a single issue which may lead to some notifications from electrum to get lost, which would be nice to fix - and we can merge after.
Also left a couple of nits which are nice-to-have. Otherwise LGTM
|
Amplify with FlagVec fixes is release, as well as LNP Core (v0.9). I am planning to release v0.9 of LNP Node soon. Can you pls update the PR such that I can merge it before doing the release? |
e75becb to
687a59d
Compare
dr-orlovsky
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like we need another iteration due to incorrect panics - plus found a simpler way to avoid electrum message loss
687a59d to
d5f28d6
Compare
dr-orlovsky
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK d5f28d6
This PR completes all steps to open a channel between
lnp-nodes, according to Bolt2, except a initial "refund tx" signature, because I will solve that in other PR.Also, I will create another PR to fix the connect (bolt1) and open channel (bolt2) operations with other LN implementations because I found issues related a parsing messages.
Changes
accept peerchange the channel id.accept nodeload your keyset.electrum workertrack and untrack transactions (only to "zero conf") [1]finish_accepted,finish_signedandfinish_fundedmethods.propose peerandaccept peerlifecycles.Dependencies
[1] The current rust-electrum-client does not get transaction with "verbose" informations. I will find a way to get the information. Details here