Crate sc_executor
source ·Expand description
A crate that provides means of executing/dispatching calls into the runtime.
There are a few responsibilities of this crate at the moment:
- It provides an implementation of a common entrypoint for calling into the runtime, both wasm and compiled.
- It defines the environment for the wasm execution, namely the host functions that are to be provided into the wasm runtime module.
- It also provides the required infrastructure for executing the current wasm runtime (specified
by the current value of
:code
in the provided externalities), i.e. interfacing with wasm engine used, instance cache.
Re-exports
pub use wasmi;
Modules
- Rust executor possible errors.
Structs
- A generic
CodeExecutor
implementation that uses a delegate to determine wasm code equivalence and dispatch to native code when possible, falling back onWasmExecutor
when not. - The version of the native runtime.
- Runtime version. This should not be thought of as classic Semver (major/minor/tiny). This triplet have different semantics and mis-interpretation could cause problems. In particular: bug fixes should result in an increment of
spec_version
and possiblyauthoring_version
, absolutely notimpl_version
since they change the semantics of the runtime. - An abstraction over Wasm code executor. Supports selecting execution backend and manages runtime cache.
Enums
- Specification of different methods of executing the runtime Wasm code.
- The instantiation strategy to use for the WASM executor.
Traits
- Trait that allows zero-copy read/write of value-references to/from slices in LE format.
- Delegate for dispatching a CodeExecutor call.
- Extracts the runtime version of a given runtime code.
Functions
- Take the runtime blob and scan it for the custom wasm sections containing the version information and construct the
RuntimeVersion
from them. - Set up the externalities and safe calling environment to execute runtime calls.