parent
aafb014d01
commit
9a8fdeead9
@ -297,6 +297,10 @@ impl BlockChain {
|
|||||||
let best_block_hash = match bc.extras_db.get(b"best").unwrap() {
|
let best_block_hash = match bc.extras_db.get(b"best").unwrap() {
|
||||||
Some(best) => {
|
Some(best) => {
|
||||||
let mut new_best = H256::from_slice(&best);
|
let mut new_best = H256::from_slice(&best);
|
||||||
|
if !bc.blocks_db.get(&new_best).unwrap().is_some() {
|
||||||
|
warn!("Best block {} not found", new_best.hex());
|
||||||
|
}
|
||||||
|
/* TODO: enable this once the best block issue is resolved
|
||||||
while !bc.blocks_db.get(&new_best).unwrap().is_some() {
|
while !bc.blocks_db.get(&new_best).unwrap().is_some() {
|
||||||
match bc.rewind() {
|
match bc.rewind() {
|
||||||
Some(h) => {
|
Some(h) => {
|
||||||
@ -308,7 +312,7 @@ impl BlockChain {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
info!("Restored mismatched best block. Was: {}, new: {}", H256::from_slice(&best).hex(), new_best.hex());
|
info!("Restored mismatched best block. Was: {}, new: {}", H256::from_slice(&best).hex(), new_best.hex());
|
||||||
}
|
}*/
|
||||||
new_best
|
new_best
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
|
@ -198,10 +198,15 @@ impl Client {
|
|||||||
state_db.commit(0, &spec.genesis_header().hash(), None).expect("Error commiting genesis state to state DB");
|
state_db.commit(0, &spec.genesis_header().hash(), None).expect("Error commiting genesis state to state DB");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !chain.block_header(&chain.best_block_hash()).map_or(true, |h| state_db.contains(h.state_root())) {
|
||||||
|
warn!("State root not found for block #{} ({})", chain.best_block_number(), chain.best_block_hash().hex());
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TODO: enable this once the best block issue is resolved
|
||||||
while !chain.block_header(&chain.best_block_hash()).map_or(true, |h| state_db.contains(h.state_root())) {
|
while !chain.block_header(&chain.best_block_hash()).map_or(true, |h| state_db.contains(h.state_root())) {
|
||||||
warn!("State root not found for block #{} ({}), recovering...", chain.best_block_number(), chain.best_block_hash().hex());
|
warn!("State root not found for block #{} ({}), recovering...", chain.best_block_number(), chain.best_block_hash().hex());
|
||||||
chain.rewind();
|
chain.rewind();
|
||||||
}
|
}*/
|
||||||
|
|
||||||
let engine = Arc::new(spec.engine);
|
let engine = Arc::new(spec.engine);
|
||||||
|
|
||||||
|
@ -168,8 +168,8 @@ impl Database {
|
|||||||
opts.set_block_based_table_factory(&block_opts);
|
opts.set_block_based_table_factory(&block_opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut write_opts = WriteOptions::new();
|
let write_opts = WriteOptions::new();
|
||||||
write_opts.disable_wal(true);
|
//write_opts.disable_wal(true); // TODO: make sure this is safe
|
||||||
|
|
||||||
let db = match DB::open(&opts, path) {
|
let db = match DB::open(&opts, path) {
|
||||||
Ok(db) => db,
|
Ok(db) => db,
|
||||||
|
Loading…
Reference in New Issue
Block a user