Skip to content

v0.6.2 — prover reliability fix

Choose a tag to compare

@defenwycke defenwycke released this 24 Jul 12:31

Hazync v0.6.2 — prover reliability fix (segment-boundary retry)

METHOD_ID is unchanged: 601d7ca298f32c54137fdb395d0debd31e95e4f084615fa710e5db5c785f05e6. The guest is byte-identical to v0.6.1 — this release only changes the host prover, so every proof made against v0.6.0/v0.6.1 still verifies, and the reproducible build still yields this id.

What changed

The pinned prover (risc0-circuit-rv32im 4.0.5) has a preflight bug: for ~10% of blocks a proving segment packs right to its 2^po2 boundary and the assertion cycles <= 1 << segment.po2 overflows, so the prove panics — on CPU and CUDA. It's a liveness bug only (it never produces a wrong proof — every proof this project has ever published is valid; it just failed to produce a proof for those blocks). This is why the v0.6.1 seeding stalled on ~10% of blocks.

Fix (host-side, so the guest / METHOD_ID is untouched): host now reads HAZYNC_SEG_PO2 for the executor's segment_limit_po2 (default 20 = the risc0 default), and the hazync CLI retries a failed block with progressively smaller segments (20 → 19 → 18). Smaller segments repartition the work and clear the boundary. Normal blocks prove at the default; only the affected ~10% fall back, and the receipt is identical either way. Confirmed: 213/213 affected blocks prove, 0 failures.

Binaries — read this

  • hazync-host-x86_64-linux-gnuCPU build, fixed. Includes the segment-boundary fix.
  • hazync-host-x86_64-linux-gnu-cudaCUDA build, UNCHANGED from v0.6.1 — it does not yet have the fix (it needs a rebuild on a GPU machine, coming in the next release). GPU provers using this binary will still hit the ~10% panic until then; use the CPU binary, or wait for the corrected CUDA build.

Both are the reproducible guest (reproduce/Dockerfile). SHA256SUMS.txt + .asc are PGP-signed with the maintainer key (fingerprint in SECURITY.md).