-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
txnprovider/composite: implement composite txn provider #13078
Conversation
Except for some tests, only the so-called composite-transaction provider has been kind of implemented.
|
@somnathb1 I would like to understand better where this confusion is coming from on your side.
If it is 2) then note this is a WIP and a lot of this structure will keep on changing as I'm adding more code to the shutter package. We can iron these things out and improve as we go. I prefer to do small and incremental PRs with active refactoring as not everything can be predicted and thought of at such an early stage of development. If it is 1) then we should probably discuss this during our weekly team meeting. The design has already been discussed and @yperbasis, Mark and Alexey confirmed it makes sense. To answer some of your points:
|
@taratorio Let's start with my issues from the perspective of "another" dev who's gonna work on this frequently:
Let's do some more concrete clarifications:
There are some strong opinions in these points, many of which may interfere with your current through process around this. I still feel obligated to express these. |
@somnathb1 ok, thank you. Let's discuss these in our call tomorrow. To summarise, seems like your comments boil down to the below 4 points (please correct me if I misunderstood some parts):
|
@somnathb1 thought about your feedback further. Here are my thoughts: Regarding 1), 2) & 3):
What do you think? Regarding 4): The shutter transactions take higher priority over the devp2p transactions and that is something that is possible to incorporate into the sub-pool design. For example, always putting shutter transactions directly into the However, there is another complication which doesn't fit well with this design: the shutter pool needs to wait for the decryption keys (hence transactions) to arrive for the given slot. They may come with some delay - that means the txpool needs to implement waiting logic. They may also never arrive (indicating Keyper failure) in which case we must produce an empty block. I think it will be cleaner to implement this all together separately in the shutter pool as described in the last bullet point about points 1), 2) & 3) above. With that approach there is no need at all for worrying about sub-pools and new ordering. Also the shutter implementation will be directly reflecting the specs making it much clearer. |
Outcome of discussion was:
|
follow ups from #13078 (comment) & offline discussion - remove `TxnProvider.Priority` - remove "composite txn provider" - remove "unordered devp2p txn provider" - rename `TxnProvider.Yield` to `TxnProvider.ProvideTxns` - have txpool.TxPool and shutter.Pool directly implement TxnProvider interface
No description provided.