Skip to content

Release Notes

wj-diode-quantum 1.0.0 Beta - 2 August 2026

First release.

Collects quantum random numbers from the Australian National University, pushes them across a data diode, and serves them one at a time on the far side.

Collecting

  • Draws from both ANU endpoints: the current keyed API at api.quantumnumbers.anu.edu.au and the older unkeyed one at qrng.anu.edu.au. Either or both can be enabled; when both are on, both are used on every cycle and their values are merged into one batch, each tagged with its source.
  • Blocks returned by either API are concatenated and re-sliced into 128-bit values locally, so the differing per-block size limits do not matter. Leftover bytes are discarded rather than padded.
  • Batches wait in an outbox until the send command succeeds, so an interrupted or failed transfer is retried rather than lost. After a configurable number of attempts a batch is moved aside so one bad file cannot block the queue.

Serving

  • One 128-bit value per request over HTTP, with the time it was collected.
  • The pool is a bounded LIFO: newest served first, oldest discarded once it reaches capacity.
  • A value is never served twice. Each take is journalled and flushed to disk before the value reaches the client, so the guarantee survives a crash, not just a clean shutdown.
  • Batches arriving over the diode are validated whole and rejected whole. A batch that arrives twice is recognised and adds nothing.
  • serve can run and supervise the receiving tool, so the protected machine needs one process.

Getting set up

  • setup send and setup recv ask only what cannot be defaulted and write a working config, along with the companion files the diode tool needs. Passwords go to a 0600 file rather than a command line.
  • sample-config prints a config showing every option.
  • stats reports pool depth and age without writing to the database, so it is safe to run against a live server.

Notes

  • The API has no authentication and binds to 127.0.0.1 by default.
  • The legacy ANU endpoint is limited to one request per minute and is being retired by ANU.