diff --git a/rust-brainwallet-search/src/lib.rs b/rust-brainwallet-search/src/lib.rs index d902082..bf96a77 100644 --- a/rust-brainwallet-search/src/lib.rs +++ b/rust-brainwallet-search/src/lib.rs @@ -84,7 +84,6 @@ pub fn brainwallet_sha256_check_btc( hashing_rounds: usize, hasher_repetition_count: usize, ) { - if hashing_rounds == 0 { panic!("Invalid number of hashing rounds"); } @@ -105,15 +104,17 @@ pub fn brainwallet_sha256_check_btc( // minor performance tuning: use larger buffer size then default 8KiB const BUF_READER_CAPACITY: usize = 1_048_576; // 1MiB + let source_id = "brainwallet-sha256"; // silently drop any problematic lines // TODO replace with a mode that flags problematic inputs and keeps statistics on them - let passphrases: Vec = BufReader::with_capacity(BUF_READER_CAPACITY, file) + // + // This distributes inputs on the fly to the parallel runners, + // avoiding the need to load the initial input file completely into memory first + BufReader::with_capacity(BUF_READER_CAPACITY, file) .lines() + .par_bridge() .filter_map(|l| l.ok()) - .collect(); - let source_id = "brainwallet-sha256"; - - passphrases.par_iter().for_each(|passphrase| { + .for_each(|passphrase| { // Count lines and print progress c.count_and_print_regularly();