• cheme's avatar
    Fix key collision for child trie (#4162) · 0ece5d9e
    cheme authored
    * In progress, runtime io must switch to future proof root +
    child_specific (unique id) + u32 type.
    
    * Switch interface, sr-io seems ok, rpc could use similar interface to
    sr-io, genesis json broken if there is child trie in existing encoding
    genesis.
    
    * test from previous implementation.
    
    * fix proving test.
    
    * Restore Keyspacedb from other branch, only apply to child trie.
    
    * Removing unneeded child_info from child root (child info are stored
    if things changed, otherwhise the root does not change).
    
    * Switch rpc to use same format as ext: more future proof.
    
    * use root from child info for trie backend essence.
    
    * Breaking long lines.
    
    * Update doc and clean pr a bit.
    
    * fix error type
    
    * Restore removed doc on merge and update sr-io doc.
    
    * Switch child storage api to use directly unique id, if managed id
    where to be put in place, the api will change at this time.
    
    * Clean deprecated host interface from child.
    
    * Removing assertion on child info (can fail depending on root
    memoization).
    
    * merging child info in the overlay when possible.
    
    * child iteration by prefix using child_info.
    
    * Using ChainInfo in frame support. ChainInfo gets redesign to avoid
    buffers allocation on every calls.
    
    * Add length of root to the data of child info.
    
    * comments
    
    * Encode compact.
    
    * Remove child info with root.
    
    * Fix try_update condition.
    
    * Comment Ext child root caching.
    
    * Replace tuples by struct with field
    
    * remove StorageTuple alias.
    
    * Fix doc tests, and remove StorageOverlay and ChildStorageOverlay
    aliases.
    0ece5d9e