-
Notifications
You must be signed in to change notification settings - Fork 116
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
A minimal version of the RFQ system #767
Conversation
7d36f26
to
88ebebd
Compare
TODO:
|
da10dba
to
c621cfb
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.
Very nice progress on this!
Doing things fully concurrently is pretty hard. I think the way the three main components are currently set up is probably quite hard to understand and error prone. So I think we should either merge the three components together (e.g. a single main event loop goroutine if possible) or make them more independent (both sub components have a start/stop method and manage their own goroutine, so be fully independent components).
ffranr is updating based on guggero's review |
8ca9028
to
b5b6792
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.
Amazing work! Completed an initial drive by, dropped some relevant comments and fresh framing to help us synchronize our mental models.
The latest commits include an itest which:
|
ddf3fbe
to
aed3714
Compare
4b63ddd
to
1bd0f27
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.
Beautiful code and very nice commit structure.
Truly amazing work on this, congrats 🎉 Reads very well!
3f54e18
to
7bd3991
Compare
Thank you Oli for your detailed review! @jharveyb FYI my goal with this PR is to get it merged so I can get back to sprints with manageable sized issues and smaller PRs. So I'd prefer to only make changes towards a merge and no extra features, if you see what I mean. The RFQ system won't be used immediately anyway. |
aaa9970
to
de667f3
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.
Awesome work! Pretty neat to see the bLIP coming to life 💯
Left a few Qs and notes, should be minor changes.
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.
LGTM pending nits and existing comments from @jharveyb.
de667f3
to
fa02a33
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.
Solid changes given the feedback, and all points not changed bot tagged with TODOs for follow-up PRs in this series / line of work 💯
fa02a33
to
6c9e8ba
Compare
This commit adds a new package called rfqmsg which contains RFQ message types. Message types are: request, accept, and reject.
This commit adds a new package called rfq which contains the RFQ service. Service sub-systems include: 1. Central service manager. 2. Quote price negotiator (and price oracle). 3. Peer message manager (stream handler). 4. HTLC order manager.
This commit plugs the new RFQ service into the greater tapd service.
This commit adds the RFQ RPC server. It also adds four RPC endpoints: 1. Upsert buy order. 2. Upsert sell offer. 3. List accepted quotes. 4. Subscribe to RFQ events.
This commit adds an itest which tests that the RFQ system can be used to reach an agreement on a quote between two peers and then validate the corresponding lightning payment HTLC.
6c9e8ba
to
5b6872b
Compare
Closes #766
This PR adds a minimal version of the RFQ system.