-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
Holocene hardfork test (kurtosis) #13192
Comments
@vdamle it would also be great to run it with an unpatched op-reth and confirm that we see the chain split. |
Once we have something working e2e, it would be good to:
|
Without transactions, with fix
|
Without transactions, on release
|
@geoknee and I looked into this. As noted above, I attempted to trigger a chain split using an unpatched version of https://github.com/ethereum-optimism/op-geth/blob/optimism/consensus/misc/eip1559/eip1559.go#L144 I believe in the case of the Kurtosis setup, both Based on the above determination, we believe the right next step is to concentrate on another bug paradigmxyz/reth#13121 that Minyhuk found, which should allow us to trigger a chain split at any point in time. To do this, we just need to call |
Reproduced the bug reported in paradigmxyz/reth#13121 using the image with the commit
As seen above,
We can now see in the logs of the
and in reth as well:
|
Verified that the bug cannot be reproduced in
We can see that updated
|
@vdamle what's the best way to include Nethermind in your testing? |
@swapnilraj If you build a Nethermind docker image, you could spin up a 2 node chain running |
Earlier today, @geoknee outlined a couple more scenarios for testing with Kurtosis using Environment setup:
Batcher Restart Test after a Pause
|
Batcher and Sequencer restart in quick succession
Sequencer log snippets
Batcher code snippets
batcher-logs-before-after-restart.log |
Holocene Straddle Awareness in BatcherAs noted in: #12122 Logs from recreate in Kurtosis attached.
batcher-holocene-activation-awareness.log |
…dme updates (#108) * Log private keys and addresses for Chain Operator roles when running a local L1. Removed trace logs in bash script fund.sh since the relevant info is now logged. I note that the `l1_network` binding wasn't set at all in `main.star` and is now set to `local` for a local L1 network. The private key/addresses are needed when a transaction needs to be sent to the contract -- which is a likely step in executing a test locally in Kurtosis. See [here](ethereum-optimism/optimism#13192 (comment)) * Log L1 faucet private key and address * Log L2 faucet private key and address (useful for running tx-fuzz) * Updates to readme with info on helpful kurtosis commands for inspecting local state. * Add sample config for geth/reth with custom batcher config Driven from the learnings of testing holocene hard fork chain split between `op-geth` and `op-reth` as noted in: ethereum-optimism/optimism#13192 (comment) The revised output from `fund.sh` locally is as follows: ``` Collect keys, and fund addresses Command returned with exit code '0' and the following output: -------------------- 0x3be78a6b8544134adb22fa909bfb93ee69a9e2b755076d3d859455832adb9218 0x0cf6c854e32a30be7c79b41d7841ab456b06530d31115ba651bb4bbe26545b5d 0x721cd59d1901ff718f299f14c0ecd2bbfa39b9248cbdfaccaca415e008ea0cb9 0xcdac4618e2128f1a3bc503ddc35e722896174681620ac7e41efa28c5a5f53414 0x77c5e2210e89b2d2cfd591f29b47723789cd76c58b6dde603a58c820171d0097 0xaa397e8c9d218413d130c38efe2666d15a73abdd604ae0411e4206c660eb9d62 0xa9ad8b78b3b0ddbd41b75271d6d9bdbfbe7b60c58e937272a7255ad542542d28 0xbb8c5f7490df7e2286aae608b7c2a1876b73164bde3d5bc9abf19590bcc464a5 0x5db0f1227071a0a719a978f6fea60d63c6974bf114eaaa08a1cfb777b2b58e54 0x924a64b99b825dcb1e88eb451ba90627a18c4f974d91fd4518704bd5ac49c197 Wallet private key and addresses { "proposerPrivateKey": "0x9d77c0558ed6f31e7be16c2f45fd1f3ec3f66d20526b7fe3961872d38ac98fe7", "proposerAddress": "0xb0994E702b603df7191cd68E6544f99126135e34", "batcherPrivateKey": "0xb3d2d558e3491a3709b7c451100a0366b5872520c7aa020c17a0e7fa35b6a8df", "batcherAddress": "0xD3F2c5AFb2D76f5579F326b0cD7DA5F5a4126c35", "sequencerPrivateKey": "0x459f58fd8ef3d9123333514d0f2445153fc29ddc43be239356dad70f506475d9", "sequencerAddress": "0xbb900Cf56918A2639dAA90c3f7DC5DCD2f5B9935", "challengerPrivateKey": "0x717c53f6d6c266889465d78a885cd0a2e22d41f73e21fa1f07ba5849c82d79c3", "challengerAddress": "0xf08f610d1956CAAAb34f18e9e0A122E389496529", "l2ProxyAdminPrivateKey": "0x93be1ab4efe7633d951f19783912817a264f70889cc230e6015627695041744b", "l2ProxyAdminAddress": "0x21DD8D15472844b905E603Ddd48A485a630B233b", "l1ProxyAdminPrivateKey": "0xa8574059a5e36acd4d6ea03e90fe8b5233cc87222b0b396f9b1d6f3e5d6368fa", "l1ProxyAdminAddress": "0x39Dc844B8b461c6de6c572cad9585d9f5A8DEa6A", "baseFeeVaultRecipientPrivateKey": "0x227e712ee48868fff4651301e8f366bea05e822db3429470bbc7ed2ee045cb67", "baseFeeVaultRecipientAddress": "0x9ef74F0e58fdEf70c11E587A45c0a85A3258DCeA", "l1FeeVaultRecipientPrivateKey": "0xe6414f68c9f0d5e3470955a39c1af602a3132f709130fea6304f126a78b7f6aa", "l1FeeVaultRecipientAddress": "0xA7B30F9e99A248C6D623eaaD7bce81217Bb84038", "sequencerFeeVaultRecipientPrivateKey": "0xc11b0cec865b74505976f6c7fc5736a701f1cdf9e46aa72c02d51c0fe6ec3fed", "sequencerFeeVaultRecipientAddress": "0x15947bF05662caD8DF55f004c055939b574f18c0", "systemConfigOwnerPrivateKey": "0x28978385446dde6ce493da611d6c9ae6193d960c1cb73ecfb25800e9c9017f4c", "systemConfigOwnerAddress": "0x8e44fEbeaE9C2F2Bc89480aE8084328Badc496c2", "l1FaucetPrivateKey": "0xeaba42282ad33c8ef2524f07277c03a776d98ae19f581990ce75becb7cfa1c23", "l1FaucetAddress": "0x589A698b7b7dA0Bec545177D3963A2741105C7C9", "l2FaucetPrivateKey": "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80", "l2FaucetAddress": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" } ``` --------- Co-authored-by: Vinod Damle <5338861+vdamle@users.noreply.github.com>
On behalf of @swapnilraj, we updated Nethermind recently to include a fix for Holocene that we didn't catch until we started using Kurtosis with the Optimism Package. With this fix, it is possible to create a Docker image (we provide one in our main repo, https://github.com/NethermindEth/nethermind) and include it in the In our testing, all three clients ( |
When running a multi-client chain, there was a reported chain-spit that occurred when Holocene was activated. For more info, see PR. This issue is written to outline a plan for testing Holocene hard fork in Kurtosis using both
op-geth
andop-reth
that includes the linked fix and ensure there is no chain-split.Prerequisites
Since we are testing a fix that was implemented in
reth
, we will use the latest images for all components exceptop-reth
, for which we will use a locally built image for testing.op-geth
op-node
op-reth:holocene-fix
built from:Tests
We will execute the first test below with
reth:v1.1.2
and check that we are able to reproduce the issue. Subsequently, we will a reth image which has the fix and make sure there is no chain split.kurtosis run . --args-file <file path>
, as outlined in the config yaml above -- without sending any transactions.op-geth
andop-reth
endpoints.SystemConfig.setEIP1559Params
using w3kurtosis clean -a
kurtosis run . --args-file <file path>
, as outlined in the config yaml above -- without sending any transactions.op-geth
andop-reth
endpoints.SystemConfig.setEIP1559Params
using w3In both cases, we need to ensure that there is no divergence between the hashes reported by
op-geth
andop-reth
.Script to check and dump block hashes
The text was updated successfully, but these errors were encountered: