Support multiple transaction selector plugins#9139
Merged
fab-10 merged 2 commits intobesu-eth:mainfrom Sep 1, 2025
Merged
Conversation
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
07f846c to
8ac517e
Compare
macfarla
approved these changes
Sep 1, 2025
| factories.add(pluginTransactionSelectorFactory); | ||
| } | ||
|
|
||
| private static class AggregatedPluginTransactionSelector implements PluginTransactionSelector { |
Contributor
There was a problem hiding this comment.
intellij says this class can be a record
Contributor
Author
There was a problem hiding this comment.
I saw that, but in this case I do not see the need to make it a record
| } | ||
| } | ||
|
|
||
| private static class TracerAggregator implements BlockAwareOperationTracer { |
Contributor
There was a problem hiding this comment.
intellij says this class can be a record - not sure of the impact of that
usmansaleem
added a commit
to usmansaleem/besu
that referenced
this pull request
Sep 1, 2025
commit 29f3516 Author: Fabio Di Fabio <fabio.difabio@consensys.net> Date: Mon Sep 1 10:12:27 2025 +0200 Support multiple transaction selector plugins (besu-eth#9139) Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> commit 2595e26 Author: Usman Saleem <usman@usmans.info> Date: Mon Sep 1 17:07:40 2025 +1000 feat: TraceFrame Builder pattern with Precompile input output fields (besu-eth#9111) Introduce Builder for TraceFrames. Add precompile data fields in Trace Frames. Add exceptional halt and revert reason for precompile trace frame. This will be used by tracers such as CallTracers to detect and populate precompile calls to have parity with Geth. Existing tracers, such as FlatTracerGenerator doesn't need the input/output of precompiles. --------- Signed-off-by: Usman Saleem <usman@usmans.info> Signed-off-by: Usman Saleem <usman@usmans.info>
jflo
pushed a commit
to jflo/besu
that referenced
this pull request
Sep 8, 2025
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
jflo
pushed a commit
to jflo/besu
that referenced
this pull request
Sep 8, 2025
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: jflo <justin+github@florentine.us>
georgereuben
pushed a commit
to georgereuben/besu
that referenced
this pull request
Sep 16, 2025
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: georgereuben <reubengeorge101@gmail.com>
georgereuben
pushed a commit
to georgereuben/besu
that referenced
this pull request
Sep 16, 2025
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: georgereuben <reubengeorge101@gmail.com>
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.
PR description
Currently is only possible to register one
PluginTransactionSelectorFactorywith theTransactionSelectionService, so it is not possible to have multiple transaction selector plugins deployed at the same time.This PR extends the registration mechanism to allow the registration of an arbitrary number of
PluginTransactionSelectorFactory, thus allowing multiple transaction selector plugins to work together.Note that at this point there is no way to force a specific order for the transaction selectors, and the order is based on the plugin registration order, a future PR will add the possibility to specify the order in which the plugin are called. For example this could be important when calling
PluginTransactionSelectorFactory::selectPendingTransactionsFixed Issue(s)
Thanks for sending a pull request! Have you done the following?
doc-change-requiredlabel to this PR if updates are required.Locally, you can run these tests to catch failures early:
./gradlew spotlessApply./gradlew build./gradlew acceptanceTest./gradlew integrationTest./gradlew ethereum:referenceTests:referenceTests