From febf98e2730248643e810842a8a7950f074ccc7d Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Wed, 7 Oct 2026 20:36:54 +0000 Subject: [PATCH] Program id derivation: every pack's program.json states its own recipe (the record maker print_every_pack_derivation, ignored in the suite, rebuilds each pack as the pack tests do); the twelve readwidth mix packs keep their text (a class name the parser no longer accepts) Co-Authored-By: Claude Fable 5.1 --- igneum-pow/tests/derivation.rs | 39 +++++++++++++++++++ proto-cuda/packs-ca2-hot/hot32k4/program.json | 2 +- .../packs-ca2-hot/hot32k4a/program.json | 2 +- proto-cuda/packs-ca2-hot/hot64k2/program.json | 2 +- proto-cuda/packs-ca2-hot/hot64k4/program.json | 2 +- .../packs-ca2-hot/hot64k4a/program.json | 2 +- proto-cuda/packs-ca2-hot/hot64k8/program.json | 2 +- proto-cuda/packs-ca2-hot/hot96k4/program.json | 2 +- .../packs-ca2-hot/hot96k4a/program.json | 2 +- .../mx4-devnet-epoch0/program.json | 2 +- .../packs-ca2-mixer/mx4-genesis/program.json | 2 +- .../dr736-devnet-epoch0/program.json | 2 +- .../dr736-genesis/program.json | 2 +- .../packs-readwidth/scr0k32/program.json | 2 +- .../packs-readwidth/scr2k128/program.json | 2 +- .../packs-readwidth/scr2k32/program.json | 2 +- .../packs-readwidth/scr4k128/program.json | 2 +- .../packs-readwidth/scr4k32/program.json | 2 +- .../packs-readwidth/scr8k128/program.json | 2 +- .../packs-readwidth/scr8k32/program.json | 2 +- proto-cuda/packs-readwidth/w16/program.json | 2 +- proto-cuda/packs-readwidth/w64/program.json | 2 +- proto-cuda/packs-readwidth/w64x4/program.json | 2 +- 23 files changed, 61 insertions(+), 22 deletions(-) diff --git a/igneum-pow/tests/derivation.rs b/igneum-pow/tests/derivation.rs index 90939bdf..71db0805 100644 --- a/igneum-pow/tests/derivation.rs +++ b/igneum-pow/tests/derivation.rs @@ -101,3 +101,42 @@ fn the_class_v4_derivation_states_the_suffix_and_the_plain_text_derives_another_ assert_ne!(fnv1a64(&b), hex64(&j["program_id"]), "the plain text must not derive the pinned id (it did before the fix)"); assert_eq!(hex64(&j["program_id"]), 0xa785_0016_87d8_688a); } + +/// The record maker (ignored in the suite): prints `DERIVATION ` for every pack directory under proto-cuda, +/// the program rebuilt as the pack tests rebuild it (generator 3 with era bytes under class v2's era layout for packs-ca2-era, +/// generator 3 through the v3 seam otherwise, generator 2 with its load class, plain generator 2), so program.json's line can +/// be set from the code's own recipe after a derivation change. `cargo test --release --test derivation -- --ignored --nocapture`. +#[test] +#[ignore] +fn print_every_pack_derivation() { + use igneum_pow::generator::{generate_era, generate_from_seed_bytes, generate_from_seed_bytes_class, generate_from_seed_bytes_program_class, ProgramClass, GENERATOR_VERSION_V3}; + let root = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../proto-cuda"); + let mut dirs: Vec = std::fs::read_dir(&root).unwrap().map(|e| e.unwrap().path()).filter(|p| p.file_name().unwrap().to_str().unwrap().starts_with("packs")).flat_map(|g| std::fs::read_dir(g).unwrap().map(|e| e.unwrap().path())).filter(|p| p.join("program.json").is_file()).collect(); + dirs.sort(); + for dir in dirs { + let j: Value = serde_json::from_str(&std::fs::read_to_string(dir.join("program.json")).unwrap()).unwrap(); + let seed = j["seed"].as_str().unwrap(); + let seed_bytes = igneum_pow::bind::unhex(j["seed_bytes"].as_str().unwrap()).unwrap(); + let gen = j["generator"].as_u64().unwrap() as u32; + let era = j.get("era_seed_bytes").and_then(|v| v.as_str()).map(|h| igneum_pow::bind::unhex(h).unwrap()); + let lc = j.get("load_class").and_then(|c| c.as_str()); + let program = if gen == GENERATOR_VERSION_V3 && dir.parent().unwrap().file_name().unwrap() == "packs-ca2-era" { + let allowed: Vec = j["era"]["allowed_widths"].as_array().unwrap().iter().map(|v| v.as_u64().unwrap() as u8).collect(); + generate_era(seed, &seed_bytes, LoadClass::V2, era.as_deref().unwrap(), &allowed) + } else if gen == GENERATOR_VERSION_V3 { + generate_from_seed_bytes_program_class(seed, &seed_bytes, ProgramClass::V3, era.as_deref()) + } else if gen == 4 { + generate_from_seed_bytes_program_class(seed, &seed_bytes, ProgramClass::V4, era.as_deref()) + } else if let Some(c) = lc { + let Some(class) = LoadClass::parse(c) else { + println!("SKIP {} load_class {c:?} is a name the parser no longer accepts (an old experiment's pack); its derivation line stands as written", dir.strip_prefix(&root).unwrap().display()); + continue; + }; + generate_from_seed_bytes_class(seed, &seed_bytes, class) + } else { + generate_from_seed_bytes(seed, &seed_bytes) + }; + println!("DERIVATION {} {:016x} {}", dir.strip_prefix(&root).unwrap().display(), program.program_id(), program.program_id_derivation()); + assert_eq!(program.program_id(), hex64(&j["program_id"]), "{}: the rebuilt program's id is the pack's", dir.display()); + } +} diff --git a/proto-cuda/packs-ca2-hot/hot32k4/program.json b/proto-cuda/packs-ca2-hot/hot32k4/program.json index 6521857a..7c730e66 100644 --- a/proto-cuda/packs-ca2-hot/hot32k4/program.json +++ b/proto-cuda/packs-ca2-hot/hot32k4/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x3370a4466e5f322c", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'hot/' || hot_mb_u8 || hot_k_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-ca2-hot/hot32k4a/program.json b/proto-cuda/packs-ca2-hot/hot32k4a/program.json index 0d46fc05..557b4bec 100644 --- a/proto-cuda/packs-ca2-hot/hot32k4a/program.json +++ b/proto-cuda/packs-ca2-hot/hot32k4a/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0xd40c36ab07d82002", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'hot/' || hot_mb_u8 || hot_k_u8 || 'added'", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-ca2-hot/hot64k2/program.json b/proto-cuda/packs-ca2-hot/hot64k2/program.json index 5d402be4..16600ba0 100644 --- a/proto-cuda/packs-ca2-hot/hot64k2/program.json +++ b/proto-cuda/packs-ca2-hot/hot64k2/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x322a62466d49ff66", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'hot/' || hot_mb_u8 || hot_k_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-ca2-hot/hot64k4/program.json b/proto-cuda/packs-ca2-hot/hot64k4/program.json index 436d58d6..4b842876 100644 --- a/proto-cuda/packs-ca2-hot/hot64k4/program.json +++ b/proto-cuda/packs-ca2-hot/hot64k4/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x322a64466d4a02cc", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'hot/' || hot_mb_u8 || hot_k_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-ca2-hot/hot64k4a/program.json b/proto-cuda/packs-ca2-hot/hot64k4a/program.json index 1fc72c2d..59bc7cbf 100644 --- a/proto-cuda/packs-ca2-hot/hot64k4a/program.json +++ b/proto-cuda/packs-ca2-hot/hot64k4a/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x7f581216e95eb062", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'hot/' || hot_mb_u8 || hot_k_u8 || 'added'", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-ca2-hot/hot64k8/program.json b/proto-cuda/packs-ca2-hot/hot64k8/program.json index 63e52f1c..fb785143 100644 --- a/proto-cuda/packs-ca2-hot/hot64k8/program.json +++ b/proto-cuda/packs-ca2-hot/hot64k8/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x322a68466d4a0998", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'hot/' || hot_mb_u8 || hot_k_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-ca2-hot/hot96k4/program.json b/proto-cuda/packs-ca2-hot/hot96k4/program.json index c0d414cf..893f13d9 100644 --- a/proto-cuda/packs-ca2-hot/hot96k4/program.json +++ b/proto-cuda/packs-ca2-hot/hot96k4/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x329724466da667ec", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'hot/' || hot_mb_u8 || hot_k_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-ca2-hot/hot96k4a/program.json b/proto-cuda/packs-ca2-hot/hot96k4a/program.json index a1140783..ddb74759 100644 --- a/proto-cuda/packs-ca2-hot/hot96k4a/program.json +++ b/proto-cuda/packs-ca2-hot/hot96k4a/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x2ff8e52c952a62c2", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'hot/' || hot_mb_u8 || hot_k_u8 || 'added'", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-ca2-mixer/mx4-devnet-epoch0/program.json b/proto-cuda/packs-ca2-mixer/mx4-devnet-epoch0/program.json index dcce0542..64df83d7 100644 --- a/proto-cuda/packs-ca2-mixer/mx4-devnet-epoch0/program.json +++ b/proto-cuda/packs-ca2-mixer/mx4-devnet-epoch0/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0xa6892c64d9ddd7f7", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'mixer/' || mixer_mult_u8 || growth_u8", "dataset_mode": "memory-hard", "seed": "igneum-epoch/edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07/day/69676e65756d2d6461792ffa50000000000000", "seed_bytes": "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07", diff --git a/proto-cuda/packs-ca2-mixer/mx4-genesis/program.json b/proto-cuda/packs-ca2-mixer/mx4-genesis/program.json index 8b247276..be419a64 100644 --- a/proto-cuda/packs-ca2-mixer/mx4-genesis/program.json +++ b/proto-cuda/packs-ca2-mixer/mx4-genesis/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x951b89584750bd75", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'mixer/' || mixer_mult_u8 || growth_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-ca3-derive/dr736-devnet-epoch0/program.json b/proto-cuda/packs-ca3-derive/dr736-devnet-epoch0/program.json index c4633cff..c61c2918 100644 --- a/proto-cuda/packs-ca3-derive/dr736-devnet-epoch0/program.json +++ b/proto-cuda/packs-ca3-derive/dr736-devnet-epoch0/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x7f4a5ca0a3637820", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'mixer/' || mixer_mult_u8 || growth_u8 || 'derive/' || derive_len_le16", "dataset_mode": "memory-hard", "seed": "igneum-epoch/edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07/day/69676e65756d2d6461792ffa50000000000000", "seed_bytes": "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07", diff --git a/proto-cuda/packs-ca3-derive/dr736-genesis/program.json b/proto-cuda/packs-ca3-derive/dr736-genesis/program.json index 7a0ab9fe..4da56ff4 100644 --- a/proto-cuda/packs-ca3-derive/dr736-genesis/program.json +++ b/proto-cuda/packs-ca3-derive/dr736-genesis/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x72c1d8048aef9542", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'mixer/' || mixer_mult_u8 || growth_u8 || 'derive/' || derive_len_le16", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-readwidth/scr0k32/program.json b/proto-cuda/packs-readwidth/scr0k32/program.json index 2d28cab4..0467ec7b 100644 --- a/proto-cuda/packs-readwidth/scr0k32/program.json +++ b/proto-cuda/packs-readwidth/scr0k32/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0xe0b70cd155c28f4b", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'scratch/' || scratch_k_u8 || scratch_kb_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-readwidth/scr2k128/program.json b/proto-cuda/packs-readwidth/scr2k128/program.json index 4b6d69fa..85fd873d 100644 --- a/proto-cuda/packs-readwidth/scr2k128/program.json +++ b/proto-cuda/packs-readwidth/scr2k128/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0xe0afe0d155bc25d9", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'scratch/' || scratch_k_u8 || scratch_kb_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-readwidth/scr2k32/program.json b/proto-cuda/packs-readwidth/scr2k32/program.json index e9e8d9cb..efec3ac1 100644 --- a/proto-cuda/packs-readwidth/scr2k32/program.json +++ b/proto-cuda/packs-readwidth/scr2k32/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0xe0b080d155bd35b9", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'scratch/' || scratch_k_u8 || scratch_kb_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-readwidth/scr4k128/program.json b/proto-cuda/packs-readwidth/scr4k128/program.json index 4d0d0ad7..3ad7b630 100644 --- a/proto-cuda/packs-readwidth/scr4k128/program.json +++ b/proto-cuda/packs-readwidth/scr4k128/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0xe0c444d155cd78cf", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'scratch/' || scratch_k_u8 || scratch_kb_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-readwidth/scr4k32/program.json b/proto-cuda/packs-readwidth/scr4k32/program.json index 9bd6cf0f..2d1537ab 100644 --- a/proto-cuda/packs-readwidth/scr4k32/program.json +++ b/proto-cuda/packs-readwidth/scr4k32/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0xe0c4a4d155ce1bef", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'scratch/' || scratch_k_u8 || scratch_kb_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-readwidth/scr8k128/program.json b/proto-cuda/packs-readwidth/scr8k128/program.json index 8cbee7a2..23fd6d0b 100644 --- a/proto-cuda/packs-readwidth/scr8k128/program.json +++ b/proto-cuda/packs-readwidth/scr8k128/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0xe0d1dcd155d90573", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'scratch/' || scratch_k_u8 || scratch_kb_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-readwidth/scr8k32/program.json b/proto-cuda/packs-readwidth/scr8k32/program.json index 3b0163f5..75d7d9a0 100644 --- a/proto-cuda/packs-readwidth/scr8k32/program.json +++ b/proto-cuda/packs-readwidth/scr8k32/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0xe0d27cd155da1553", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8 || 'scratch/' || scratch_k_u8 || scratch_kb_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-readwidth/w16/program.json b/proto-cuda/packs-readwidth/w16/program.json index 8f563a1b..ad37ea46 100644 --- a/proto-cuda/packs-readwidth/w16/program.json +++ b/proto-cuda/packs-readwidth/w16/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x6a183165e23fd2bc", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-readwidth/w64/program.json b/proto-cuda/packs-readwidth/w64/program.json index 48e3cfe4..2bb323be 100644 --- a/proto-cuda/packs-readwidth/w64/program.json +++ b/proto-cuda/packs-readwidth/w64/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x5c427d666b4ed4f4", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973", diff --git a/proto-cuda/packs-readwidth/w64x4/program.json b/proto-cuda/packs-readwidth/w64x4/program.json index de9bee3f..e857e56d 100644 --- a/proto-cuda/packs-readwidth/w64x4/program.json +++ b/proto-cuda/packs-readwidth/w64x4/program.json @@ -3,7 +3,7 @@ "generator": 2, "attempt": 0, "program_id": "0x5c4269666b4eb2f8", - "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", + "program_id_derivation": "FNV-1a 64 over 'igneum-program-rw/' || generator_le32 || seed_words as little-endian bytes || attempt_le32 || mix[3] || load_slots_u8", "dataset_mode": "memory-hard", "seed": "igneum-genesis", "seed_bytes": "69676e65756d2d67656e65736973",