Use static str define for ledger files

This commit is contained in:
Stephen Akridge 2018-09-28 11:52:35 -07:00 committed by sakridge
parent aa2a3fe201
commit a5f07638ec
2 changed files with 17 additions and 13 deletions

View File

@ -9,6 +9,7 @@ use clap::{App, Arg};
use solana::chacha::chacha_cbc_encrypt_files; use solana::chacha::chacha_cbc_encrypt_files;
use solana::crdt::Node; use solana::crdt::Node;
use solana::fullnode::Config; use solana::fullnode::Config;
use solana::ledger::LEDGER_DATA_FILE;
use solana::logger; use solana::logger;
use solana::replicator::Replicator; use solana::replicator::Replicator;
use solana::signature::{Keypair, KeypairUtil}; use solana::signature::{Keypair, KeypairUtil};
@ -106,8 +107,8 @@ fn main() {
println!("Done downloading ledger"); println!("Done downloading ledger");
let ledger_path = Path::new(ledger_path.unwrap()); let ledger_path = Path::new(ledger_path.unwrap());
let ledger_data_file = ledger_path.join("data"); let ledger_data_file = ledger_path.join(LEDGER_DATA_FILE);
let ledger_data_file_encrypted = ledger_path.join("data.enc"); let ledger_data_file_encrypted = ledger_path.join(format!("{}.enc", LEDGER_DATA_FILE));
let key = "abc123"; let key = "abc123";
if let Err(e) = chacha_cbc_encrypt_files( if let Err(e) = chacha_cbc_encrypt_files(

View File

@ -71,6 +71,9 @@ pub struct LedgerWindow {
data: BufReader<File>, data: BufReader<File>,
} }
pub const LEDGER_DATA_FILE: &str = "data";
const LEDGER_INDEX_FILE: &str = "index";
// use a CONST because there's a cast, and we don't want "sizeof::<u64> as u64"... // use a CONST because there's a cast, and we don't want "sizeof::<u64> as u64"...
const SIZEOF_U64: u64 = size_of::<u64>() as u64; const SIZEOF_U64: u64 = size_of::<u64>() as u64;
@ -104,9 +107,9 @@ impl LedgerWindow {
pub fn open(ledger_path: &str) -> io::Result<Self> { pub fn open(ledger_path: &str) -> io::Result<Self> {
let ledger_path = Path::new(&ledger_path); let ledger_path = Path::new(&ledger_path);
let index = File::open(ledger_path.join("index"))?; let index = File::open(ledger_path.join(LEDGER_INDEX_FILE))?;
let index = BufReader::with_capacity((WINDOW_SIZE * SIZEOF_U64) as usize, index); let index = BufReader::with_capacity((WINDOW_SIZE * SIZEOF_U64) as usize, index);
let data = File::open(ledger_path.join("data"))?; let data = File::open(ledger_path.join(LEDGER_DATA_FILE))?;
let data = BufReader::with_capacity(WINDOW_SIZE as usize * BLOB_DATA_SIZE, data); let data = BufReader::with_capacity(WINDOW_SIZE as usize * BLOB_DATA_SIZE, data);
Ok(LedgerWindow { index, data }) Ok(LedgerWindow { index, data })
@ -121,7 +124,7 @@ impl LedgerWindow {
pub fn verify_ledger(ledger_path: &str) -> io::Result<()> { pub fn verify_ledger(ledger_path: &str) -> io::Result<()> {
let ledger_path = Path::new(&ledger_path); let ledger_path = Path::new(&ledger_path);
let index = File::open(ledger_path.join("index"))?; let index = File::open(ledger_path.join(LEDGER_INDEX_FILE))?;
let index_len = index.metadata()?.len(); let index_len = index.metadata()?.len();
@ -133,7 +136,7 @@ pub fn verify_ledger(ledger_path: &str) -> io::Result<()> {
} }
let mut index = BufReader::with_capacity((WINDOW_SIZE * SIZEOF_U64) as usize, index); let mut index = BufReader::with_capacity((WINDOW_SIZE * SIZEOF_U64) as usize, index);
let data = File::open(ledger_path.join("data"))?; let data = File::open(ledger_path.join(LEDGER_DATA_FILE))?;
let mut data = BufReader::with_capacity(WINDOW_SIZE as usize * BLOB_DATA_SIZE, data); let mut data = BufReader::with_capacity(WINDOW_SIZE as usize * BLOB_DATA_SIZE, data);
let mut last_data_offset = 0; let mut last_data_offset = 0;
@ -190,12 +193,12 @@ fn recover_ledger(ledger_path: &str) -> io::Result<()> {
let mut index = OpenOptions::new() let mut index = OpenOptions::new()
.write(true) .write(true)
.read(true) .read(true)
.open(ledger_path.join("index"))?; .open(ledger_path.join(LEDGER_INDEX_FILE))?;
let mut data = OpenOptions::new() let mut data = OpenOptions::new()
.write(true) .write(true)
.read(true) .read(true)
.open(ledger_path.join("data"))?; .open(ledger_path.join(LEDGER_DATA_FILE))?;
// first, truncate to a multiple of SIZEOF_U64 // first, truncate to a multiple of SIZEOF_U64
let len = index.metadata()?.len(); let len = index.metadata()?.len();
@ -298,7 +301,7 @@ impl LedgerWriter {
let index = OpenOptions::new() let index = OpenOptions::new()
.create(create) .create(create)
.append(true) .append(true)
.open(ledger_path.join("index"))?; .open(ledger_path.join(LEDGER_INDEX_FILE))?;
if log_enabled!(Trace) { if log_enabled!(Trace) {
let len = index.metadata()?.len(); let len = index.metadata()?.len();
@ -309,7 +312,7 @@ impl LedgerWriter {
let data = OpenOptions::new() let data = OpenOptions::new()
.create(create) .create(create)
.append(true) .append(true)
.open(ledger_path.join("data"))?; .open(ledger_path.join(LEDGER_DATA_FILE))?;
if log_enabled!(Trace) { if log_enabled!(Trace) {
let len = data.metadata()?.len(); let len = data.metadata()?.len();
@ -393,7 +396,7 @@ pub fn read_ledger(
} }
let ledger_path = Path::new(&ledger_path); let ledger_path = Path::new(&ledger_path);
let data = File::open(ledger_path.join("data"))?; let data = File::open(ledger_path.join(LEDGER_DATA_FILE))?;
let data = BufReader::new(data); let data = BufReader::new(data);
Ok(LedgerReader { data }) Ok(LedgerReader { data })
@ -752,7 +755,7 @@ mod tests {
} }
assert!(window.get_entry(100).is_err()); assert!(window.get_entry(100).is_err());
std::fs::remove_file(Path::new(&ledger_path).join("data")).unwrap(); std::fs::remove_file(Path::new(&ledger_path).join(LEDGER_DATA_FILE)).unwrap();
// empty data file should fall over // empty data file should fall over
assert!(LedgerWindow::open(&ledger_path).is_err()); assert!(LedgerWindow::open(&ledger_path).is_err());
assert!(read_ledger(&ledger_path, false).is_err()); assert!(read_ledger(&ledger_path, false).is_err());
@ -770,7 +773,7 @@ mod tests {
let data = OpenOptions::new() let data = OpenOptions::new()
.write(true) .write(true)
.open(Path::new(&ledger_path).join("data")) .open(Path::new(&ledger_path).join(LEDGER_DATA_FILE))
.unwrap(); .unwrap();
data.set_len(len - 4).unwrap(); data.set_len(len - 4).unwrap();
} }