Substrate runtime api
The Substrate runtime api is the crucial interface between the node and the runtime.
Every call that goes into the runtime is done with a runtime api. The runtime apis are not fixed.
Every Substrate user can define its own apis with
decl_runtime_apis and implement them in
the runtime with
Every Substrate runtime needs to implement the
Core runtime api. This api provides the basic
functionality that every runtime needs to export.
On a meta level this implies, the client calls the generated API from the client perspective.
Substrate supports logging from the runtime in native and in wasm. For that purpose it provides
RuntimeLogger. This runtime logger is
automatically enabled for each call into the runtime through the runtime api. As logging
introduces extra code that isn’t actually required for the logic of your runtime and also
increases the final wasm blob size, it is recommended to disable the logging for on-chain
wasm blobs. This can be done by enabling the
disable-logging feature of this crate. Be aware
that this feature instructs
tracing to disable logging at compile time by setting
max_level_off feature for these crates. So, you should not enable this feature for a
native build as otherwise the node will not output any log messages.
Declares given traits as runtime apis.
Tags given trait implementations as runtime apis.
Mocks given trait implementations as runtime apis.
Auxiliary wrapper that holds an api instance and binds it to the given lifetime.
An error describing which API call failed.
Before calling any runtime api function, the runtime need to be initialized
at the requested block. However, some functions like
Maximum nesting level for extrinsics.
Extends the runtime api implementation with some common functionality.
Something that can call into the an api at a given block.
Something that can be constructed to a runtime api.
Something that provides a runtime api.
Something that provides information about a runtime api.
A type that records all accessed trie nodes and generates a proof out of it.
Extract the state backend type for a type that implements
A type that is used as cache for the storage transactions.
Extract the state backend transaction type for a type that implements