Rollup node: add shared WASM 2.0.0 PVM Irmin state module
Closes: L2-1685
Previous: !22205 (merged)
Next: !22255 (merged)
What
Introduce Wasm_2_0_0_irmin_state in octez_smart_rollup_node: the
Irmin-backed STATE_PROOF of the WASM 2.0.0 PVM (tree-encoding state plus
Irmin Merkle proof format). Build the proto_alpha and proto_025_PsUshuai
WASM PVM machines on this shared state.
Why
Each protocol's wasm_2_0_0_pvm.ml inlined its own copy of the WASM PVM
Irmin state and proof format. Factoring it into one shared, protocol-agnostic
module removes the duplication and gives later work (durable-storage reading,
the dual-state backend) a single state definition to build on.
How
Adds wasm_2_0_0_irmin_state.{ml,mli} exposing the STATE_PROOF with
state = Irmin_context.tree, and points the per-protocol fast/on-disk PVM
machines at it. This MR is purely additive: the per-protocol inline proof
format and durable reader are still present (the WASM PVM machine builds on
the shared state, the durable reader is migrated in the next MR).
Manually testing the MR
No behavioural change — the shared module is a refactor of existing inlined code. Covered by the existing rollup-node WASM PVM tests.
Checklist
- Document the interface of any function added or modified
- Document any change to the user interface, including configuration parameters
- Provide automatic testing
- For new features and bug fixes, add an item in the appropriate changelog
- Select suitable reviewers using the
Reviewersfield below - Select as
Assigneethe next person who should take action on that MR