github Chia-Network/chiavdf 1.2.2

4 hours ago

Changes since 1.2.1 (released 2026-10-28).

Highlights

  • Source installs restore the vdf_client, vdf_bench, prover_test, 1weso_test and 2weso_test binaries, with CI coverage that fails if any is missing.
  • hw_vdf_client gains an optional --expected-serial check and an explicit reset-and-quiescence initialization sequence.
  • FTDI driver and library download scripts fetch SHA-256-pinned archives from download.chia.net, with a fallback for Windows.

Upgrade notes

  • Default behaviour is unchanged. --expected-serial is optional; omitting it keeps the previous behaviour.
  • Source installs again include the binaries listed above; wheels are unaffected (built with BUILD_VDF_CLIENT=N).
  • On multi-board hosts, pass --device-loc together with --expected-serial.
  • Physical-board validation for --expected-serial and qualification for the new initialization sequence are still pending.

Packaging

  • Restored install hooks — Source installs (pip install from an sdist or checkout) copy vdf_client, prover_test, 1weso_test and 2weso_test (with BUILD_VDF_CLIENT=Y, the default) and vdf_bench (with BUILD_VDF_BENCH=Y) into the install directory again. The hooks were dropped in #315; this restores them. Wheels are unaffected (built with BUILD_VDF_CLIENT=N). CI now does a source install with both options on and fails if any binary is missing. The Rust crate is bumped to 1.2.2. (#476)

ASIC timelord

  • Expected board serial — hw_vdf_client gains an optional --expected-serial. It reads the identity of the opened SPI and GPIO interfaces and refuses to continue, closing both handles before any configuration, if the identity is unreadable, malformed or does not match. It accepts the board serial (1–15 printable characters) or its full interface-A serial; omitting it keeps the previous behaviour. --list also prints serials. The legacy open path also checks the FT4222 device type and mode before configuring; only CNFMODE0 and CNFMODE1 are supported. On multi-board hosts, also pass --device-loc. Adds the ftdi_identity_test emulator test target. Physical-board validation is still pending. (#474)
  • Board initialization — hw_vdf_client now resets the board, writes clock-disable and reset-assert to every engine, reads back every engine's control register, and only then programs PLL and voltage. It makes at most two attempts; if quiescence is not confirmed, the requested operating point is not applied. The reset previously hidden inside SetPLLFrequency is now explicit. Each confirmed readback is logged. Adds the hw_initialization_test target. Physical-board qualification is still pending. (#475)

Release tooling

  • FTDI downloads — scripts/get-libft4222.ps1 downloads the FTDI CDM 2.12.36.20 archive from download.chia.net first, with ftdichip.cn as fallback (SHA-256 pinned; driver\SOURCE.txt records the URL used). On macOS, scripts/get-libft4222.sh takes libftd2xx and headers from D2XX1.4.36.dmg on download.chia.net (SHA-256 pinned). On Linux, the script moves to libft4222 1.4.4.232 (zip on download.chia.net, SHA-256 pinned). (#479)

Build and CI

Full Changelog: 1.2.1...1.2.2

Don't miss a new chiavdf release

NewReleases is sending notifications on new releases.