Struct ethcore::snapshot::BlockRebuilder
[−]
[src]
pub struct BlockRebuilder { /* fields omitted */ }
Rebuilds the blockchain from chunks.
Does basic verification for all blocks, but PoW
verification for some.
Blocks must be fed in-order.
The first block in every chunk is disconnected from the last block in the chunk before it, as chunks may be submitted out-of-order.
After all chunks have been submitted, we "glue" the chunks together.
Methods
impl BlockRebuilder
[src]
fn new(chain: BlockChain,
db: Arc<Database>,
manifest: &ManifestData)
-> Result<Self, Error>
db: Arc<Database>,
manifest: &ManifestData)
-> Result<Self, Error>
Create a new BlockRebuilder.
fn feed(&mut self,
chunk: &[u8],
engine: &Engine,
abort_flag: &AtomicBool)
-> Result<u64, Error>
chunk: &[u8],
engine: &Engine,
abort_flag: &AtomicBool)
-> Result<u64, Error>
Feed the rebuilder an uncompressed block chunk. Returns the number of blocks fed or any errors.
fn finalize(self, canonical: HashMap<u64, H256>) -> Result<(), Error>
Glue together any disconnected chunks and check that the chain is complete.