Reth Design Mondays: March 2021 - gnosis/reth GitHub Wiki

March 27th 2021:

March 22nd 2021:

In no particular order:

  • Overview of this meeting series.
  • Problems we are trying to avoid.
  • Lessons learned from OE.
  • Walkthrough of folder structure.
  • Decoupling information from data. Data is raw and unrecoverable, information is deduced from data. Example:
    • Transaction::to stored as raw H160 is data, because this information cannot be recovered from anywhere.
    • Transation::CallType(to) is information, because it interprets the to address and deduces that its contract creation if 0 or a call address otherwise from the raw data.
    • I think that we should keep data in the base structs and refactor out all information that can be deduced, so we will have wire-compatible minimal set of data that we can live with. This is important because different parts of the system will need to interpret those base structures in different ways and from different aspects, and its unwise to pollute the core create and its base types with those extra information that leads to having the core crate dependent on higher-level crates.
    • Example:
  • Do we want to support legacy transitions or start with a new canvas? Examples:
    • EIP-155: affects calculating signatures, but only very old txs
    • EIP-2930: affects serialization but not for tx that happen before v1.0
  • Open discussion.