The BerlinGasCalculator had a side effect of warming addresses when
calculating call gas costs. By introducing a boolean we can keep the
side effects in the operation instead of in the gas calculator. This
makes gas cost estimation by downstream users of the API safer.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
* Add Besu version to DB metadata. Check for downgrades and reject if version < version recorded in DB metadata.
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Add --allow-downgrade CLI arg. If set it allows the downgrade and updates the Besu version in the metadata file to the downgraded version.
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Update gradle verification XML
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Add and update tests
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Refactoring
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remove versioning from RocksDB, now in separate VERSION_DATADATA.json
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Tidy up and tests for the new class
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Move downgrade logic into VersionMetadata as BesuCommand is already very big
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Add more tests
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Refactor the naming of the option to version-compatibility-protection
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remove remaining references to allow-downgrade
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Rename test
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Update comments
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Metadata verification update
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* gradle fix
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Enable version downgrade protection by default for non-named networks
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Fix default logic
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Update ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/VersionMetadata.java
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Matt Whitehead <matthew1001@hotmail.com>
* Update ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/VersionMetadata.java
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Matt Whitehead <matthew1001@hotmail.com>
* mock-maker-inline no longer needed
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>
Signed-off-by: Matt Whitehead <matthew1001@hotmail.com>
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* wildcard in place of task name in path, in case it gets changed.
* test splitting action is unreliable at these numbers of tests
* pin to new gradle action, increase runners
* found the missing tests, back to parity
* rename to avoid consolidation status collision with workflow name
* fixes javadoc checks at build time
* overrides project version on release, so embeds (startup info) will match release artifacts
---------
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: RoboCopsGoneSock <158174948+RoboCopsGoneSock@users.noreply.github.com>
Update tracing and evm tool
* Intrinsic gas is optional in EVMTool
* For call series, also charge the gas given to the next call level for debug_ series calls.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
* test each profile
* removed duplicated line
* use non-deprecated name for sync mode
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
---------
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
* Log changes in BFT validators
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Move the log entry to the block expiry handler, not the round change validator, and only log on round 0
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remove unused imports
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Javadoc
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remaining javadoc fix
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Better javadoc fix
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Spotless
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Spotless
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Merge fix
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>
* Remove uses of org.jetbrains annotations
We have a mix of org.jetbrains.annotations.NotNull and
javax.annotations.Nonnull. Change all to the latter. Add an errorprone
check to enforce this.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
* spotless
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
* spdx
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
---------
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Add a sender cache to Transaction.java, the senders and transactions' hashes are calculated when the transactions are decoded from the newPayload.
Signed-off-by: Ameziane H <ameziane.hamlat@consensys.net>
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
- Uses pull_request_target to make sure action definitions only come from main or release-*. This also allows them to escalate privs.
- All priv escalations moved as narrowly as possible. Typically this is only required to upload test results.
- All actions pinned to specific SHA versions. When updated, repository settings will need to be adjusted to allow it.
---------
Signed-off-by: Justin Florentine <justin+github@florentine.us>
* Change halt reason when contract creation fails due to collision or account already exists
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Fix ATs
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Add ILLEGAL_STATE_CHANGE to the list of hal reasons that must not be ignored when producing the vm trace
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* add changelog
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
---------
Signed-off-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
* Refactored version of QBFT/shanghai
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* More refactoring
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Add equivalent IBFT fixes. Update QBFT and IBFT round tests
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Update the change log
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remove old comments
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Add shanghai contract validator test
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Add shanghai acceptance test
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Add Shanghai to the combined protocol schedule test, update IBFT message validator creation
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Fix merge
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Update tests to use shanghai time > 0
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Address PR comments
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Refactor unit tests
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Refactor unit tests
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* IbftRoundTests update
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Address PR comments
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
* Remove unnecessary class type check
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
---------
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
Signed-off-by: Matt Whitehead <matthew1001@gmail.com>
Signed-off-by: Matt Whitehead <matthew.whitehead@kaleido.io>