-
-
Notifications
You must be signed in to change notification settings - Fork 37
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
Fix open channel management (Bolt 2) #69
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) |
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
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
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 peer
change the channel id.accept node
load your keyset.electrum worker
track and untrack transactions (only to "zero conf") [1]finish_accepted
,finish_signed
andfinish_funded
methods.propose peer
andaccept peer
lifecycles.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