substrate-api-client
substrate-api-client copied to clipboard
Investigate: Support Merkleized Metadata
RFC-0078 Merkelized Metadata proposes to include a metadata hash in the extrinsic signature to improve trust in the protocol: https://polkadot-fellows.github.io/RFCs/approved/0078-merkleized-metadata.html
- PR to provide this feature: https://github.com/polkadot-fellows/runtimes/pull/337
- Subxt is discussing whether to support this: https://github.com/paritytech/subxt/issues/1586
- The feature was activated on Kusama: https://kusama.subsquare.io/referenda/406
Open questions
- Why did we not detect this in our builds?
- The docker image we use for testing (paritypr/substrate:latest) is 10 months old. This seems a bit outdated
- https://hub.docker.com/layers/paritypr/substrate/latest/images/sha256-a4e5fc063bee26dce1f8feb998712111be71b130118148fad1efc75d371bf97c?context=explore
- Also see https://github.com/paritytech/polkadot-sdk/issues/4789
- After some digging I found out that this is indeed the reason why we did not notice this breaking change. Testing with other docker images I get the following results
- paritypr/substrate:master-ae864e6a broken
- paritypr/substrate:8dbe4ee8 broken
- paritypr/substrate:master-eda98954 works
- paritypr/substrate:master-ad54bc36 works
- Commit 8dbe4ee8 introduced the CheckMetadataHash extension
- https://github.com/paritytech/polkadot-sdk/commit/8dbe4ee80734bba6644c7e5f879a363ce7c0a19f
- Could this be improved in the future?
- The docker image we use for testing (paritypr/substrate:latest) is 10 months old. This seems a bit outdated
I created a new issue #778 for the up-to-date images
Link to Code of Parity: https://github.com/paritytech/polkadot-sdk/blob/master/substrate/frame/metadata-hash-extension/src/lib.rs#L105