Ethereum Cat Herders Update #43
Rayonism update, Eth2 mainnet incident retrospective, latest on London & Altair upgrade; Steklo, Aleut & Baikal testnet. ACD, Eth2, Merge, EIPIP meeting update. JSON RPC documentation update, PEEPanEIP on refund removal proposal, upcoming community event and more.
Welcome to the latest edition of the Ethereum Cat Herders community update to bring you up to speed since the last update.
Steklo, a super experimental Eth1-Eth2 post-merge testnet which is launched on April 30th with four Eth2 clients & 3 Eth1 clients. This is a step closer to The Merge.
Ethereum All Core Developers’ meeting
Removal of refunds (EIP-3529)
- EIP-3529: Reduction in refunds — An alternate proposal to EIP-3403. Vitalik explained the proposal.
- Tomasz (Nethermind) suggested avoiding it for London.
- Martin S. (co-author) reiterated the benefit of the proposal — it helps get rid of Gas tokens which cause bad UX, gas prices going up. Refund removal will make state size more deterministic.
- Tomasz shared some information — currently gas token minting is done at the lowest price. Miners will no longer be able to fill the block with gas minting. Not enough gas token to perform any attack. State bloating — if gas minting becomes unviable then there will be no issue of state bloating. State cleaning wasn’t the motivation earlier but a good reason for moving forward.
- More Q&As, worth watching the recording.
- Clients in agreement to finish implementing on time for London.
- Lightclient’s tweet thread about this proposal.
Difficulty bomb (EIP-3238)
- EIP-3238: Difficulty Bomb Delay to Summer 2022
- Discussion on having a PR to change the timeline for pushing the bomb.
- Afri S. is unwell and unavailable to merge the PR.
- James H. will look into the proposal to create a new one and add Afri S.as a co-author.
- General agreement: push the difficulty bomb to Dec 2021.
- Alexey Akhnov (TurboGeth) argued defusing the bomb in London. Further discussion will continue async.
EVM Object Format (PR-3541)
- PR-3541: Reject new contracts starting with the 0xEF byte
- A new Proposal 3541 is introduced to be included in London, which is a stepping stone to proposal 3540- EVM Object Format (EOF) v1.
- EOF will be a larger overhaul to the EVM and hence would be needed in Shanghai.
- Clients generally seem okay with the proposal to be added as CFI for London. Go & no go will be decided in the following meeting.
Aleut (1st devnet for London)
- Access list tx are not getting mined because Besu does not include the tx. Besu will connect async to resolve the issue.
- Few bugs found.
- This devnet is nuked.
Baikal (2nd devnet for London)
- A new testnet will be set up including CFI-approved proposals — EIP-1559, EIP-3198, EIP-3529, EIP-3541.
- Tim will add the spec on the Eth1.0 repo.
London Upgrade Infrastructure Readiness Call
- Trenton Van Epps announced a breakout room meeting for development updates from tooling, libraries, infra & JSON RPC support for 1559 on Friday, May 7 at 1400 UTC. Agenda.
- Track overall progress here.
Eth1.0 Clients update
- Geth — Kepler Verge (v1.10.2) is a maintenance release, containing bug fixes and a few minor new features.
- OpenEthereum v3.2.4 — Fix for Typed transaction broadcast.
- Besu — 21.1.5. Additions and Improvements — Ignore nonce when supplied to eth_estimateGas or eth_call. Ignore privateFor for tx estimation. Bug Fixes. Fixed NullPointerException when crossing network upgrade blocks when peer discovery is disabled.
- TurboGeth — 2021.04.05-alpha. Changelog —
trace_get; Aleut support (EIP-1559 +
BASEFEEopcode). Enabled by
--chain aleut; version compatibility check for RPC daemon (for both DB schema and gRPC compatibility);
chainID; improved Clique support.
- Nethermind — v1.10.66. [SYNC] Update pivots; [JSON RPC] Enable compression on HTTPS when requested by the client; [Logging] Some logs cleanup; [Rayonism] hotfixes for Rayonism testnets.
- Ethereum JS —@ethereumjs/tx v3.1.4. Added a new boolean
hashMessageparameter (defaulting to
getMessageToSign()to allow for returning the raw unsigned
EIP-155tx and not only the hash,
Eth2.0 Implementers meeting
- Teku: Altair work going good, Gossip changes all done, API format working well, storing orphan blocks. Infura is providing Beacon chain API for Teku.
- Nimbus: Two releases, performance improvement, implementation of rest API (beta), implemented web2 providers. Attestation backing and participating in the Rayonism testnet.
- Loadstar: Altair — implemented fork choice & spec test, passing consensus test, will be working on Lightclient during the hackathon.
- Prysm: Altair - finished implementing a state transition, working on networking and validators stuff right now. Spec tests are passing for state transition. New slasher implementation will be in a release next week. Interop achieved with Catalyst for Rayonism.
- Lighthouse: Passing tests for Altair - Issue — 2314, Issue- 2347. A lot of refactoring, RPC & gossip changes implemented. Participating in Rayonism. Big release with Doppelganger support.
Altair (Eth2 upgrade)
- Feature complete version of Altair to begin the testnet is awaited. Working on transient testnet.
- Refinement of additional test for Altair, sanity test, historical batch root, have to be done.
- Pre-release for Altair this week.
- ETA — end of June 2021.
- Altair Optimization
— Participation record optimization
— Sync committee computation optimization
- Merge discussion is active R&D Discord, mostly covered in the merge call.
- Proto is managing 3 office hour calls for Rayonism.
- Unified development of merge with Rayonism going well.
Eth2 Mainnet Incident (24–25 April)
— At epoch 32302, the beacon chain started missing a lot of block proposals.
— Most of Prysm Beacon Nodes were unable to produce new blocks for the next 18 epochs.
— Epoch 32320 started behaving normally and the incident was considered to be over at that time. Around 24 hours later, the incident manifested itself again with a similar impact.
Eth2.0 Clients’s update
- Nimbus-eth2 — v1.2.2. This is a bugfix release that improves the stability of the REST API and addresses issues discovered during the mainnet incident. Added an efficient attestation processing pipeline (less queuing). Fixed insufficient validation of third-party
Eth1Datavotes, sporadic REST API connection interruptions (due to large requests or
result payloads), incorrectly logged empty GossipSub
IWANTmessages. Libp2p grafting timer: unnecessary re-grafting which occasionally led to scoring penalties.
- Lighthouse — Pencilvester.
- Lodestar — Release v0.20.0. Changelog — Lightclient consumer; add dependentRoot to duties API, remove getAttesterDuties limit in REST API; re-org validator REST API client; Altair: Sync Committee utils, SyncCommitteeContribution; add API REST response time metric. Save 1 epoch transition when the node is synced. Update performance test statistic. Add API endpoint to return state multi proof. Add fork_choice spec test, extend beacon state API to get unarchived finalized states. Merge rest controllers and routes. naive Altair alpha.3; getLatestWeakSubjectivityCheckpointEpoch API endpoint. Improve AggregateAndProof gossip validation.
- Prysm — v1.3.8-hotfix+6c0942. This hotfix release has two critical fixes to resolve issues in mainnet. Initialize Data Correctly For Powchain Service. Independent eth1 voting. Update to this release immediately.
- Teku —v21.4.1. Upcoming Breaking Changes —
headevent on the REST In a future release it will be changed so
headthe event is only published when a new chain head block is imported. The
--Xvalidators-dependent-root-enabledoption can be used to switch to the new behavior now for testing. The
/teku/v1/beacon/states/:state_idendpoint has been deprecated in favor of the standard API which now returns the state as SSZ when the
Accept: application/octet-streamheader is specified on the request. The default docker image will be updated to Java 16 in an upcoming release. Support for automatic fail-over of eth1-endpoints. Basic authentication is now supported. Infura can now be used as the source of initial states. Implement standard rest API
/eth/v2/beacon/blocks/:block_idwhich supports Altair blocks. Documented under 'Experimental' endpoints until more widely implemented. Implement Teku rest API to retrieve all blocks at a slot, which will return both canonical and non-canonical blocks at a given slot.
Merge Implementers’ Meeting 🤝
- Four Eth 2 clients — Teku, Prysm, Nimbus, Lighthouse and three Eth1 clients — Geth, Besu, Nethermind are ready for the first devnet — Steklo.
- Eth2 clients working on interop with other clients and Catalyst.
- The fork choice rule of the execution layer is updated.
- Eth2 to Eth1 Validator’s withdrawal design has a PoC implementation for the withdrawal mechanism. Currently, partial withdrawals are not supported. It only works with validator exit, which leads to full withdrawals. The spec will be extended with partial withdrawals in a few days. Everyone interested in withdrawal should check it out.
- The Merge will go on the mainnet before sharding.
- Theoretically, the changes that need to be done to the spec are pretty independent and can be worked on on the two specs in parallel. There's not much value in implementing sharding before the merge, except for testing value.
EIPIP working group
Splitting out EIP repository into EIPs & ERCs
- A new ERC repo has to be created.
- For ERC number assignment — the ERC author creates an issue at the EIP repo to assign themselves a number.
JSON RPC API spec in Eth1.0 repo
- Alita M. worked on ethCall, and submitted the Eth block number spec. Expected to have ethCall following week.
- Pooja proposed creating an issue to track tasks.
- Alita opened a JSON RPC discord channel to share work-in-progress specs.
- It will be on the ACD Discord channel when the full spec is ready.
EIP GitHub repo action bot
- Making good progress, hopefully will be done, depending on the bandwidth of reviewers.
- It’s starting to get close to functional. It has hacks, but less than the bot that is currently used.
- Shout outs to Micah Zoltu and Alita Moore.
Canonical source for EIPs
- Making good progress,
- A WIP EIP Signal Source Cleanup document can be followed to share your feedback and comments.
EIP and ERC editors
- matt garnett volunteered to be an editor for ERC repo.
- The group is working on determine pay rate for EIP and ERC editors.
Events & Hackathon
- Ethereum at Consensus 2021: Ethereum will be participating in CoinDesk’s biggest blockchain event and will be represented by Ethereum core developers, projects, researchers, and our own Ethereum Cat Herders to share the latest research and roadmap of the Ethereum blockchain. Follow the blog for details.
- Rayonism — ETH Global Scaling Hackathon (April 16 — May 14)
Ethereum Cat Herders
Peep an EIP
- EIP-3403: Partial removal of refunds with Vitalik Buterin & Martin Swende
- Follow EIP scheduled at ECH GitHub. If you have any questions related to a proposal, or you want to join a talk with the author, reach me on ECH Discord.
- The new ECH website is live. Minor bug fixing needed, should be ready be next ECH meeting. We welcome your feedback and improvement suggestion.
- Resources to document notes — ECH is currently inviting community participation to document client meeting notes and claim allocated bounty. If you’re interested to contribute, please reach us at ECH Discord.
- The Ethereum Cat Herders meeting #57: agenda, video, notes. The next meeting is scheduled for May 11, 2021, at 1500 UTC. Agenda.
Support the Ethereum Cat Herders
- Share yours ❤️ with the Cat Herders at Gitcoin. We accept all tokens!
- Join the decentralized project management team by submitting the ECH onboarding form and at ECH Discord.
- Follow the Ethereum Cat Herders at Website, GitHub, Twitter, Medium, and YouTube.
Share your question, comments, and suggestions with me on Twitter. Thank you for reading 🙏.
— The Ethereum Cat Herders