Expand description
§Domain Operator
§Domains
Domains, the enshrined rollups solution of Subspace, is a configurable execution framework allowing for the simple, secure and low-cost deployment of application specific blockchain called domain.
§Operators
In Subspace, the farmers offering the storage resources are responsible for maintaining the consensus layer, operators are a separate class of contributors in the system focusing on the execution layer, they provide the necessary computational resources to maintain the blockchain state by running domains. Some deposits as the stake are required to be an operator.
Specifically, operators have the responsibility of producing a [Bundle
] which contains a
number of [ExecutionReceipt
]s on each slot notified from the consensus chain. The operators
are primarily driven by two events from the consensus chain.
-
On each new slot, operators will attempt to solve a domain-specific bundle election challenge derived from a global randomness provided by the consensus chain. Upon finding a solution to the challenge, they will start producing a bundle: they will collect a set of extrinsics from the transaction pool which are verified to be able to cover the transaction fee. With these collected extrinsics, the bundle election solution and proper receipts, a [
Bundle
] can be constructed and then be submitted to the consensus chain. The transactions included in each bundle are uninterpretable blob from the consensus chain’s perspective. -
On each imported consensus block, operators will extract all the needed bundles from it and convert the bundles to a list of extrinsics, construct a custom
BlockBuilder
to build a domain block. The execution trace of all the extrinsics and hooks likeinitialize_block
/finalize_block
will be recorded during the domain block execution. Once the domain block is imported successfully, the [ExecutionReceipt
] of this block will be generated and stored locally.
The receipt of each domain block contains all the intermediate state roots during the block
execution, which will be gossiped in the domain subnet (in future). All operators whether
running as an authority or a full node will compute each block and generate an execution receipt
independently, once the execution receipt received from the network does not match the one
produced locally, a FraudProof
will be generated and reported to the consensus chain
accordingly.
Re-exports§
pub use crate::snap_sync::LastDomainBlockReceiptProvider;
Modules§
Structs§
- Domain sync oracle.
- Domain operator.
- Data required to produce bundles on executor node.
- Notification streams from the consensus chain driving the executor.
Functions§
- Load the execution receipt for given consensus block hash.