The 1.x Files: December call digest

  • Questions about the incentives to keep full or partial state, and what effect those incentives have on the overall topology of the network. For example, there needs to be an incentive for a full-state miner to include witness data with each block, and an incentive to verify witnesses on received blocks. Because Stateless Ethereum introduces a variety of new node types, these incentives (especially ones affecting miners) must be carefully considered.

  • It seems like a semi-stateful network would naturally arrange itself like the diagram below, with full-state miners passing and verifying new blocks outwards to partial-state clients, who can still provide witnesses for the stateless clients out on the edges (relying entirely on witnesses). This isn’t a good or bad thing, but the implications of a topology like below need to be explored. hypothetical semi-stateless topology

  • Witness format has not yet been formally defined. Optimistically, the format for witnesses would be cast in the same mold as the red queen sync protocol for state, and the semantics of witnesses formalized as such. There are huge benefits to a more formal definition of witnesses in the context of client development, and indeed the turbo-geth team is hoping to have witnesses formalized early next year. Block witnesses and their propogation are essential for moving towards the stateless client concept.

  • In the more near-term, trinity’s beam sync implements a limited version of state witnesses, and is a good first step toward witnesses on mainnet. Beam sync is not specifically a pre-cursor to stateless client research (rather, it’s a UX improvement for Eth 1.0), but can be seen as an opportunity for network experimentation with witness propagation, especially between different implementations. Currently Besu is experimenting with their own prototype of beam sync. One tangible goal for the near term is getting a common test specification for cross-client sync, which will help with data collection later down the road. This sounds like a job for Hive. As it stands, beam sync is planned to be ready for prime-time (reliably passing around witnesses) in Q2 next year.

  • There are complexities around gas and witness sizes that must be addressed for stateless clients to be workable. It’s thought that Wei Tang’s ‘unGas’ proposal is a potential solution, but even though it is not particularly complicated to implement within Ethereum, there are spillover effects (such as necessary changes to compilers, potential smart contract effects, etc) that complicate implementation. All these have yet to be thoroughly investigated.

  • Comments are closed.