Add plugin for Peerswap atomic swap based local liquidity management protocol#2496
Closed
remyers wants to merge 32 commits intoACINQ:masterfrom
Closed
Add plugin for Peerswap atomic swap based local liquidity management protocol#2496remyers wants to merge 32 commits intoACINQ:masterfrom
remyers wants to merge 32 commits intoACINQ:masterfrom
Conversation
20 tasks
- revert unsealing trait - add unit test for forwarding unknown messages
Restore a stopped swap with a checkpoint that does not include a result; otherwise, remove from the swap register.
- remove unnecessary selects of swapId
c7050fc to
8dc48d4
Compare
8dc48d4 to
d272226
Compare
Contributor
Author
|
The comment from @t-bast about making Maker/Taker actors use The change to Should I keep the logic from 036e7f6 that I added to handle the case where a |
- remove inline text for generic responses - remove unused commands (timeout, forward)
Contributor
Author
- reorganized because resume behavior should not need to check the swap db - removed monitor from tests
- add verbose status information to debug log instead of returning as status
Member
|
I have created the |
This fixes a test failure introduced by PR ACINQ#2490 when the Maker tries to create a Bolt11 invoice and the RouteBlinding invoice feature is enabled.
Contributor
Author
|
This PR is continued in the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR implements the draft PeerSwap protocol as an Eclair Plugin and builds off of PR #2342 with a cleaner commit history after reorganization into a plug-in. This PR requires PR #2495 which makes some prerequisite changes to Eclair.
The plugin creates a
SwapRegisteractor at startup which will spawn swap sender actors in response to user CLI commands. TheSwapRegisterwill also spawn swap receiver actors in response to swap requests received from peers. TheSwapRegisterforwards swap messages received from peers based on theirswapIdfield to corresponding local swap actors. When a swap actor has completed, it simply stops and this triggers theSwapRegisterto remove it from its map.The Swap database check-points information about in-progress swaps after a swap maker has committed an on-chain tx or a swap taker has initiated an off-chain payment. Details about the result of the swap are added to the swap record when it completes.
Protocol implementation TODOs:
PeerSwap specification suggestions/questions to discuss: