mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-29 18:27:56 +00:00
Warp sync part II (#9284)
* Gap sync * Gap epoch test * Simplified network requests * Update client/db/src/utils.rs Co-authored-by: cheme <emericchevalier.pro@gmail.com> * Fixed v1 migration and added some comments * Next epoch is always regular * Removed fork tree change * Apply suggestions from code review Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * Added a comment and converted assert to error Co-authored-by: cheme <emericchevalier.pro@gmail.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
@@ -54,6 +54,8 @@ pub mod meta_keys {
|
||||
pub const FINALIZED_BLOCK: &[u8; 5] = b"final";
|
||||
/// Last finalized state key.
|
||||
pub const FINALIZED_STATE: &[u8; 6] = b"fstate";
|
||||
/// Block gap.
|
||||
pub const BLOCK_GAP: &[u8; 3] = b"gap";
|
||||
/// Meta information prefix for list-based caches.
|
||||
pub const CACHE_META_PREFIX: &[u8; 5] = b"cache";
|
||||
/// Meta information for changes tries key.
|
||||
@@ -81,6 +83,8 @@ pub struct Meta<N, H> {
|
||||
pub genesis_hash: H,
|
||||
/// Finalized state, if any
|
||||
pub finalized_state: Option<(H, N)>,
|
||||
/// Block gap, start and end inclusive, if any.
|
||||
pub block_gap: Option<(N, N)>,
|
||||
}
|
||||
|
||||
/// A block lookup key: used for canonical lookup from block number to hash
|
||||
@@ -527,6 +531,7 @@ where
|
||||
finalized_number: Zero::zero(),
|
||||
genesis_hash: Default::default(),
|
||||
finalized_state: None,
|
||||
block_gap: None,
|
||||
}),
|
||||
};
|
||||
|
||||
@@ -541,7 +546,7 @@ where
|
||||
"Opened blockchain db, fetched {} = {:?} ({})",
|
||||
desc,
|
||||
hash,
|
||||
header.number()
|
||||
header.number(),
|
||||
);
|
||||
Ok((hash, *header.number()))
|
||||
} else {
|
||||
@@ -558,6 +563,10 @@ where
|
||||
} else {
|
||||
None
|
||||
};
|
||||
let block_gap = db
|
||||
.get(COLUMN_META, meta_keys::BLOCK_GAP)
|
||||
.and_then(|d| Decode::decode(&mut d.as_slice()).ok());
|
||||
debug!(target: "db", "block_gap={:?}", block_gap);
|
||||
|
||||
Ok(Meta {
|
||||
best_hash,
|
||||
@@ -566,6 +575,7 @@ where
|
||||
finalized_number,
|
||||
genesis_hash,
|
||||
finalized_state,
|
||||
block_gap,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user