igneum-pool recheck: the pack's genesis day index installed with its dataset size before the first epoch (--genesis-day overrides). The same-work lane's class, 8 October 2026 22:10 UK: a standalone process holds the genesis day at 0, the cache growth rule doubled the cache fourteen times by day 20730, and every hash of the D1-pairing row disagreed with the reference while igneum-pow's own class v6 seam reproduced it exactly; the live miner installs both from the template, the reader now from the pack
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
04cf78f26b
commit
04fcb275f8
2 changed files with 40 additions and 32 deletions
48
pool/Cargo.lock
generated
48
pool/Cargo.lock
generated
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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::<u64>().ok()), arg(args, "--out")) else {
|
||||
eprintln!("usage: igneum-pool recheck --job-context <job-context.json> --phase 1|2|3 [--state <igsd1>] [--dataset-log2 N] [--manifest <sha>] [--sample 64] [--threads N] --out <evidence.json>");
|
||||
eprintln!("usage: igneum-pool recheck --job-context <job-context.json> --phase 1|2|3 [--state <igsd1>] [--dataset-log2 N] [--genesis-day D] [--manifest <sha>] [--sample 64] [--threads N] --out <evidence.json>");
|
||||
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::<u32>().ok());
|
||||
let genesis_day_flag = arg(args, "--genesis-day").and_then(|s| s.parse::<u64>().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) => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue