Warning
|
This project is "under-construction". This is an early version. The commands, sub-commands and options may change without prior warning. |
The metadata of a given runtime is a critical piece of information: it can be seen as the signature of a runtime. It contains the exhaustive list of all the features publicly exposed by the runtime.
Any node can be queried to provide its current metadata. This can be displayed in json format for instance. This is a great way to have a peek at what the runtime can do.
INFO: Substrate V12 is 16534 lines once its json representation is prettified.
subwasm allows:
-
getting the latest metadata from a running node
-
getting the latest runtime (wasm) from a running node
-
getting runtime and metadata at any point of time using a Block hash as reference
-
getting the metadata from a a wasm file without any node
-
extracting a few information (those not requiring storage) from a runtime as wasm file
For now, you need to use nightly:
rustup install nightly
then:
cargo +nightly install --git https://gitlab.com/chevdor/subwasm
Here is a list of other projects allowing to get the raw metadata through a rpc call:
-
PolkadotJS from Jaco / Parity
-
subsee from Andrew / Parity
-
substrate-api-client from SCS
-
subxt from Parity
link:doc/usage.adoc[role=include]
link:doc/usage_get.adoc[role=include]
link:doc/usage_info.adoc[role=include]
link:doc/usage_meta.adoc[role=include]
We will start by fetching the runtime from a node.
Note
|
Please note that you will likely need to connect to an archive node to retrieve older runtime. A runtime takes around 2MB of storage on-chain and thus, older versions are pruned and will no longer be accessible if you are connectin to a non-archive node. |
# Here we get the latest version of the runtime subwasm get --url http://localhost:9933
# Here we get an older runtime, back when Polkadot was at block 20 ! subwasm get --url http://localhost:9933 --block 0x4d6a0bca208b85d41833a7f35cf73d1ae6974f4bad8ab576e2c3f751d691fe6c
Note
|
By default, your runtime will be saved as runtime_000.wasm . Running this command again will increase the counter so we you don’t lose your previous runtime. You may also use the --output flag to provide the destination and filename of your choice. Beware, in this case, there will be no incremented counter.
|
# Show the runtime version and exit with status 0 subwasm info --input kusama-2030.wasm # Provide a few explanations and exit with a status that is not 0 subwasm info --input tictactoe.wasm