Skip to content

Add --attempt-cache-bust to evmtool benchmark subcommand#8985

Merged
siladu merged 15 commits intobesu-eth:mainfrom
siladu:attempt-cache-bust
Jul 25, 2025
Merged

Add --attempt-cache-bust to evmtool benchmark subcommand#8985
siladu merged 15 commits intobesu-eth:mainfrom
siladu:attempt-cache-bust

Conversation

@siladu
Copy link
Copy Markdown
Contributor

@siladu siladu commented Jul 21, 2025

Run each test case within each warmup and exec iteration. This attempts to warm the code without warming the data, i.e. avoid warming CPU caches. Benchmark must have sufficient number and variety of test cases to be effective.

Due to how --attempt-cache-bust works by having the test cases in the inner loop:

  • --warm-time and --exec-time are ignored
  • async-profiler is not supported

This PR also includes some minor changes:


Note, this is an extracted piece of the exploration from #8942 but does not include the extra EcAdd test cases copied from besu-native and so support for displaying invalid cases is removed.
This PR also does not include the error confidence or statistics.
Finally, "warm-invert" was renamed to "attempt-cache-bust".


Testing

--attempt-cache-bust=true has a similar overall runtime (for all benchmarks) to --attempt-cache-bust=false

--attempt-cache-bust=false

~/besu-attempt-cache-bust$ ./build/install/besu/bin/evmtool benchmark --native --warm-iterations=10000 --exec-iterations=1000
...
real	9m21.896s
user	12m27.294s
sys	0m15.877s

--attempt-cache-bust=true

~/besu-attempt-cache-bust$ time ./build/install/besu/bin/evmtool benchmark --native --warm-iterations=10000 --exec-iterations=1000 --attempt-cache-bust=true
...
real	9m30.421s
user	12m40.148s
sys	0m16.783s

and generally the throughput is slightly lower with cache busting, as expected.

Attaching an example run with cache busting disabled and enabled. Note, --native is set and --warm-iterations is set lower than default to 10,000 which might create a bit a variance especially in the Java-only benchmarks.

benchmark_m6a.2xlarge_warm-10000-exec-1000_attempt-cache-bust-false.log
benchmark_m6a.2xlarge_warm-10000-exec-1000_attempt-cache-bust-true.log

siladu added 11 commits July 9, 2025 20:24
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
This means running all the test cases within one warm up iteration in order to invalidate CPU caches.

Execution iterations are unaffected so only makes sense to use with --exec-iterations=1

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
For each exec iteration, run through each test case in serial to attempt to bust the CPU caches.
Requires tracking exec timings in a map and calculating average at the end.

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Extracted for reuse with warmup invert but didn't reuse in the end

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Warmup iterations remain at 100_000

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
If run is invalid, throw runtime error, as before

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
@siladu siladu requested a review from ahamlat July 21, 2025 07:00
@siladu
Copy link
Copy Markdown
Contributor Author

siladu commented Jul 21, 2025

Attaching results for 100_000 warmup which should be more accurate. Took ~85mins to complete each run...

benchmark_m6a.2xlarge_warm-100_000-exec-1000_attempt-cache-bust-false.log

benchmark_m6a.2xlarge_warm-100_000-exec-1000_attempt-cache-bust-true.log

@ahamlat
Copy link
Copy Markdown
Contributor

ahamlat commented Jul 21, 2025

With --attempt-cache-bust=false, EcAdd is much more slower. I think it is related to the execution and some overhead on the machine. Could you re-execute it ?

EcAdd                          |      150 gas |      896 gas |      8,963.6 ns |      16.73 MGps

siladu

This comment was marked as resolved.

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Optional<Integer> warmTime = Optional.empty();

@Option(
names = {"--attempt-cache-bust"},
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I find the name not very clear, but it can be subjective. I suggest using --warm-code-only if that works for you.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

As discussed will leave as is, but can discuss further next week.

Copy link
Copy Markdown
Contributor

@ahamlat ahamlat left a comment

Choose a reason for hiding this comment

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

Few comments but nothing blocking.

siladu added 3 commits July 26, 2025 05:39
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
@siladu
Copy link
Copy Markdown
Contributor Author

siladu commented Jul 25, 2025

More results, from m6a.2xlarge:

attempt-cache-bust=false with three different warmup/iteration numbers, 3 times each config...

Native AltBN128
--warm-iterations=20000
--exec-iterations=1000
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      165 gas |      1,645.3 ns |      91.17 MGps
EcAddMarius                    |      150 gas |      349 gas |      3,485.9 ns |      43.03 MGps
EcAddAmez1                     |      150 gas |      355 gas |      3,548.2 ns |      42.27 MGps
EcAddAmez2                     |      150 gas |      394 gas |      3,936.9 ns |      38.10 MGps
EcAddAmez3                     |      150 gas |      315 gas |      3,151.8 ns |      47.59 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      163 gas |      1,628.9 ns |      92.09 MGps
EcAddMarius                    |      150 gas |      341 gas |      3,410.2 ns |      43.99 MGps
EcAddAmez1                     |      150 gas |      361 gas |      3,614.8 ns |      41.50 MGps
EcAddAmez2                     |      150 gas |      389 gas |      3,891.0 ns |      38.55 MGps
EcAddAmez3                     |      150 gas |      327 gas |      3,269.7 ns |      45.88 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      144 gas |      1,442.9 ns |     103.96 MGps
EcAddMarius                    |      150 gas |      338 gas |      3,378.8 ns |      44.39 MGps
EcAddAmez1                     |      150 gas |      346 gas |      3,456.5 ns |      43.40 MGps
EcAddAmez2                     |      150 gas |      378 gas |      3,783.1 ns |      39.65 MGps
EcAddAmez3                     |      150 gas |      313 gas |      3,132.4 ns |      47.89 MGps
--


Native AltBN128
--warm-iterations=100000
--exec-iterations=1000
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      147 gas |      1,465.7 ns |     102.34 MGps
EcAddMarius                    |      150 gas |      343 gas |      3,433.1 ns |      43.69 MGps
EcAddAmez1                     |      150 gas |      350 gas |      3,499.7 ns |      42.86 MGps
EcAddAmez2                     |      150 gas |      401 gas |      4,009.9 ns |      37.41 MGps
EcAddAmez3                     |      150 gas |      293 gas |      2,932.6 ns |      51.15 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      166 gas |      1,660.0 ns |      90.36 MGps
EcAddMarius                    |      150 gas |    1,848 gas |     18,483.1 ns |       8.12 MGps
EcAddAmez1                     |      150 gas |      307 gas |      3,068.2 ns |      48.89 MGps
EcAddAmez2                     |      150 gas |      358 gas |      3,584.9 ns |      41.84 MGps
EcAddAmez3                     |      150 gas |      303 gas |      3,028.4 ns |      49.53 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      160 gas |      1,599.6 ns |      93.77 MGps
EcAddMarius                    |      150 gas |      335 gas |      3,348.0 ns |      44.80 MGps
EcAddAmez1                     |      150 gas |      365 gas |      3,646.7 ns |      41.13 MGps
EcAddAmez2                     |      150 gas |      329 gas |      3,287.1 ns |      45.63 MGps
EcAddAmez3                     |      150 gas |      307 gas |      3,070.9 ns |      48.85 MGps
--

Native AltBN128
--warm-iterations=100000
--exec-iterations=100000
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      225 gas |      2,246.4 ns |      66.77 MGps
EcAddMarius                    |      150 gas |      363 gas |      3,634.2 ns |      41.27 MGps
EcAddAmez1                     |      150 gas |      354 gas |      3,536.4 ns |      42.42 MGps
EcAddAmez2                     |      150 gas |      311 gas |      3,112.5 ns |      48.19 MGps
EcAddAmez3                     |      150 gas |      430 gas |      4,304.7 ns |      34.85 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      219 gas |      2,188.9 ns |      68.53 MGps
EcAddMarius                    |      150 gas |      388 gas |      3,879.9 ns |      38.66 MGps
EcAddAmez1                     |      150 gas |      346 gas |      3,457.9 ns |      43.38 MGps
EcAddAmez2                     |      150 gas |      383 gas |      3,827.9 ns |      39.19 MGps
EcAddAmez3                     |      150 gas |      344 gas |      3,443.2 ns |      43.56 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      207 gas |      2,074.4 ns |      72.31 MGps
EcAddMarius                    |      150 gas |      343 gas |      3,427.3 ns |      43.77 MGps
EcAddAmez1                     |      150 gas |      338 gas |      3,382.9 ns |      44.34 MGps
EcAddAmez2                     |      150 gas |      362 gas |      3,619.1 ns |      41.45 MGps
EcAddAmez3                     |      150 gas |      400 gas |      4,000.1 ns |      37.50 MGps

attempt-cache-bust=true...

Native AltBN128
--attempt-cache-bust=true (--warm-time and --exec-time ignored)
--warm-iterations=20000
--exec-iterations=1000
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      183 gas |      1,832.2 ns |      81.87 MGps
EcAddMarius                    |      150 gas |      367 gas |      3,670.6 ns |      40.86 MGps
EcAddAmez1                     |      150 gas |    1,028 gas |     10,284.8 ns |      14.58 MGps
EcAddAmez2                     |      150 gas |      353 gas |      3,532.6 ns |      42.46 MGps
EcAddAmez3                     |      150 gas |      345 gas |      3,453.4 ns |      43.44 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      183 gas |      1,826.7 ns |      82.12 MGps
EcAddMarius                    |      150 gas |      359 gas |      3,594.9 ns |      41.73 MGps
EcAddAmez1                     |      150 gas |      347 gas |      3,465.8 ns |      43.28 MGps
EcAddAmez2                     |      150 gas |    1,025 gas |     10,251.0 ns |      14.63 MGps
EcAddAmez3                     |      150 gas |      347 gas |      3,467.2 ns |      43.26 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      203 gas |      2,032.4 ns |      73.81 MGps
EcAddMarius                    |      150 gas |      368 gas |      3,675.5 ns |      40.81 MGps
EcAddAmez1                     |      150 gas |      364 gas |      3,637.7 ns |      41.23 MGps
EcAddAmez2                     |      150 gas |      358 gas |      3,580.5 ns |      41.89 MGps
EcAddAmez3                     |      150 gas |      356 gas |      3,557.9 ns |      42.16 MGps
--


Native AltBN128
--attempt-cache-bust=true (--warm-time and --exec-time ignored)
--warm-iterations=100000
--exec-iterations=1000
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      165 gas |      1,653.9 ns |      90.69 MGps
EcAddMarius                    |      150 gas |      321 gas |      3,211.3 ns |      46.71 MGps
EcAddAmez1                     |      150 gas |      321 gas |      3,212.5 ns |      46.69 MGps
EcAddAmez2                     |      150 gas |      316 gas |      3,160.5 ns |      47.46 MGps
EcAddAmez3                     |      150 gas |      319 gas |      3,194.9 ns |      46.95 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      157 gas |      1,566.6 ns |      95.75 MGps
EcAddMarius                    |      150 gas |      324 gas |      3,239.9 ns |      46.30 MGps
EcAddAmez1                     |      150 gas |      324 gas |      3,237.7 ns |      46.33 MGps
EcAddAmez2                     |      150 gas |      328 gas |      3,282.0 ns |      45.70 MGps
EcAddAmez3                     |      150 gas |      322 gas |      3,222.0 ns |      46.55 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      168 gas |      1,675.2 ns |      89.54 MGps
EcAddMarius                    |      150 gas |      347 gas |      3,471.8 ns |      43.20 MGps
EcAddAmez1                     |      150 gas |      344 gas |      3,443.9 ns |      43.56 MGps
EcAddAmez2                     |      150 gas |      354 gas |      3,536.4 ns |      42.42 MGps
EcAddAmez3                     |      150 gas |      339 gas |      3,389.7 ns |      44.25 MGps
--


Native AltBN128
--attempt-cache-bust=true (--warm-time and --exec-time ignored)
--warm-iterations=100000
--exec-iterations=100000
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      183 gas |      1,834.7 ns |      81.76 MGps
EcAddMarius                    |      150 gas |      413 gas |      4,126.3 ns |      36.35 MGps
EcAddAmez1                     |      150 gas |      344 gas |      3,436.0 ns |      43.66 MGps
EcAddAmez2                     |      150 gas |      444 gas |      4,442.6 ns |      33.76 MGps
EcAddAmez3                     |      150 gas |      419 gas |      4,187.1 ns |      35.82 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      179 gas |      1,795.0 ns |      83.57 MGps
EcAddMarius                    |      150 gas |      510 gas |      5,100.7 ns |      29.41 MGps
EcAddAmez1                     |      150 gas |      365 gas |      3,645.5 ns |      41.15 MGps
EcAddAmez2                     |      150 gas |      337 gas |      3,367.6 ns |      44.54 MGps
EcAddAmez3                     |      150 gas |      335 gas |      3,346.3 ns |      44.83 MGps
--
                               |  Actual cost | Derived Cost |  Iteration time |      Throughput
EcAdd                          |      150 gas |      265 gas |      2,653.3 ns |      56.53 MGps
EcAddMarius                    |      150 gas |      347 gas |      3,465.8 ns |      43.28 MGps
EcAddAmez1                     |      150 gas |      380 gas |      3,802.6 ns |      39.45 MGps
EcAddAmez2                     |      150 gas |      342 gas |      3,415.9 ns |      43.91 MGps
EcAddAmez3                     |      150 gas |      372 gas |      3,717.5 ns |      40.35 MGps

@siladu siladu enabled auto-merge (squash) July 25, 2025 19:56
@siladu siladu merged commit 6aef9cd into besu-eth:main Jul 25, 2025
46 checks passed
@siladu siladu deleted the attempt-cache-bust branch July 25, 2025 20:11
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 <radole1203@gmail.com>

* Update README.md

Signed-off-by: Jason Frame <jasonwframe@gmail.com>

---------

Signed-off-by: Olexandr88 <radole1203@gmail.com>
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: Jason Frame <jasonwframe@gmail.com>
Co-authored-by: Jason Frame <jason.frame@consensys.net>

* getBlobsV2 prohibits partial responses (#8967)

* getBlobsV2 to not return partial responses

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* 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 <danno@numisight.com>

* fixed test

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Danno Ferrin <danno@numisight.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

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

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* 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 <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

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

* Clean up production of the fastSyncFactory in DefaultSynchronizer

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix NPE caused by using a mock SynchronizerConfiguration

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix NPE caused by using a mock SynchronizerConfiguration

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* spotless

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Avoid using syncMode directly

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

---------

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* remove deprecated PoAMetricsService and IbftQueryService (#8940)

* remove deprecated interfaces
* update plugin api hash

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

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

* made a constant

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* Rename block hash processor (#8993)

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* Generate distribution dependencies catalog (#8987)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

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

* Add world view to trace start block

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* change known hash

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* fix unit tests

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

---------

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

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

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* 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 <bhanu.pulluri@kaleido.io>

---------

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Co-authored-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

* Improve BENCHMARKING.md documentation (#9001)

Signed-off-by: Ameziane H. <ameziane.hamlat@consensys.net>

* Docker labels update (#9002)

* fix docker build

Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>

* update docker labels to the new oci standard

Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>

---------

Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>

* 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: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>

* 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 <simon.dudley@consensys.net>

* 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 <simon.dudley@consensys.net>

* TransactionDecoder: handle empty bytes (#8997)

* handle empty bytes

* check for empty before getting tx type

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

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

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

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

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

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

* remove eth/67 capability

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* fix naming

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* changelog

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* Fix mock test

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* Fix tests

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* fix tests

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* Update CHANGELOG.md

Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

---------

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

* Improve info logs during block creation (#9020)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

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

* Chore: Prevent repeated cli boolean flags for being accepted

Signed-off-by: Preeti <35308865+pr9t@users.noreply.github.com>

* allow unmatched options

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Preeti <35308865+pr9t@users.noreply.github.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Justin Florentine <justin+github@florentine.us>

* 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 <justin+github@florentine.us>
Co-authored-by: Claude <noreply@anthropic.com>

* Add WorldStateService to the plugin API (#9024)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

* 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 <danno@numisight.com>

* linting

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Danno Ferrin <danno@numisight.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

* Era1 import prepipeline qol improvements (#8964)

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

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Implement ERA1 file import prepipeline for full sync

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Filter out block 0 as this is included by default

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix SynchronizerOptionsTest

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* spotless

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix BesuCommandTest

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

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

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix Era1ReaderTest

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Add javadoc to InputStreamFactory

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Add default constructor to InputStreamFactory

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix Era1FileSourceTest

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Only produce era1 import prepipeline if sync mode is FULL

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Make era1 prepipeline concurrency configurable

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Use Integer instead of int in SynchronizerOptions

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* 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 <matilda.clerke@consensys.net>

* Inline starting full sync chain downloader

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Simplify comment

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Use constant for era1 block count

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

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

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

---------

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>
Signed-off-by: Matilda-Clerke <matilda.clerke@consensys.net>

* 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 <justin+github@florentine.us>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Olexandr88 <radole1203@gmail.com>
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Danno Ferrin <danno@numisight.com>
Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>
Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Signed-off-by: Ameziane H. <ameziane.hamlat@consensys.net>
Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Preeti <35308865+pr9t@users.noreply.github.com>
Signed-off-by: jflo <justin+github@florentine.us>
Signed-off-by: Matilda-Clerke <matilda.clerke@consensys.net>
Co-authored-by: Olexandr88 <radole1203@gmail.com>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: Jason Frame <jasonwframe@gmail.com>
Co-authored-by: Jason Frame <jason.frame@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Danno Ferrin <danno@numisight.com>
Co-authored-by: Matilda-Clerke <matilda.clerke@consensys.net>
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Bhanu Pulluri <59369753+pullurib@users.noreply.github.com>
Co-authored-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Co-authored-by: ahamlat <ameziane.hamlat@consensys.net>
Co-authored-by: Joshua Fernandes <joshua.fernandes@consensys.net>
Co-authored-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Preeti <35308865+pr9t@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
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 <radole1203@gmail.com>

* Update README.md

Signed-off-by: Jason Frame <jasonwframe@gmail.com>

---------

Signed-off-by: Olexandr88 <radole1203@gmail.com>
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: Jason Frame <jasonwframe@gmail.com>
Co-authored-by: Jason Frame <jason.frame@consensys.net>

* getBlobsV2 prohibits partial responses (#8967)

* getBlobsV2 to not return partial responses

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* 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 <danno@numisight.com>

* fixed test

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Danno Ferrin <danno@numisight.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

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

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* 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 <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

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

* Clean up production of the fastSyncFactory in DefaultSynchronizer

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix NPE caused by using a mock SynchronizerConfiguration

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix NPE caused by using a mock SynchronizerConfiguration

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* spotless

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Avoid using syncMode directly

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

---------

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* remove deprecated PoAMetricsService and IbftQueryService (#8940)

* remove deprecated interfaces
* update plugin api hash

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

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

* made a constant

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* Rename block hash processor (#8993)

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* Generate distribution dependencies catalog (#8987)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

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

* Add world view to trace start block

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* change known hash

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* fix unit tests

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

---------

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

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

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* 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 <bhanu.pulluri@kaleido.io>

---------

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Co-authored-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

* Improve BENCHMARKING.md documentation (#9001)

Signed-off-by: Ameziane H. <ameziane.hamlat@consensys.net>

* Docker labels update (#9002)

* fix docker build

Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>

* update docker labels to the new oci standard

Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>

---------

Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>

* 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: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>

* 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 <simon.dudley@consensys.net>

* 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 <simon.dudley@consensys.net>

* TransactionDecoder: handle empty bytes (#8997)

* handle empty bytes

* check for empty before getting tx type

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

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

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

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

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

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

* remove eth/67 capability

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* fix naming

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* changelog

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* Fix mock test

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* Fix tests

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* fix tests

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* Update CHANGELOG.md

Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

---------

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

* Improve info logs during block creation (#9020)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

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

* Chore: Prevent repeated cli boolean flags for being accepted

Signed-off-by: Preeti <35308865+pr9t@users.noreply.github.com>

* allow unmatched options

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Preeti <35308865+pr9t@users.noreply.github.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Justin Florentine <justin+github@florentine.us>

* 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 <justin+github@florentine.us>
Co-authored-by: Claude <noreply@anthropic.com>

* Add WorldStateService to the plugin API (#9024)

Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>

* 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 <danno@numisight.com>

* linting

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Danno Ferrin <danno@numisight.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

* Era1 import prepipeline qol improvements (#8964)

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

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Implement ERA1 file import prepipeline for full sync

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Filter out block 0 as this is included by default

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix SynchronizerOptionsTest

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* spotless

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix BesuCommandTest

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

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

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix Era1ReaderTest

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Add javadoc to InputStreamFactory

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Add default constructor to InputStreamFactory

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Fix Era1FileSourceTest

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Only produce era1 import prepipeline if sync mode is FULL

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Make era1 prepipeline concurrency configurable

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Use Integer instead of int in SynchronizerOptions

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* 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 <matilda.clerke@consensys.net>

* Inline starting full sync chain downloader

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Simplify comment

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

* Use constant for era1 block count

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

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

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>

---------

Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>
Signed-off-by: Matilda-Clerke <matilda.clerke@consensys.net>

* 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 <justin+github@florentine.us>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

* [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 <gabriele.delmonte@proton.me>

* spotless

Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
---------

Signed-off-by: Gabriele Del Monte <gabriele.delmonte@proton.me>
Signed-off-by: Gabriele Del Monte <37625739+gabrieledm@users.noreply.github.com>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

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

* remove unnecessary use of deprecated options
* changelog

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

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

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* Use system call for beacon root (#8982)

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* 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 <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

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

* Fix mixHash / prevRandao deserialization in BlockOverrides

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>

* Update plugin-api checksum

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>

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

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>

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

Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>

* Apply formatter

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>

---------

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>
Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* 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 <reubengeorge101@gmail.com>

---------

Signed-off-by: Reuben George <reubengeorge101@gmail.com>
Signed-off-by: Reuben George <69674713+georgereuben@users.noreply.github.com>
Co-authored-by: Karim Taam <karim.t2am@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

* 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 <macfarla.github@gmail.com>

* headings formatting

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Justin Florentine <justin+github@florentine.us>

* Bump prioritized transactions for blobs (#9037)

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

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

Signed-off-by: Marcos Serradilla Diez <marcos@io.builders>

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

* sonarcloud failing due to deprecated actions/cache version

Signed-off-by: jflo <justin+github@florentine.us>

* new release just dropped

Signed-off-by: jflo <justin+github@florentine.us>

---------

Signed-off-by: jflo <justin+github@florentine.us>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

* 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 <miroslavkovar@protonmail.com>

* Add authorizationList deserialization test

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>

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

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>

* Add javadoc

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>

* Extract TransactionCallParameterBuilder creation to a separate method for consistency

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>

* Include codeDelegationAuthorizations when building Transaction from CallParameter

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>

---------

Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>
Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

* 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 <simon.dudley@consensys.net>
Co-authored-by: garyschulte <garyschulte@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>

* update checkout action to 4.2.2 (#9052)

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>

* 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 <macfarla.github@gmail.com>

---------

Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Justin Florentine <justin+github@florentine.us>

* Fix merge main

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>

---------

Signed-off-by: Olexandr88 <radole1203@gmail.com>
Signed-off-by: Jason Frame <jasonwframe@gmail.com>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Danno Ferrin <danno@numisight.com>
Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>
Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Signed-off-by: Ameziane H. <ameziane.hamlat@consensys.net>
Signed-off-by: Joshua Fernandes <joshua.fernandes@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Preeti <35308865+pr9t@users.noreply.github.com>
Signed-off-by: jflo <justin+github@florentine.us>
Signed-off-by: Matilda-Clerke <matilda.clerke@consensys.net>
Signed-off-by: Gabriele Del Monte <gabriele.delmonte@proton.me>
Signed-off-by: Gabriele Del Monte <37625739+gabrieledm@users.noreply.github.com>
Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com>
Signed-off-by: Reuben George <reubengeorge101@gmail.com>
Signed-off-by: Reuben George <69674713+georgereuben@users.noreply.github.com>
Signed-off-by: Marcos Serradilla Diez <marcos@io.builders>
Co-authored-by: Olexandr88 <radole1203@gmail.com>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: Jason Frame <jasonwframe@gmail.com>
Co-authored-by: Jason Frame <jason.frame@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Danno Ferrin <danno@numisight.com>
Co-authored-by: Matilda-Clerke <matilda.clerke@consensys.net>
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Bhanu Pulluri <59369753+pullurib@users.noreply.github.com>
Co-authored-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Co-authored-by: ahamlat <ameziane.hamlat@consensys.net>
Co-authored-by: Joshua Fernandes <joshua.fernandes@consensys.net>
Co-authored-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Preeti <35308865+pr9t@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Gabriele Del Monte <37625739+gabrieledm@users.noreply.github.com>
Co-authored-by: Miroslav Kovar <miroslavkovar@protonmail.com>
Co-authored-by: Reuben George <69674713+georgereuben@users.noreply.github.com>
Co-authored-by: Karim Taam <karim.t2am@gmail.com>
Co-authored-by: Luis Pinto <luis.pinto@consensys.net>
Co-authored-by: Marcos Serradilla Diez <marcos@io.builders>
Co-authored-by: garyschulte <garyschulte@gmail.com>
jflo pushed a commit to jflo/besu that referenced this pull request Sep 8, 2025
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 <simon.dudley@consensys.net>
jflo pushed a commit to jflo/besu that referenced this pull request Sep 8, 2025
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 <simon.dudley@consensys.net>
Signed-off-by: jflo <justin+github@florentine.us>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants