Genesis block is now a json file
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
use clap::{crate_version, App, Arg, SubCommand};
|
||||
use solana::bank::Bank;
|
||||
use solana::db_ledger::DbLedger;
|
||||
use solana::genesis_block::GenesisBlock;
|
||||
use std::io::{stdout, Write};
|
||||
use std::process::exit;
|
||||
|
||||
@@ -46,6 +47,14 @@ fn main() {
|
||||
|
||||
let ledger_path = matches.value_of("ledger").unwrap();
|
||||
|
||||
let genesis_block = GenesisBlock::load(ledger_path).unwrap_or_else(|err| {
|
||||
eprintln!(
|
||||
"Failed to open ledger genesis_block at {}: {}",
|
||||
ledger_path, err
|
||||
);
|
||||
exit(1);
|
||||
});
|
||||
|
||||
let db_ledger = match DbLedger::open(ledger_path) {
|
||||
Ok(db_ledger) => db_ledger,
|
||||
Err(err) => {
|
||||
@@ -54,7 +63,7 @@ fn main() {
|
||||
}
|
||||
};
|
||||
|
||||
let mut entries = match db_ledger.read_ledger() {
|
||||
let entries = match db_ledger.read_ledger() {
|
||||
Ok(entries) => entries,
|
||||
Err(err) => {
|
||||
eprintln!("Failed to read ledger at {}: {}", ledger_path, err);
|
||||
@@ -103,26 +112,7 @@ fn main() {
|
||||
stdout().write_all(b"\n]}\n").expect("close array");
|
||||
}
|
||||
("verify", _) => {
|
||||
const NUM_GENESIS_ENTRIES: usize = 3;
|
||||
if head < NUM_GENESIS_ENTRIES {
|
||||
eprintln!(
|
||||
"verify requires at least {} entries to run",
|
||||
NUM_GENESIS_ENTRIES
|
||||
);
|
||||
exit(1);
|
||||
}
|
||||
let bank = Bank::new_with_builtin_programs();
|
||||
{
|
||||
let genesis = entries.by_ref().take(NUM_GENESIS_ENTRIES);
|
||||
if let Err(e) = bank.process_ledger(genesis) {
|
||||
eprintln!("verify failed at genesis err: {:?}", e);
|
||||
if !matches.is_present("continue") {
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
let head = head - NUM_GENESIS_ENTRIES;
|
||||
|
||||
let bank = Bank::new(&genesis_block);
|
||||
let mut last_id = bank.last_id();
|
||||
let mut num_entries = 0;
|
||||
for (i, entry) in entries.enumerate() {
|
||||
|
Reference in New Issue
Block a user