22 releases (breaking)
0.15.1 | Sep 25, 2024 |
---|---|
0.15.0 | Jul 18, 2024 |
0.14.0 | Jun 21, 2024 |
0.10.0 | Mar 18, 2024 |
0.1.0-dev.2 | Jul 27, 2023 |
#7 in #preset
120,300 downloads per month
Used in 403 crates
(38 directly)
440KB
6.5K
SLoC
Substrate genesis builder.
Refer to the module doc for more details.
License: Apache-2.0
Release
Polkadot SDK stable2409
lib.rs
:
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 defaultRuntimeGenesisConfig
struct into JSON format), - deserialize the full
RuntimeGenesisConfig
from given JSON blob and put the resultingRuntimeGenesisConfig
structure into the state storage creating the initial runtime's state. Allows to build customized genesis. This operation internally callsGenesisBuild::build
function 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.
Dependencies
~16–29MB
~466K SLoC