Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

simulators/ethereum/engine: Engine API Test Fixes #891

Merged
merged 2 commits into from
Sep 27, 2023

Conversation

marioevz
Copy link
Member

Changes Included

  • Pre-Merge Fork > 0: Post-merge forks are now all happening on block 1 for consistency
  • Invalid Versioned Hashes verification fixes

Copy link
Contributor

@spencer-tb spencer-tb left a comment

Choose a reason for hiding this comment

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

LGTM :D

@marioevz marioevz merged commit d93265f into ethereum:master Sep 27, 2023
5 checks passed
Eikix pushed a commit to kkrt-labs/hive that referenced this pull request Mar 1, 2024
* simulators/ethereum/engine: fix non-zero pre-merge fork test

* simulators/ethereum/engine: fix invalid versioned hashes tests
github-merge-queue bot pushed a commit to kkrt-labs/hive that referenced this pull request Mar 1, 2024
* Update besu branch back to main (ethereum#836)

update besu branch back to main

* cmd/hiveview: limit log bytes in suite view

It was already limited to a certain number of lines, but that's not enough when
the test outputs very long lines.

* simulators/ethereum/engine: Fix ForkID Tests (ethereum#837)

* simulators/ethereum/pyspec: go.mod: geth update

* simulators/ethereum/engine: go.mod: geth update

* simulators/ethereum/engine: ForkID: check no disconnect

* simulators/ethereum/pyspec: fix genesis

* Incorrect comment.

* simulators/ethereum/engine: Add incorrect engine versions tests (ethereum#834)

* simulators/ethereum/engine: use customizer interfaces

* simulators/ethereum/engine: Expect generic methods

* simulators/ethereum/engine: GetPayload generic methods

* simulators/ethereum/engine: CLMock add callback on payload attributes

* simulators/ethereum/engine: GetPayload customizers

* simulators/ethereum/engine: Add tests for incorrect FcU and GetPayload versions

* simulators/ethereum/engine: Add time delta modifier

* simulators/ethereum/engine: Fix Cancun time increments

* simulators/ethereum/engine: Add multiple FcU payload requests on different forks test

* simulators/ethereum/engine: CLMock: add payload id history

* simulators/ethereum/engine: Add payload id check on beacon root change

* simulators/ethereum/engine: Fix test starting directly on Cancun

* configs/cancun: Besu update (ethereum#841)

configs: Besu cancun branch update

* clients/reth: add cancun fork in mapper (ethereum#842)

* clients/erigon: Fix `Dockerfile.git` (ethereum#861)

clients/erigon: fix git dockerfile

* simulators/ethereum/engine: Refactor Legacy Engine API Tests (ethereum#840)

* Refactor previous tests to run on new forks

* Fix configuration on Cancun

* Fix spec fork time

* Run all tests using blob transactions when possible

* Allow blob transaction modifications

* Add more Cancun invalid field tests

* Update expected invalid detection on versioned hashes

* Use multiple source accounts for test transactions by default

* Get full block only when necessary

* Fixes on some of the tests

* Update suggested fee recipient tests

* Update prev-randao tests

* NewPayload Tests Refactor

* Refactor last re-org tests

* Simplify ForkID tests

* Incorrect comment

* Fix pyspec

* More Versioned Hashes Tests

* simulators/ethereum/engine: Beacon root pre-deploy address update (ethereum#839)

simulators/ethereum/engine: Update beacon root to latest spec.

* clients/reth: Dockerfile support to build Reth from git or locally (ethereum#860)

* clients/besu: sh - Remove legacy option from startup flags (ethereum#863)

Remove legacy tx pool option

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

* simulators/ethereum/pyspec: update execution-spec-tests (ethereum#865)

Updates execution-spec-tests version, which includes the same beacon
root contract address as the existing engine-api tests

* cmd/hiveview: persist column filters in URL (ethereum#864)

* cmd/hiveview: avoid creating history for column filter changes (ethereum#866)

* simulators/ethereum/engine: run tests in parallel (ethereum#869)

sim/eth/engine: run tests in parallel

* hiveproxy: upgrade dependencies

* go.mod: upgrade dependencies

go-ethereum v1.13 no longer provides ethash mining, so this feature
had to be removed from hivechain.

* go.mod: upgrade hiveproxy dependency

* .circleci: use Go 1.21

* .circleci: enable internal static linking

* .circleci: disable libc dependencies in CI build

* simulators/devp2p: upgrade dependencies

* simulators/smoke: upgrade dependencies

* simulators/smoke/genesis: add some new forks

* simulators/ethereum/sync: upgrade dependencies

* simulators/ethereum/rpc: upgrade dependencies

* simulators/ethereum/rpc-compat: upgrade dependencies

* simulators/ethereum/pyspec: upgrade dependencies

* simulators/ethereum/graphql: upgrade dependencies

* simulators/ethereum/consensus: upgrade dependencies

* simulators/ethereum/engine: upgrade dependencies

Also remove the module replacement, since it should not be needed anymore.

* simulators/ethereum: update Go version in go.work file

* simulators/ethereum/engine: go mod tidy

* simulators/ethereum/engine: Add London non-zero-number test (ethereum#867)

* configs/cancun: Update Geth (ethereum#871)

* simulators/ethereum/engine: Update beacon root address: 0xbEAC..7d7a (ethereum#873)

* simulators/ethereum/pyspec: Use hive specific fixture format (ethereum#844)

* simulators/pyspec: Update to use correct fcuVersion.

* simulators/ethereum/pyspec: Refactor to use new fixture format.

* simulators/ethereum/pyspec: Fix logging, tests links and go.sum.

* simulators/ethereum/pyspec: fixes

* simulators/ethereum/pyspec: update fixtures source

---------

Co-authored-by: Mario Vega <marioevz@gmail.com>

* Add reth (ethereum#875)

Add reth to default cancun config

* clients/prysm-vc: Fix docker args

* clients/lodestar-vc: Remove builder option

* clients/teku-bn: Add trusted setup file

* configs/cancun: add all consensus clients

* bump besu (ethereum#882)

* simulators/ethereum: Update beacon root address 0x000F..Beac02 (ethereum#884)

* simulators/ethereum/engine: Update beacon root address 0x000F..Beac02

* simulators/ethereum/pyspec: Download latest fixtures

* simulators/ethereum/engine: Update beacon root contract

* simulators/ethereum/engine: Update History buffer length

Co-authored-by: spencer <spencer.taylor-brown@ethereum.org>

---------

Co-authored-by: Mario Vega <marioevz@gmail.com>
Co-authored-by: spencer <spencer.taylor-brown@ethereum.org>

* simulators/ethereum/engine: rm 0x prefix on 4788 code (ethereum#885)

* clients/erigon: Increase allowed blobcount in remote txs (ethereum#890)

Increase allowed blobcount in remote txs

Erigon now has a built-in spam protector for blob txs, this flag would increase the count of allowed blobs per account from the default 48 to a 1000

* simulators/ethereum/engine: use replaced version of geth with updated beacon root (ethereum#888)

* simulators/ethereum/engine: use replaced version of geth with updated beacon root

* simulators/ethereum/pyspec: use replaced version of geth with updated beacon root

---------

Co-authored-by: Mario Vega <marioevz@gmail.com>

* simulators/ethereum/engine: Engine API Test Fixes (ethereum#891)

* simulators/ethereum/engine: fix non-zero pre-merge fork test

* simulators/ethereum/engine: fix invalid versioned hashes tests

* clients/besu: use ubuntu base image and install java (ethereum#889)

use ubuntu base image and install java

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

* simulators/ethereum/engine: Fix several tests (ethereum#886)

* simulators/ethereum/engine: fix versioning tests

* simulators/ethereum/engine: fix transaction replacement

* simulators/ethereum/engine: CLMock: Per-client payload id map

* simulators/ethereum/engine: Unique Payload ID tests in Cancun

* clients/ethereumjs: Remove `transports` parameter (ethereum#892)

* simulators/ethereum/engine: Fix incomplete transactions test (ethereum#893)

* clients/nimbus-el: use admin_nodeInfo instead of net_nodeInfo (ethereum#896)

Most/all EL client seem to use admin_nodeInfo so we adjusted this in nimbus-eth1

* simulators/ethereum/engine: Optional `INVALID` on sync

* simulators/ethereum/engine: Fix invalid nonce test on zero nonce

* simulators/ethereum/engine: Fix invalid Tx tests to use more realistic values

* simulators/ethereum/engine: Remove blob tx on Shanghai genesis, before fork

* simulators/ethereum/engine: Tx Invalid Signature Modifies S

* simulators/ethereum/engine: Update post-merge forks to activate later in pre-merge test (ethereum#901)

simulators/eth/engine: Update pre-merge tests.

* simulators/ethereum/engine: Fix naming, safe/finalized on reorg tests (ethereum#907)

* simulators/ethereum/engine: use generic error check for missing block (ethereum#874)

simulators/ethereum/engine: use generic error check for missing block on rpc

* clients/go-ethereum: disable min free disk check (ethereum#910)

* internal/libhive: return clients in the order defined in the client-file (ethereum#898)

* cmd/hivechain: support for newer forks, more chain outputs (ethereum#909)

* simulators/ethereum/engine,pyspec: Update Trusted Setup (ethereum#915)

* simulators/ethereum/engine: Update geth branch, use mainnet trusted setup

* simulators/ethereum: go.work.sum

* simulators/ethereum/pyspec: Update geth branch

* configs/cancun: Update geth to devnet-10

* simulators/ethereum/engine: Send different blobs depending on the sender

* cmd/hivechain: export chain starting after genesis (ethereum#912)

* cmd/hivechain: write ttd passed to genesis if merged (ethereum#913)

* cmd/hivechain: add forkenv output (ethereum#921)

* cmd/hivechain: add HIVE_NETWORK_ID in forkenv output

* cmd/hivechain: use smaller network ID

jq doesn't like it when numbers are > 64bit

* cmd/hivechain: even smaller chainid

* cmd/hivechain: add headnewpayload output

* cmd/hivechain: track preimages during generation (ethereum#924)

* cmd/hivechain: remove trie/triedb/hashdb package dependency

* Nethermind to use master branch (ethereum#925)

* simulators/ethereum/engine,pyspec: Use `golang:1.20-alpine` (ethereum#926)

* simulators/ethereum/engine: Trim log output of requests (ethereum#928)

* Enable blob tx pool for Nethermind

* simulators/ethereum/engine: Fix engine-cancun fcu version tests (ethereum#902)

* simulators/ethereum/engine: Fix bugs within fcu version tests (Shanghai/Cancun).

* simulators/ethereum/engine: Fix Cancun fcUV2 tests bugs

---------

Co-authored-by: jangko <jangko128@gmail.com>

* clients: only output full genesis file at high log levels (ethereum#927)

* clients: Trim genesis output for low log levels.

* clients: Specific echo for trimmed genesis output.

* clients: remove openethereum as its deprecated (ethereum#932)

* simulators/ethereum/engine: update test names for distinction (ethereum#914)

* simulators: fix typos in comments (ethereum#933)

* simulators/ethereum/engine: Add test to re-org to mempool and back in (ethereum#900)

simulators/ethereum/engine: Add re-org to mempool and back intest

* simulators/ethereum/engine: Minor fix to re-org tests (ethereum#934)

simulators/ethereum/engine: minor fix to re-org tests

* clients/besu: remove HIVE_SKIP_POW

* clients/erigon: remove HIVE_SKIP_POW

* clients/erigon: set terminalTotalDifficultyPassed

* clients/ethereumjs: remove mention of HIVE_SKIP_POW

* clients/go-ethereum: remove -gcmode=archive in import

* clients/nethermind: remove mentions of HIVE_SKIP_POW

* clients/nimbus-el: remove mentions of HIVE_SKIP_POW

* clients/reth: remove mention of HIVE_SKIP_POW

* hivesim: only log test and suite skips at high log levels (ethereum#923)

* graphql: add test case for eip-4844 fields (ethereum#894)

* cmd/hivechain: add ability to create valid clique chain (ethereum#938)

The hivechain tool can now create a signed clique chain. It can be important to have a chain with
actually valid block seal in some test scenarios, and go-ethereum can't mine ethash blocks anymore,
so clique was the only option.

This pulls in a go-ethereum update to get access to an improved GenerateChain implementation.

* simulators/ethereum/sync: use engine API to trigger sync (ethereum#922)

This updates the ethereum/sync simulator to use a newer post-merge chain.
Sync is now triggered via the engine API.

* go.mod: upgrade github.com/docker/docker

* simulators/devp2p: upgrade hivesim

* simulators/smoke: upgrade hivesim

* simulators/ethereum/sync: upgrade hivesim

* simulators/ethereum/rpc: upgrade hivesim

* simulators/ethereum/rpc-compat: upgrade hivesim

* simulators/ethereum/pyspec: upgrade hivesim

* simulators/ethereum/graphql: upgrade hivesim

* simulators/ethereum/engine: upgrade hivesim

* simulators/ethereum/consensus: upgrade hivesim

* simulators/ethereum: remove go.work

Having a Go workspace file ties all the simulators together in terms of their dependency
versions. This is a problem when one of them wants to replace a dependency version. When
building the simulator, hive will not use the workspace file, so it makes little sense to
have it.

* simulators/ethereum/pyspec: module replacement to reference engine sim

* simulators/ethereum/engine: Fix bugs for ForkID and Missing Ancenstor Tests (ethereum#936)

* clients/go-ethereum: use --state.scheme=path

* clients: remove unused HIVE_TESTNET variable

* docs: remove HIVE_SKIP_POW

* cmd/hivechain: disable difficulty-bomb-only forks

* cmd/hivechain: remove HIVE_SKIP_POW in forkenv output

* clients/ethereumjs: verbose RPC logging (ethereum#939)

* clients: add 'glacier' forks in mapper (ethereum#941)

* clients/go-ethereum: remove 'yolo' fork blocks

* clients/ethereumjs: remove 'yolo' forks in mapper

* clients: add missing 'glacier' forks in mapper

* cmd/hivechain: put back difficulty-only forks

This reverts commit f01b2d3.

* simulators/smoke: add 'glacier' forks

* cmd/hivechain: improve uncle generation

* hive: add --sim.randomseed flag (ethereum#943)

* simulators/ethereum/engine: Add randomness seed input (ethereum#944)

* simulators/ethereum/engine: randomness seed input

* simulators/ethereum/engine: Handle zero HIVE_RANDOM_SEED

* clients/besu: Remove trusted setup (ethereum#946)

* cmd/hivechain: add 4788 contract to genesis and set beacon root post-cancun

Co-authored-by: Felix Lange <fjl@twurst.com>

* clients/ethereumjs: add faster local test dockerfile (ethereum#940)

* clients/lodestar-vc: add `--builder` flag (ethereum#949)

* clients/teku-bn: Add rate limit parameters (ethereum#899)

* clients/teku: Add rate limit parameters

* clients/teku-bn: Use hive variable for peer scoring parameters

* simulators/ethereum/engine,pyspec: Upgrade geth branch (ethereum#951)

simulators/ethereum: upgrade geth branch

* configs/cancun: Use go-ethereum master (ethereum#952)

configs/cancun: use geth master

* clients/teku-bn: Remove trusted setup file, add `--ignore-weak-subjectivity-period-enabled` (ethereum#950)

* clients/teku-bn: Remove trusted setup file

* clients/teku-bn: Add `--ignore-weak-subjectivity-period-enabled`

* hivesim: dd documentation generation (ethereum#948)

* clients/erigon, simulators/ethereum/rpc: patch RPC tests for erigon (ethereum#953)

TTDPassed=true would make Erigon consider it POS chain - not applicable for clique or fakepow-based tests

* cmd/hivechain: fix typos in contracts

* cmd/hivechain: add snap test contract in genesis

* clients/nethermind: upgrade to .NET 8 (ethereum#955)

* simulators/devp2p: add support for new eth tests (ethereum#942)


Co-authored-by: lightclient <lightclient@protonmail.com>

* clients/nethermind: update TxPool config (ethereum#956)

Nethermind recently refactored blob pool to support blob transaction reorgs, introducing an additional flag. We decided to consolidate three blob pool-related flags into one enum. This PR enables support for blob transactions + persistent blob storage + blob transactions reorgs.

* clients/erigon: small fix to mapper jq (ethereum#962)

Fix: true instead of 1

* simulators/ethereum/consensus: Fix `excessBlobGas` genesis (ethereum#964)

simulators/ethereum/consensus: Fix excessBlobGas genesis

* clients/erigon: Fix git dockerfile (ethereum#965)

* clients/besu: Fix git dockerfile (ethereum#966)

* all: fix some typos in README.md files (ethereum#968)

* cmd/hivechain: improve modifier schedule

* cmd/hivechain: add more transaction types

* cmd/hivechain: add simple test for generate

* cmd/hivechain: deploy revert contract

* cmd/hivechain: improve spacing in callrevert

* cmd/hivechain: improve deploy tx gaslimit

* cmd/hivechain: avoid OOG in randomcode

Reduce output size. 256 bytes of code cost ~50k gas.

* cmd/hivechain: correct selectors in callrevert

* cmd/hivechain: add blob transaction

* clients/reth: use ghcr.io/paradigmxyz/reth as base image (ethereum#971)

* clients/reth: use ghcr.io/paradigmxyz/reth as base image

* clients/reth: use latest tag

* cmd/hivechain: use calldata hash as log topic in emit contract

* clients/nethermind: Fix Dockerfile.git (ethereum#972)

* simulators/ethereum/rpc-compat: load chain env from tests

* simulators/ethereum/rpc-compat: add explainer in diff message

* clients/nimbus-el: change command line options to use combo HTTP server for RPC (ethereum#973)

* .circleci: Add CI for rust simulators (ethereum#980)

* .circleci: add support for running ci's based off code modified

* .circleci: Add CI for rust simulators

* clients: add portal network client definitions (ethereum#977)

* .ciricleci: fix circleci script after breaking from ethereum#980 (ethereum#982)

* hivesim: add built-in support for connecting to the engine API

We need to do that in a lot more tests now and it gets tiring to redeclare the
token everywhere.

* go.mod: go.mod tidy

* simulators/ethereum/rpc-compat: send forkchoiceUpdated to client (ethereum#983)

* simulators/ethereum/sync: use EngineAPI method of hivesim

* simulators/ethereum/rpc-compat: handle test comments and avoid error message comparison (ethereum#984)

* clients/besu: remove --engine-jwt-enabled

* clients/reth: fix merge netsplit block in mapper (ethereum#986)

* simulators/ethereum/pyspec: Use latest EEST fixture release. (ethereum#985)

* simulators/ethereum/pyspec: Update dockerfile tests release structure.

* simulators/ethereum/pyspec: Tweak to adhere to fixture format change.

* simulators/portal/history/rpc-compat: add portal network history rpc-compat simulator (ethereum#978)

* clients: add 'portal' role

* simulators/portal/history/portal-interop: add portal network history simulator (ethereum#987)

* simulators/portal/history/portal-mesh: add portal network history portal-mesh simulator (ethereum#988)

* simulators/portal/history/trin-bridge: add portal network history trin-bridge simulator (ethereum#989)

* simulators/portal/beacon/rpc-compat: add portal network beacon rpc-compat simulator (ethereum#990)

* clients/prysm-vc: Use REST api (ethereum#906)

* simulators/eth2/engine: Fix error checking (ethereum#897)

* clients/lodestar-bn: Add optional flag to disable peer scoring (ethereum#911)

* clients/erigon: Configure snapshots flag (ethereum#992)

clients/erigon/erigon.sh: Configure snapshots flag.

* clients/go-ethereum: Remove miner gasprice flag (ethereum#993)

clients/go-ethereum/geth.sh: Remove miner gasprice flag.

* simulators/ethereum/engine: Fixes for execution-apis#498 (ethereum#974)

* simulators/ethereum/engine: Fix expected error on fcu tests

* simulators/ethereum/engine: Get Payload delay at spec level

* simulators/ethereum/engine: Correct error code on inconsistent FcU

* simulators/ethereum/engine: Invaild Payload Attributes Expectation Modification

* simulators/portal: refactor simulators to run multiple suites (ethereum#994)

This is just to cut down on the number of Rust projects and Dockerfiles.

* simulators/ethereum/engine: Expect error code for invalid payload attributes tests (ethereum#996)

simulators/ethereum/engine: Expect error code for invalid payload attributes tests.

* clients/lighthouse-bn: Add trusted peers env var (ethereum#908)

* clients/besu: fix merge block in mapper (ethereum#999)

fix fork id problem

Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>

* simulators/ethereum/consensus: add Paris as additional merge fork (ethereum#997)

* simulators/portal/history: trin_bridge suite remove redundant extra client (ethereum#998)

* clients/erigon: Increase blobpool limit in Erigon (ethereum#1000)

* simulators/ethereum/pyspec: Refactor, add sync payload verification (ethereum#995)

* simulators/ethereum/pyspec: Refactor, add sync payload verification

* simulators/ethereum/pyspec: Declare sync timeout constant

* simulators/ethereum/pyspec: Disable timing print

* simulators/ethereum/consensus: add more 'paris' forks

* simulators/portal/history: fix bug where only headers were tested (ethereum#1001)

* clients/reth: make sure pruner doesn't start on tests (ethereum#1002)

* simulators/eth2: Fix Docker golang version (ethereum#1003)

* simulators/eth2/engine: Dockerfile, golang:1.20

* simulators/eth2/testnet: Dockerfile, golang:1.20

* simulators/eth2/withdrawals: Dockerfile, golang:1.20

* clients/portal: update Dockerfiles to use baseimage/tag arg format (ethereum#1005)

---------

Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Co-authored-by: Parithosh Jayanthi <parithosh.jayanthi@ethereum.org>
Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Mario Vega <marioevz@gmail.com>
Co-authored-by: Dan Cline <6798349+Rjected@users.noreply.github.com>
Co-authored-by: spencer <spencer@spencertaylorbrown.uk>
Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
Co-authored-by: Dan <danceratopz@gmail.com>
Co-authored-by: spencer <spencer.taylor-brown@ethereum.org>
Co-authored-by: Somnath <snb895@outlook.com>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
Co-authored-by: Delweng <delweng@gmail.com>
Co-authored-by: Alexey <me@flcl.me>
Co-authored-by: jangko <jangko128@gmail.com>
Co-authored-by: vuittont60 <81072379+vuittont60@users.noreply.github.com>
Co-authored-by: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
Co-authored-by: Jochem Brouwer <jochembrouwer96@gmail.com>
Co-authored-by: lightclient <lightclient@protonmail.com>
Co-authored-by: Marcin Sobczak <77129288+marcindsobczak@users.noreply.github.com>
Co-authored-by: Vehorny <153144728+vehorny@users.noreply.github.com>
Co-authored-by: Martin HS <martin@swende.se>
Co-authored-by: Kolby Moroz Liebl <31669092+KolbyML@users.noreply.github.com>
Co-authored-by: Stefan Pingel <16143240+pinges@users.noreply.github.com>
Co-authored-by: joshieDo <93316087+joshieDo@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants