-
Notifications
You must be signed in to change notification settings - Fork 256
Open
Labels
executionSubspace executionSubspace execution
Description
Summary
There is potential for duplication of domain transactions across multiple operator bundles within the same consensus block and across consecutive blocks. While the domain client deduplicates prior to execution, the consensus chain still includes full bundle bodies, resulting in redundant transactions being gossiped, stored, validated, and archived. This increases block size, bandwidth, and storage footprint.
Current behavior
- Consensus blocks include full bundle bodies for all accepted bundles.
- Multiple operators can submit bundles for the same domain and height with overlapping extrinsics.
- The consensus runtime validates bundle headers and associated execution receipts (ERs), and records accepted bundles in
ExecutionInboxvia digests (header hash, extrinsics root, size), while the full bundle bodies live in the consensus block body. - Domain nodes later extract accepted bundles and run
deduplicate_and_shuffle_extrinsics()before building and executing the domain block, so execution occurs at most once even when the same transaction appears multiple times. - Validation of bundle bodies (decoding, tx-range, XDM MMR proof checks, etc.) is performed statelessly in the domain preprocessor, not by the consensus runtime.
Impact
- Larger consensus blocks due to repeated transactions for overlapping bundles.
- Higher bandwidth usage for nodes (both network propagation and block import).
- Increased storage growth
Notes
- What is the current duplication profile across (distribution, tail behavior)?
- Probably low given there are not many transactions.
- We should measure this during load testing on test networks
teor2345
Metadata
Metadata
Assignees
Labels
executionSubspace executionSubspace execution