-
Notifications
You must be signed in to change notification settings - Fork 447
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
cmd/hivechain: add ability to create valid clique chain #938
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Eikix
pushed a commit
to kkrt-labs/hive
that referenced
this pull request
Mar 1, 2024
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.
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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Mario Vega <[email protected]> Co-authored-by: spencer <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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: [email protected] <[email protected]> * 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 <[email protected]> Signed-off-by: Sally MacFarlane <[email protected]> Signed-off-by: [email protected] <[email protected]> Co-authored-by: Parithosh Jayanthi <[email protected]> Co-authored-by: Felix Lange <[email protected]> Co-authored-by: Mario Vega <[email protected]> Co-authored-by: Dan Cline <[email protected]> Co-authored-by: spencer <[email protected]> Co-authored-by: Gabriel-Trintinalia <[email protected]> Co-authored-by: lightclient <[email protected]> Co-authored-by: Dan <[email protected]> Co-authored-by: spencer <[email protected]> Co-authored-by: Somnath <[email protected]> Co-authored-by: Sally MacFarlane <[email protected]> Co-authored-by: Kim De Mey <[email protected]> Co-authored-by: Delweng <[email protected]> Co-authored-by: Alexey <[email protected]> Co-authored-by: jangko <[email protected]> Co-authored-by: vuittont60 <[email protected]> Co-authored-by: Sina Mahmoodi <[email protected]> Co-authored-by: Jochem Brouwer <[email protected]> Co-authored-by: lightclient <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: Vehorny <[email protected]> Co-authored-by: Martin HS <[email protected]> Co-authored-by: Kolby Moroz Liebl <[email protected]> Co-authored-by: Stefan Pingel <[email protected]> Co-authored-by: joshieDo <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.