diff --git a/substrate/core/client/db/src/lib.rs b/substrate/core/client/db/src/lib.rs index 961ef03930..c261f667e1 100644 --- a/substrate/core/client/db/src/lib.rs +++ b/substrate/core/client/db/src/lib.rs @@ -151,8 +151,8 @@ pub struct BlockchainDb { impl BlockchainDb { fn new(db: Arc) -> Result { - let meta = read_meta::(&*db, columns::HEADER)?; - let leaves = LeafSet::read_from_db(&*db, columns::HEADER, meta_keys::LEAF_PREFIX)?; + let meta = read_meta::(&*db, columns::META)?; + let leaves = LeafSet::read_from_db(&*db, columns::META, meta_keys::LEAF_PREFIX)?; Ok(BlockchainDb { db, leaves: RwLock::new(leaves), @@ -638,7 +638,7 @@ impl client::backend::Backend for Backend whe { let mut leaves = self.blockchain.leaves.write(); let displaced_leaf = leaves.import(hash, number, parent_hash); - leaves.prepare_transaction(&mut transaction, columns::HEADER, meta_keys::LEAF_PREFIX); + leaves.prepare_transaction(&mut transaction, columns::META, meta_keys::LEAF_PREFIX); let write_result = self.storage.db.write(transaction).map_err(db_err); if let Err(e) = write_result { diff --git a/substrate/core/client/db/src/light.rs b/substrate/core/client/db/src/light.rs index 04d2ad469e..8131ec135b 100644 --- a/substrate/core/client/db/src/light.rs +++ b/substrate/core/client/db/src/light.rs @@ -92,8 +92,8 @@ impl LightStorage columns::HEADER, columns::AUTHORITIES )?; - let meta = RwLock::new(read_meta::(&*db, columns::HEADER)?); - let leaves = RwLock::new(LeafSet::read_from_db(&*db, columns::HEADER, meta_keys::LEAF_PREFIX)?); + let meta = RwLock::new(read_meta::(&*db, columns::META)?); + let leaves = RwLock::new(LeafSet::read_from_db(&*db, columns::META, meta_keys::LEAF_PREFIX)?); Ok(LightStorage { db, diff --git a/substrate/core/client/src/leaves.rs b/substrate/core/client/src/leaves.rs index 28a16b6114..a41f91933c 100644 --- a/substrate/core/client/src/leaves.rs +++ b/substrate/core/client/src/leaves.rs @@ -82,6 +82,7 @@ impl LeafSet where let mut storage = BTreeSet::new(); for (key, value) in db.iter_from_prefix(column, prefix) { + if !key.starts_with(prefix) { break } let raw_hash = &mut &key[prefix.len()..]; let hash = match Decode::decode(raw_hash) { Some(hash) => hash,