-
Notifications
You must be signed in to change notification settings - Fork 15
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
feat(rpc): pipelined aggregator setup #487
Conversation
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.
Thanks a lot for the changes.
I believe the original issue also wants the try_join_all
s to happen in background tasks so that they're happening in parallel (you can check aggregator for details)
We're also going to be working on moving the business logic out of the gRPC handlers, and moving parsing/validation logic out into trait impls so that they're more easily tested and the code has less clutter.
Thank you for the comments @mmtftr , and sorry for my late reply! At this point I see that |
63439bb
to
fac7127
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.
Overall, it looks good. But apparently there is a deadlock or something like that: CI/CD tests are not finishing.
Thank you for your comments @mmtftr @ceyhunsen , I will address them once I get the tests pass. |
5c0ca48
to
3d716a7
Compare
At this time the deadlock and the failing tests are fixed, I will make one more round of cleanups and mark it ready for the review. |
3aaa427
to
2784501
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.
It looks unnecessarily complex to me in general tbh
I totally agree @ceyhunsen ! But it also is non-trivial multiplexing M-over-N streams in a concurrent fashion. Also it is necessary to re-stream from broadcast consumer to mpsc consumer due to limitation of the client API. Compared with existing non-concurrent implementation the only overhead is actually only two extra broadcast channels (one for setting operator params, another one for watchtowers). UPDATE If you know how to simplify it, I am open to suggestions by all means! We can probably also approach the verifier cliet API to accept broadcast channel into-stream wrappers, but I didn't want to go there in scope of this PR just to avoid bloating it. |
c5b4829
to
e971389
Compare
e971389
to
809ceb2
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.
Thanks a lot for the refactor, just some small comments
Closes #460