-
Notifications
You must be signed in to change notification settings - Fork 35
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
Popping transaction bundles #1727
Comments
Let's start reviewing a proposal that does not changes the operation tracer, since this bundle feature only make sense when building a block, and not when processing an existing block. We can leverage the fact that Besu will think in terms of tx groups (aka bundles) so there will always be only a sequence of bundles, even a single tx will be represented as a bundle, so the current bundle-less use case will be a sequencer of bundles with only one tx. The The proposal could follow this approach where we only need 2 methods:
At the beginning the At this point the sequencer will be able to call |
Having two method |
@fab-10 Could you elaborate on the statement below, I'm not sure to understand
Currently, we do line counting with zkTracer (implementation of the OperationTracer) during block building (zktracing when each transaction is executed and line counting as a post processing selector). We can call again the zkTracer during RPC requests on the conflation endpoint to generate all the conflated traces of a range of blocks, by re-executing the blocks with zktracer. |
The subdivision of txs in bundles is only present when building a block, because after the block is built the bundle information is lost, and you only see a sequence of txs after the block is built, so when tracing an existing block, you there are no bundle to take care of, and you can simply execute the tx one at time. |
The
zkTracer
must have the ability to pop multiple transactions at once, that is, transactions that belong to a given bundle.One solution is to keep our current
StackedSet
/StackedList
mechanisms, to start tracing attraceStartBundle
and and to trigger thepop
/commit
(ormerge
?) operations attraceEndBundle
. This solution isn't favoured by @fab-10. IIRC, and following explanations by @ahamlat, thezkTracer
would be the only user of these new methods.Alternatively we can achieve the same result in
traceStartTransaction
and trigger thepop
/commit
(ormerge
?) operations attraceEndTransaction
when a bundle starts / when it ends.Notes.
The text was updated successfully, but these errors were encountered: