diff --git a/pool/Cargo.lock b/pool/Cargo.lock index bc4c620f1..d0f3e44de 100644 --- a/pool/Cargo.lock +++ b/pool/Cargo.lock @@ -2938,7 +2938,7 @@ dependencies = [ [[package]] name = "kaspa-addresses" -version = "2.0.1" +version = "2.0.2" dependencies = [ "borsh", "js-sys", @@ -2952,7 +2952,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-client" -version = "2.0.1" +version = "2.0.2" dependencies = [ "ahash", "borsh", @@ -2981,7 +2981,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-core" -version = "2.0.1" +version = "2.0.2" dependencies = [ "arc-swap", "async-trait", @@ -3022,7 +3022,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-notify" -version = "2.0.1" +version = "2.0.2" dependencies = [ "async-channel 2.3.1", "cfg-if", @@ -3041,7 +3041,7 @@ dependencies = [ [[package]] name = "kaspa-consensus-wasm" -version = "2.0.1" +version = "2.0.2" dependencies = [ "cfg-if", "faster-hex", @@ -3065,7 +3065,7 @@ dependencies = [ [[package]] name = "kaspa-core" -version = "2.0.1" +version = "2.0.2" dependencies = [ "anyhow", "cfg-if", @@ -3084,7 +3084,7 @@ dependencies = [ [[package]] name = "kaspa-grpc-client" -version = "2.0.1" +version = "2.0.2" dependencies = [ "async-channel 2.3.1", "async-stream", @@ -3116,7 +3116,7 @@ dependencies = [ [[package]] name = "kaspa-grpc-core" -version = "2.0.1" +version = "2.0.2" dependencies = [ "async-channel 2.3.1", "async-stream", @@ -3147,7 +3147,7 @@ dependencies = [ [[package]] name = "kaspa-hashes" -version = "2.0.1" +version = "2.0.2" dependencies = [ "blake2b_simd", "blake3", @@ -3167,7 +3167,7 @@ dependencies = [ [[package]] name = "kaspa-index-core" -version = "2.0.1" +version = "2.0.2" dependencies = [ "async-channel 2.3.1", "async-trait", @@ -3186,7 +3186,7 @@ dependencies = [ [[package]] name = "kaspa-math" -version = "2.0.1" +version = "2.0.2" dependencies = [ "borsh", "faster-hex", @@ -3205,14 +3205,14 @@ dependencies = [ [[package]] name = "kaspa-merkle" -version = "2.0.1" +version = "2.0.2" dependencies = [ "kaspa-hashes", ] [[package]] name = "kaspa-mining-errors" -version = "2.0.1" +version = "2.0.2" dependencies = [ "kaspa-consensus-core", "thiserror 2.0.18", @@ -3220,7 +3220,7 @@ dependencies = [ [[package]] name = "kaspa-muhash" -version = "2.0.1" +version = "2.0.2" dependencies = [ "kaspa-hashes", "kaspa-math", @@ -3230,7 +3230,7 @@ dependencies = [ [[package]] name = "kaspa-notify" -version = "2.0.1" +version = "2.0.2" dependencies = [ "async-channel 2.3.1", "async-trait", @@ -3261,7 +3261,7 @@ dependencies = [ [[package]] name = "kaspa-pow" -version = "2.0.1" +version = "2.0.2" dependencies = [ "hex", "igneum-pow", @@ -3279,7 +3279,7 @@ dependencies = [ [[package]] name = "kaspa-rpc-core" -version = "2.0.1" +version = "2.0.2" dependencies = [ "async-channel 2.3.1", "async-trait", @@ -3320,7 +3320,7 @@ dependencies = [ [[package]] name = "kaspa-rpc-macros" -version = "2.0.1" +version = "2.0.2" dependencies = [ "convert_case 0.6.0", "proc-macro-error", @@ -3332,7 +3332,7 @@ dependencies = [ [[package]] name = "kaspa-smt" -version = "2.0.1" +version = "2.0.2" dependencies = [ "blake3", "kaspa-hashes", @@ -3342,7 +3342,7 @@ dependencies = [ [[package]] name = "kaspa-txscript" -version = "2.0.1" +version = "2.0.2" dependencies = [ "ark-bn254", "ark-ec", @@ -3384,7 +3384,7 @@ dependencies = [ [[package]] name = "kaspa-txscript-errors" -version = "2.0.1" +version = "2.0.2" dependencies = [ "borsh", "kaspa-hashes", @@ -3394,7 +3394,7 @@ dependencies = [ [[package]] name = "kaspa-utils" -version = "2.0.1" +version = "2.0.2" dependencies = [ "async-channel 2.3.1", "borsh", @@ -3416,7 +3416,7 @@ dependencies = [ [[package]] name = "kaspa-utils-tower" -version = "2.0.1" +version = "2.0.2" dependencies = [ "bytes", "cfg-if", @@ -3432,7 +3432,7 @@ dependencies = [ [[package]] name = "kaspa-wasm-core" -version = "2.0.1" +version = "2.0.2" dependencies = [ "faster-hex", "hexplay", diff --git a/pool/src/recheck.rs b/pool/src/recheck.rs index 5af116c30..856f06acb 100644 --- a/pool/src/recheck.rs +++ b/pool/src/recheck.rs @@ -307,7 +307,7 @@ pub fn cli(args: &[String]) -> i32 { return self_test(); } let (Some(jc_path), Some(phase), Some(out)) = (arg(args, "--job-context"), arg(args, "--phase").and_then(|s| s.parse::().ok()), arg(args, "--out")) else { - eprintln!("usage: igneum-pool recheck --job-context --phase 1|2|3 [--state ] [--dataset-log2 N] [--manifest ] [--sample 64] [--threads N] --out "); + eprintln!("usage: igneum-pool recheck --job-context --phase 1|2|3 [--state ] [--dataset-log2 N] [--genesis-day D] [--manifest ] [--sample 64] [--threads N] --out "); return 2; }; let t0 = Instant::now(); @@ -346,6 +346,7 @@ pub fn cli(args: &[String]) -> i32 { None => "no --state: the engine's own provider, or none".to_string(), }; let dataset_flag = arg(args, "--dataset-log2").and_then(|s| s.parse::().ok()); + let genesis_day_flag = arg(args, "--genesis-day").and_then(|s| s.parse::().ok()); let engine = IgneumEngine::new(); let mut fields = Vec::new(); let mut jobs = Vec::new(); @@ -372,14 +373,21 @@ pub fn cli(args: &[String]) -> i32 { reference.insert(n, h); } } - // the dataset size the pack was built for, before its epoch is built (the flag overrides the pack) - if let Some(l) = dataset_flag.or(f.log2_words) - && l != kaspa_consensus_core::igneum::pow_genesis_dataset_log2() - { - install_pow_genesis(pow_genesis_day_index(), l); - eprintln!("recheck: dataset 2^{l} words (the pack's dataset.log2_words)"); - } let line = job_line(i as u64 + 1, &prehash, seg, &f); + // the pack's geometry, before its epoch is built: the dataset size (dataset.log2_words, the flag overriding) + // AND the genesis day index, the first segment's day (the same-work lane's class, 8 October 2026 22:10 UK: + // a standalone process holds the genesis day at 0 and the growth rule doubled the cache fourteen times by + // day 20730, every item wrong; the live miner installs both from the template, the reader from the pack) + if i == 0 + && let Ok(j0) = parse_job(&line) + { + let l = dataset_flag.or(f.log2_words).unwrap_or_else(kaspa_consensus_core::igneum::pow_genesis_dataset_log2); + let g = genesis_day_flag.unwrap_or(j0.seeds.day); + if (g, l) != (pow_genesis_day_index(), kaspa_consensus_core::igneum::pow_genesis_dataset_log2()) { + install_pow_genesis(g, l); + } + eprintln!("recheck: genesis day {g}, dataset 2^{l} words (the pack's geometry; --genesis-day and --dataset-log2 override)"); + } let job = match parse_job(&line) { Ok(j) => j, Err(e) => {