decoupled parent block header from block creators
optionalized some fields of ProtocolSchedule constructor, which will allow us to reduce number of constructors later.
Refactored JsonBlockImporterTest so it can provide a BesuComponent
ProtocolScheduleBuilder optionalizes the default chainid
Blocks SubCommand is now Dagger aware
Creates but rarely uses ProtocolSpec and ProtocolSchedule modules. Deeper adoption pending.
Adds a Coinbase module with fixed values for use in testing.
Introduces an EthereumCoreComponent, to be used as a subcomponent of BesuComponent in the future.
Introduces a MiningParameters module with common static values used by tests. Removes MiningParameters static constructor.
---------
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Signed-off-by: jflo <justin+github@florentine.us>
* Move EOF to the Osaka Fork
* Ensure Osaka activations are working
* Remove CancunEOF and PragueEOF forks
* Move EOF tools to default to Osaka
Signed-off-by: Danno Ferrin <danno@numisight.com>
* remove eof tests that fail only because of fork
Signed-off-by: Danno Ferrin <danno@numisight.com>
* Restore CancunEOF
* Update unit tests to use "Cancun" as pre-eof fork
* Make PC in trace zeroed to start of code section 0
* Update extcall to consider precompiles warm
* Add stack checking to CALLF operation
Signed-off-by: Danno Ferrin <danno@numisight.com>
---------
Signed-off-by: Danno Ferrin <danno@numisight.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Updates the reference tests to 14.1, which mostly consists of removing
duplicate tests covered by execution-spec-tests or invalid tests from
EOF portions of the Prague tests.
Signed-off-by: Danno Ferrin <danno@numisight.com>
* Plumb maxCode overriddes into EVM
Restore lost functionality: the maxcodesize and maxinitcodesize should
be plumed into the operations and validation rules when set.
Signed-off-by: Danno Ferrin <danno@numisight.com>
---------
Signed-off-by: Danno Ferrin <danno@numisight.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Update the eof layout error codes to match codes in reference tests.
This includes support for multiple possible errors for a specific test.
Signed-off-by: Danno Ferrin <danno@numisight.com>
Update the EOF validation error strings so that they can validate
against expected exceptions in reference tests.
Signed-off-by: Danno Ferrin <danno@numisight.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>
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>
* add request type for consolidations, encoder, decoder and tests
* added raw tx for consolidation
* add consolidation reqs to EngineGetPayloadResultV4
* set storage slot value to 0 initially and value for tx
* updates plugin api
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
---------
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
Fix a number of issues found in reference tests and evmone tests.
- Be tolerant of more nulls in json
- Support ContainerKind in reference tests
- re-order EXTCALL oeprands
- correct return value for REVERT in EXT*CALL
- re-order EOFCREATE code validation
Signed-off-by: Danno Ferrin <danno@numisight.com>
* Add evmtool block-test subcommand
Add an evmtool subcommand that will run non-hive blockchain tests.
Signed-off-by: Danno Ferrin <danno@numisight.com>
Update t8n executor to support new isStateTest env flag that will
disable extra-transactional processing such as block rewards and beacon
root.
Also, make sure such extra-transactional commits don't create empty
accounts.
Signed-off-by: Danno Ferrin <danno@numisight.com>
Co-authored-by: Usman Saleem <usman@usmans.info>
Add Genesis ("CancunEOFTime") and reference test ("CancunEOF") support
for a temporary Cancun+EOF fork, in anticipation of potential devnets.
Signed-off-by: Danno Ferrin <danno@numisight.com>
Make the max code size and max initcode size a part of the EVM
configuration. As part of the change we need to move the tasks
CodeFactory once handled as a static class and move it into the EVM.
This has a nice follow on effect that we don't need to pass in max EOF
versions or max code sizes anymore.
Signed-off-by: Danno Ferrin <danno@numisight.com>
Check and test for the unused container rule, and only returncontract
targets can have truncated data rule.
Also test the other subcontainer rules in unit tests.
Signed-off-by: Danno Ferrin <danno@numisight.com>
A complete and up to date implementation of EIP-7692 EOF v.1. For genesis
file activation use "PragueEOFTime", for references tests it activates as
part of Prague.
Signed-off-by: Danno Ferrin <danno@numisight.com>
Bring implementation up to nyota version of the EIP,
and remove invasive change into the EVM code.
Signed-off-by: Danno Ferrin <danno@numisight.com>
Co-authored-by: Lucas Saldanha <lucascrsaldanha@gmail.com>
Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: Jason Frame <jason.frame@consensys.net>
Co-authored-by: Jason Frame <jasonwframe@gmail.com>
* EIP-2935: Serve historical block hashes from state
Refactor the BlockHashOperation to move hash lookup into the
ProtocolSpec, and combine logic with beacon root storage.
Update t8n test to use block hash list in new format
Signed-off-by: Danno Ferrin <danno@numisight.com>
Author: Gabriel-Trintinalia gabriel.trintinalia@consensys.net
Co-authored-by: Danno Ferrin danno@numisight.com
Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
* Upgrade reftests to 13.3
* Implement retroactive EIP-7610
We need to do both of these at once as the reference tests needed to be
updated to reflect the changes in the retroactive EIP.
EIPTests for prague are disabled as they are still in flux
Signed-off-by: Danno Ferrin <danno@numisight.com>
Remove an unused parameter in MainnetTransactionProcessor, as well as
all code supporting sending that parameter.
Signed-off-by: Danno Ferrin <danno@numisight.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Update t8n, b11r, and friends to support current execution spec
* bonsai migration introduced issues with deleted storage/accounts
* status on pre-constantinople json was invalid
* track refund across tx, not call frame
* allow tests to be executed by name
* fix withdrawal self-destruct test
* trace support in execution-spec-tests
* fix blob tests
* t8n results changes
Signed-off-by: Danno Ferrin <danno@numisight.com>
Splitting Bonsai code: This commit aims to divide Bonsai into two packages
- Common Classes with a Prefix: The common part will include classes prefixed with "DiffBased." These classes are designed to provide a base for both Bonsai and any future storage format that might use this diff-based approach.
- Bonsai's Specifics: Bonsai will retain its unique features in its own package. This means that while it shares the diff-based infrastructure with the common part, it also has its own specific functionalities that are not shared with other storage format.
- Extension to Verkle: this modification add the possibility of adding "Verkle" as a new storage format based on the diff-based architecture. Like Bonsai, Verkle would use the common diff-based classes but also have its own specific features.
---------
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Signed-off-by: Karim Taam <karim.t2am@gmail.com>
Move Besu custom error-prone checks into its own repository and use it as an external dependency. This allows to move to a newer version of Google errorprone checks as well while cleaning up build.gradle file.
Key changes resulted due to this change:
* String toLowerCase and toUpperCase to use Locale.ROOT as argument
* Use interface such as List,Map or NavigatableMap instead of concrete class where appropriate.
* Simplify StringBuilder to plain String
* Suppress warnings where appropriate.
-----
Signed-off-by: Usman Saleem <usman@usmans.info>