Commit 0849bcce authored by Sergey Pepyakin's avatar Sergey Pepyakin Committed by GitHub
Browse files

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: default avatarDavid <[email protected]>

* Fix sc-executor integration tests

* Nits

Co-authored-by: default avatarBastian Köcher <[email protected]>

* 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: default avatarDavid <[email protected]>
Co-authored-by: default avatarBastian Köcher <[email protected]>
parent 4f7c1df3
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment