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)) - Close node context, store, context, injector, batcher, various workers (refutation, commitments), RPC server of old proto specific rollup node
- Initialize new node context for new proto specific rollup node
- 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.