Crate sp_genesis_builder
source ·Expand description
Substrate genesis config builder
For FRAME based runtimes, this runtime interface provides means to interact with
RuntimeGenesisConfig. Runtime provides a default RuntimeGenesisConfig structure in a form of
the JSON blob.
For non-FRAME runtimes this interface is intended to build genesis state of the runtime basing
on some input arbitrary bytes array. This documentation uses term RuntimeGenesisConfig, which
for non-FRAME runtimes may be understood as the runtime-side entity representing initial runtime
configuration. The representation of the preset is an arbitrary Vec<u8> and does not
necessarily have to represent a JSON blob.
The runtime may provide a number of partial predefined RuntimeGenesisConfig configurations in
the form of patches which shall be applied on top of the default RuntimeGenesisConfig. The
patch is a JSON blob, which essentially comprises the list of key-value pairs that are to be
customized in the default runtime genesis config. These predefined configurations are referred
to as presets.
This allows the runtime to provide a number of predefined configs (e.g. for different testnets or development) without neccessity to leak the runtime types outside the itself (e.g. node or chain-spec related tools).
This Runtime API allows to interact with RuntimeGenesisConfig, in particular:
- provide the list of available preset names,
- provide a number of named presets of
RuntimeGenesisConfig, - provide a JSON represention of the default
RuntimeGenesisConfig(by simply serializing the defaultRuntimeGenesisConfigstruct into JSON format), - deserialize the full
RuntimeGenesisConfigfrom given JSON blob and put the resultingRuntimeGenesisConfigstructure into the state storage creating the initial runtime’s state. Allows to build customized genesis. This operation internally callsGenesisBuild::buildfunction for all runtime pallets.
Providing externalities with an empty storage and putting RuntimeGenesisConfig into storage
(by calling build_state) allows to construct the raw storage of RuntimeGenesisConfig
which is the foundation for genesis block.
Constants§
- The default
developmentpreset used to communicate with the runtime viaGenesisBuilderinterface. - The default
local_testnetpreset used to communicate with the runtime viaGenesisBuilderinterface.
Traits§
- API to interact with RuntimeGenesisConfig for the runtime
Type Aliases§
- The type representing preset ID.
- The result type alias, used in build methods.
Errcontains formatted error message.