You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Current RuntimeUpgradeTracker needs to know (all block headers to know) blocks where runtime upgrade happened.
This block is used as caching key for wasm code/module.
Sometimes we don't want/have all block headers (e.g. warp sync).
RuntimeUpgradeTracker can work without knowing all block headers.
Caching can be simplified:
It can always retrieve correct runtime wasm code from block state.
Block without runtime upgrade digest has same runtime wasm code as it's parent.
If we can't rely on RuntimeEnvironmentUpdated digest, then we need to store either code_hash: hash or runtime_upgraded: bool for each block that was either executed (and :code was set by wasm) or checked for upgrade with trie_diff(key=":code").
Finalized blocks can be compressed, by using range of numbers instead of block hash ([0, 1, ..., 100] => [0..100])
The text was updated successfully, but these errors were encountered:
Current
RuntimeUpgradeTracker
needs to know (all block headers to know) blocks where runtime upgrade happened.This block is used as caching key for wasm code/module.
Sometimes we don't want/have all block headers (e.g. warp sync).
RuntimeUpgradeTracker
can work without knowing all block headers.Caching can be simplified:
If we can't rely on
RuntimeEnvironmentUpdated
digest, then we need to store eithercode_hash: hash
orruntime_upgraded: bool
for each block that was either executed (and:code
was set by wasm) or checked for upgrade withtrie_diff(key=":code")
.Finalized blocks can be compressed, by using range of numbers instead of block hash (
[0, 1, ..., 100] => [0..100]
)The text was updated successfully, but these errors were encountered: