Implemented support for emptyBlockPeriodSeconds in QBFT (Issue #3810)
Introduces experimental xemptyblockperiodseconds genesis config option for producing empty blocks at a specific interval independently of the value of the existing blockperiodseconds setting.
https://github.com/hyperledger/besu/issues/3810
---------
Signed-off-by: Antonio Mota <antonio.mota@citi.com>
Signed-off-by: amsmota <amsmota@gmail.com>
* Dev mode for short BFT block periods
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Refactoring
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Fix comment
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Refactor to make BFT block milliseconds an experimental QBFT config option
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Update Json BFT config options
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
---------
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Don't persist IBFT2 proposal blocks, just validate them
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Tidy up changelog
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
---------
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
Signed-off-by: Matt Whitehead <matthew.whitehead@kaleido.io>
* Include Commit-Hash in manifests
* Add commit method in BesuInfo
* Use 8 character hash in EngineGetClientVersionV1 and revert calculateVersion back to original spec
Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net>
Co-authored-by: garyschulte <garyschulte@gmail.com>
* Reuse HardforkId in EvmSpecVersion
Move the HardforkId into datatypes and re-use the data in
EvmSpecVersion, keeping evm specific details in the evm and merging the
rest into datatypes.
Signed-off-by: Danno Ferrin <danno@numisight.com>
* Update evm/src/main/java/org/hyperledger/besu/evm/EvmSpecVersion.java
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Danno Ferrin <danno.ferrin@shemnon.com>
---------
Signed-off-by: Danno Ferrin <danno@numisight.com>
Signed-off-by: Danno Ferrin <danno.ferrin@shemnon.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
* add `ProtocolSchedule::milestoneFor` to retrieve milestones for every hardfork in the genesis file
* add `setMilestones` and `milestoneFor` to TransitionProtocolSchedule
* refactored all checks for hardforks in the engine API to use hard fork ids
* added tests to test that the engine API v2 endpoints return UNSUPPORTED_FORK past Cancun
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
---------
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Optimistic transaction parallelization execution during block processing to improve the performances. This feature can enabled with a flag --Xbonsai-parallel-tx-processing-enabled=true
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Co-authored-by: Ameziane H <ameziane.hamlat@consensys.net>
Co-authored-by: garyschulte <garyschulte@gmail.com>
* Update parameterized unit tests so the enumerate with --dry-run
* Update the prague-withdrawal.json unit test to handle current code
Signed-off-by: Danno Ferrin <danno@numisight.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
* EthPeer add isServingSnap to be able to make sure that we have enough snap servers connected when we are snap syncing
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
* Create a BFT-specific pivot block handler
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Change visibility
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Refactor sync-peer-count internal variable to match name, add experimental flag to enabled snap + BFT
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Merge with main
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Fix uppercase
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Address synchronization issue with trie pruning. Create BFT-specific account range handler. Add pipeline name and logs
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remove debug log
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* fixing snapsync for empty state
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
* Don't queue up events we can't handle
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Fix timing window where a validator with an empty data dir sometimes falls back to full sync if peer status isn't received quickly enough
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remove BFT-specific account request class. Not needed
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Refactor some more 'fast' sync variables that are common to all pivot-based sync types
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* In FULL sync mode, disable bonsai-limit-trie-logs-enabled instead of failing to start
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Add javadoc comments, clarify overriding bonsai-limit-trie-logs-enabled
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Add BFT pivot block selector tests
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Fix failure error message
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remove the unnamed Pipe constructor and update tests to set a pipe name
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Revert some info logs back to debug given the feedback on noise in the logs syncing with holesky
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Refactor fastSyncPivotDistance to syncPivotDistance
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Incomplete refactoring
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Update BFT event queueing tests
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Event queue test fixes
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remove automatic setting of bonsai-limit-trie-logs-enabled to false if sync-mode = FULL (moving to another PR)
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
---------
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Signed-off-by: Matt Whitehead <matthew.whitehead@kaleido.io>
Co-authored-by: Karim Taam <karim.t2am@gmail.com>
* Add info-level diagnostic logs to aid with resolving stalled BFT chains
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Add javadoc
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
---------
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
Signed-off-by: Matt Whitehead <matthew.whitehead@kaleido.io>
* Improve the selection of the most profitable built block
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Update CHANGELOG
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Update consensus/merge/src/main/java/org/hyperledger/besu/consensus/merge/PayloadWrapper.java
Co-authored-by: Justin Florentine <justin+github@florentine.us>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
---------
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
* Don't perform validation of withdrawals in BFT chains
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Spotless
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remove withdrawal unit test - not applicable any more
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
---------
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
* New RPC methods to set and get block extra data
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Remove redundant methods to set the extra data
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* miner_getExtraData unit tests
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Add CHANGELOG
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Apply suggestions from code review
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
---------
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Upgrade spotless to 1.22.0 and reformat.
This is required for Java21 support.
Signed-off-by: Danno Ferrin <danno@numisight.com>
Co-authored-by: Danno Ferrin <danno@numisight.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>