diff --git a/Archive/EIPs-Wiki/EIP 69 Block format reorganisation.md b/Breakout-Room-Meetings/EIPs-Wiki/EIP 69 Block format reorganisation.md similarity index 100% rename from Archive/EIPs-Wiki/EIP 69 Block format reorganisation.md rename to Breakout-Room-Meetings/EIPs-Wiki/EIP 69 Block format reorganisation.md diff --git a/Archive/EIPs-Wiki/EIP 70 EVM Externatities Removal.md b/Breakout-Room-Meetings/EIPs-Wiki/EIP 70 EVM Externatities Removal.md similarity index 100% rename from Archive/EIPs-Wiki/EIP 70 EVM Externatities Removal.md rename to Breakout-Room-Meetings/EIPs-Wiki/EIP 70 EVM Externatities Removal.md diff --git a/Archive/EIPs-Wiki/EIP unknown merge opcodes CALL CALLCODE DELEGATECALL and rename to INT.md b/Breakout-Room-Meetings/EIPs-Wiki/EIP unknown merge opcodes CALL CALLCODE DELEGATECALL and rename to INT.md similarity index 100% rename from Archive/EIPs-Wiki/EIP unknown merge opcodes CALL CALLCODE DELEGATECALL and rename to INT.md rename to Breakout-Room-Meetings/EIPs-Wiki/EIP unknown merge opcodes CALL CALLCODE DELEGATECALL and rename to INT.md diff --git a/Archive/EIPs-Wiki/Meeting 2016 05 2.md b/Breakout-Room-Meetings/EIPs-Wiki/Meeting 2016 05 2.md similarity index 100% rename from Archive/EIPs-Wiki/Meeting 2016 05 2.md rename to Breakout-Room-Meetings/EIPs-Wiki/Meeting 2016 05 2.md diff --git a/Archive/EIPs-Wiki/Notes for Core Dev Meeting 9 2.md b/Breakout-Room-Meetings/EIPs-Wiki/Notes for Core Dev Meeting 9 2.md similarity index 100% rename from Archive/EIPs-Wiki/Notes for Core Dev Meeting 9 2.md rename to Breakout-Room-Meetings/EIPs-Wiki/Notes for Core Dev Meeting 9 2.md diff --git a/Archive/EIPs-Wiki/Notes.md b/Breakout-Room-Meetings/EIPs-Wiki/Notes.md similarity index 100% rename from Archive/EIPs-Wiki/Notes.md rename to Breakout-Room-Meetings/EIPs-Wiki/Notes.md diff --git a/Archive/ETH-1X/README.md b/Breakout-Room-Meetings/ETH-1X/README.md similarity index 100% rename from Archive/ETH-1X/README.md rename to Breakout-Room-Meetings/ETH-1X/README.md diff --git a/Archive/Upgrade Community Calls/Call_001.md b/Breakout-Room-Meetings/Upgrade Community Calls/Call_001.md similarity index 100% rename from Archive/Upgrade Community Calls/Call_001.md rename to Breakout-Room-Meetings/Upgrade Community Calls/Call_001.md diff --git a/Archive/interop/README.md b/Breakout-Room-Meetings/interop/README.md similarity index 100% rename from Archive/interop/README.md rename to Breakout-Room-Meetings/interop/README.md diff --git a/Archive/interop/deposit_contract_testnets/README.md b/Breakout-Room-Meetings/interop/deposit_contract_testnets/README.md similarity index 100% rename from Archive/interop/deposit_contract_testnets/README.md rename to Breakout-Room-Meetings/interop/deposit_contract_testnets/README.md diff --git a/Archive/interop/lockin/README.md b/Breakout-Room-Meetings/interop/lockin/README.md similarity index 100% rename from Archive/interop/lockin/README.md rename to Breakout-Room-Meetings/interop/lockin/README.md diff --git a/Archive/interop/lockin/goals-exercises.md b/Breakout-Room-Meetings/interop/lockin/goals-exercises.md similarity index 100% rename from Archive/interop/lockin/goals-exercises.md rename to Breakout-Room-Meetings/interop/lockin/goals-exercises.md diff --git a/Archive/interop/lockin/survey-results.md b/Breakout-Room-Meetings/interop/lockin/survey-results.md similarity index 100% rename from Archive/interop/lockin/survey-results.md rename to Breakout-Room-Meetings/interop/lockin/survey-results.md diff --git a/Archive/interop/meetups/collection.md b/Breakout-Room-Meetings/interop/meetups/collection.md similarity index 100% rename from Archive/interop/meetups/collection.md rename to Breakout-Room-Meetings/interop/meetups/collection.md diff --git a/Archive/interop/mocked_eth1data/README.md b/Breakout-Room-Meetings/interop/mocked_eth1data/README.md similarity index 100% rename from Archive/interop/mocked_eth1data/README.md rename to Breakout-Room-Meetings/interop/mocked_eth1data/README.md diff --git a/Archive/interop/mocked_start/README.md b/Breakout-Room-Meetings/interop/mocked_start/README.md similarity index 100% rename from Archive/interop/mocked_start/README.md rename to Breakout-Room-Meetings/interop/mocked_start/README.md diff --git a/Archive/interop/mocked_start/keygen.py b/Breakout-Room-Meetings/interop/mocked_start/keygen.py similarity index 100% rename from Archive/interop/mocked_start/keygen.py rename to Breakout-Room-Meetings/interop/mocked_start/keygen.py diff --git a/Archive/interop/mocked_start/keygen_10000_validators.yaml b/Breakout-Room-Meetings/interop/mocked_start/keygen_10000_validators.yaml similarity index 100% rename from Archive/interop/mocked_start/keygen_10000_validators.yaml rename to Breakout-Room-Meetings/interop/mocked_start/keygen_10000_validators.yaml diff --git a/Archive/interop/mocked_start/keygen_10_validators.yaml b/Breakout-Room-Meetings/interop/mocked_start/keygen_10_validators.yaml similarity index 100% rename from Archive/interop/mocked_start/keygen_10_validators.yaml rename to Breakout-Room-Meetings/interop/mocked_start/keygen_10_validators.yaml diff --git a/Archive/interop/mocked_start/requirements.txt b/Breakout-Room-Meetings/interop/mocked_start/requirements.txt similarity index 100% rename from Archive/interop/mocked_start/requirements.txt rename to Breakout-Room-Meetings/interop/mocked_start/requirements.txt diff --git a/Archive/interop/mocked_start/test_quickstart_states/README.md b/Breakout-Room-Meetings/interop/mocked_start/test_quickstart_states/README.md similarity index 100% rename from Archive/interop/mocked_start/test_quickstart_states/README.md rename to Breakout-Room-Meetings/interop/mocked_start/test_quickstart_states/README.md diff --git a/Archive/interop/mocked_start/test_quickstart_states/quickstart_genesis_16_1567777777.ssz b/Breakout-Room-Meetings/interop/mocked_start/test_quickstart_states/quickstart_genesis_16_1567777777.ssz similarity index 100% rename from Archive/interop/mocked_start/test_quickstart_states/quickstart_genesis_16_1567777777.ssz rename to Breakout-Room-Meetings/interop/mocked_start/test_quickstart_states/quickstart_genesis_16_1567777777.ssz diff --git a/Archive/interop/mocked_start/test_quickstart_states/quickstart_genesis_32_1567777777.ssz b/Breakout-Room-Meetings/interop/mocked_start/test_quickstart_states/quickstart_genesis_32_1567777777.ssz similarity index 100% rename from Archive/interop/mocked_start/test_quickstart_states/quickstart_genesis_32_1567777777.ssz rename to Breakout-Room-Meetings/interop/mocked_start/test_quickstart_states/quickstart_genesis_32_1567777777.ssz diff --git a/Network-Upgrade-Archive/Berlin/YOLOv2.md b/Network-Upgrade-Archive/Berlin/YOLOv2.md new file mode 100644 index 00000000..c7bef6b1 --- /dev/null +++ b/Network-Upgrade-Archive/Berlin/YOLOv2.md @@ -0,0 +1,61 @@ + +# Client Integration Testnet Specification - YOLOv2 + + +**Disclaimer: This is for testing basic infrastructure. It will be nuked. It is not for deploying dapps, nor does it define what will go into mainnet. For information on network upgrades, please follow the relevant meta EIPs and ongoing discussion on Ethereum/pm.** + + +The specification for Ephemeral Testnet Yolo. Clients who wish to sync need to implement the following features into their client. It is for testing basic infrastructure and will be nuked. + +## Specification + +Name: Yolo +ID: `YOLO-v2` + + - [x] [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) Commit Hash - [5edff4ae6ff62c7e0bbfad624fc3d0ba7dc84392](https://github.com/ethereum/EIPs/commit/5edff4ae6ff62c7e0bbfad624fc3d0ba7dc84392) + - [x] [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) Commit Hash - [e8accf22cdc5562d6982c560080c6cd6b7f94867](https://github.com/ethereum/EIPs/commit/e8accf22cdc5562d6982c560080c6cd6b7f94867) + - [x] [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) + +*[ ] Proposed - [x] Consensus to include.* +## Timeline + + - Deployed: + +## Client Consensus -> Implementation + +YOLO-v1 +| **Client** | Signal | Spec | Merged | Syncing | +|--------------|--------|------|--------|---------| +| Besu | x | x | x | x | +| EthereumJS | | | | | +| Geth | x | x | x | x | +| Nethermind | x | x | | | +| OpenEthereum | | | | | +| Trinity | | | | | + +**Signal** - +Client intends to participate. *(You are on the bus)* + +**Spec** - +Client is satisfied with the proposed specification. *(You agree with the direction)* + +**Merge** - +Changes are implemented in the client and configurable for YOLO. *(You are ready to hit the gas and go)* + +**Syncing** +Client syncs with the network + + + +## Copyright +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/Network-Upgrade-Archive/Berlin/YOLOv3.md b/Network-Upgrade-Archive/Berlin/YOLOv3.md new file mode 100644 index 00000000..a2f8de11 --- /dev/null +++ b/Network-Upgrade-Archive/Berlin/YOLOv3.md @@ -0,0 +1,51 @@ + +# Client Integration Testnet Specification - YOLOv3 + + +**Disclaimer: This is for testing basic infrastructure. It will be nuked. It is not for deploying dapps, nor does it define what will go into mainnet. For information on network upgrades, please follow the relevant meta EIPs and ongoing discussion on Ethereum/pm.** + + +The specification for Ephemeral Testnet Yolo. Clients who wish to sync need to implement the following features into their client. It is for testing basic infrastructure and will be nuked. + +## Specification + +Name: Yolo +ID: `YOLO-v3` + + - [x] [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) + - [x] [EIP-2315](https://eips.ethereum.org/EIPS/eip-2315) Commit Hash - [e8accf22cdc5562d6982c560080c6cd6b7f94867](https://github.com/ethereum/EIPs/commit/e8accf22cdc5562d6982c560080c6cd6b7f94867) + - [x] [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) + - [x] [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) + - [x] [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) + +*[ ] Proposed - [x] Consensus to include.* +## Timeline + + - Deployed: + +## Client Consensus -> Implementation + +YOLO-v3 +| **Client** | Signal | Spec | Merged | Syncing | +|--------------|--------|------|--------|---------| +| Besu | x | x | x | x | +| EthereumJS | x | x | x | x | +| Geth | x | x | x | x | +| Nethermind | x | x | x | x | +| OpenEthereum | x | x | x | x | + + +**Signal** - +Client intends to participate. *(You are on the bus)* + +**Spec** - +Client is satisfied with the proposed specification. *(You agree with the direction)* + +**Merge** - +Changes are implemented in the client and configurable for YOLO. *(You are ready to hit the gas and go)* + +**Syncing** +Client syncs with the network + +## Copyright +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/Network-Upgrade-Archive/Berlin/berlin-retro.md b/Network-Upgrade-Archive/Berlin/berlin-retro.md new file mode 100644 index 00000000..2484a544 --- /dev/null +++ b/Network-Upgrade-Archive/Berlin/berlin-retro.md @@ -0,0 +1,73 @@ +# Berlin Retrospective +To describe the process of preparing, activating and error handling during the Berlin upgrade. + +## OpenEthereum Mainnet Consensus Issue + +OpenEthereum's postmortem on the consensus issue can be found [here](https://docs.google.com/document/d/18BhIEB7V_f_GkL8NZptxq-xadu5sb8QUzego8YVVMUM/edit#). + +### Problematic Block Information +* Date and time (in UTC): Apr-15-2021 11:05:04 AM +UTC +* Block Number (Mainnet): 12244294 +* Block Hash (Mainnet): 0x53c7b43c15c489b012053d156bc5ef95f3f5d498c2d01a0a3d9f3cc1dd007601 +* Transaction: 0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247 + +### Timeline of Events + +**April 15, 2021 (all times in UTC)** +* 11:12 AM: ["I think etherscan just went down"](https://discordapp.com/channels/595666850260713488/745077610685661265/832211783883423754) shared in Eth R&D discord by `Agusx1211` +* 11:17 AM: ["all our openethereum nodes just died"](https://discordapp.com/channels/595666850260713488/745077610685661265/832211783883423754) shared in Eth R&D discord by `Peter [beaconcha.in]` +* 11:30 AM: [Confirmation](https://discord.com/channels/595666850260713488/745077610685661265/832216373312618508) by `denisgranha` from the OpenEthereum team that OpenEthereum nodes are having an issue and that the team is investigating it. +* 12:21 PM: [Zoom link shared by OpenEthereum](https://discord.com/channels/595666850260713488/745077610685661265/832229172126547998) for other developers to help find the issue. +* 12:41 PM: Potential fix for the bug identified, [PR opened](https://github.com/openethereum/openethereum/pull/364). +* 12:41 PM - 3:30 PM: Testing of potential fix by deploying against nodes and syncing to the head of the chain. Preparation for official release. +* 3:36 PM: [Confirmation](https://twitter.com/OpenEthereumOrg/status/1382752559073529856) that the potential fix is working. +* 5:47 PM: [Announcement](https://twitter.com/OpenEthereumOrg/status/1382752559073529856) of OpenEthereum v3.2.3 which contains the fix for the issue. + + +### Suggested Corrective Action +[Discord Suggestion](https://discordapp.com/channels/595666850260713488/745077610685661265/832280444967190559): +> Client tests must be run against mainnet spec **directly**. Having separate test spec and mainnet spec could be the reason for slippage as fuzzing can't catch this bug. +> It probably increases CI time and extra development effort, since it needs to take into consideration of the whole mainnet genesis block, and will probably have to fake block numbers so that it passes the activation block. But it is important because The test spec or the ropsten spec doesn't have non-active precompile definitions. + +On [AllCoreDevs 110](https://youtu.be/-H8UpqarZ1Y?t=732), a longer conversation about testing process improvements to catch such bugs in the future was had. The idea of having chain configurations on Hive be identical to mainnet was also noted as the only way to catch such an issue. + +### Resources + +A detailed Twitter thread about the issue: https://twitter.com/ralexstokes/status/1382750001026146304l. + +## Besu Testnet Consensus Issue + +TBA. + +## Berlin Planning + +### Upgrade summary +* Date and time (in UTC): Apr-15-2021 10:07:03 AM +UTC +* Block Number (Mainnet): 12244000 +* Block Hash (Mainnet): 0x1638380ab737e0e916bd1c7f23bd2bab2a532e44b90047f045f262ee21c42b21 +* Mined by: 0x1ad91ee08f21be3de0ba2ba6918e714da6b45836 (Hiveon Pool) + +### Process of EIP selection + +Berlin upgrade was following process described in [Shedding light on the Ethereum Network Upgrade Process](https://medium.com/ethereum-cat-herders/shedding-light-on-the-ethereum-network-upgrade-process-4c6186ed442c). + +### Timeline - Backlog check +- May 15, 2020: Proposal, decision and initial selection of EIPs for Berlin to spin up an [ephemeral testnet YOLO](https://medium.com/ethereum-cat-herders/yolo-an-ephemeral-test-network-for-ethereum-356d43179b1a) in [ACD 87](https://www.youtube.com/watch?v=bGgzALuyY3w&t=4788s) +- May 19, 2020: [Meta EIP-2657](https://eips.ethereum.org/EIPS/eip-2657) created for ephemeral testnet YOLO +- May 29, 2020: Selection of EIPs, a decision on the state-test name as Yolo-v1 (and not Berlin) in [ACD 88](https://github.com/ethereum/pm/blob/5198ef636a0f2c443a5c99374563ef285b002b0e/All%20Core%20Devs%20Meetings/Meeting%2088.md#decisions-made) +- June 03, 2020: Finalized spec of EIPs for v1, commit hash [added](https://github.com/ethereum/EIPs/pull/2657/commits/fb2a20f2d87a272edf0925f1e347b36644268f9b) to YOLO meta EIP +- June 03, 2020: Yolo v-1 deployed with [Geth](https://twitter.com/peter_szilagyi/status/1268123563850170368) +- Jun 10, 2020: [Open Ethereum](https://twitter.com/vorot93/status/1270597961014218752) and [Besu](https://github.com/hyperledger/besu/pull/1051) joined the network. +- June 10, 2020: [YOLO stopped](https://twitter.com/peter_szilagyi/status/1270824487886426113). It went out of disk. +- June 11, 2020: YOLO is back as [YOLT (You only live twice)](https://twitter.com/peter_szilagyi/status/1270931154267504643) +- June 12, 2020: Restarted at AWS cloud +- June 12, 2020: Proposed EIPs for Yolo v2 in [ACD meeting 89](https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%2089.md#3-yolo-testnet-update) +- June 22: [yolov1 sealer/bootnode](https://gitter.im/ethereum/AllCoreDevs?at=5ef07f5cfa0c9221fc5288f9) is up with a new IP +- September 18: yolov2 EIP selection in [ACD 96](https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%2096.md#decisions-made) +- October 30, 2020: EIP-2537 is not considered for yolov3, and will be delayed until after the next hardfork, decided in [ACD 99](https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%2099.md#decisions-made) +- November 27, 2020: EIP-2930 & EIP-2718 added to Berlin EIPs, decided in [ACD 1010](https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%20101.md#summary) +- March 08, 2021: Ethereum Berlin Upgrade [Announcement](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- Mar 10, 2021: Ropsten at block #9 812 189 +- Mar 17, 2021: Goerli at block #4 460 644 +- Mar 24, 2021: Rinkeby at block #8 290 928 +- Apr 15, 2021: Mainnet at block #12 244 000 diff --git a/Archive/Dencun/4844-readiness-checklist.md b/Network-Upgrade-Archive/Dencun/4844-readiness-checklist.md similarity index 100% rename from Archive/Dencun/4844-readiness-checklist.md rename to Network-Upgrade-Archive/Dencun/4844-readiness-checklist.md diff --git a/Archive/Dencun/dencun-pm.md b/Network-Upgrade-Archive/Dencun/dencun-pm.md similarity index 100% rename from Archive/Dencun/dencun-pm.md rename to Network-Upgrade-Archive/Dencun/dencun-pm.md diff --git a/Archive/Dencun/devnet-1.md b/Network-Upgrade-Archive/Dencun/devnet-1.md similarity index 100% rename from Archive/Dencun/devnet-1.md rename to Network-Upgrade-Archive/Dencun/devnet-1.md diff --git a/Archive/Dencun/devnet-10.md b/Network-Upgrade-Archive/Dencun/devnet-10.md similarity index 100% rename from Archive/Dencun/devnet-10.md rename to Network-Upgrade-Archive/Dencun/devnet-10.md diff --git a/Archive/Dencun/devnet-11.md b/Network-Upgrade-Archive/Dencun/devnet-11.md similarity index 100% rename from Archive/Dencun/devnet-11.md rename to Network-Upgrade-Archive/Dencun/devnet-11.md diff --git a/Archive/Dencun/devnet-12.md b/Network-Upgrade-Archive/Dencun/devnet-12.md similarity index 100% rename from Archive/Dencun/devnet-12.md rename to Network-Upgrade-Archive/Dencun/devnet-12.md diff --git a/Archive/Dencun/devnet-2.md b/Network-Upgrade-Archive/Dencun/devnet-2.md similarity index 100% rename from Archive/Dencun/devnet-2.md rename to Network-Upgrade-Archive/Dencun/devnet-2.md diff --git a/Archive/Dencun/devnet-3.md b/Network-Upgrade-Archive/Dencun/devnet-3.md similarity index 100% rename from Archive/Dencun/devnet-3.md rename to Network-Upgrade-Archive/Dencun/devnet-3.md diff --git a/Archive/Dencun/devnet-4.md b/Network-Upgrade-Archive/Dencun/devnet-4.md similarity index 100% rename from Archive/Dencun/devnet-4.md rename to Network-Upgrade-Archive/Dencun/devnet-4.md diff --git a/Archive/Dencun/devnet-5.md b/Network-Upgrade-Archive/Dencun/devnet-5.md similarity index 100% rename from Archive/Dencun/devnet-5.md rename to Network-Upgrade-Archive/Dencun/devnet-5.md diff --git a/Archive/Dencun/devnet-6.md b/Network-Upgrade-Archive/Dencun/devnet-6.md similarity index 100% rename from Archive/Dencun/devnet-6.md rename to Network-Upgrade-Archive/Dencun/devnet-6.md diff --git a/Archive/Dencun/devnet-7.md b/Network-Upgrade-Archive/Dencun/devnet-7.md similarity index 100% rename from Archive/Dencun/devnet-7.md rename to Network-Upgrade-Archive/Dencun/devnet-7.md diff --git a/Archive/Dencun/devnet-8.md b/Network-Upgrade-Archive/Dencun/devnet-8.md similarity index 100% rename from Archive/Dencun/devnet-8.md rename to Network-Upgrade-Archive/Dencun/devnet-8.md diff --git a/Archive/Dencun/devnet-9.md b/Network-Upgrade-Archive/Dencun/devnet-9.md similarity index 100% rename from Archive/Dencun/devnet-9.md rename to Network-Upgrade-Archive/Dencun/devnet-9.md diff --git a/Network-Upgrade-Archive/London/aleut.md b/Network-Upgrade-Archive/London/aleut.md new file mode 100644 index 00000000..69b8f9e2 --- /dev/null +++ b/Network-Upgrade-Archive/London/aleut.md @@ -0,0 +1,121 @@ +# Client Integration Testnet Specification - Aleut + +**Disclaimer: This network will soon be shut down in favor of [Baikal](/network-upgrades/client-integration-testnets/baikal.md).** + +The specification for the Aleut Client Integration Tesnet. Clients who wish to sync need to implement the following features into their client. It is for testing basic infrastructure and will be deprecated. + +## Specification + +**Name:** Aleut + +**ID:** `Aleut` + +**ChainId:** `7822` # The deepest part of the Aleutian trench has been measured at 7,822 metres + +**Genesis File:** + +
+ aleut.json + + ```json + { + "config":{ + "chainId":7822, + "homesteadBlock":0, + "daoForkSupport":false, + "eip150Block":0, + "eip155Block":0, + "eip158Block":0, + "byzantiumBlock":0, + "constantinopleBlock":0, + "petersburgBlock":0, + "istanbulBlock":0, + "muirGlacierBlock":0, + "berlinBlock":0, + "aleutBlock":10, + "clique":{ + "blockperiodseconds":15, + "epochlength":30000 + } + }, + "difficulty":"0x400", + "extraData":"0x000000000000000000000000000000000000000000000000000000000000000036267c845cc42b57ccb869d655e5d5fb620cc69a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gasLimit":"0x1312D00", + "alloc":{ + "fe3b557e8fb62b89f4916b721be55ceb828dbd73":{ + "balance":"90000000000000000000000" + }, + "627306090abaB3A6e1400e9345bC60c78a8BEf57":{ + "balance":"90000000000000000000000" + }, + "f17f52151EbEF6C7334FAD080c5704D77216b732":{ + "balance":"90000000000000000000000" + }, + "b8c3bfFb71F76BeE2B2f81bdBC53Ad4C43e3f58E":{ + "balance":"90000000000000000000000" + }, + "0x60AdC0F89a41AF237ce73554EDe170D733ec14E0":{ + "balance":"90000000000000000000000" + } + } +} + + ``` +
+ +**Static Nodes:** + +
+ static-nodes.json + + ```json + [ + "enode://0c72e2b7873e4342d725b5990c17adb2b159aad2ff5853de7e4910b25522a1f9e78f9cd802a8a3225b8fae4e994e522b50d6bd5a163eb3a7b49a0a73ca9a1c7e@3.12.166.199:30303", + "enode://aec88fd902744bf67705c098bf532b01017ccc3a156395508e2d9c4e7c22699ecccae1e7316614f8a2d4c5698a9be3fe6151ee25b9ed4aa052f88e112c65387a@164.90.171.157:31559", + "enode://8e6788508278e514268307f27528ffabd6c86e755b0abd5ef170502b6444b35231dd0c7183e902c6a566c650104fdcfa58c6de28b54533f3dc243af444a60f51@quilt.link:30308" + ] + ``` +
+ +**Included EIPs:** + - [x] [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) Commit Hash - [79f4fe6cbe0d323dfac7412270c6e8cf33e62af3](https://github.com/ethereum/EIPs/commit/79f4fe6cbe0d323dfac7412270c6e8cf33e62af3) + - [x] [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) Commit Hash - [081db1a6614e523dd791691cff7016e32c369912](https://github.com/ethereum/EIPs/commit/081db1a6614e523dd791691cff7016e32c369912) + +## Client Consensus -> Implementation + +| **Client** | Repo | Signal | Spec | Merged | Syncing | +|--------------|--------------------------|--------|------|--------|---------| +| Besu | [URL][besu-repo] | x | x | x | x | +| Geth | [URL][geth-repo] | x | x | | x | +| Nethermind | [URL][nethermind-repo] | x | x | x | x | +| OpenEthereum | [URL][openethereum-repo] | x | x | | | +| EthereumJS | [URL][ethereumjs-repo] | x | x | | | +| TurboGeth | [URL][turbogeth-repo] | x | x | x | x | + + +**Signal** - +Client intends to participate. *(You are on the bus)* + +**Spec** - +Client is satisfied with the proposed specification. *(You agree with the direction)* + +**Merge** - +Changes are implemented in the client and configurable for the network. *(You are ready to hit the gas and go)* + +**Syncing** +Client syncs with the network + +## Syncing Instructions: + +TBA + +## Copyright +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). + + +[besu-repo]: https://github.com/hyperledger/besu +[geth-repo]: https://github.com/ethereum/go-ethereum +[nethermind-repo]: https://github.com/NethermindEth/nethermind +[openethereum-repo]: https://github.com/openethereum/openethereum +[ethereumjs-repo]: https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/client +[turbogeth-repo]: https://github.com/ledgerwatch/turbo-geth diff --git a/Network-Upgrade-Archive/London/baikal.md b/Network-Upgrade-Archive/London/baikal.md new file mode 100644 index 00000000..ea879ea9 --- /dev/null +++ b/Network-Upgrade-Archive/London/baikal.md @@ -0,0 +1,905 @@ +# Client Integration Testnet Specification - Baikal + +**Disclaimer: This network will soon be shut down in favor of [Calaveras](/network-upgrades/client-integration-testnets/calaveras.md).** + +The specification for the Baikal Client Integration Tesnet. Clients who wish to sync need to implement the following features into their client. It is for testing basic infrastructure and will be deprecated. + +## Specification + +**Name:** Baikal + +**EthStats:** https://baikal.ethdevops.io/ + +**Faucet:** https://faucet.baikal.ethdevops.io/ + +**Explorer:** http://18.224.51.102:3000/ + +**ID:** `Baikal` + +**ChainId:** `1642` # The deepest point of Lake Baikal is 1642 meters. + +**NetworkId**: `1642` + +**Genesis File:** + +
+ + baikal.json + + ``` json + { + "config": { + "chainId": 1642, + "homesteadBlock": 0, + "eip150Block": 0, + "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "eip155Block": 0, + "eip158Block": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "istanbulBlock": 0, + "berlinBlock": 0, + "londonBlock": 500, + "clique": { + "period": 30, + "epoch": 30000 + } + }, + "nonce": "0x0", + "timestamp": "0x6092ca7f", + "extraData": "0x00000000000000000000000000000000000000000000000000000000000000005211cea3870c7ba7c6c44b185e62eecdb864cd8c560228ce57d31efbf64c200b2c200aacec78cf17a7148e784fe95a7a750335f8b9572ee28d72e7650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gasLimit": "0x47b760", + "difficulty": "0x1", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "0000000000000000000000000000000000000000": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000001": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000002": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000003": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000004": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000005": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000006": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000007": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000008": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000009": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000010": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000011": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000012": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000013": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000014": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000015": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000016": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000017": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000018": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000019": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000020": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000021": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000022": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000023": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000024": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000025": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000026": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000027": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000028": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000029": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000030": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000031": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000032": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000033": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000034": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000035": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000036": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000037": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000038": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000039": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000040": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000041": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000042": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000043": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000044": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000045": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000046": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000047": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000048": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000049": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000050": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000051": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000052": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000053": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000054": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000055": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000056": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000057": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000058": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000059": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000060": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000061": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000062": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000063": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000064": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000065": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000066": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000067": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000068": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000069": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000070": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000071": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000072": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000073": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000074": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000075": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000076": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000077": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000078": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000079": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000080": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000081": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000082": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000083": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000084": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000085": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000086": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000087": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000088": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000089": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000090": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000091": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000092": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000093": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000094": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000095": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000096": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000097": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000098": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000099": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009f": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000aa": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ab": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ac": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ad": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ae": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000af": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ba": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000bb": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000bc": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000bd": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000be": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000bf": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ca": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000cb": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000cc": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000cd": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ce": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000cf": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000da": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000db": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000dc": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000dd": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000de": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000df": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ea": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000eb": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ec": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ed": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ee": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ef": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000fa": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000fb": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000fc": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000fd": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000fe": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ff": { + "balance": "0x1" + }, + "0e89e2aedb1cfcdb9424d41a1f218f4132738172": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "60adc0f89a41af237ce73554ede170d733ec14e0": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "799d329e5f583419167cd722962485926e338f4a": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "7cf5b79bfe291a67ab02b393e456ccc4c266f753": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "8a8eafb1cf62bfbeb1741769dae1a9dd47996192": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "8ba1f109551bd432803012645ac136ddd64dba72": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "b02a2eda1b317fbd16760128836b0ac59b560e9d": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + } + }, + "number": "0x0", + "gasUsed": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ``` + +
+ +**Bootnodes:** + +``` +enode://9e1096aa59862a6f164994cb5cb16f5124d6c992cdbf4535ff7dea43ea1512afe5448dca9df1b7ab0726129603f1a3336b631e4d7a1a44c94daddd03241587f9@3.9.20.133:30303 +enode://8e6788508278e514268307f27528ffabd6c86e755b0abd5ef170502b6444b35231dd0c7183e902c6a566c650104fdcfa58c6de28b54533f3dc243af444a60f51@quilt.link:30308 +enode://14bed0619ef778342cb1ed18702004cb29f4324b7d411fc3d20adc8fe2d15c7bb30c663bd8767eaa32eaadcebc227a24e21c006028e12b9c38b25ea5e3147316@217.182.200.86:30303 +enode://39eb08bbfad87481553c471a63ff2a4b4885fffa4ff50f1cf46744d9ad6e2f764ede146fe4df563fa9ccda1a46b9b1a88fb08135e1bf1d71b320912499da773d@3.21.156.138:30303 +enode://aec88fd902744bf67705c098bf532b01017ccc3a156395508e2d9c4e7c22699ecccae1e7316614f8a2d4c5698a9be3fe6151ee25b9ed4aa052f88e112c65387a@164.90.171.157:31558 +``` + +**Included EIPs:** + - [x] [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) Commit Hash - [efd64dba56f485eb6eb51567ee83819a12fa0bda](https://github.com/ethereum/EIPs/commit/efd64dba56f485eb6eb51567ee83819a12fa0bda) + - [x] [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) Commit Hash - [081db1a6614e523dd791691cff7016e32c369912](https://github.com/ethereum/EIPs/commit/081db1a6614e523dd791691cff7016e32c369912) + - [x] [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) Commit Hash - [6079eba5d1344a6b68075f79c14d4b7caf13ef53](https://github.com/ethereum/EIPs/commit/6079eba5d1344a6b68075f79c14d4b7caf13ef53) + - [x] [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) Commit Hash - [168245a87a5a21890cb909e1624135fff63dea71](https://github.com/ethereum/EIPs/commit/168245a87a5a21890cb909e1624135fff63dea71) + +## Client Consensus -> Implementation + +| **Client** | Repo | Signal |Merged | Syncing | +|--------------|--------------------------|--------|-------|---------| +| Besu | [URL][besu-repo] | x | x | x | +| Geth | [URL][geth-repo] | x | x | x | +| Nethermind | [URL][nethermind-repo] | x | x | x | +| OpenEthereum | [URL][openethereum-repo] | x | | | +| EthereumJS | [URL][ethereumjs-repo] | x | | | +| TurboGeth | [URL][turbogeth-repo] | x | | | + + +**Signal** - +Client intends to participate. *(You are on the bus)* + +**Merge** - +Changes are implemented in the client and configurable for the network. *(You are ready to hit the gas and go)* + +**Syncing** +Client syncs with the network + +## Syncing Instructions: + +For go-ethereum, either use [this branch](https://github.com/ethereum/go-ethereum/pull/22837) or this docker image: `holiman/geth-baikal:latest`. + +## Copyright +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). + + +[besu-repo]: https://github.com/hyperledger/besu +[geth-repo]: https://github.com/ethereum/go-ethereum +[nethermind-repo]: https://github.com/NethermindEth/nethermind +[openethereum-repo]: https://github.com/openethereum/openethereum +[ethereumjs-repo]: https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/client +[turbogeth-repo]: https://github.com/ledgerwatch/turbo-geth diff --git a/Network-Upgrade-Archive/London/calaveras.md b/Network-Upgrade-Archive/London/calaveras.md new file mode 100644 index 00000000..cce3e26e --- /dev/null +++ b/Network-Upgrade-Archive/London/calaveras.md @@ -0,0 +1,926 @@ +# Client Integration Testnet Specification - Calaveras + +**Disclaimer: This is for testing basic infrastructure. It will be shut down. It is not for deploying dapps, nor does it guarantee that EIPs included will go into mainnet.** + +The specification for the Calaveras Client Integration Tesnet. Clients who wish to sync need to implement the following features into their client. It is for testing basic infrastructure and will be deprecated. + +## Specification + +**Name:** Calaveras + +**EthStats:** https://calaveras.ethdevops.io/ + +**Faucet:** https://faucet.calaveras.ethdevops.io/ + +**Explorer:** http://18.224.51.102:3000/ + +**ID:** `Calaveras` + +**ChainId:** `123` # The Calaveras fault line extends over 123km. + +**NetworkId**: `123` + +**JSON RPC endpoint:** http://18.224.51.102:8545/ + +**Genesis File:** + +
+ + calaveras.json + + ``` + { + "config": { + "chainId": 123, + "homesteadBlock": 0, + "eip150Block": 0, + "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "eip155Block": 0, + "eip158Block": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "istanbulBlock": 0, + "berlinBlock": 0, + "londonBlock": 500, + "clique": { + "period": 30, + "epoch": 30000 + } + }, + "nonce": "0x0", + "timestamp": "0x60b3877f", + "extraData": "0x00000000000000000000000000000000000000000000000000000000000000005211cea3870c7ba7c6c44b185e62eecdb864cd8c560228ce57d31efbf64c200b2c200aacec78cf17a7148e784fe95a7a750335f8b9572ee28d72e7650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "gasLimit": "0x47b760", + "difficulty": "0x1", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "0000000000000000000000000000000000000000": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000001": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000002": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000003": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000004": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000005": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000006": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000007": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000008": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000009": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000000f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000010": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000011": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000012": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000013": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000014": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000015": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000016": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000017": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000018": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000019": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000001f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000020": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000021": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000022": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000023": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000024": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000025": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000026": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000027": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000028": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000029": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000002f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000030": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000031": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000032": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000033": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000034": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000035": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000036": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000037": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000038": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000039": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000003f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000040": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000041": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000042": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000043": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000044": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000045": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000046": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000047": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000048": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000049": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000004f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000050": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000051": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000052": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000053": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000054": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000055": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000056": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000057": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000058": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000059": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000005f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000060": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000061": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000062": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000063": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000064": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000065": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000066": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000067": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000068": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000069": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000006f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000070": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000071": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000072": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000073": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000074": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000075": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000076": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000077": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000078": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000079": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000007f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000080": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000081": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000082": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000083": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000084": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000085": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000086": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000087": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000088": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000089": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000008f": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000090": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000091": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000092": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000093": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000094": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000095": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000096": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000097": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000098": { + "balance": "0x1" + }, + "0000000000000000000000000000000000000099": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009a": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009b": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009c": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009d": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009e": { + "balance": "0x1" + }, + "000000000000000000000000000000000000009f": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000a9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000aa": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ab": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ac": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ad": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ae": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000af": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000b9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ba": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000bb": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000bc": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000bd": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000be": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000bf": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000c9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ca": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000cb": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000cc": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000cd": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ce": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000cf": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000d9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000da": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000db": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000dc": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000dd": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000de": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000df": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000e9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ea": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000eb": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ec": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ed": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ee": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ef": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f0": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f1": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f2": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f3": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f4": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f5": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f6": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f7": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f8": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000f9": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000fa": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000fb": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000fc": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000fd": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000fe": { + "balance": "0x1" + }, + "00000000000000000000000000000000000000ff": { + "balance": "0x1" + }, + "0e89e2aedb1cfcdb9424d41a1f218f4132738172": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "1041afbcb359d5a8dc58c15b2ff51354ff8a217d": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "236ff1e97419ae93ad80cafbaa21220c5d78fb7d": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "60adc0f89a41af237ce73554ede170d733ec14e0": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "799d329e5f583419167cd722962485926e338f4a": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "7cf5b79bfe291a67ab02b393e456ccc4c266f753": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "8a8eafb1cf62bfbeb1741769dae1a9dd47996192": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "8ba1f109551bd432803012645ac136ddd64dba72": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "b02a2eda1b317fbd16760128836b0ac59b560e9d": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "badc0de9e0794b049b5ea63c3e1e698a3476c172": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "f0300bee898ae272eb347e8369ac0c76df42c93f": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + }, + "fe3b557e8fb62b89f4916b721be55ceb828dbd73": { + "balance": "0x200000000000000000000000000000000000000000000000000000000000000" + } + }, + "number": "0x0", + "gasUsed": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000" +} + ``` +
+ +**Genesis hash:** `0xeb9233d066c275efcdfed8037f4fc082770176aefdbcb7691c71da412a5670f2` + +**Genesis stateroot:** `0x664c93de37eb4a72953ea42b8c046cdb64c9f0b0bca5505ade8d970d49ebdb8c` + +**Bootnodes:** + +``` +enode://39eb08bbfad87481553c471a63ff2a4b4885fffa4ff50f1cf46744d9ad6e2f764ede146fe4df563fa9ccda1a46b9b1a88fb08135e1bf1d71b320912499da773d@3.21.156.138:30303 +enode://9e1096aa59862a6f164994cb5cb16f5124d6c992cdbf4535ff7dea43ea1512afe5448dca9df1b7ab0726129603f1a3336b631e4d7a1a44c94daddd03241587f9@3.9.20.133:30303 +``` + +**Other information:** + +- The new ethstats password is `calaveras` where it was `baikal` before; +- New dns-names will use `calaveras` instead of `baikal`. + +**Included EIPs:** + - [x] [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) Commit Hash - [c0e7f864c5b0997e57ee10d6dfc527de369a5d35](https://github.com/ethereum/EIPs/commit/c0e7f864c5b0997e57ee10d6dfc527de369a5d35) + - [x] [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) Commit Hash - [081db1a6614e523dd791691cff7016e32c369912](https://github.com/ethereum/EIPs/commit/081db1a6614e523dd791691cff7016e32c369912) + - [x] [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) Commit Hash - [6079eba5d1344a6b68075f79c14d4b7caf13ef53](https://github.com/ethereum/EIPs/commit/6079eba5d1344a6b68075f79c14d4b7caf13ef53) + - [x] [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) Commit Hash - [168245a87a5a21890cb909e1624135fff63dea71](https://github.com/ethereum/EIPs/commit/168245a87a5a21890cb909e1624135fff63dea71) + +## Client Consensus -> Implementation + +| **Client** | Repo | Signal |Merged | Syncing | +|--------------|--------------------------|--------|-------|---------| +| Besu | [URL][besu-repo] | x | x | x | +| Geth | [URL][geth-repo] | x | x | x | +| Nethermind | [URL][nethermind-repo] | x | x | x | +| OpenEthereum | [URL][openethereum-repo] | x | | | +| EthereumJS | [URL][ethereumjs-repo] | x | | | +| Erigon | [URL][erigon-repo] | x | | | + + +**Signal** - +Client intends to participate. *(You are on the bus)* + +**Merge** - +Changes are implemented in the client and configurable for the network. *(You are ready to hit the gas and go)* + +**Syncing** +Client syncs with the network + +## Syncing Instructions: + +TBA. + +## Copyright +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). + +[besu-repo]: https://github.com/hyperledger/besu +[geth-repo]: https://github.com/ethereum/go-ethereum +[nethermind-repo]: https://github.com/NethermindEth/nethermind +[openethereum-repo]: https://github.com/openethereum/openethereum +[ethereumjs-repo]: https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/client +[erigon-repo]: https://github.com/ledgerwatch/erigon diff --git a/Network-Upgrade-Archive/London/london-ecosystem-readinesss.md b/Network-Upgrade-Archive/London/london-ecosystem-readinesss.md new file mode 100644 index 00000000..2a74575c --- /dev/null +++ b/Network-Upgrade-Archive/London/london-ecosystem-readinesss.md @@ -0,0 +1,118 @@ +# London Ecosystem Readiness Checklist +Tooling, Libraries and other Infrastructure + +See the [1559 Cheatsheet for Implementers](https://hackmd.io/4YVYKxxvRZGDto7aq7rVkg?view) for the latest resources to help you along. + +If you know about a status update please add a PR to this document or post on the latest [update issue](https://github.com/ethereum/eth1.0-specs/issues/198) for aggregated inclusion on a weekly basis. + +## London Network Upgrade + +For a list of included EIPs see the [specification](./mainnet-upgrades/london.md) document. + +Tracking: `active` +⭕ - Not Started +🛠️ - In Progress +✅ - Complete + +### Developer Tools + +| Name | Description | Dependencies | Work | EIPs | Release | Status +|---|---|---|---|---|---|---| +| [Hardhat][hardhat-link] |Framework |EthereumJS, Ethers | | All |[v2.5.0][hardhat-release] | ✅ +| [Truffle][truffle-link] |Framework |EthereumJS, Web3.js, Ethers | | All | | 🛠️ +| [DappTools][dapptools-link] |Framework | - | [URL][dapptools-work] | All | [v0.48.0][dapptools-release] | ✅ +| [Remix][remix-link] | IDE |EthereumJS, Web3.js, Ethers | | All | | 🛠️ +| [Waffle][waffle-link] |Framework |Ganache, Ethers.js, Typechain | | All | | 🛠️ +| [Brownie][brownie-link] |Framework |Web3.py | | All | [v1.16.0][brownie-release] | ✅ +| [OpenZeppelin][oz-link] |Smart Contract Security |Hardhat | | ? | | 🛠️ +| [Tenderly][tenderly-link] |Contract Monitoring |Hardhat |  | 1559 |N/A | ✅ +| [hardhat-deploy][hardhat-deploy-link] |Contract Deployment |Hardhat, Ethers | | ? | | ⭕ +| [solidity-coverage][solidity-coverage-link] |Contract Testing |Hardhat, Solidity | | ? | | ⭕ +| [Typechain][typechain-link] |Language Tool |Ethers, Truffle, Hardhat, Web3.js, Solidity | | ? | [Releases][typechain-release] | ✅ +| [Solidity][solidity-link] |Language | - | | 3198 | [v0.8.7][solidity-release] | ✅ + +[hardhat-link]: https://github.com/nomiclabs/hardhat +[hardhat-release]: https://github.com/nomiclabs/hardhat/releases/tag/hardhat-core-v2.5.0 +[truffle-link]: https://github.com/trufflesuite/truffle +[dapptools-link]: https://github.com/dapphub/dapptools +[remix-link]: https://github.com/ethereum/remix-project +[waffle-link]: https://github.com/EthWorks/Waffle +[brownie-link]: https://github.com/eth-brownie/brownie +[brownie-release]: https://github.com/eth-brownie/brownie/releases/tag/v1.16.0 +[oz-link]: https://github.com/OpenZeppelin +[tenderly-link]: https://github.com/Tenderly +[hardhat-deploy-link]: https://github.com/wighawag/hardhat-deploy +[solidity-coverage-link]: https://github.com/sc-forks/solidity-coverage +[typechain-link]: https://github.com/ethereum-ts/TypeChain +[typechain-release]: https://github.com/ethereum-ts/TypeChain/releases +[solidity-link]: http://soliditylang.org +[solidity-release]: https://github.com/ethereum/solidity/releases/tag/v0.8.7 +[dapptools-work]:https://github.com/dapphub/dapptools/pull/688 +[dapptools-release]: https://github.com/dapphub/dapptools/releases/tag/hevm%2F0.48.0 + + +### Libraries + +| Name | Description | Dependencies | Work | EIPs | Release | Status +|---|---|---|---|---|---|---| +| [Web3.js][web3js-link] |Network API (JavaScript) | EthereumJS |  |1559 |[v1.5.0][web3js-release] |✅ +| [Ethers.js][ethers-link] |Network API (JavaScript) | | [URL][ethers-work] |1559 |[v5.4.1][ethers-release] |✅ +| [EthereumJS][ethereumjs-link] |Libraries | | [URL][ethereumjs-work] | All |[Releases][ethereumjs-release] |✅ +| [Web3.py][web3py-link] |Network API (Python) | | [URL][web3py-work] |1559 |[v5.21.0][web3py-release] |✅ +| [Web3j][web3j-link] |Network API (Java) | | [URL][web3j-work] |1559 |[v4.8.6][web3j-release] |✅ +| [Nethereum][nethereum-link] |Network API (.Net) | |  |1559 |[v4.0.0][nethereum-release] |✅ +| [KEthereum][kethereum-link] |Network API (Kotlin) | | [URL][kethereum-work] |1559 |[v0.84.9][kethereum-release] |✅ + +[web3js-link]: https://github.com/ChainSafe/web3.js +[web3js-release]: https://github.com/ChainSafe/web3.js/releases/tag/v1.5.0 +[ethers-link]: https://github.com/ethers-io/ethers.js +[ethers-work]: https://github.com/ethers-io/ethers.js/issues/1610 +[ethers-release]: https://github.com/ethers-io/ethers.js/releases/tag/v5.4.1 +[ethereumjs-link]: https://github.com/ethereumjs/ethereumjs-monorepo +[ethereumjs-work]: https://github.com/ethereumjs/ethereumjs-monorepo/issues/1211 +[ethereumjs-release]: https://github.com/ethereumjs/ethereumjs-monorepo/pull/1263#issuecomment-849429331 +[web3py-link]: https://github.com/ethereum/web3.py +[web3py-work]: https://github.com/ethereum/web3.py/issues/1835 +[web3py-release]: https://web3py.readthedocs.io/en/latest/releases.html#v5-21-0-2021-07-12 +[web3j-link]: https://github.com/web3j/web3j +[web3j-work]: https://github.com/web3j/web3j/pull/1417 +[web3j-release]: https://github.com/web3j/web3j/releases/tag/v4.8.6 +[nethereum-link]: https://github.com/Nethereum/Nethereum +[nethereum-release]: https://github.com/Nethereum/Nethereum/releases/tag/4.0.0 +[kethereum-link]: https://github.com/komputing/KEthereum +[kethereum-work]: https://github.com/komputing/KEthereum/issues/101 +[kethereum-release]: https://github.com/komputing/KEthereum/commit/8c1386853301e792f798d148677812c04ff0e434 + +### Infrastructure + +Many of these projects may not update until much closer to the designated London block number. + +| Name | Description | Dependencies | Work | EIPs | Status +|---|---|---|---|---|---| +| [Amazon Web Services][AWS-link] |managed Ethereum nodes | Geth | | 1559 | ✅ +| [Blocknative][blocknative-link] |Mempool Explorer |  | | 1559 |✅ +| [Infura][infura-link] |Ethereum APIs |  | | 1559 |✅ +| [ETHGasStation][ethgasstation-link] | Metrics for the gas market | Web3.js | | 1559 | |🛠️   +| [POKT][pocket-link] |Request API |  | | 1559 |⭕ +| [Etherscan][etherscan-link] |Block Explorer |  | | 1559 |✅ +| [MetaMask][metamask-link] |Browser Extension | EthereumJS, Ethers, Web3, ? | [URL][metamask-work] | 1559 |✅ +| [Ethernodes][ethernodes-link] |Node Explorer | Eth 1.0 Clients | | ? |✅ +| [TREZOR][trezor-link] |Hardware Wallet |  | [URL][trezor-work] | 1559 |🛠️ +| [WallETH][walleth-link] |Wallet | KEthereum | [URL][walleth-work] | 1559 |🛠️   +| [Ledger][ledger-link] |Hardware Wallet | Ethers | | 1559 |🛠️   + + +[AWS-link]: https://aws.amazon.com/managed-blockchain/ +[blocknative-link]: https://github.com/blocknative +[infura-link]: https://github.com/INFURA +[pocket-link]: https://pokt.network/ +[etherscan-link]: https://github.com/etherscan +[metamask-link]: https://github.com/MetaMask +[metamask-work]: https://github.com/MetaMask/metamask-mobile/issues/2571 +[ethernodes-link]: https://www.ethernodes.org/ +[trezor-link]: https://trezor.io +[trezor-work]: https://github.com/trezor/connect/pull/874 +[walleth-link]: https://walleth.org +[walleth-work]: https://github.com/walleth/walleth/issues/523 +[ledger-link]: https://ledger.com +[ethgasstation-link]: https://ethgasstation.info diff --git a/Network-Upgrade-Archive/London/london-retro.md b/Network-Upgrade-Archive/London/london-retro.md new file mode 100644 index 00000000..4bcef318 --- /dev/null +++ b/Network-Upgrade-Archive/London/london-retro.md @@ -0,0 +1,124 @@ +# London Testnet Retrospective + +## Ropsten Consensus Issue + +### Overview + +On July 21, 2021, the OpenEthereum team noticed their node had stopped progressing on Ropsten at block `10679538`. The issue, originally thought to be in OpenEthereum, was in how the go-ethereum implementation checked the balance of the transaction sender for 1559-style transactions. An invalid transaction, whose sender balance covered only the effective gas used by the transaction, but not the transaction's `maxFeePerGas` total was included in a block. Because Ropsten miners were exclusively running go-ethereum, this block was then accepted by other go-ethereum miners, despite being rejected by some other clients on the network. Specifically, OpenEthereum and Besu rejected the transaction/block, while Nethermind, go-ethereum, and Erigon (whose implementation was partially forked from the go-ethereum code) accepted them. The cause of the issue was found and fixed in the following releases: + +* go-ethereum: [v1.10.6](https://github.com/ethereum/go-ethereum/releases/tag/v1.10.6), [fix PR](https://github.com/ethereum/go-ethereum/pull/23244/files); +* Erigon: [v2021.07.04-alpha](https://github.com/ledgerwatch/erigon/releases/tag/v2021.07.04), [fix PR](https://github.com/ledgerwatch/erigon/pull/2415); +* Nethermind: [v1.10.79](https://github.com/NethermindEth/nethermind/releases/tag/1.10.79), [fix PR](https://github.com/NethermindEth/nethermind/pull/3238). + +### Problematic Block Information + +* Network: Ropsten +* Number: 10679538 +* Hash: 0x1252a34c4f2b061adc609e909d958c02e1ac39043e2e60c0ec47e565e3f625f1 +* [OpenEthereum debug logs](https://gist.github.com/timbeiko/42dd5eee676aea6060dab04b6e0e9c34) +
+ eth_getBlock output (go-ethereum) + +``` +eth.getBlock("0x1252a34c4f2b061adc609e909d958c02e1ac39043e2e60c0ec47e565e3f625f1") +{ + baseFeePerGas: 11, + difficulty: 1124214874, + extraData: "0xd883010a05846765746888676f312e31352e36856c696e7578", + gasLimit: 8000000, + gasUsed: 1762587, + hash: "0x1252a34c4f2b061adc609e909d958c02e1ac39043e2e60c0ec47e565e3f625f1", + logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + miner: "0xfbb61b8b98a59fbc4bd79c23212addbefaeb289f", + mixHash: "0x178c542ebd5b730aa141b3e07fce663b81d7f5485011cca55b5cd55dc39b2550", + nonce: "0x98728302c513a677", + number: 10679538, + parentHash: "0xe936ee0e5a915b9c163a7a1ff67269dd5f1ccb981f91b269a2130711e6a62598", + receiptsRoot: "0x09a6eb2bf38000dd934b2cdc66f7f7923397ddd6d9cd1ac69379aaed73d00f1e", + sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + size: 5175, +stateRoot: "0xa942f7462d923a5e292627b64e1b20cc314bac31f7e72ecb02b65d954d12f758", + timestamp: 1626863988, + totalDifficulty: 34224959923696599, + transactions: ["0x07ca8f5634d634e2eb67a9af6f9d510d73d3c2f0393f0e0490e7c0b4c18fdf0e", "0x9dbef6da5331b085d1dcc70eaa028376fd0452c49992e5ddccc132f4d42467cc", "0xdfa858a98cab341e540fc2da8abfd0b298df22a9ee9eff0c6e1edf4828ab9b84", "0x01bdfaba318f4c0b2878db0d413a20d3a2669ebbaa5c4e8f6901bdc9a01a99ec", "0xd9d2aa19f747b04863eb13a2698cd8a3c96b2463d2cf7eb60d7ca3ea8e2d45e3", "0xf5ee17e9bf8bc4fe3325860d91535d1eb98bc1d83f39fe998e0b6c4706c581c5"], +transactionsRoot: "0x6e6f39318ad2e60969e2422977deffd42dc34ac7bdbb6fb1934541c044f18774", +uncles: [] +} +``` + +
+ +### Timeline of Events + +Note: all times listed are in [Pacific Time](https://www.timeanddate.com/worldclock/converter.html?iso=20210721T180000&p1=tz_pt) + +July 21, 2021 + +* 3:39: Block 10679537 is [mined on Ropsten](https://ropsten.etherscan.io/block/10679537) +* 6:53: OpenEthereum developer posts in the #1559-dev channel of the Ethereum R&D discord that their node has stopped on block 10679538 on Ropsten. +* 6:58: `@smixx` says their Ropsten node is at block 10680453. +* 7:36: Besu confirms they are also rejecting block 10679538. +* 7:51: Miner of block 10679538 is confirmed to be a go-ethereum node. +* 7:55: Confirmation that go-ethereum miners are still progressing on the chain beyond block 10679538. +* 7:56: Confirmation that Nethermind also accepted block 10679538. +* 8:08: Possible root cause for the issue identified in go-ethereum. +* 8:43: [Pull request opened in go-ethereum](https://github.com/ethereum/go-ethereum/pull/23244/files) with candidate fix. +* 8:46: [Pull request opened in Erigon](https://github.com/ledgerwatch/erigon/pull/2415) with candidate fix. +* 9:01: Updated go-ethereum and Besu miners restarted on Ropsten (erroneous chain now up to block 10680803). +* 9:43: EthereumJS confirmed to have the same issue as go-ethereum, Erigon and Nethermind. +* 10:57 [Pull request opened in Nethermind](https://github.com/NethermindEth/nethermind/pull/3238) with candidate fix. +* 19:22 Block [10680804](https://ropsten.etherscan.io/block/10680804) mined with fixed release. + +July 22, 2021 + +* 7:54: go-ethereum release with a fix for the issue, [v1.10.6](https://github.com/ethereum/go-ethereum/releases/tag/v1.10.6) +* ~8:00: Nethermind release with a fix for the issue [v1.10.79](https://github.com/NethermindEth/nethermind/releases/tag/1.10.79) +* ~9:00: Erigon release with a fix for the issue, [v2021.07.04-alpha](https://github.com/ledgerwatch/erigon/releases/tag/v2021.07.04) + +### Suggested Corrective Actions + +#### Increase Clarity of Assertions in Specification + +[This commit](https://github.com/ethereum/EIPs/commit/ee7053ead7fb730a3f9178e7c7ad9e1b8cf3ee6c#diff-c7a67afc8ee3b0ff2a29ddb3cecd13fe0ce30f3c96def22f117456987f6a50a2) added new assertions to the validity of EIP-1559 transactions. Specifically, on line 217 it adds the following assertion: + +``` +assert sender.balance >= gasLimit * transaction.max_fee_per_gas +``` + +A few lines above (L207), though, `sender.balance` is modified to substract from it the transaction's amount (`sender.balance -= transaction.amount`). This led to confusion, as some client teams used the full `sender.balance` (i.e. pre-subtraction of `transaction.amount`) when checking the assertion defined on line 217, rather than the updated value. + +One suggested fix is to move this assertion closer to when the `sender.balance` value is updated, similarly to the other assertion on line 208. + +**Update: a fix for this was proposed in [this PR](https://github.com/ethereum/EIPs/pull/3681)** + +#### Go-Ethereum Recovery + +[Notes from @holiman](https://github.com/ethereum/pm/issues/354#issuecomment-885687324) about recovery from the bug in go-ethereum: + +##### Synced node followed wrong chain + +You were running `geth`, and were in sync. At block `X`, the fork happened. Your node followed the erroneous higher-td chain, and at block `Z`, you stop the node and update to the patched version. + +Problem description; The node is still on the 'bad' chain. +Solution: Do a `debug.setHead{X-1)` to jump to before the fork. This internally will rewind the chain to _some_ state before `X`. It might not be `X-1`, since `geth` might not _have_ the full state for that block, but it will have the state somewhere. Usually, geth flushes the state to disk every ~10K blocks (or whatever corresponds to 1 hour processing), and/or during shutdown. If geth is running in `gcmode=archive`, then it flushes every block. + + +##### Syncing in the presence of a wrong higher-td chain + +You are syncing a `geth`-node, and a fork has occurred at block `X`. Since the fork has already happened, and the erroneous chain has higher TD, you will most likely wind up on the 'wrong' side of the chain, with a pivot block `X+M`. If this happens, you _do not have_ any state for blocks `=) +``` +So you'd do `geth --whitelist 123123=0x2342fafa9af9af9af9af9af9` + +The whitelist means that geth, when peering with another peer, will ask the peer "what's your block `123123`". If it gets a header back with a hash that doesn't match the whitelist, it will disconnect from that peer. So essentially, the node will isolate itself from peers on the wrong chain, and only connect to peers that will deliver blocks from the shorter (but correct) chain. + +### Upgrade summary +* Date and time (in UTC): Aug-05-2021 12:33:42 PM +UTC +* Block Number (Mainnet): 12965000 +* Block Hash (Mainnet): 0x9b83c12c69edb74f6c8dd5d052765c1adf940e320bd1291696e6fa07829eee71 +* Mined by: 0x7777788200b672a42421017f65ede4fc759564c8 + diff --git a/Archive/Merge/CommunityCall_Meeting_01.md b/Network-Upgrade-Archive/Merge/CommunityCall_Meeting_01.md similarity index 100% rename from Archive/Merge/CommunityCall_Meeting_01.md rename to Network-Upgrade-Archive/Merge/CommunityCall_Meeting_01.md diff --git a/Archive/Merge/CommunityCall_Meeting_02.md b/Network-Upgrade-Archive/Merge/CommunityCall_Meeting_02.md similarity index 100% rename from Archive/Merge/CommunityCall_Meeting_02.md rename to Network-Upgrade-Archive/Merge/CommunityCall_Meeting_02.md diff --git a/Archive/Merge/CommunityCall_Meeting_03.md b/Network-Upgrade-Archive/Merge/CommunityCall_Meeting_03.md similarity index 100% rename from Archive/Merge/CommunityCall_Meeting_03.md rename to Network-Upgrade-Archive/Merge/CommunityCall_Meeting_03.md diff --git a/Archive/Merge/CommunityCall_Meeting_04.md b/Network-Upgrade-Archive/Merge/CommunityCall_Meeting_04.md similarity index 100% rename from Archive/Merge/CommunityCall_Meeting_04.md rename to Network-Upgrade-Archive/Merge/CommunityCall_Meeting_04.md diff --git a/Archive/Merge/CommunityCall_Meeting_05.md b/Network-Upgrade-Archive/Merge/CommunityCall_Meeting_05.md similarity index 100% rename from Archive/Merge/CommunityCall_Meeting_05.md rename to Network-Upgrade-Archive/Merge/CommunityCall_Meeting_05.md diff --git a/Archive/Merge/CommunityCall_Meeting_06.md b/Network-Upgrade-Archive/Merge/CommunityCall_Meeting_06.md similarity index 100% rename from Archive/Merge/CommunityCall_Meeting_06.md rename to Network-Upgrade-Archive/Merge/CommunityCall_Meeting_06.md diff --git a/Archive/Merge/CommunityCall_Meeting_07.md b/Network-Upgrade-Archive/Merge/CommunityCall_Meeting_07.md similarity index 100% rename from Archive/Merge/CommunityCall_Meeting_07.md rename to Network-Upgrade-Archive/Merge/CommunityCall_Meeting_07.md diff --git a/Archive/Merge/Meeting 01.md b/Network-Upgrade-Archive/Merge/Meeting 01.md similarity index 100% rename from Archive/Merge/Meeting 01.md rename to Network-Upgrade-Archive/Merge/Meeting 01.md diff --git a/Archive/Merge/Meeting 02.md b/Network-Upgrade-Archive/Merge/Meeting 02.md similarity index 100% rename from Archive/Merge/Meeting 02.md rename to Network-Upgrade-Archive/Merge/Meeting 02.md diff --git a/Archive/Merge/Meeting 03.md b/Network-Upgrade-Archive/Merge/Meeting 03.md similarity index 100% rename from Archive/Merge/Meeting 03.md rename to Network-Upgrade-Archive/Merge/Meeting 03.md diff --git a/Archive/Merge/Meeting 04.md b/Network-Upgrade-Archive/Merge/Meeting 04.md similarity index 100% rename from Archive/Merge/Meeting 04.md rename to Network-Upgrade-Archive/Merge/Meeting 04.md diff --git a/Archive/Merge/Meeting 05.md b/Network-Upgrade-Archive/Merge/Meeting 05.md similarity index 100% rename from Archive/Merge/Meeting 05.md rename to Network-Upgrade-Archive/Merge/Meeting 05.md diff --git a/Archive/Merge/Meeting 06.md b/Network-Upgrade-Archive/Merge/Meeting 06.md similarity index 100% rename from Archive/Merge/Meeting 06.md rename to Network-Upgrade-Archive/Merge/Meeting 06.md diff --git a/Archive/Merge/Meeting 07.md b/Network-Upgrade-Archive/Merge/Meeting 07.md similarity index 100% rename from Archive/Merge/Meeting 07.md rename to Network-Upgrade-Archive/Merge/Meeting 07.md diff --git a/Archive/Merge/Meeting 08.md b/Network-Upgrade-Archive/Merge/Meeting 08.md similarity index 100% rename from Archive/Merge/Meeting 08.md rename to Network-Upgrade-Archive/Merge/Meeting 08.md diff --git a/Archive/Merge/Meeting 09.md b/Network-Upgrade-Archive/Merge/Meeting 09.md similarity index 100% rename from Archive/Merge/Meeting 09.md rename to Network-Upgrade-Archive/Merge/Meeting 09.md diff --git a/Network-Upgrade-Archive/Merge/kintsugi-retro.md b/Network-Upgrade-Archive/Merge/kintsugi-retro.md new file mode 100644 index 00000000..97a1047c --- /dev/null +++ b/Network-Upgrade-Archive/Merge/kintsugi-retro.md @@ -0,0 +1,62 @@ +# Kintsugi incident report + +This post will cover the full summary of the incident, its consequences and concrete action plans moving forward before a mainnet merge. + +Note: this report was originally published [here](https://notes.ethereum.org/@ExXcnR0-SJGthjz1dwkA1A/BkkdHWXTY). + +## TL;DR: +The merge testnet, Kintsugi, ran into issues with several clients. A fuzzer created an invalid block that was deemed valid by Nethermind and Besu due to a missing check. This invalid block caused the network to split into 3 parts - One part with the invalid block, One without the invalid block and One which went into an Optimistic Sync mode. While fixes were deployed, the fuzzer created another block that triggered a further issue in Geth causing nodes to fail to join the correct fork. Once the Geth issues were fixed, we were able to bring back all the nodes into the same correct fork and the chain began finalizing again. + + +## Summary +The merge testnet Kintsugi ran into a series of issues in the previous weeks which exposed several bugs across a multitude of clients. The issues were mainly caused by a fuzzer developed by [Marius](https://twitter.com/vdWijden), the fuzzer aims to create interesting blocks and propagate them through the network. + +One such block had its `blockHash` replaced with its `parentHash`. The `engine_executePayload` has all the parameters needed to construct the block as well as construct the `blockHash` of the block. The EL client should construct the block from the parameters and verify it against the passed `blockHash`. This particular block accurately failed the check on Geth, but validated in Nethermind and Besu. The block was incorrectly validated in Nethermind due to a cache issue, while Besu did not have such a check at all. Due to this, the block was proposed by a Lighthouse-Besu node and caused the chain to split into two parts, one fork followed by all the validators connected to a Nethermind/Besu EL and another fork consisting of validators connected to a Geth EL. + +*Note, the `blockHash` check for the **current** block is newly required in the Merge, thus the missing and inaccurate verifications in some clients.* + +A bug in Geth was returning a JSON-RPC error instead of `INVALID` when executing the wrong payloads and a bug in Teku (fixed but not yet deployed at that time) considered those errors as a viable condition to continue in optimistic sync mode. Therefore, the Teku-Geth nodes went into optimistic sync mode as a result of hitting an invalid payload. Since the block itself was valid, the connected Geth nodes fetched it from the network instead of the engineAPI, and the Teku-Geth nodes were now building on top of the invalid forked chain. Due to the Teku nodes being on a buggier older version, the Teku-Geth nodes stayed in optimistic sync mode and refused to propose blocks during the non-finality period. We now had a scenario in which CL(lighthouse,prysm,nimbus,lodestar)-Geth(~46%) and CL-Nethermind/Besu(~19%) were in different forks, a further number of validators running Teku-Geth(~35%) were in optimistic sync mode. + +After identifying and deploying fixes for the Nethermind and Besu nodes, we were able to get them back online. The updating of Teku-Geth nodes led us to another bug related to invalid memory access caused by an issue in Geth related to the block sequence validation. This specific bug was triggered by Marius's fuzzer as well, the fuzzer produced a block with `block_number=1` with a valid `parentRoot`. Before Geth executes a block, it needs to look up its parent to see if they need to sync or not. One way to do this is by checking the `parentHash` in the cache or by `parentHash` as well as `blockNumber` in the database. Since Teku executes all the payloads of all the forks simultaneously, the cache did not contain the `parentHash` anymore. Therefore, Geth attempted to lookup the parent by `parentHash` and `blockNumber` in its database. The database however contained no hash with this `blockNumber` (the fuzzer created this block). Geth would reason that since it has no parent, it needs to start a sync. However, this triggered sync would attempt to sync a shorter chain than the canonical chain which violated some conditions in Geth. This caused the Geth process to panic and the node shut down, causing the Teku-Geth nodes to remain in an unhealthy state. + +During the debug process for the above issues, the Geth team also uncovered a race condition in the merge codebase which triggered panics. Additionally, we ran into problems with Nimbus throwing an error related to EL re-connection and Lodestar downscoring peers for block rejection. + +The client teams pushed all their fixes and all the nodes were updated. By the time all the fixes were in play, the chain had split into smaller forks with each having low participation rates. Resyncing a few nodes allowed us to reduce the number of forks. Once enough nodes had resynced, we were seeing more and more nodes re-org onto this fork, allowing us to cross the 66% threshold required for finality. + + +## FAQ +### Is the testnet dead? +No. The chain eventually finalized after we deployed fixes and resync-ed some stalled nodes. Once the chain finalized it performs as it always has. Currently Kintsugi sees ~99% participation rates, indicating all the client bugs have been patched and the network is running optimally. Transactions and smart contract interactions continue to function as expected. + +## Why was the chain not finalizing for so long? +Although we identified the root cause quite early on, we wanted to leave the chain in its non-finalizing state to allow for clients to debug their code against. Additionally, we wanted to collect data about client performance during non-finality periods. + +### Did validators on the fork get slashed? +No. Each validator contains a `slashing protection` database that ensures that the validator does not sign slashable information. The validators on the "wrong" fork were simply seen as `inactive` on the "correct" fork. Once they re-orged onto the "correct" fork, the slashing database prevents them from signing slashable information. + +### How does this affect the mainnet release? Is there a new delay? +We believe this incident does not affect the mainnet launch plans. No critical bugs were found in the specification itself. The purpose of the testnet was to unearth bugs and we believe that Kintsugi has done a great job with finding edge cases in client implementations. The incident was a good stress test for various client combinations. We have a [public checklist](https://github.com/ethereum/pm/blob/master/Merge/mainnet-readiness.md) which will guide when we are ready to merge on mainnet. + + +### How does this affect the testing plan? +We will look into creating a couple of testnets where non-finality is enforced. Continuous testing on such non-finalizing testnets would allow us to trigger more edge cases as well as improve tooling. The bugs found in this incident will be added as static test cases to ensure that we have no regressions. + +### Important takeaways for validators, infrastructure providers and tooling developers +The non-finality period on the testnet reinforced some assumptions for worst case-hardware requirements. During periods of non-finality, validators should expect: +- Increased CPU load (100% at times) due to evaluation of various fork choices rules +- Heightened disk usage due to the lack of pruning due to non-finality +- Marginal increase in RAM usage + +This means, any additional tooling or monitoring running on the same machine would suffer from resource contention issues. The tooling for the Kintsugi testnet (block explorer, beaconchain, faucet, RPC) runs on a Kubernetes cluster with 3 nodes. This cluster also runs multiple beacon nodes which are used by the tooling. Since the beacon nodes were using much more resources than provisioned for, our tooling often ran in a degraded manner due to a lack of resources. It would be prudent for infrastructure providers to run their CL and ELs in separate machines or with strict resource use definitions. + +The merge implies that every CL will need its own EL running. ELs (on mainnet) currently require significant disk sizes. During times of non-finality, the disk usage of CLs will also balloon and it could lead to crashes due to a lack of space. All validators should ensure that they have a large enough buffer to account for such issues. + +Developers of tooling that rely on finality should account for non-finality periods. One possible manner is to display the `optimistic` information while conveying that the information could change in the UI. + + + + + + + + diff --git a/Archive/Merge/mainnet-readiness.md b/Network-Upgrade-Archive/Merge/mainnet-readiness.md similarity index 100% rename from Archive/Merge/mainnet-readiness.md rename to Network-Upgrade-Archive/Merge/mainnet-readiness.md diff --git a/Archive/Merge/merge.md b/Network-Upgrade-Archive/Merge/merge.md similarity index 100% rename from Archive/Merge/merge.md rename to Network-Upgrade-Archive/Merge/merge.md diff --git a/Network-Upgrade-Archive/Muir-Glacier/muir-glacier-retro.md b/Network-Upgrade-Archive/Muir-Glacier/muir-glacier-retro.md new file mode 100644 index 00000000..abf85f64 --- /dev/null +++ b/Network-Upgrade-Archive/Muir-Glacier/muir-glacier-retro.md @@ -0,0 +1,117 @@ +## Abstract + +To describe the process of preparing and activating the Muir Glacier network upgrade. + +## Motivation + +Ethereum is growing and documentation of decisions & events that occurred during an upgrade process is extremely valuable. + +## Specification + +### Upgrade summary +* Date and time (in UTC): January 02, 2020 at 08:30:49 AM UTC +* Block Number (Mainnet): 9200000 +* Mined by: Spark Pool +* Block Reward: 2.04862589667520444 Ether (2 + 0.04862589667520444) +* Uncles Reward: 0 +* Difficulty: 2,458,589,766,091,800 +* Total Difficulty: 13,525,747,653,928,155,934,639 +* Block number (Ropsten): 7117117 + +*Data collected from [Etherscan](https://etherscan.io/block/9200000).* + + +The Muir Glacier upgrade included the EIP for pushing back the Ice Age. 3 out of 4 clients were perfect, and 4th client had a quick update after the fork without any negative effects. It took a day for block time to reduce to normal. + +**Mainnet deployment before Ropsten** - Mainnet went to 17-second blocks instead of the forecast 19-20s blocks. Ropsten was at 28s per https://ropsten-stats.parity.io/ which was originally calculated for about 6 Jan or so. Ropsten slowdown and mainnet speedup was pretty much the opposite of expectations. + + +### EIP Included + +Muir Glacier had only one improvement proposal, [EIP 2384](https://eips.ethereum.org/EIPS/eip-2384). This EIP delayed the difficulty bomb for another 4,000,000 blocks so that the Ethereum chain doesn’t freeze/halt. + +* Muir Glacier Fork meta: [EIP 2387](https://eips.ethereum.org/EIPS/eip-2387) + +**Process of EIP selection** + +Muir Glacier was an emergency upgrade required to address a situation that was imminent if not deployed quickly. Only one proposal was submitted, so not much of a selection was needed however developers did address relevant concerns and made appropriate adjustments for the numbers of blocks targeted to be pushed with the originally proposed EIP. + +### Timeline - Backlog check + +Previously, the increase in difficulty level was [predicted](https://www.reddit.com/r/ethereum/comments/4iozgf/in_around_14_month_the_difficulty_bomb_will_make/d30c0lq/) to be coming in 2021. However, the events and landmarks in the Ethereum project were developing faster, and the difficulty bomb started to show-up earlier than expected. It became noticeable again on October 5th, 2019 at block 8,600,000. Block times had been around 13.1s on average and as of block 8,900,000 were around 14.3s. It was predicted to accelerate exponentially every 100,000 blocks. + +#### Discovery of problem +* Nov 13th - First brought to the attention of the Core devs https://gitter.im/ethereum/AllCoreDevs?at=5dcc599050010612b2b1b950 +* Nov 15h - ACD call [Agenda](https://github.com/ethereum/pm/issues/138), [Video](https://youtu.be/3qZFiETlDtk?t=3457) +* Nov 19th - block Time increases again - https://gitter.im/ethereum/AllCoreDevs?at=5dd4ce8050010612b2eeb9d6 + +#### Validation of problem +* Nov 19th - Verified it is the Difficulty Bomb https://gitter.im/ethereum/AllCoreDevs?at=5dd4e00352b73c7cb24b54a5 +* Nov 20th - Confirmed https://gitter.im/ethereum/AllCoreDevs?at=5dd4ecba2c9bf5413e607488 + +#### Discussion & decision making +* Nov 20th Discussed targeting Mid January +* Nov 20th - the first discussion on Muir Glacier being its own fork after Istanbul. - https://gitter.im/ethereum/AllCoreDevs?at=5dd542414941f9513fc23269 +* Nov 20th - EIP-2384 submitted +* Nov 22nd - Hard Fork Meta submitted under name Mountain Glacier - https://gitter.im/ethereum/AllCoreDevs?at=5dd8364699dfe74c958c75f7 +* Next Core Dev Call - https://github.com/ethereum/pm/issues/140 +* Nov 29th - First Suggestion of Muir Glacier - https://gitter.im/ethereum/AllCoreDevs?at=5de12f891659720ca8ca9de9 - Real link is in the Eth Magicians forum somewhere +* Nov 29th - 7117117 Ropsten Block number Suggested. Predicted 6th of Jan https://gitter.im/ethereum/AllCoreDevs?at=5de1317ab065c6433c08cf7d +* Nov 29th - Decision to not included PoA Chains because muir glacier never activates on PoA chains -- thus have zero impact on forkid +* Nov 29th - EIP-2384 and EIP-2387 moved to [Last Call](https://github.com/ethereum/EIPs/pull/2408) +* Dec 13th - [ACD meeting 77](https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%2077.md) The difficulty bomb (4 mil blocks) will be addressed at some point post-Muir Glacier upgrade +* Dec 16th - [All clients ready](https://gitter.im/ethereum/AllCoreDevs?at=5df82418578ecf4b1fb7991a) +* Dec 16th - Ethereum [Muir Glacier Upgrade blog](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) published by the Ethereum cat Herders +* Dec 23rd - [Ethereum Muir Glacier Upgrade Announcement](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) by EF +* Dec 30th - Nethermind and [Parity Ethereum nodes syncing issue](https://gitter.im/ethereum/AllCoreDevs?at=5e0abb7e2640a676295a0d6d) +* Dec 31st - [Parity Ethereum bug fixed](https://www.parity.io/new-parity-ethereum-update-protects-against-possible-attack/) +* Jan 02nd - [Community call](https://gitter.im/ethereum/AllCoreDevs?at=5e0da713eaa2cd096fde7365) for Muir Glacier +* Jan 02nd - [Nethermind's bug fixed](https://gitter.im/ethereum/AllCoreDevs?at=5e0ddf550fd3413f4c942e6c) + +#### Implementation +* Jan 02, 2020: Activation on [Ethereum main network](https://etherscan.io/block/9200000) +* Jan 13, 2020: Activation on [Ropsten network](https://ropsten.etherscan.io/block/7117117) + +### Best Practices +* Have the EF reblog content from other sources + +### Suggested Corrective Action +(Problem and suggestions) + +#### Testing window duration +The testing window planned was too short. We should avoid the mainnet to upgrade before testnet for any changes. + +#### Ropsten Blocks being really irregular. +The more aggressive calculation for difficulty bomb is required. Recommended research post is [here](https://ethresear.ch/t/deep-dive-into-current-pow-difficulty-adjustment-algorithm-and-a-possible-alternative/5267/12). + +#### There isn’t a process for checking important dates/blocks for inter client coordination. +Suggested Solution: +* Data Checking list +* We take turns, Two others check numbers, posting the data and the process. People from this group sign up + +#### Blocks are not predictable for timing things. +Suggested solution: +Time-Based forks. + +#### Single Source of current info for main-net Variables +Suggestion Solution: +* Getting specific information about main-net variables takes a lot of digging in the EIP repo. Difficult to do. +* The Spec as of current EIPs in a Digest + +#### Ethereum RedPhone Initiative +Suggestion Solution: +* Communicating from the CoreDevs out +* Pub/Sub model + + +## Rationale + +An informational EIP with upgrade analysis should help in visibility and traceability of the scope of changes as well as provide easy accessibility of historic data for community reference. + +## Resources +* All Core Dev Gitter - https://gitter.im/ethereum/AllCoreDevs?at=5de7d9bf550662459868c742 +* Etherscan - https://etherscan.io/block/9200000 + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).