The Executive module acts as the orchestration layer for the runtime. It dispatches incoming extrinsic calls to the respective modules in the runtime.
The executive module is not a typical pallet providing functionality around a specific feature. It is a cross-cutting framework component for the FRAME. It works in conjunction with the FRAME System module to perform these cross-cutting functions.
The Executive module provides functions to:
- Check transaction validity.
- Initialize a block.
- Apply extrinsics.
- Execute a block.
- Finalize a block.
- Start an off-chain worker.
The Executive module provides the following implementations:
ExecuteBlock: Trait that can be used to execute a block.
Executive: Type that can be used to make the FRAME available from the runtime.
The default Substrate node template declares the
Executive type in its library.
Executive type declaration from the node template.
/// Executive: handles dispatch to the various modules. pub type Executive = executive::Executive<Runtime, Block, Context, Runtime, AllModules>;
Trait that can be used to execute a block.