Add BFT-style transitions to Clique, modelled with ForksSchedule<CliqueConfigOptions>
Add ability to transition the blockperiodseconds config.
---------
Signed-off-by: Jason Frame <jason.frame@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Jason Frame <jason.frame@consensys.net>
* 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>
Wire through configuration for the Prague fork, including speculative
PragueGasCalculator, precompiles, genesis options, and implied
forks in GenesisState.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: Matt Nelson <85905982+non-fungible-nelson@users.noreply.github.com>
Co-authored-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
* Make transaction pool configurable in acceptance tests (#33)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Make BesuNode::getMiningParameters public
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>
* Bump com.github.oshi:oshi-core to 6.4.10
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump com.github.tomakehurst to org.wiremock 3.3.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump com.google.auto.service:auto-service to 1.1.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump com.google.dagger group to 2.50
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump com.graphql-java:graphql-java to 21.3
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump com.splunk.logging:splunk-library-javalogging to 1.11.8
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump com.squareup.okhttp3:okhttp to 4.12.0
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump commons-io:commons-io to 2.15.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump dnsjava:dnsjava to 3.5.3
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump info.picocli group to 4.7.5
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump io.grpc group to 1.60.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump io.kubernetes:client-java to 18.0.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump io.netty group to 4.1.104.Final
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump net.java.dev.jna:jna to 5.14.0
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.apache.commons:commons-compress to 1.25.0
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.apache.commons:commons-lang3 to 3.14.0
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.apache.commons:commons-text to 1.11.0
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.apache.logging.log4j group to 2.22.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Redorder io.tmio group
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.assertj:assertj-core to 3.25.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.bouncycastle group to 1.77
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.fusesource.jansi:jansi to 2.4.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.immutables group 2.10.0
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.java-websocket:Java-WebSocket to 1.5.5
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.jetbrains.kotlin:kotlin-stdlib to 1.9.22
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.junit.jupiter group to 5.10.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.jupnp group to 2.7.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.rocksdb:rocksdbjni to 8.9.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.slf4j group to 2.0.10
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.springframework.security:spring-security-crypto to 6.2.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.testcontainers:testcontainers to 1.19.3
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.web3j group to 4.10.3
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Bump org.xerial.snappy:snappy-java to 1.1.10.5
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Regenerate gradle verification metadata
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Update commons-codec:commons-codec to 1.16.0
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Update org.junit.vintage:junit-vintage-engine to 5.10.1
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* Update CHANGELOG
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
---------
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
* bft tests to junit 5
* base class for pki extend AcceptanceTestBaseJunit5
* try/catch in case of empty optionals
* fixed parameterization method
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
---------
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
* TestWatcher junit5
* add test class and method name to context
* moved the testwatcher junit5 function to a new junit5 superclass
* one qbft test to junit5 superclass
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
---------
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
* updates static integration test so txs are committed to using mainnet trusted setup
* new static vectors for precompile checks
* moves trusted setup to main
---------
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Update the GraphQL and JSON-RPC endpoints to provide `yParity` instead
of `v` for non-legacy transactions.
Update the JSON-RPC tests to use the Hive data. Add tests for Shanghai
and Cancun Blocks.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
change Transaction Validation and Selection Plugin to make them more useful
Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
This is to base the existed implementation of EIP-6110 from Shanghai to Cancun. As well, it updates the implementation according to the latest Engine API specification.
Changes include:
- Remove 6110 related changes from engine_newPayloadV2 and engine_getPayloadV2
- Rename deposits to depositReceipts in EnginePayloadParameter
- Introduce engine_newPayloadV6110 and engine_getPayloadV6110 that are based on engine_newPayloadV3 and engine_getPayloadV3
- Revamp the existed 6110 acceptance test
---
Signed-off-by: Navie Chan <naviechan@gmail.com>
Signed-off-by: naviechan <adrninistrator1@protonmail.com>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
* re-ordering error reporting priority
* fixes fork checking on getPayload
* adds acceptance test reproducing an issue where built blocks have proofs > txs
* test coverage and fix for subtle re-org bug prior to proposals
---------
Signed-off-by: Justin Florentine <justin+github@florentine.us>
* add plugin API to enable plugins to validate transaction before they are added to the transaction pool
Signed-off-by: Stefan <stefan.pingel@consensys.net>
* updated plugin version
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
---------
Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Implement EIP 4788
Unit tests need to be added
Implementation is working for test net 8, address of the contract will probably change
EIP 4788 is still not finalized. Some changes might be necessary.
Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
* bug in block serializer when Optional 4844 fields not present
* adds test coverage for genesis block from genesis config
* returns bad req when blobgas fields missing
* uses matchers to lookup forks by predicates
* corrects hash being used, still need externally provided fixture to cover it
* added data message to invalid withdrawals response
* improve null checks for excess data gas
---------
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
* Make smart contract permissioning features work with london fork
Override the transactionSimulator's default TransactionValidationParams with one that allows for exceeding the account balance (which effectively zeros the baseFee).
This mimics the way that eth_estimateGas and eth_call are implemented.
Similar change to #5277
Update ATs to use londonBlock (existing genesis allocs necessitate zeroBaseFee as well)
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
* changelog
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
---------
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
* Implements EIP-4844.
* introduces a Hardfork class to the protocol schedule system
* new Engine APIs required for CL to work on 4844
* new DataGas type for tracking block cost for 4844 data
* new VersionedHash type to reflect that a versioned hash is not quite a pure sha256
* incorporates wrapped jc-kzg library for KZG point evaluations
* New transaction type, and domain objects for constituent parts to represent the Blobs, KZGCommitments, and Proofs used for 4844
* RLP encoders and decoders to support new transaction type
* gas pricing calculators for the new type of gas
* plugin-api version was changed
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Co-authored-by: Jiri Peinlich <jiri.peinlich@gmail.com>
Co-authored-by: Jason Frame <jason.frame@consensys.net>
Co-authored-by: garyschulte <garyschulte@gmail.com>
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: Stefan <stefan.pingel@consensys.net>
Co-authored-by: spencer-tb <spencer@spencertaylorbrown.uk>
* junit5 updates
Signed-off-by: Justin Florentine <justin+github@florentine.us>
* update t8n test
Cancun gas claculator was inheriting from london, should have been shanghai.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
---------
Signed-off-by: Justin Florentine <justin+github@florentine.us>
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Co-authored-by: Jiri Peinlich <jiri.peinlich@gmail.com>
Co-authored-by: Jason Frame <jason.frame@consensys.net>
Co-authored-by: garyschulte <garyschulte@gmail.com>
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: Stefan <stefan.pingel@consensys.net>
Co-authored-by: spencer-tb <spencer@spencertaylorbrown.uk>
Co-authored-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: George Tebrean <george@web3labs.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
* Extend OperationTracer with new methods, create
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Rename ExtendedOperationTracer to BlockAwareOperationTracer
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* fixed plugin api hash
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* added missing javadoc comments
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Update evm/src/main/java/org/hyperledger/besu/evm/tracing/OperationTracer.java
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Only update peer with the first and last block (#5659)
* only update peer with the first and last block
Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Put download links into CHANGELOG and do some clean up (#5660)
* put the download links for 23.4.4 into the CHANGELOG.md
* clean up CHANGELOG
Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Add --amend to docker manifest create to fix docker latest tag (#5661)
We need to replace previous release's latest tag. Might be broken due to a recent change in the docker command implementation
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Add Xlayered-tx-pool to the config log printout (#5665)
Unrelated: clarify epoch length in javadoc
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Add hooks to AbstractCreateOperation for library users (#5656)
Add hooks for a successful contract create, a failed contract create,
and an invalid contact create. Users of the library will be able to
customize create responses without having to replace core logic.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Test updates for cancun execution-spec-tests (#5670)
- support legacy V values (larger V value) and type 1+ (v is recId only)
- new fields
- shared transaction extraction
- rejection detection
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Upgrade BouncyCastle libraries (#5675)
Upgrade bouncy castle to v1.75. This involved a change in maven
coordinates for other modules.
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Introduce transaction validator interface (phase 1) (#5673)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Only validate `--miner-enabled` option for ethash networks (#5669)
* Modify the min-gas-price option validation
* Check for whether ethash is in use, either from genesis or network config, and use that for miner checks
* Add genesis configuration isPoa() convenience function
---------
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
Signed-off-by: Matt Whitehead <matthew1001@hotmail.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Update tuweni2.4.2 (#5684)
* Revert "Revert "Update Tuweni to 2.4.1 (#5513)" (#5585)"
This reverts commit 6111e1bbc3.
Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
* update Tuweni to 2.4.2
Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
---------
Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* Do not leak references to PendingTransactions (#5693)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* remove v0 version of the database (#5698)
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* updated plugin api hash
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* spotless
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* updating plugin api hash
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* moved transcation interface to datatypes to use it in the OperationTracer.traceStartTransaction method
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
* fix import
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
---------
Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
Signed-off-by: Stefan <stefan.pingel@consensys.net>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Signed-off-by: Danno Ferrin <danno.ferrin@swirldslabs.com>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Signed-off-by: Matthew Whitehead <matthew1001@gmail.com>
Signed-off-by: Matt Whitehead <matthew1001@hotmail.com>
Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
Signed-off-by: Karim TAAM <karim.t2am@gmail.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Gabriel Fukushima <gabrielfukushima@gmail.com>
Co-authored-by: Danno Ferrin <danno.ferrin@gmail.com>
Co-authored-by: Fabio Di Fabio <fabio.difabio@consensys.net>
Co-authored-by: Matt Whitehead <matthew1001@gmail.com>
Co-authored-by: Antoine Toulme <antoine@lunar-ocean.com>
Co-authored-by: matkt <karim.t2am@gmail.com>
Completes the implementation of EIP-6110
* Decode and extract deposit from transaction receipt log
* Introduce depositContractAddress field in genesis file
* Validate deposits in a block against the transaction receipt logs
* Update engine_newPayloadV2 and engine_getPayloadV2 according to the spec. Some of the non-functional components were partially implemented in the previous PR
Signed-off-by: naviechan <naviechan@gmail.com>
Signed-off-by: Simon Dudley <simon.dudley@consensys.net>
Co-authored-by: Simon Dudley <simon.dudley@consensys.net>
* update to 2.4.1
* update use of DNS daemon with Vertx
* fix issue with Bytes.repeat
* update antlr version
* fix dns tests
Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
---------
Signed-off-by: Antoine Toulme <antoine@lunar-ocean.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>