Skip to content

Latest commit

 

History

History
100 lines (76 loc) · 8.26 KB

mainnet-readiness.md

File metadata and controls

100 lines (76 loc) · 8.26 KB

EIP-1559 Mainnet Readiness Checklist

This document was originally meant to capture various tasks that need to be completed before EIP-1559 is ready to be considered for mainnet deployement. EIP-1559 is now included in the London upgrade, so this document should serve as a historical reference. Sections may be updated if they are still the main source of truth for the efforts.

Implementation

Client Implementation Status

Client-level Open Issues

  • DoS risk on the Ethereum mainnet
    • Discussed in the AllCoreDevs call #77 and #97 EIP-1559's elastic block size effectively doubles the potential effect of a DoS attack on mainnet. Solutions to this are outside the scope of this EIP and include things like snapshot sync and EIP-2929, which was deployed in Berlin.
    • Write up by Vitalik about why this is perhaps solved once EIP-2929 is live.
    • Because EIP-1559's BASE FEE rises based on block gas utilisation, a DoS on the network would either have an exponentially increasing cost (assuming no collaboration from miners and other transactions are allowed to go through), compared to a constant cost today, or it would be costly to miners (who would need to pay the BASE FEE or censor the chain long enough to drop it to 0), compared to effectively free today.
  • Performance overhead for clients
    • It is unclear that Ethereum clients can handle "200% full" blocks for a modest amount of time without their performance being significantly affected. To test this, we are running simulations on testnets with a similar state size to the Ethereum mainnet.
    • Preliminary testing results
    • Large State Performance Testing
  • Transaction Pool Management
  • Transaction Encoding/Decoding
    • EIP-1559 transactions will be encoded using EIP-2718, by adding 1559-style transactions as a new type of transaction.
  • Legacy transaction management in transaction pool
    • Solved by a recent change to the EIP which removes the need for two transaction pools by interpreting legacy transactions as 1559-styles transactions where the feecap is set to the gas price and the tip is set to feecap - base fee.
  • Transition Period
    • Solved by a recent change to the EIP which removes the need for a transition period by interpreting legacy transactions as 1559-styles transactions. This means legacy transactions will be supported until an explicit change to the protocol is made to deprecate them.
  • BASE FEE Opcode - EIP-3198
    • A BASE FEE opcode will allow smart contracts to retrieve it directly.

Testing

Reference Tests

JSON RPC Support

  • EIPs that return block or transaction data need to be updated to support EIP-1559/2718 style transactions. Updates are being made to the JSON RPC specification here.

Community testing

  • JSON-RPC or equivalent commands that applications and tooling can use to interact with EIP-1559
  • Public testnet that applications and tooling can use to test EIP-1559.

Testnets

  • Tooling to generate usage spikes on testnets;
  • Multi-client PoA testnet to ensure spec can be implemented;
    • WIP between Geth, Besu & Nethermind teams.
  • Single-client PoW testnet to ensure the spec works with PoW
    • Done by Besu team.
  • Multi-client PoW testnet to ensure all code paths are tested;
    • The Rhoades testnet is a multi-client PoW testnet (link)
  • Large state testnet to analyze performance with ~100M accounts on chain.
    • The Rhoades testnet has 100m accounts and contract storage slots (link)

Other Testing

  • Nethermind is using EIP-1559 as part of a client's network
  • Filecoin, Celo and NEAR have implementations of EIP-1559 in their networks

R&D

Theoretical Analysis

Simulations

Community Outreach

  • Community outreach to projects to gather feedback on EIP-1559
  • Outreach to miners to better understand their objections to 1559, and stance if it is to be deployed on mainnet.
    • A discord channel has been created for miners to voice their concerns about EIP-1559
    • A community call has been organized for miners and other stakeholders to discuss EIP-1559's impact