Use static str define for ledger files
This commit is contained in:
parent
aa2a3fe201
commit
a5f07638ec
|
@ -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(
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue