P17 conformance driver: P17_BASE and P17_SUFFIX move the run to another port range; emu test keeps a miner-written kernel_sha256 stamp (ledger close round 3)

tools/p17-conformance/run.mjs: the port base and the devnet suffix come from the environment (defaults unchanged, 29950
and 1950); round 3 ran on 30010 and igneum-devnet-2010 because another agent's process held 29999 inside the 29990 range.
proto-cuda/nvrtc/emu/test.sh: a pack A that already carries kernel_sha256 (igneum-miner export-pack) keeps the miner's
own stamp, so the worker check runs against what the miner wrote; an unstamped pack (igneum-pow export) is stamped by
the test as before. The pack-T tampered case is unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-06 00:08:07 +00:00
parent 6453486ada
commit 8048882031
2 changed files with 5 additions and 2 deletions

View file

@ -50,7 +50,9 @@ lines[i + 1:i + 1] = [' "kernel_sha256": {%s},' % ", ".join(entries),
open(p, "w").write("\n".join(lines))
PYS
}
stamp_pack "$OUT/pack-a"
# A pack A written by igneum-miner (export-pack, ledger close round 3) already carries the miner's stamp: it is kept, so
# the test checks the miner's own stamp against the worker; only an unstamped pack (igneum-pow export) is stamped here.
if grep -q '"kernel_sha256"' "$OUT/pack-a/program.json"; then echo "pack A keeps the miner's kernel_sha256 stamp"; else stamp_pack "$OUT/pack-a"; fi
stamp_pack "$OUT/pack-b"
# Pack T: pack A with one constant of kernel_bound.cu edited after the stamp (the vectors still match, the text does
# not). It must be refused before anything compiles.

View file

@ -42,7 +42,8 @@ const TMP = process.env.IGNEUM_FIN_TMP;
const REL = process.env.IGNEUM_FORK_BIN || `${MAIN}vendor/igneum-node-ledger/target/release`;
const IGNEUMD = process.env.IGNEUMD || `${REL}/igneumd`;
const MINER = process.env.IGNEUM_MINER || `${REL}/igneum-miner`;
const BASE = 29950, SUFFIX = 1950, CHAIN_ID = 4463;
// P17_BASE and P17_SUFFIX move the run to another port range and network id (round 3 ran on 29990 and igneum-devnet-1990)
const BASE = +(process.env.P17_BASE || 29950), SUFFIX = +(process.env.P17_SUFFIX || 1950), CHAIN_ID = 4463;
const WARM = +(process.env.WARM || 200);
const DELAY_MS = +(process.env.DELAY_MS || 50);
for (const b of [IGNEUMD, MINER]) if (!existsSync(b)) { console.error(`missing ${b}`); process.exit(2); }