Alpha/Sc_rollup: new DAL_attested_slots internal message
What
Adds a new Dal_attested_slots internal inbox message that informs smart rollups about attested DAL slots and their publishers for each published level.
This message also includes the DAL parameters for the current (publish) level. This allows to avoid having to reveal the DAL parameters anymore.
On top of !20176, even if normally the dependency is the other sense. This is because the riscv kernel assets in the riscv-pvm repository must be rebuilt using the updated kernel SDK before merging this MR, as the pre-built binaries are used by the tezt regression tests.
Why
Smart rollups need to know which DAL slots were attested in order to process DAL data. Publishers are included so that the kernel can check that the publisher belongs to built-in whitelist of allowed publishers. This message therefore allows to replace sequencer "import signals".
How
- Protocol: Add
Dal_attested_slotsvariant tointernal_inbox_messagewith fields:published_level,number_of_slots(need for decoding), andslots_by_publisher(map from publisher pkh to indices of attested slots) - Encoding: Use compact bitset encoding (
Dal_attestation_repr) on the wire, converted to/from lists internally - Emission: Emit the message during DAL finalization in
apply.ml - WASM PVM: Add
Dal_attested_slotstopvm_input_kindfor kernel parsing - Rollup node: Reconstruct the message from DAL skip list cells via RPC
- Migration: Handle protocol migrations by checking
published_level >= proto_activation_level; check to be removed in the next protocol.
Manually testing the MR
No new tests, just relying on the CI.
Checklist
- Document any change to the user interface, including configuration parameters (see node configuration)
-
For new features and bug fixes, add an item in the appropriate changelog (
docs/protocols/alpha.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else).
Summary by CodeRabbit
Release Notes
-
New Features
- Added support for DAL attested slots in smart contract rollup message handling, enabling enhanced data availability confirmation mechanisms.