Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@Gabriel-Trintinalia
Copy link
Contributor

This pull request removes support for the eth/67 protocol and introduces the following changes:

  • Snap/Full Sync: will now only initiate using protocols eth/68 and above.
  • Fast Sync: will continue to initiate using the eth/66 protocol (no change to current behaviour).
  • Configuration Validation: Besu will now fail if there is a misconfiguration with the maximum and minimum protocol capabilities.

Copy link
Contributor

@Matilda-Clerke Matilda-Clerke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM except for that one test name

Comment on lines +70 to 72
case EthProtocolVersion.V66, EthProtocolVersion.V68 -> 17;
case EthProtocolVersion.V69 -> 18;
default -> 0;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: These ints should really be constants with descriptive names

Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
@Gabriel-Trintinalia Gabriel-Trintinalia added the techdebt maintenance, cleanup, refactoring, documentation label Jul 28, 2025
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Gabriel-Trintinalia and others added 2 commits July 28, 2025 19:22
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
@Gabriel-Trintinalia Gabriel-Trintinalia merged commit 6f5f223 into hyperledger:main Jul 28, 2025
46 checks passed
Gabriel-Trintinalia added a commit that referenced this pull request Aug 2, 2025
* docs: edited the badge that was displayed incorrectly (#8623)

* Update README.md

Signed-off-by: Olexandr88 <[email protected]>

* Update README.md

Signed-off-by: Jason Frame <[email protected]>

---------

Signed-off-by: Olexandr88 <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Co-authored-by: Justin Florentine <[email protected]>
Co-authored-by: Jason Frame <[email protected]>
Co-authored-by: Jason Frame <[email protected]>

* getBlobsV2 prohibits partial responses (#8967)

* getBlobsV2 to not return partial responses

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* Change precompile name in eth_config (#8986)

* Change precompile name in eth_config

The precompile names for bn254 were encoded as bn256, which is a widely
used but incorrect name. The EIP specified alt_bn128, for 128 bits of
security, but cryptographic analysis has shown the security to be less
than 128 bits, so the name referring to the field size is preferred.

Signed-off-by: Danno Ferrin <[email protected]>

* fixed test

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* remove separate qbft ATs gradle task and workflow (#8962)

Signed-off-by: Sally MacFarlane <[email protected]>

* remove deprecated method Quantity.getValue (#8968)

* update tests to use non-deprecated method
* remove deprecated method
* remove getValue methods that overrode the removed method

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* Clean up production of the fastSyncFactory in DefaultSynchronizer (#8975)

* Clean up production of the fastSyncFactory in DefaultSynchronizer

Signed-off-by: Matilda Clerke <[email protected]>

* Fix NPE caused by using a mock SynchronizerConfiguration

Signed-off-by: Matilda Clerke <[email protected]>

* Fix NPE caused by using a mock SynchronizerConfiguration

Signed-off-by: Matilda Clerke <[email protected]>

* spotless

Signed-off-by: Matilda Clerke <[email protected]>

* Avoid using syncMode directly

Signed-off-by: Matilda Clerke <[email protected]>

---------

Signed-off-by: Matilda Clerke <[email protected]>

* remove deprecated PoAMetricsService and IbftQueryService (#8940)

* remove deprecated interfaces
* update plugin api hash

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* refactor: central control point for genesis used in tests (#8819)

* made a constant

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* Rename block hash processor (#8993)

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Generate distribution dependencies catalog (#8987)

Signed-off-by: Fabio Di Fabio <[email protected]>

* feat: add world view to traceStartBlock hook (#8981)

* Add world view to trace start block

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* change known hash

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* fix unit tests

Signed-off-by: Gabriel-Trintinalia <[email protected]>

---------

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Do not account for system calls in the tracer (#8992)

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Remove PoW ATs which were replaced by QBFT miner based ATs (#8949)

* Delete PoW ATs which were replaced by QBFT miner based ATs
* Change another AT to used QBFT genesis
* update node config to fix couple of AT failures
* Update transaction validator AT to use 4 validators in QBFT cluster
* Update Besueventsplugintest
* Revert an accidentally deleted AT and now modified to use QBFT

Signed-off-by: Bhanu Pulluri <[email protected]>

---------

Signed-off-by: Bhanu Pulluri <[email protected]>
Co-authored-by: Bhanu Pulluri <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* Improve BENCHMARKING.md documentation (#9001)

Signed-off-by: Ameziane H. <[email protected]>

* Docker labels update (#9002)

* fix docker build

Signed-off-by: Joshua Fernandes <[email protected]>

* update docker labels to the new oci standard

Signed-off-by: Joshua Fernandes <[email protected]>

---------

Signed-off-by: Joshua Fernandes <[email protected]>

* No RLP decoding of Bodies during the sync (fix #8242) (#8959)

* By not decoding the bodies we use less memory and CPU, which allows us to increase the chain download parallelism.

Signed-off-by: [email protected] <[email protected]>
Signed-off-by: Stefan Pingel <[email protected]>
Co-authored-by: Simon Dudley <[email protected]>

* Enable decoding for large RPC requests (#8877)

Use maxRequestContentLength for EngineJsonRpcService bodyLimit and increase default value from 5MB to 128MB.
This has a side effect of increasing the JsonRpcService limit.

Use maxRequestContentLength to globally set maxStringLength for Vertx ObjectMapper when engine API enabled.
Reusing maxRequestContentLength to keep aligned with HTTP body limit.
String length should be comparable with byte size assuming UTF-8 encoding.

Also remove redundant serialization of params for optionalList
Similar to #8807

Signed-off-by: Simon Dudley <[email protected]>

* Add --attempt-cache-bust to evmtool benchmark subcommand (#8985)

This means running all the test cases within one warmup or exec iteration in an attempt to invalidate CPU caches.

Requires tracking exec timings in a map and calculating average at the end.

Reduce warmup iteration to 20_000 and execution iterations to 1000, which appears to be as stable as 100_000.
This helps reduces overall benchmark execution time (previously warmTime and execTime were prematurely reducing overall execution time).

Use SequencedMap to indicate test case ordering matters.

Signed-off-by: Simon Dudley <[email protected]>

* TransactionDecoder: handle empty bytes (#8997)

* handle empty bytes

* check for empty before getting tx type

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* Add a message for disconnect message reasons (#9014)

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Remove the possibility to create block before Byzantium hard-fork (#9005)

Signed-off-by: Fabio Di Fabio <[email protected]>

* chore: remove support for eth/67 (#9008)

* remove eth/67 capability

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* fix naming

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* changelog

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Fix mock test

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Fix tests

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* fix tests

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Update CHANGELOG.md

Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>

---------

Signed-off-by: Gabriel-Trintinalia <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* Improve info logs during block creation (#9020)

Signed-off-by: Fabio Di Fabio <[email protected]>

* Chore: Prevent repeated cli boolean flags for being accepted (#8898)

* Chore: Prevent repeated cli boolean flags for being accepted

Signed-off-by: Preeti <[email protected]>

* allow unmatched options

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Preeti <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Co-authored-by: Justin Florentine <[email protected]>

* Eliminate AbstractRLPInput abstraction to reduce technical debt (#8885)

Merge AbstractRLPInput (607 lines) and BytesValueRLPInput (84 lines) into a
single concrete class implementing RLPInput directly. This eliminates the
unnecessary abstraction layer where the abstract class had only one concrete
implementation.

Changes:
- Merged all AbstractRLPInput logic into BytesValueRLPInput
- Made previously protected methods private
- Removed AbstractRLPInput.java file
- All public APIs remain unchanged (zero breaking changes)
- All tests pass unchanged

Benefits:
- Eliminates 15-30 minutes investigation time per RLP modification
- Reduces cognitive load when working with RLP functionality
- Simplifies maintenance with single concrete implementation
- No performance or functionality impact

Fixes #8884

🤖 Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: jflo <[email protected]>
Co-authored-by: Claude <[email protected]>

* Add WorldStateService to the plugin API (#9024)

Signed-off-by: Fabio Di Fabio <[email protected]>

* Change eth_config hashing and config members (#9015)

* Change eth_config hashing and config members

- Remove ConfigHash
- move ForkID into config
- invert key/value of precompiles

Signed-off-by: Danno Ferrin <[email protected]>

* linting

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* Era1 import prepipeline qol improvements (#8964)

* Add --era1-import-prepipeline-enabled and --era1-data-path flags

Signed-off-by: Matilda Clerke <[email protected]>

* Implement ERA1 file import prepipeline for full sync

Signed-off-by: Matilda Clerke <[email protected]>

* Filter out block 0 as this is included by default

Signed-off-by: Matilda Clerke <[email protected]>

* Fix SynchronizerOptionsTest

Signed-off-by: Matilda Clerke <[email protected]>

* spotless

Signed-off-by: Matilda Clerke <[email protected]>

* Fix BesuCommandTest

Signed-off-by: Matilda Clerke <[email protected]>

* Add ability to load ERA1 files direct from HTTP source, fix bug in Era1Reader exposed by using HTTP source

Signed-off-by: Matilda Clerke <[email protected]>

* Fix Era1ReaderTest

Signed-off-by: Matilda Clerke <[email protected]>

* Add javadoc to InputStreamFactory

Signed-off-by: Matilda Clerke <[email protected]>

* Add default constructor to InputStreamFactory

Signed-off-by: Matilda Clerke <[email protected]>

* Fix Era1FileSourceTest

Signed-off-by: Matilda Clerke <[email protected]>

* Only produce era1 import prepipeline if sync mode is FULL

Signed-off-by: Matilda Clerke <[email protected]>

* Make era1 prepipeline concurrency configurable

Signed-off-by: Matilda Clerke <[email protected]>

* Use Integer instead of int in SynchronizerOptions

Signed-off-by: Matilda Clerke <[email protected]>

* Update era1 import prepipeline concurrency to 1

Since the bottleneck for this pipeline is typically the import block step, there is no need for more concurrency than a single pipeline gives.

Signed-off-by: Matilda-Clerke <[email protected]>

* Inline starting full sync chain downloader

Signed-off-by: Matilda Clerke <[email protected]>

* Simplify comment

Signed-off-by: Matilda Clerke <[email protected]>

* Use constant for era1 block count

Signed-off-by: Matilda Clerke <[email protected]>

* Use Era1FileReader as a launching point for more worker threads to achieve better parallelism

Signed-off-by: Matilda Clerke <[email protected]>

---------

Signed-off-by: Matilda Clerke <[email protected]>
Signed-off-by: Matilda-Clerke <[email protected]>

* Eliminate AbstractRLPOutput abstraction to reduce technical debt (#8890)

- Consolidate AbstractRLPOutput logic into BytesValueRLPOutput
- Remove unnecessary inheritance layer with single implementation
- Maintain identical public API and functionality
- Zero breaking changes to 150+ usage sites across codebase

This follows the same pattern as recent AbstractRLPInput elimination,
completing the removal of premature abstractions in the RLP module.

Fixes #8889

🤖 Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: jflo <[email protected]>
Co-authored-by: Claude <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Olexandr88 <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Matilda Clerke <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Ameziane H. <[email protected]>
Signed-off-by: Joshua Fernandes <[email protected]>
Signed-off-by: [email protected] <[email protected]>
Signed-off-by: Stefan Pingel <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Preeti <[email protected]>
Signed-off-by: jflo <[email protected]>
Signed-off-by: Matilda-Clerke <[email protected]>
Co-authored-by: Olexandr88 <[email protected]>
Co-authored-by: Justin Florentine <[email protected]>
Co-authored-by: Jason Frame <[email protected]>
Co-authored-by: Jason Frame <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Co-authored-by: Danno Ferrin <[email protected]>
Co-authored-by: Matilda-Clerke <[email protected]>
Co-authored-by: Fabio Di Fabio <[email protected]>
Co-authored-by: Bhanu Pulluri <[email protected]>
Co-authored-by: Bhanu Pulluri <[email protected]>
Co-authored-by: ahamlat <[email protected]>
Co-authored-by: Joshua Fernandes <[email protected]>
Co-authored-by: Stefan Pingel <[email protected]>
Co-authored-by: Simon Dudley <[email protected]>
Co-authored-by: Preeti <[email protected]>
Co-authored-by: Claude <[email protected]>
Gabriel-Trintinalia added a commit that referenced this pull request Aug 11, 2025
* docs: edited the badge that was displayed incorrectly (#8623)

* Update README.md

Signed-off-by: Olexandr88 <[email protected]>

* Update README.md

Signed-off-by: Jason Frame <[email protected]>

---------

Signed-off-by: Olexandr88 <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Co-authored-by: Justin Florentine <[email protected]>
Co-authored-by: Jason Frame <[email protected]>
Co-authored-by: Jason Frame <[email protected]>

* getBlobsV2 prohibits partial responses (#8967)

* getBlobsV2 to not return partial responses

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* Change precompile name in eth_config (#8986)

* Change precompile name in eth_config

The precompile names for bn254 were encoded as bn256, which is a widely
used but incorrect name. The EIP specified alt_bn128, for 128 bits of
security, but cryptographic analysis has shown the security to be less
than 128 bits, so the name referring to the field size is preferred.

Signed-off-by: Danno Ferrin <[email protected]>

* fixed test

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* remove separate qbft ATs gradle task and workflow (#8962)

Signed-off-by: Sally MacFarlane <[email protected]>

* remove deprecated method Quantity.getValue (#8968)

* update tests to use non-deprecated method
* remove deprecated method
* remove getValue methods that overrode the removed method

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* Clean up production of the fastSyncFactory in DefaultSynchronizer (#8975)

* Clean up production of the fastSyncFactory in DefaultSynchronizer

Signed-off-by: Matilda Clerke <[email protected]>

* Fix NPE caused by using a mock SynchronizerConfiguration

Signed-off-by: Matilda Clerke <[email protected]>

* Fix NPE caused by using a mock SynchronizerConfiguration

Signed-off-by: Matilda Clerke <[email protected]>

* spotless

Signed-off-by: Matilda Clerke <[email protected]>

* Avoid using syncMode directly

Signed-off-by: Matilda Clerke <[email protected]>

---------

Signed-off-by: Matilda Clerke <[email protected]>

* remove deprecated PoAMetricsService and IbftQueryService (#8940)

* remove deprecated interfaces
* update plugin api hash

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* refactor: central control point for genesis used in tests (#8819)

* made a constant

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* Rename block hash processor (#8993)

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Generate distribution dependencies catalog (#8987)

Signed-off-by: Fabio Di Fabio <[email protected]>

* feat: add world view to traceStartBlock hook (#8981)

* Add world view to trace start block

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* change known hash

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* fix unit tests

Signed-off-by: Gabriel-Trintinalia <[email protected]>

---------

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Do not account for system calls in the tracer (#8992)

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Remove PoW ATs which were replaced by QBFT miner based ATs (#8949)

* Delete PoW ATs which were replaced by QBFT miner based ATs
* Change another AT to used QBFT genesis
* update node config to fix couple of AT failures
* Update transaction validator AT to use 4 validators in QBFT cluster
* Update Besueventsplugintest
* Revert an accidentally deleted AT and now modified to use QBFT

Signed-off-by: Bhanu Pulluri <[email protected]>

---------

Signed-off-by: Bhanu Pulluri <[email protected]>
Co-authored-by: Bhanu Pulluri <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* Improve BENCHMARKING.md documentation (#9001)

Signed-off-by: Ameziane H. <[email protected]>

* Docker labels update (#9002)

* fix docker build

Signed-off-by: Joshua Fernandes <[email protected]>

* update docker labels to the new oci standard

Signed-off-by: Joshua Fernandes <[email protected]>

---------

Signed-off-by: Joshua Fernandes <[email protected]>

* No RLP decoding of Bodies during the sync (fix #8242) (#8959)

* By not decoding the bodies we use less memory and CPU, which allows us to increase the chain download parallelism.

Signed-off-by: [email protected] <[email protected]>
Signed-off-by: Stefan Pingel <[email protected]>
Co-authored-by: Simon Dudley <[email protected]>

* Enable decoding for large RPC requests (#8877)

Use maxRequestContentLength for EngineJsonRpcService bodyLimit and increase default value from 5MB to 128MB.
This has a side effect of increasing the JsonRpcService limit.

Use maxRequestContentLength to globally set maxStringLength for Vertx ObjectMapper when engine API enabled.
Reusing maxRequestContentLength to keep aligned with HTTP body limit.
String length should be comparable with byte size assuming UTF-8 encoding.

Also remove redundant serialization of params for optionalList
Similar to #8807

Signed-off-by: Simon Dudley <[email protected]>

* Add --attempt-cache-bust to evmtool benchmark subcommand (#8985)

This means running all the test cases within one warmup or exec iteration in an attempt to invalidate CPU caches.

Requires tracking exec timings in a map and calculating average at the end.

Reduce warmup iteration to 20_000 and execution iterations to 1000, which appears to be as stable as 100_000.
This helps reduces overall benchmark execution time (previously warmTime and execTime were prematurely reducing overall execution time).

Use SequencedMap to indicate test case ordering matters.

Signed-off-by: Simon Dudley <[email protected]>

* TransactionDecoder: handle empty bytes (#8997)

* handle empty bytes

* check for empty before getting tx type

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* Add a message for disconnect message reasons (#9014)

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Remove the possibility to create block before Byzantium hard-fork (#9005)

Signed-off-by: Fabio Di Fabio <[email protected]>

* chore: remove support for eth/67 (#9008)

* remove eth/67 capability

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* fix naming

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* changelog

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Fix mock test

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Fix tests

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* fix tests

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Update CHANGELOG.md

Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>

---------

Signed-off-by: Gabriel-Trintinalia <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* Improve info logs during block creation (#9020)

Signed-off-by: Fabio Di Fabio <[email protected]>

* Chore: Prevent repeated cli boolean flags for being accepted (#8898)

* Chore: Prevent repeated cli boolean flags for being accepted

Signed-off-by: Preeti <[email protected]>

* allow unmatched options

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Preeti <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Co-authored-by: Justin Florentine <[email protected]>

* Eliminate AbstractRLPInput abstraction to reduce technical debt (#8885)

Merge AbstractRLPInput (607 lines) and BytesValueRLPInput (84 lines) into a
single concrete class implementing RLPInput directly. This eliminates the
unnecessary abstraction layer where the abstract class had only one concrete
implementation.

Changes:
- Merged all AbstractRLPInput logic into BytesValueRLPInput
- Made previously protected methods private
- Removed AbstractRLPInput.java file
- All public APIs remain unchanged (zero breaking changes)
- All tests pass unchanged

Benefits:
- Eliminates 15-30 minutes investigation time per RLP modification
- Reduces cognitive load when working with RLP functionality
- Simplifies maintenance with single concrete implementation
- No performance or functionality impact

Fixes #8884

🤖 Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: jflo <[email protected]>
Co-authored-by: Claude <[email protected]>

* Add WorldStateService to the plugin API (#9024)

Signed-off-by: Fabio Di Fabio <[email protected]>

* Change eth_config hashing and config members (#9015)

* Change eth_config hashing and config members

- Remove ConfigHash
- move ForkID into config
- invert key/value of precompiles

Signed-off-by: Danno Ferrin <[email protected]>

* linting

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* Era1 import prepipeline qol improvements (#8964)

* Add --era1-import-prepipeline-enabled and --era1-data-path flags

Signed-off-by: Matilda Clerke <[email protected]>

* Implement ERA1 file import prepipeline for full sync

Signed-off-by: Matilda Clerke <[email protected]>

* Filter out block 0 as this is included by default

Signed-off-by: Matilda Clerke <[email protected]>

* Fix SynchronizerOptionsTest

Signed-off-by: Matilda Clerke <[email protected]>

* spotless

Signed-off-by: Matilda Clerke <[email protected]>

* Fix BesuCommandTest

Signed-off-by: Matilda Clerke <[email protected]>

* Add ability to load ERA1 files direct from HTTP source, fix bug in Era1Reader exposed by using HTTP source

Signed-off-by: Matilda Clerke <[email protected]>

* Fix Era1ReaderTest

Signed-off-by: Matilda Clerke <[email protected]>

* Add javadoc to InputStreamFactory

Signed-off-by: Matilda Clerke <[email protected]>

* Add default constructor to InputStreamFactory

Signed-off-by: Matilda Clerke <[email protected]>

* Fix Era1FileSourceTest

Signed-off-by: Matilda Clerke <[email protected]>

* Only produce era1 import prepipeline if sync mode is FULL

Signed-off-by: Matilda Clerke <[email protected]>

* Make era1 prepipeline concurrency configurable

Signed-off-by: Matilda Clerke <[email protected]>

* Use Integer instead of int in SynchronizerOptions

Signed-off-by: Matilda Clerke <[email protected]>

* Update era1 import prepipeline concurrency to 1

Since the bottleneck for this pipeline is typically the import block step, there is no need for more concurrency than a single pipeline gives.

Signed-off-by: Matilda-Clerke <[email protected]>

* Inline starting full sync chain downloader

Signed-off-by: Matilda Clerke <[email protected]>

* Simplify comment

Signed-off-by: Matilda Clerke <[email protected]>

* Use constant for era1 block count

Signed-off-by: Matilda Clerke <[email protected]>

* Use Era1FileReader as a launching point for more worker threads to achieve better parallelism

Signed-off-by: Matilda Clerke <[email protected]>

---------

Signed-off-by: Matilda Clerke <[email protected]>
Signed-off-by: Matilda-Clerke <[email protected]>

* Eliminate AbstractRLPOutput abstraction to reduce technical debt (#8890)

- Consolidate AbstractRLPOutput logic into BytesValueRLPOutput
- Remove unnecessary inheritance layer with single implementation
- Maintain identical public API and functionality
- Zero breaking changes to 150+ usage sites across codebase

This follows the same pattern as recent AbstractRLPInput elimination,
completing the removal of premature abstractions in the RLP module.

Fixes #8889

🤖 Generated with [Claude Code](https://claude.ai/code)

Signed-off-by: jflo <[email protected]>
Co-authored-by: Claude <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* [BESU-8973] Display configured target-gas-limit in startup logs (#8998)

* [BESU-8973]
Fix issue #8973

* Added `targetGasLimit` property and related setter to `ConfigurationOverviewBuilder` class
* Added line to `build` function for `targetGasLimit` in `ConfigurationOverviewBuilder` class
* Added set of `targetGasLimit` for `builder` object in `generateConfigurationOverview` of `BesuCommand` class
* Set default value for `targetGasLimit` in `BesuCommand` class
* Changed visibility of `normalizeGas` in `ConfigurationOverviewBuilder` class for usage in tests
* Added `getDefaultGasLimitByChainId` method in `MergeCoordinator`
* Added tests for `MergeCoordinator`, `ConfigurationOverviewBuilder` and `BesuCommandTest`
* Tests for mainnet, testnet and dev with default and custom targetGasLimit
* Replaced Sepolia with Hoodi for MergeCoordinatorTest

Signed-off-by: Gabriele Del Monte <[email protected]>

* spotless

Signed-off-by: Simon Dudley <[email protected]>
---------

Signed-off-by: Gabriele Del Monte <[email protected]>
Signed-off-by: Gabriele Del Monte <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
Co-authored-by: Simon Dudley <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* [CHANGELOG] consolidate upcoming breaking changes (#9030)

* remove unnecessary use of deprecated options
* changelog

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* use dummy coinbase in simulation if not defined (#9031)

Signed-off-by: Sally MacFarlane <[email protected]>

* Use system call for beacon root (#8982)

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Backward sync - check we have peers before starting (#9003)

* check if ready before first step
* add peer count > 0 check to isReady
* added a test for zero peers

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>

* Fix mixHash / prevRandao deserialization in BlockOverrides (#8983)

* Fix mixHash / prevRandao deserialization in BlockOverrides

Signed-off-by: Miroslav Kovar <[email protected]>

* Update plugin-api checksum

Signed-off-by: Miroslav Kovar <[email protected]>

* Add deserialization test failing on main and passing on this branch

Signed-off-by: Miroslav Kovar <[email protected]>

* Update ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/parameters/BlockOverridesParameterTest.java

Co-authored-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Miroslav Kovar <[email protected]>

* Apply formatter

Signed-off-by: Miroslav Kovar <[email protected]>

---------

Signed-off-by: Miroslav Kovar <[email protected]>
Co-authored-by: Gabriel-Trintinalia <[email protected]>

* Feat: add gas usage metric on eth_call (#9019)

* WIP: update EthCall.java to capture gas usage metric
* update EthJsonRpcMethods.java and JsonRpcMethodsFactory.java constructors to include metricsSystem
* Update EthCallTest.java to mock gas usage metric
* Update transactionSimulator error label to internal_error
* Update CHANGELOG.md

Signed-off-by: Reuben George <[email protected]>

---------

Signed-off-by: Reuben George <[email protected]>
Signed-off-by: Reuben George <[email protected]>
Co-authored-by: Karim Taam <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* Remove CLI options for JMH and adapt benchmarks (#9025)

PR allows for changing JMH settings in benchmarks themselves instead of gradle plugin but fixes forks to 3 for all benchamrks. Also done some tuning of CLZ and Keccak benchmarks.

* [CHARTER] make explicit the voting for emeritus process (#8937)

* make explicit the voting for emeritus process

Signed-off-by: Sally MacFarlane <[email protected]>

* headings formatting

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Justin Florentine <[email protected]>

* Bump prioritized transactions for blobs (#9037)

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Removed BlockExplorer and AbstractBlockScheduler due single implementation. (#9026)

Signed-off-by: Marcos Serradilla Diez <[email protected]>

* sonarcloud failing due to deprecated actions/cache version (#9036)

* sonarcloud failing due to deprecated actions/cache version

Signed-off-by: jflo <[email protected]>

* new release just dropped

Signed-off-by: jflo <[email protected]>

---------

Signed-off-by: jflo <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* Include authorization list in the transaction call object and use it when building transaction during simulation (#8984)

* Include code delegation authorizations in the call parameter and use when building transaction during simulation

Signed-off-by: Miroslav Kovar <[email protected]>

* Add authorizationList deserialization test

Signed-off-by: Miroslav Kovar <[email protected]>

* Test that transaction type is correct if authorizations present in call param

Signed-off-by: Miroslav Kovar <[email protected]>

* Add javadoc

Signed-off-by: Miroslav Kovar <[email protected]>

* Extract TransactionCallParameterBuilder creation to a separate method for consistency

Signed-off-by: Miroslav Kovar <[email protected]>

* Include codeDelegationAuthorizations when building Transaction from CallParameter

Signed-off-by: Miroslav Kovar <[email protected]>

---------

Signed-off-by: Miroslav Kovar <[email protected]>
Co-authored-by: Gabriel-Trintinalia <[email protected]>

* Improve P256Verify precompile performance (#9035)

- Upgrade besu-native to 1.4.0.
- Use BoringSSL by default and fallback to SECP256R1 signature algorithm which has its own native library (as well as Java fallback).
- Add --Xp256verify-native-enabled to disable BoringSSL.
- P256VerifyBenchmark switches between BoringSSL and Java.
- Fixup P256VerifyBenchmark testcase names so they don't override each other in the Map.

Signed-off-by: Simon Dudley <[email protected]>
Co-authored-by: garyschulte <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>

* update checkout action to 4.2.2 (#9052)

Signed-off-by: Sally MacFarlane <[email protected]>

* EngineNewPayload - respond with error if params invalid (#8729)

* added test for duplicate requests
* most errors don't result in INVALID status
* return invalid for invalid block
* new error code
* changelog entry

Signed-off-by: Sally MacFarlane <[email protected]>

---------

Signed-off-by: Sally MacFarlane <[email protected]>
Co-authored-by: Justin Florentine <[email protected]>

* Fix merge main

Signed-off-by: Gabriel-Trintinalia <[email protected]>

---------

Signed-off-by: Olexandr88 <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Sally MacFarlane <[email protected]>
Signed-off-by: Danno Ferrin <[email protected]>
Signed-off-by: Matilda Clerke <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Bhanu Pulluri <[email protected]>
Signed-off-by: Ameziane H. <[email protected]>
Signed-off-by: Joshua Fernandes <[email protected]>
Signed-off-by: [email protected] <[email protected]>
Signed-off-by: Stefan Pingel <[email protected]>
Signed-off-by: Simon Dudley <[email protected]>
Signed-off-by: Preeti <[email protected]>
Signed-off-by: jflo <[email protected]>
Signed-off-by: Matilda-Clerke <[email protected]>
Signed-off-by: Gabriele Del Monte <[email protected]>
Signed-off-by: Gabriele Del Monte <[email protected]>
Signed-off-by: Miroslav Kovar <[email protected]>
Signed-off-by: Reuben George <[email protected]>
Signed-off-by: Reuben George <[email protected]>
Signed-off-by: Marcos Serradilla Diez <[email protected]>
Co-authored-by: Olexandr88 <[email protected]>
Co-authored-by: Justin Florentine <[email protected]>
Co-authored-by: Jason Frame <[email protected]>
Co-authored-by: Jason Frame <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Co-authored-by: Danno Ferrin <[email protected]>
Co-authored-by: Matilda-Clerke <[email protected]>
Co-authored-by: Fabio Di Fabio <[email protected]>
Co-authored-by: Bhanu Pulluri <[email protected]>
Co-authored-by: Bhanu Pulluri <[email protected]>
Co-authored-by: ahamlat <[email protected]>
Co-authored-by: Joshua Fernandes <[email protected]>
Co-authored-by: Stefan Pingel <[email protected]>
Co-authored-by: Simon Dudley <[email protected]>
Co-authored-by: Preeti <[email protected]>
Co-authored-by: Claude <[email protected]>
Co-authored-by: Gabriele Del Monte <[email protected]>
Co-authored-by: Miroslav Kovar <[email protected]>
Co-authored-by: Reuben George <[email protected]>
Co-authored-by: Karim Taam <[email protected]>
Co-authored-by: Luis Pinto <[email protected]>
Co-authored-by: Marcos Serradilla Diez <[email protected]>
Co-authored-by: garyschulte <[email protected]>
jflo pushed a commit to jflo/besu that referenced this pull request Sep 8, 2025
* remove eth/67 capability

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* fix naming

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* changelog

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Fix mock test

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Fix tests

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* fix tests

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Update CHANGELOG.md

Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>

---------

Signed-off-by: Gabriel-Trintinalia <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
jflo pushed a commit to jflo/besu that referenced this pull request Sep 8, 2025
* remove eth/67 capability

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* fix naming

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* changelog

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Fix mock test

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Fix tests

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* fix tests

Signed-off-by: Gabriel-Trintinalia <[email protected]>

* Update CHANGELOG.md

Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Gabriel-Trintinalia <[email protected]>

---------

Signed-off-by: Gabriel-Trintinalia <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: jflo <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

techdebt maintenance, cleanup, refactoring, documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants