Repository navigation
Releases: randprotocol/fullnode
Release list
v0.8.0
Built by .github/workflows/release.yml (https://github.com/randprotocol/fullnode/actions/runs/38210993817) on a clean ubuntu-24.04 runner, cargo build --release --locked.
| commit | c0878c3fbe5659cf91415d27b0e74d1282f0efef |
| circuits pin | d217252afde318b2ff51976351f449a685b5832f |
| compiler | rustc 1.98.1 (48a229cea 2026-09-01) |
| ci run | 38210993815, conclusion success |
The nightly proving suites are not part of the gate; the ci run above is the push run for this commit.
324a4ab1029d39e67fc2de36b036341b0f88f13089997d7fe24c596363a58278 rand-node
e3a38e74ee28743a960fc1c3eb1ac6c538e18dc259411e10afff7f54e268bbf4 rand
da9df98aa4f9f1748a0be82934e12f0213e41b798daf0963a3023ff39e27c475 rand-prover
68facb06c7f321aaf1d4d541acf6b5c0e9d7f17788ed1c9add6c5a8a8f7acd30 msauth-vk-production.bin
Build provenance: gh attestation verify <binary> -R randprotocol/fullnode.
Not signed by this workflow. The release key holder signs SHA256SUMS off the build host and attaches SHA256SUMS.sig; the fleet's roll scripts refuse a release without it (docs/deploy.md, "Release trust").
v0.7.1
Built by .github/workflows/release.yml (https://github.com/randprotocol/fullnode/actions/runs/37004729121) on a clean ubuntu-24.04 runner, cargo build --release --locked.
| commit | 753fe999954b4a93d482078c2c96a99337139a95 |
| circuits pin | 6d2015d93988687f7c51d30f6a8a42a713a5b415 |
| compiler | rustc 1.98.1 (48a229cea 2026-09-01) |
| ci run | 37004729188, conclusion success |
The nightly proving suites are not part of the gate; the ci run above is the push run for this commit.
a17c6553e1f35521215a9b2e6c40f29923bcddcf0e66a0821ec56f30383f7f41 rand-node
71dda6e5cfc464327b6b73cddd2632071682aab01132f8305c1921aa02568f74 rand
f81e5ca34dbaf8a901dfcfdd0d6c63214000a18df22577dfca4d72412c182242 rand-prover
Build provenance: gh attestation verify <binary> -R randprotocol/fullnode.
Not signed by this workflow. The release key holder signs SHA256SUMS off the build host and attaches SHA256SUMS.sig; the fleet's roll scripts refuse a release without it (docs/deploy.md, "Release trust").
v0.7.0
Built by .github/workflows/release.yml (https://github.com/randprotocol/fullnode/actions/runs/36870228592) on a clean ubuntu-24.04 runner, cargo build --release --locked.
| commit | 806ed349e52a25045455f3e4a84bdb941daddc60 |
| circuits pin | 6d2015d93988687f7c51d30f6a8a42a713a5b415 |
| compiler | rustc 1.98.1 (48a229cea 2026-09-01) |
| ci run | 36870228620, conclusion success |
The nightly proving suites are not part of the gate; the ci run above is the push run for this commit.
fd7fa5171ff62e16b851e626de47a2cee2ad4e6e8ba56acd3f125d9476e903c5 rand-node
406e0108b78a756b9fb4712ed0734260b206837a24f5bc61a60a7d610ba2c639 rand
524c6e9b500bbfcf0d1d915d7c0ba0f54883c74ced59f2ea4d6a3cb17f997930 rand-prover
Build provenance: gh attestation verify <binary> -R randprotocol/fullnode.
Not signed by this workflow. The release key holder signs SHA256SUMS off the build host and attaches SHA256SUMS.sig; the fleet's roll scripts refuse a release without it (docs/deploy.md, "Release trust").
v0.6.9 — node-only: invokes in header public_notes
Node-only, rolls onto chain 20 one node at a time (no consensus, wire, genesis or wallet change).
- A
rand_getBlocksheader now carries everyinvokein its block inpublic_notes, with its proofs stripped, under its real hash. On v0.6.8 nodes, a wallet that reads header pages found an RPL-2 payout only through the envelope the invoker sealed; now it rebuilds the payout from public fields (d0bb73fb). - Everything else is v0.6.8 (
c9c9bd3c), plus chain 20's launch record and docs.
Assets: Linux x86-64 builds of this tag (built on E): rand-node, rand, rand-prover, SHA256SUMS.
v0.6.8 — chain 20: RPL-2, zUSD bridge fees, audit v6
Chain 20's build. Live 2026-10-01 06:17 UTC on all 26 nodes. Genesis 6210cf071a390d7ac61d8cbea5dd9d139d1a493a862b54a45a498f36af2d5135 (chain id 20, deploy/genesis-chain20.json), rolled all-stop/all-start from chain 19 at height 7700.
This is a hard fork for chain 20. The build still computes and runs chain 19's genesis, but its consensus changes must never roll node by node.
- RPL-2. Program state, program vaults and the
Invokeaction (Action33), behind theprogram_stategenesis section (docs/program-state.md). - zUSD bridge fees, in zUSD, both ways. Genesis
bridge.fees. On a mint, the chain splits the deposit into the depositor's note and a treasury fee note. On a burn, the chain keeps the fee as a treasury note, and the signed release carriesrelease_amount = amount − fee. Supply == Σ locked == custody still holds. Chain 20: 10 bps each way (docs/bridge.md§25). - The final audit v6 fixes (#67–#119, one commit each).
- Consensus: CON-4 removes the automatic lock release; CH-1 adds a timeout-certificate pacemaker.
- Node-only hardening: a
--public-rpclistener, read limits, reserved validator peers, sync and gossip budgets, the pool's byte cap, ZKV-4's bound on a proof header's declared degree, and more. - Genesis-gated rules:
testnet,binding_domain(proofs and signed messages bound to the genesis hash),proof_window_blocks, gas price ceilings and the paying byte load, staking admission by vote, slashing, vesting revokes by threshold, and bridge rotations that need possession and a delay.
Wallets need this build to send on chain 20 (binding_domain: 1).
Release suite on the laptop, release profile, on this commit: core 647, node lib with only the known RECURSION_FIXTURES gap, client 183 + 18, zkvm lib 30, cluster 28, wallet_flow 9, zusd_e2e 2, split_auth 2. The RPL-2 real-proof e2e passed on a 16 GB box in 764 s.
Assets are Linux x86-64 builds of this tag (built on E): rand-node, rand, rand-prover, SHA256SUMS.
v0.6.7-prover.3 — both halves of the hiding-RNG deadlock fix
rand-prover only. v0.6.7-prover.2 plus the second half of the fix for Plonky3's hiding-RNG deadlock under rayon (upstream issue Plonky3/Plonky3#2363, fix PR Plonky3/Plonky3#2368): MerkleTreeHidingMmcs::commit also held its spin lock across the parallel tree build. vendor/p3-merkle-tree is crates.io 0.7.0 with that PR's change (commit c8232c2; main 0e70ddc). prover.2 fixed only the HidingFriPcs half and can still deadlock — use this one.
No consensus rule, wire format, verifier key or guest digest changes.
Built on Ubuntu 24.04 from git archive c8232c23 beside circuits aeacf31, cargo build --release --locked -p randprotocol-prover.
e030831d59ee6a3781de6fe58220caf0a5f93fa126554fec24d1cb066659c1db rand-prover
v0.6.7-prover.2 — the parallel prover without its deadlock
Superseded by v0.6.7-prover.3: this build fixes only half of the hiding-RNG deadlock (Plonky3 #2363) and can still hang. Do not use it.
rand-prover only. v0.6.7-prover.1 plus one fix (commit 6430299, the same change as main's 4d5b039): Plonky3 0.7.0's HidingFriPcs held a spin lock around its RNG across rayon work, so on the parallel build a worker could steal another commit and spin on its own lock for ever. One pool member was wedged that way for five and a half hours. vendor/p3-fri is the crates.io 0.7.0 source with the lock taken only to fork a child RNG.
No consensus rule, wire format, verifier key or guest digest changes. Use it in place of v0.6.7-prover.1, which can deadlock.
Built on Ubuntu 24.04 from git archive 6430299 beside circuits aeacf31, cargo build --release --locked -p randprotocol-prover.
c07cecd091874e34ef55c5eb49566764047f364fc4f11bbe3dfe7863794db4cc rand-prover
v0.6.7-prover.1 — rand-prover on every core
Superseded by v0.6.7-prover.2: this build can deadlock (Plonky3 0.7.0 hiding-PCS spin lock under rayon). Do not use it.
rand-prover only. The v0.6.7 tag plus one build change (commit 5ed29fc, branch release/v0.6.7-prover-parallel): Plonky3's parallel feature is on, so the delegated prover uses every core instead of one.
Measured on an 8-vCPU DigitalOcean droplet (Xeon Platinum 8168), one production tier-14 bundle proof for chain 18: 68.6 s against 234.4 s for the v0.6.7 binary; peak RSS 5.88 GB against 5.74 GB. The proof verifies on the wallet and commits as before. No consensus rule, wire format, verifier key or guest digest changes; rand-node and rand are v0.6.7's — do not replace them from this tag.
Built on Ubuntu 24.04 from git archive 5ed29fc beside circuits aeacf31, cargo build --release --locked -p randprotocol-prover.
cb634a25c393442220297251dd3e46d5b7d477be4c311fdfa9dc6aebd67f4a39 rand-prover
v0.6.7 — fixes on the chain-18 build
v0.6.7 — fixes on the chain-18 build (rolls onto chain 18 node by node)
v0.6.7-rc1 (the gas model, constraint set 8 — chain 18's cut build) plus fixes that change no
consensus rule, wire format, verifier key or shipped program digest. Runs chain 18 (genesis
a7cb020c…); refuses chains 14–17.
- #51 Sealed-proof pruning keeps a height index of seal marks and shrinks the block row with the
pruned record (dormant: no chain aggregates). - #64 Wallets decide the note-envelope format by chain id on chains 14–17 (LEGACY_ENVELOPE_CHAIN_IDS),
never from a node's envelope_bytes claim there. Chain 18 is memo-on (1 860-B envelopes). - #65 The node's viewing-key registry is keyed by a one-way id, not by the viewing key.
- Circuits aeacf31 = cs8 18c2627 + #49 (GPU kernels without aliasing &mut, H100-tested),
#63 (rVM DSL allocator fixes; all shipped rVM programs byte-identical), #66 (ALU coverage tests).
Built on Linux (Ubuntu 24.04) from this tag with circuits aeacf31 beside it; git_sha 86941a1.
Check SHA256SUMS before installing.
v0.6.7-rc1 — the gas model (constraint set 8), chain 18 cut build
v0.6.7-rc1 — the gas model (constraint set 8), the chain-18 cut build
Release candidate for the chain-18 cut. Commit 0017de7 (feat/gas-chain18, rebased onto b388540 = v0.6.4 / chain 17). Circuits feat/cs8-gas 18c2627 vendored (constraint set 8). Built on E with RAND_BUILD_SHA=0017de7; rand_getVersion reports 0.6.7-rc.1.
What it is (spec docs/superpowers/specs/2026-09-28-gas-model-design.md):
- Phase 0: a header-priced call floor as node policy (
--gas-price/--byte-price, defaults 100/800). - Phase 1: the in-circuit gas meter (
pv::GAS,pv::NUM35),gas_max(t, klh, slh) = (2^t−1) + 2^(t−2) + 191·(2^klh/32) + 63·(2^slh/64), a declaredGAS_LIMITper proof; genesisgassection (bundle proofs pinned at 20 479, auth proofs at 1 279). - Phase 2: dynamic prices (
GasPrices, 12.5 % a step toward half-full blocks, floored at the genesis prices),rand-state-7,rand_getLimits/rand_estimateFee/rand_status.gas_prices, wallet--gas-limit. - Chain 18 is cut with
--envelope-bytes 1860(the encrypted memo on).
Compatibility: every verifier key changes. This build refuses chains 14–17 at startup; a v0.6.3 node verifies no chain-18 proof. Roll = all-stop/all-start via deploy/cutover-fleet-chain18.sh. A cs7 wallet proves nothing chain 18 accepts.
v0.6.6 (d742a9b) stays as the pre-rebase tag. v0.6.7 follows with further fixes.
| file | sha256 |
|---|---|
| rand-node | 500b2995ed0bd648225b078339103ba91cdd3c713c135faa558e9b96dca7a3fa |
| rand | e80e5692e31061f47cd60827514b163a3e388044e672b8f39a3dfff11ae6f79a |
| rand-prover | 0b23afbe4e8543c5a7da2aadf21433e41bc252b8b4a1b63b1a174664f88bd02c |