Embed runtime version as a custom section (#8688)
* emit a custom section from impl_runtime_apis! This change emits a custom section from the impl_runtime_apis! proc macro. Each implemented API will result to emitting a link section `runtime_apis`. During linking all sections with this name will be concatenated and placed into the final wasm binary under the same name. * Introduce `runtime_version` proc macro This macro takes an existing `RuntimeVersion` const declaration, parses it and emits the version information in form of a linking section. Ultimately such a linking section will result into a custom wasm section. * Parse custom wasm section for runtime version * Apply suggestions from code review Co-authored-by:David <dvdplm@gmail.com> * Fix sc-executor integration tests * Nits Co-authored-by:
Bastian Köcher <bkchr@users.noreply.github.com> * Refactor apis section deserialization * Fix version decoding * Reuse uncompressed value for CallInWasm * Log on decompression error * Simplify if * Reexport proc-macro from sp_version * Merge ReadRuntimeVersionExt * Export `read_embedded_version` * Fix test * Simplify searching for custom section Co-authored-by:
David <dvdplm@gmail.com> Co-authored-by:
Bastian Köcher <bkchr@users.noreply.github.com>
Showing
- substrate/Cargo.lock 16 additions, 1 deletionsubstrate/Cargo.lock
- substrate/Cargo.toml 1 addition, 0 deletionssubstrate/Cargo.toml
- substrate/bin/node-template/runtime/src/lib.rs 1 addition, 0 deletionssubstrate/bin/node-template/runtime/src/lib.rs
- substrate/bin/node/runtime/src/lib.rs 1 addition, 0 deletionssubstrate/bin/node/runtime/src/lib.rs
- substrate/client/executor/Cargo.toml 0 additions, 1 deletionsubstrate/client/executor/Cargo.toml
- substrate/client/executor/common/Cargo.toml 1 addition, 0 deletionssubstrate/client/executor/common/Cargo.toml
- substrate/client/executor/common/src/runtime_blob/runtime_blob.rs 25 additions, 0 deletions...e/client/executor/common/src/runtime_blob/runtime_blob.rs
- substrate/client/executor/src/integration_tests/mod.rs 46 additions, 53 deletionssubstrate/client/executor/src/integration_tests/mod.rs
- substrate/client/executor/src/lib.rs 15 additions, 11 deletionssubstrate/client/executor/src/lib.rs
- substrate/client/executor/src/native_executor.rs 94 additions, 85 deletionssubstrate/client/executor/src/native_executor.rs
- substrate/client/executor/src/wasm_runtime.rs 103 additions, 38 deletionssubstrate/client/executor/src/wasm_runtime.rs
- substrate/client/executor/wasmi/src/lib.rs 8 additions, 13 deletionssubstrate/client/executor/wasmi/src/lib.rs
- substrate/frame/system/src/tests.rs 9 additions, 13 deletionssubstrate/frame/system/src/tests.rs
- substrate/primitives/api/proc-macro/src/impl_runtime_apis.rs 14 additions, 2 deletionssubstrate/primitives/api/proc-macro/src/impl_runtime_apis.rs
- substrate/primitives/api/src/lib.rs 43 additions, 0 deletionssubstrate/primitives/api/src/lib.rs
- substrate/primitives/core/src/traits.rs 25 additions, 36 deletionssubstrate/primitives/core/src/traits.rs
- substrate/primitives/io/Cargo.toml 2 additions, 0 deletionssubstrate/primitives/io/Cargo.toml
- substrate/primitives/io/src/lib.rs 31 additions, 20 deletionssubstrate/primitives/io/src/lib.rs
- substrate/primitives/runtime-interface/test/Cargo.toml 1 addition, 0 deletionssubstrate/primitives/runtime-interface/test/Cargo.toml
- substrate/primitives/runtime-interface/test/src/lib.rs 10 additions, 9 deletionssubstrate/primitives/runtime-interface/test/src/lib.rs
Please register or sign in to comment