You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Bounded Contexts / Business Logic. Is it possible to extract interfaces for application code to use in a way that it doesn't care about the implementation? Hopefully we can get to a point where each of these is a Bounded Context with clear boundaries, obvious and intuitive interfaces into and out of them. 

  1. Consensus
    1. Proof of Work
    2. External (or none?): Proof of Stake
      1. driven by Engine API
    3. Clique
    4. IBFT
    5. QBFT
  2. P2P
    1. ETH/66 and prior
    2. DevP2P
  3. Execution
    1. EVM
    2. Tracing
  4. Transaction Management
    1. Tessera integration
    2. MEV
    3. public and private transaction support
  5. Synchronizing
    1. Full sync
    2. Fast sync
    3. Snap sync
  6. Storage
    1. World State
      1. Forrest
      2. Bonsai
      3. Verkle
    2. Blockchain 
    3. Key-Value specific implementations under each. Any of the above could choose to use LevelDB or RocksDB as their storage implementation.


Cross Cutting Concerns. All of the above may depend on any mix of these. This part is ok to be a web of dependencies. 

  1. Crypto
    1. Elliptic Curves
    2. Signatures
    3. Hashing
    4. native implementations
  2. Serialization
    1. RLP
    2. JSON
    3. GraphQL(ish. it's a lot broader than just serialization)
  3. APIs
    1. RPC
      1. HTTP
      2. Websockets
    2. GraphQL
  4. Inversion of Control
    1. Dagger
  5. Observability
    1. Logging
    2. Metrics
    3. Debugging extras
  6. Configuration
    1. PicoCLI
    2. Genesis state vs. named networks


Proof of Concept:

Introduce Dagger to implement a vertical slice of functionality. We need to find a feature that touches on a few cross-cutting concerns, but just one Bounded Context.

Nominees:

  1. Jumpdest caching. Only relevant to the EVM, but requires caching, configuration, Observability, and hashing. Plan would be to provide each of these as a dependency.
  2. PoA consensus mechanisms. Impact TBD.
  3. Transaction pool. Impact TBD.
  4. Merge Context. What if the Merge Coordinator and related classes could be a dagger module.
  5. Protocol Schedule. Impact TBD.




  • No labels