Repository navigation
Releases: janzeerOrg/janzeer-node
Release list
Janzeer node 0.1.10
Hotfix after the node-five freeze of 25 October and the Raspberry Pi outage of 26/27 October. Protocol 3.4.0 and API 1.1.0 unchanged — a rolling upgrade; every validator should install it, home boards first.
What happened. On 25 October the project's fifth node committed the block that carried its own validator registration and then stopped at that height for four hours, healthy by every health check and without one log line. On 26 October a Raspberry Pi validator went silent the same way for 13 hours after a power glitch. Both ended only with a stop and a fresh start.
Fixed — a tip re-check could lose its retry loop (F-056). When a node falls behind it asks its peers whether they know its tip; the first answer starts a catch-up session. On a fast link the answer arrived before the node had armed its retry loop; the late arming then cancelled the session's own page timer and replaced it with a loop that stayed silent while a session existed. One lost page request after that meant PROCESSING for ever. The round is now armed on the sync thread, retry loop first and request second, so no answer can overtake it; a retry period that finds a live session re-requests the outstanding page; and every catch-up session start is logged.
Fixed — a validator re-validated two epochs at its own registration (F-056, second part). Committing the block that registers this node's key switched the node to full sync mode and re-ran the boot sweep over the last two epochs, on the consensus thread, under the ledger lock, even when the node already was in full mode. The switch is now a no-op when nothing changes, and a real switch runs after the commit, off the consensus thread.
Files: janzeer-node-0.1.10-mainnet-linux-x64.tar.gz, -linux-arm64.tar.gz, -windows-x64.zip, janzeer-node-bin-0.1.10-1-x86_64.pkg.tar.zst, SHA256SUMS, SHA256SUMS.minisig (project key RWQBrkWzg4V5n5wUBa9GNPpa95Z7WFT2EY5QrabMv/DP+KG+gJsPIgdr). Docker: ghcr.io/janzeerorg/janzeer-node:0.1.10.
Janzeer node 0.1.9
Seventh mainnet release — a hotfix after the mainnet stall of 2026-10-24 (23:20 → 03:21 UTC, 4 h 01 min, no block lost or reverted). Same network, same protocol: any 0.1.x node keeps working, but every validator should install this one, home boards first.
- Network
janzeer, protocol 3.4.0, API 1.1.0 - Genesis hash
3a716783ee58bc56335aaede1d489eeda22cd7442c358f085a83213028b7782c - Native executables, no Java needed
What happened
Finality needs 5 of the 6 registered validators. One validator (a Raspberry Pi) had been silent since 19:06 UTC: it saw a live block ahead of its tip, started a tip re-check, and that re-check was never answered and never gave up — eight hours in PROCESSING without a log line (F-052). When a second validator went offline at 23:20 UTC, four voters remained and no block could be finalized. The four project nodes were healthy and proposed on every slot; a restart of the Pi's node restored the fifth vote and the chain resumed within one slot.
Fixed — a tip re-check is bounded and visible (F-052)
The availability round now logs its retries (first retry, then once a minute) and gives up after 2 minutes (node.tip-check-timeout), returning the validator to SYNCHRONIZED so it votes again; the next live block ahead of its tip re-triggers the check cleanly. The retry loop of a finished sync session is cancelled, and a new request always replaces a stale loop (it used to be silently kept, so the re-check's own request was never re-sent).
Fixed — a vote could freeze the whole set (F-053)
A vote or certificate moved a node's slot bookkeeping to any slot number it carried, before any signature check. One validator with a clock running ahead, or one forged vote from any peer, marked every real block "stale" on every node until the next epoch genesis. Votes are now verified first and must sit within one slot of the local clock; a node whose bookkeeping ran ahead of its clock heals itself.
Second stall, 25 October (06:21 → 10:19 UTC, 3 h 57 min, no block lost or reverted)
The F-053 case happened on the live network before this release was out: a vote with an implausible slot number pushed the four project nodes' slot counters forward, so each node dropped its own blocks as stale without a log line, and five live validators finalized nothing. The upgrade of the project nodes to 0.1.9 ended it — 0.1.9 ignores such votes and logs their sender.
Upgrade from 0.1.8 (or any 0.1.x)
./update.sh (Linux, macOS, Raspberry Pi): downloads this bundle, verifies the minisign signature and the checksum, keeps data/, swaps the files and restarts the service (./update.sh --rollback restores the previous version). Or by hand: stop the node, replace the bundle folder, keep data/, start again. Arch: sudo pacman -U janzeer-node-bin-0.1.9-1-x86_64.pkg.tar.zst && sudo systemctl restart janzeer-node. Windows: stop the node, unpack the new zip over the old folder (keep data), run start.cmd. Docker: ghcr.io/janzeerorg/janzeer-node:0.1.9.
SHA-256
29a24b51338746722e4ed992ac8c6e5c7dda6e7d4233b505a5e2da183ce87518 janzeer-node-0.1.9-mainnet-linux-arm64.tar.gz
a3a7eb35b2a3f1d455f967f05fc704896b1a1d318b391e7d6c103a61dcf05439 janzeer-node-0.1.9-mainnet-linux-x64.tar.gz
ec49c4cecf37d3f3fd53afae8b8ec0167b66b8f34f341160f0afcc03adf3fe2a janzeer-node-0.1.9-mainnet-windows-x64.zip
ac7f881bfc61bc24dbffea0c16bb1c8bcf82d1c6d8a3e39e13ba0dd740c0f111 janzeer-node-bin-0.1.9-1-x86_64.pkg.tar.zst
SHA256SUMS is signed with the project's minisign key (key id 9F798583B345AE01, public key RWQBrkWzg4V5n5wUBa9GNPpa95Z7WFT2EY5QrabMv/DP+KG+gJsPIgdr): verify with minisign -Vm SHA256SUMS -P <key> and sha256sum -c SHA256SUMS before running.
Janzeer node 0.1.8 (mainnet)
Sixth mainnet release. Same network, same protocol: any 0.1.x node keeps working, upgrade when convenient.
- Network
janzeer, protocol 3.4.0, API 1.1.0 - Genesis hash
3a716783ee58bc56335aaede1d489eeda22cd7442c358f085a83213028b7782c - Native executables, no Java needed
Fixed — a restarted node keeps what it downloaded (F-051)
A node stopped or crashed in the middle of a catch-up used to throw away every block it had already staged and start the epoch again — hours on a Raspberry Pi link. It now keeps them: the next sync session fetches only what the network has above the kept blocks, then continues below them until it links into its own chain. Unusable leftovers (a gap, a stale range, an unreadable row) are discarded and the round starts clean, as before.
Fixed — the explorer's Validators page stays current (F-050)
The page polls every slot and judges "silent" against the time of its last answer, not the time you look at it — a tab left open no longer paints every validator silent.
New — block rewards in the web wallet and on the address page
A validator's web wallet lists its block rewards next to its transfers, newest first, with the block each came from; the explorer's address page gets a paged "Block rewards" card. (The mobile wallet got the same in 1.2.5.)
Upgrade from 0.1.7
./update.sh (Linux, macOS, Raspberry Pi): downloads this bundle, verifies the minisign signature and the checksum, keeps data/, swaps the files and restarts the service (./update.sh --rollback restores 0.1.7). Or by hand: stop the node, replace the bundle folder, keep data/, start again. Arch: sudo pacman -U janzeer-node-bin-0.1.8-1-x86_64.pkg.tar.zst && sudo systemctl restart janzeer-node. Windows: stop the node, unpack the new zip over the old folder (keep data), run start.cmd. Docker: ghcr.io/janzeerorg/janzeer-node:0.1.8.
SHA-256
fdb9e5173a5b6ed187ce0c828c2c87a71c67e3af38b9d3492093a1cac4260369 janzeer-node-0.1.8-mainnet-linux-arm64.tar.gz
a51e1589f6a22473db4937ec41bf44ded9df8373344fd05d3f2d499783ae99d7 janzeer-node-0.1.8-mainnet-linux-x64.tar.gz
36bae027501a1b1ca7c25bcc64a0c028db44b64d138407d923a86dc84487865e janzeer-node-0.1.8-mainnet-windows-x64.zip
f0aa85cdfcbbd9d0533e39f43b132122f534995b94ce08bfe3400498c61afdf6 janzeer-node-bin-0.1.8-1-x86_64.pkg.tar.zst
SHA256SUMS is signed with the project's minisign key (key id 9F798583B345AE01, public key RWQBrkWzg4V5n5wUBa9GNPpa95Z7WFT2EY5QrabMv/DP+KG+gJsPIgdr): verify with minisign -Vm SHA256SUMS -P <key> and sha256sum -c SHA256SUMS before running.
Janzeer node 0.1.7 (mainnet)
Fifth mainnet release. Same network, same protocol: any 0.1.x node keeps working, upgrade when convenient.
- Network
janzeer, protocol 3.4.0, API 1.1.0 - Genesis hash
3a716783ee58bc56335aaede1d489eeda22cd7442c358f085a83213028b7782c - Native executables, no Java needed
- Versions 0.1.4 to 0.1.6 were internal builds used on the project's own validators and were never published; this release carries everything they had.
Fixed — syncing on slow links (Raspberry Pi, home Wi-Fi, VPN)
- A 200-block sync page that took longer than 10 s to arrive was silently discarded on arrival, and the node asked a second and a third peer for the same page every 10 s: on a home link every page took a minute. Pages are no longer subject to the message expiry, a page still streaming is left alone, and a late duplicate is ignored (F-045).
- A validator a block or two behind re-fetched the whole top page of the epoch (~330 KB) to get one block, which took a whole slot on a slow link and made it miss the next live block again. The serving peer now sends only the blocks above the requester's tip, so a catch-up carries one or two blocks and takes seconds (F-048; served by every 0.1.7 peer to any requester).
- A sync page request lost in a connection hiccup could leave a node in PROCESSING for ever, silently (live blocks and votes on the channel looked like the page "still streaming"). The wait is now bounded: a request sent while the peer was disconnected is re-sent at the first expiry, no request is waited for longer than 2 minutes, and the node logs when it gives up on a peer (F-049).
- A lagging validator proposing on its slot with a stale tip was logged as an ERROR ("Incorrect height in block") on every peer and paged operators running the alert script; it is now one WARN line on the proposer's peers (F-046).
- A block-production slot firing during shutdown logged "Block creation failure" at ERROR; the production timer now stops with the node (F-047).
- The bundled systemd unit declares
SuccessExitStatus=143, so a cleansystemctl stopis no longer logged as a failure.
Upgrade from 0.1.3
./update.sh (Linux, macOS, Raspberry Pi): downloads this bundle, verifies the minisign signature and the checksum, keeps data/, swaps the files and restarts the service (./update.sh --rollback restores 0.1.3). Or by hand: stop the node, replace the bundle folder, keep data/, start again. Arch: sudo pacman -U janzeer-node-bin-0.1.7-1-x86_64.pkg.tar.zst && sudo systemctl restart janzeer-node. Windows: stop the node, unpack the new zip over the old folder (keep data), run start.cmd.
SHA-256
beee979390188d5ac431692fa7e91d26d73b5a47cae1b44f4bf640ec9b6cf9e5 janzeer-node-0.1.7-mainnet-linux-x64.tar.gz
9d1804e1062f0e4dca6c1b7256e2fabe0b66e2003e3c50e857f40b5394160743 janzeer-node-bin-0.1.7-1-x86_64.pkg.tar.zst
6ef33616775a417bdf8931635052e614f87f41ca3da063bde067d1afa2ce49d8 janzeer-node-0.1.7-mainnet-linux-arm64.tar.gz
ac1bbdbab4001988dbc0b6faeaab0102295a583ecd1229e1ccd125c9dda25bf0 janzeer-node-0.1.7-mainnet-windows-x64.zip
SHA256SUMS is signed with the project's minisign key (key id 9F798583B345AE01, public key RWQBrkWzg4V5n5wUBa9GNPpa95Z7WFT2EY5QrabMv/DP+KG+gJsPIgdr): verify with minisign -Vm SHA256SUMS -P <key> and sha256sum -c SHA256SUMS before running.
Janzeer node 0.1.3 (mainnet)
Fourth mainnet release. Same network, same protocol: any 0.1.x node keeps working, upgrade when convenient.
- Network
janzeer, protocol 3.4.0, API 1.1.0 - Genesis hash
3a716783ee58bc56335aaede1d489eeda22cd7442c358f085a83213028b7782c - Native executables, no Java needed
New
- Signed releases. From this release on,
SHA256SUMSis signed with the project's minisign key. Public key (key id9F798583B345AE01):RWQBrkWzg4V5n5wUBa9GNPpa95Z7WFT2EY5QrabMv/DP+KG+gJsPIgdr. Verify withminisign -Vm SHA256SUMS -P <key>. - Release notice. The node checks once a day whether a newer release exists (notification only, it never downloads or installs anything): one line in the log, a notice in the explorer,
GET /api/v1/info/update. Opt out with--node.update.enabled=false. update.shin the Linux and macOS bundles:./update.sh --checkreports,./update.shdownloads the new bundle, verifies the signature and the checksum, keepsdata/, swaps the files and restarts the systemd service;./update.sh --rollbackrestores the previous version. Needsminisigninstalled.- Validator status in the explorer. Each validator shows Producing, Active, Silent, Joins next epoch (with the block height and time until it is seated), Standby, Exited or Banned, plus its last produced block.
GET /api/v1/validatorscarries the new fields.
Upgrade from 0.1.x
Stop the node, replace the bundle folder, keep your data/ folder, start again. Arch: sudo pacman -U janzeer-node-bin-0.1.3-1-x86_64.pkg.tar.zst && sudo systemctl restart janzeer-node. From the next release on, ./update.sh does this for you.
SHA-256
62a68b6563e3c1108c600e67ad0045ce03516526cddd4925b4951b6854fae1e6 janzeer-node-0.1.3-mainnet-linux-x64.tar.gz
882749f4d04bbdf50b5479339c0e3f612ef7c4bf652c63ec742f7972aba2c145 janzeer-node-bin-0.1.3-1-x86_64.pkg.tar.zst
fae5f2bd9c73b1c4cbfec479a55ee219c1dd3cc5aaf81e31275be7dfda449b0d janzeer-node-0.1.3-mainnet-linux-arm64.tar.gz
867904d1bd07b2f6b641550bf0e54156f29483a862c8b402926114b924f3d122 janzeer-node-0.1.3-mainnet-windows-x64.zip
Verify with sha256sum -c SHA256SUMS and the minisign signature SHA256SUMS.minisig before running.
Janzeer node 0.1.2 (mainnet)
Third mainnet release. Same network, same protocol: a 0.1.0 or 0.1.1 node keeps working, upgrade when convenient.
- Network
janzeer, protocol 3.4.0, API 1.1.0 - Genesis hash
3a716783ee58bc56335aaede1d489eeda22cd7442c358f085a83213028b7782c - Native executables, no Java needed
New
- Sync progress.
GET /api/v1/info/syncreports the sync state, the committed height, how many blocks the running sync has downloaded and verified, the best known target height and the peer count. The explorer served by the node shows a banner with a progress bar while the node catches up, so a fresh node no longer looks frozen: it verifies a whole epoch before it commits the first block, which takes hours on a Raspberry Pi./actuator/healthcarries the same numbers.
Fixed
- A node restarted in the middle of its first sync could run out of memory while discarding the blocks it had staged, and then sit in PROCESSING forever without downloading anything (seen on a Raspberry Pi 3 with the default 256 MB heap). The staged blocks are now dropped with one statement, and any failure on the sync thread resets the node so the next check starts a fresh round.
Upgrade from 0.1.x
Stop the node, replace the bundle folder, keep your data/ folder (it holds config.json, your node identity), start again. Arch: sudo pacman -U janzeer-node-bin-0.1.2-1-x86_64.pkg.tar.zst && sudo systemctl restart janzeer-node. Do not restart a node that is still in its first sync unless you have to: a restart discards the staged blocks and starts the download over.
SHA-256
1092ea29749115ce03ec4edc9a1363a207be3771767a3e8d4187aaf478df037b janzeer-node-0.1.2-mainnet-linux-x64.tar.gz
5a8f2a49f8e59ff2f425f164ef1f285ee59526b33d65641f0a9188edebd010f8 janzeer-node-bin-0.1.2-1-x86_64.pkg.tar.zst
f535d3921ec6d8afe9107912f81877fb36f9034bdd02dabc0481b9423759d5a5 janzeer-node-0.1.2-mainnet-linux-arm64.tar.gz
Raspberry Pi / Linux arm64: janzeer-node-0.1.2-mainnet-linux-arm64.tar.gz (Pi 3/4/5, 64-bit OS). A Windows bundle follows as a separate asset.
Verify with sha256sum -c SHA256SUMS (Windows: certutil -hashfile <file> SHA256) before running.
Janzeer node 0.1.1 (mainnet)
Second mainnet release. Same network, same protocol: a 0.1.0 node keeps working, upgrade when convenient.
- Network
janzeer, protocol 3.4.0, API 1.1.0 - Genesis hash
3a716783ee58bc56335aaede1d489eeda22cd7442c358f085a83213028b7782c - Native executables, no Java needed
New
- Windows x86-64 bundle (
janzeer-node-0.1.1-mainnet-windows-x64.zip,start.cmd) - Raspberry Pi / Linux arm64 bundle (
janzeer-node-0.1.1-mainnet-linux-arm64.tar.gz; 64-bit OS, Pi 3/4/5) - Arch Linux package
janzeer-node-bin(pacman -U, systemd unit, userjanzeer, data in/var/lib/janzeer-node; PKGBUILD underpackaging/arch/) - Explorer pages carry their own titles
Fixed
- The bundle launchers now stop the embedded H2 database only after the node has written its clean-shutdown marker (
DB_CLOSE_ON_EXIT=FALSE,AUTO_SERVERdropped). A node that was stopped cleanly skips the boot sweep and is back in a few seconds instead of about two and a half minutes. PostgreSQL deployments were never affected.
Upgrade from 0.1.0
Stop the node, replace the bundle folder, keep your data/ folder (it holds config.json, your node identity), start again. Arch: sudo pacman -U janzeer-node-bin-0.1.1-1-x86_64.pkg.tar.zst && sudo systemctl restart janzeer-node.
SHA-256
8729fcb1e9f04e0df7d981f7dd481f71bf467f13e5fd808a8af3abbb46a087b5 janzeer-node-0.1.1-mainnet-linux-x64.tar.gz
18e703f2f7a5874e7589f227101b46d33703f0a286c48383611b6f173e612f0a janzeer-node-0.1.1-mainnet-windows-x64.zip
a5b8e2ef44de871074ae91d45e7098fc986a52f928fac0a3ca2a9dca8825c165 janzeer-node-bin-0.1.1-1-x86_64.pkg.tar.zst
2b78e97c90e013973957a0675c6216f2119c1a0fbfd9ad344783a839814a25ce janzeer-node-0.1.1-mainnet-linux-arm64.tar.gz
Verify with sha256sum -c SHA256SUMS (Windows: certutil -hashfile janzeer-node-0.1.1-mainnet-windows-x64.zip SHA256) before running. macOS builds follow.
Janzeer node 0.1.0 (mainnet)
First mainnet release.
- Network
janzeer, protocol 3.4.0, API 1.1.0 - Genesis hash
3a716783ee58bc56335aaede1d489eeda22cd7442c358f085a83213028b7782c - Linux x86-64, native executable (no Java needed)
SHA-256
38e2b5fb554f3bead2cf070152e835bcd6f34147b57895597c09805642b93121 janzeer-node-0.1.0-mainnet-linux-x64.tar.gz
Verify with sha256sum -c SHA256SUMS before running. Windows and macOS builds follow.