[go: up one dir, main page]

SCORU/Node: Protocol migration

How to handle migration? multiple binaries (tezos-baker) vs one that can handle multiple protocols (tezos-client)

TODO

  • Lock file (!8447 (merged))
  • Add query parameter for monitor block RPC to allow to filter based on current protocol (instead of next protocol) (!8448 (merged))
  • Replace Layer1.head by full block header (!8482 (merged))
  • Node_context.init does multiple RPCs, needs to be stored (optional):
    • genesis_info
    • kind
  • Rollup node module outside of proto_* which does head monitoring, reorg computation, and dispatch to Daemon.process_head of correct protocol rollup node module
  • Reorgs with block headers (!8482 (merged))

V0

  • move Configuration module outside of proto_* (!8498 (merged))
  • move Metrics module outside of proto_*
  • On protocol change (in reorg handling, i.e. before process_head) (!8516 (closed))
    1. Close node context, store, context, injector, batcher, various workers (refutation, commitments), RPC server of old proto specific rollup node
    2. Initialize new node context for new proto specific rollup node
    3. Keep current node context (only swapped on procotol change) and give as parameter to process_head

Vn (n > 0)

Iteratively move various components outside of proto_*

  • injector (easy)
  • batcher (easy)
  • context (easy, needs split before Proof module)
  • store (harder, needs abstraction over data types)
  • refutation workers (harder, need to keep workers alive)
  • refutation logic (hard, needs clean interface for protocol specific parts)
  • RPC server (not too hard if store and context are outside proto_*)
Edited by Sylvain R.