Home/Versions
Agent channel · 0.4.214
Versions
What shipped in the host agent. Each release has its own page for search. Panel Servers compares each host to /install/TOOLKIT_VERSION. Feed: /install/VERSIONS.json.
- 0.4.214latest
Check ports: no lsof hang on a busy host
- Second node on a host with a live fullnode (Solana): check-ports no longer runs lsof after empty ss. One timed ss -lntp snapshot. Panel timeout is not shown as Ports busy.
Check ports: no lsof hang on a busy host
- Second node on a host with a live fullnode (Solana): check-ports no longer runs lsof after empty ss. One timed ss -lntp snapshot. Panel timeout is not shown as Ports busy.
Release 0.4.212
- Shipped via update-remote-agent.sh --publish.
Host & node: free space per disk
- Each disk tab shows free / total (largest FS on that disk) plus used %. LVM OS disk maps via /sys slaves.
Release 0.4.210
- Shipped via update-remote-agent.sh --publish.
Host & node: per-disk IOPS tabs
- metrics.json current.disks[] + history.disks[] — each whole physical disk has its own read/write IOPS, MB/s and %util.
- Host & node shows a tab per disk (All = sum IOPS / hottest %util). Solana ledger vs accounts no longer collapse into one number.
Release 0.4.208
- Shipped via update-remote-agent.sh --publish.
Host & node: disk IOPS / util
- metrics.json now includes host disk_read_iops, disk_write_iops, disk_read_mb_s, disk_write_mb_s, disk_util_pct (hottest whole disk from /proc/diskstats — same signal as iostat).
- Host & node shows Read / Write IOPS, MB/s and %util. Node unit IOPS from cgroup io.stat when IOAccounting is on.
Remove: mask units so Restart=always cannot respawn
- Panel remove now disable+mask+SIGTERM --kill-who=all before ACK. Restart=always / watchdog cannot bring leaf agents or the node back.
- TON: oneshot RemainAfterExit (ton-<env>.service) is not 'still running'. Truth is validator-engine / mytoncore. Stock validator.service is masked, not deleted.
Install: host disk insights (md / LVM / raw NVMe)
- GET /api/v1/host/disks returns insights + unused disks: software RAID is a bottleneck, LVM / is the OS disk, raw NVMe is where node data should go.
- Install wizard shows that summary for every network. JBOD recommend prefers raw NVMe over md /data.
TON: catch-up stalled when oos does not drop
- seqno>0 + ~27h behind + 0.1% is not 'won't start' — validator is up.
- If local seqno rises but out_of_sync_sec grows: catch-up slower than tip (serializer / I/O). UI says that, not 0.1% lag closed.
Release 0.4.203
- Shipped via update-remote-agent.sh --publish.
Release 0.4.202
- Shipped via update-remote-agent.sh --publish.
Solana: reuse Agave binary, do not rebuild the workspace
- Install looks for agave-validator in /opt/solana/<env>/bin and /var/tmp/rpcnode-agave-src-*/{bin,target/release} and copies it if cargo already produced the file.
- Source build is cargo build --release --bin agave-validator only. cargo-install-all.sh is not used (it compiles the whole workspace: reqwest, rustls, …).
- Retry does not rm -rf an existing clone.
- Identity uses /opt/solana/<env>/bin/solana-keygen (was empty optPath → keygen not found after a successful cargo build).
Release 0.4.200
- Shipped via update-remote-agent.sh --publish.
Client download URLs in host audit log
- Install writes every catalog/artifact URL to /var/log/rpcnode.log (action download + provision): manifest, /clients/→/install/clients/ rewrite, GET ok/FAIL.
- Every hostLog line includes the agent version: [api-agent 0.4.199]. Solana Agave from CDN /install/clients/… (GitHub fallback). 0.4.198 on the host had no these lines.
- agent.sh banner + already-installed menu show installed vs CDN channel version immediately.
XRPL first-ledger recycle + TON dump apply
- XRPL 0.4.196 skipped NuDB wipe while peers/proposers>0, but PrepareDatadirHeal still stopped xrpld every collect tick (default 2s). Skip stop/wipe while .first-ledger-wait is younger than 12 min. Stop xrpld only when NuDB will actually rotate.
- TON: dump-end systemctl restart sets NRestarts=1 — that is not a crash loop (was forcing sticky 1G cache).
- TON getstats seqno is masterchainblock (-1,wc,SEQ), not masterchainblocknumber. Prefer getstats over MyTonCtrl so the panel does not freeze at seqno=0 / dump 99% during catch-up.
XRPL canonical UNL — first validated ledger
- Stock validators-example.txt ships [validator_list_threshold] 0 → xrpld exits 255 (Invalid publisher key: 0).
- Install and heal write canonical UNL (vl.ripple.com + unl.xrplf.org). Agent does not wipe NuDB while peers/proposers>0 waiting for validated_ledger.
Client update steps in host audit log
- Apply wrote only UI state «starting client update» — /var/log/rpcnode.log stayed empty.
- Each step now hostLog: accepted, catalog, RPC sleep, soft-stop, install, start, done/error. Same for Restart / Stop.
- 0.4.190panel 0.1.33
Soft-stop fullnode from the node page
- Stop next to Restart: same graceful stop (CLI / ExecStop / SIGTERM), unit stays down until Restart.
- Public Go RPC sleeps (503) while stopped. Chain data is not wiped.
Client update apply for all catalog networks
- Check already worked everywhere; Apply was hard-coded to TRON (and briefly BSC).
- Apply is now the same pipeline on every leaf: soft-stop (CLI/RPC then systemctl), download the catalog artifact (jar / bin / tarball), start the same units.
- Apt / docker_extract / empty artifact_url stay an honest error — there is nothing to replace.
TON getVersion + install CDN host
- Admin/node version check was status=unsupported — toncenter HTTP API has no version method.
- Public Go RPC now answers version / getVersion / getNodeVersion with the same client_version as the panel (validator-engine --version).
- Bare POST / is rewritten to /api/v2/jsonRPC so the public base URL works as a TON JSON-RPC endpoint.
- Update no longer fetches rpcnode.dev/install (404). Channel is toolkit.rpcnode.dev; old env/unit URLs are rewritten.
TON dump apply — stop killing validator at 99%
- After a MyTonCtrl dump, seqno stayed 0 and the bar sat at 99% «applying state» for a day (testnet and mainnet).
- MyTonCtrl rewrites validator ExecStart; heal no longer SIGKILL-recycles while apply is running.
- After OOM or a restart, celldb cache is capped to 1G and MemoryMax=85%.
- Sync shows restart / apply OOM instead of a fake «applying» line.
Cardano Mithril snapshot + XRPL history picker
- Cardano Snapshot step downloads official Mithril latest (include-ancillary), mithril-client 2630.0.
- Honest snapshot % from N/7 files and MiB in the log.
- XRPL install picker: stock / 1 day / 2 weeks / full history (default weeks).
TRON mainnet snapshot flavors
- Install picker: standard / internal_tx / balance_history — matching official LevelDB mirrors and HOCON.
- Choice is persisted on the panel and on the host; re-add from awaiting_ports clears it.
XRPL provision compile
- ensureXRPLDInstalled takes the environment so panel Docker builds again.
XRPL client pin 3.3.0
- catalog.json pins xrpld 3.3.0. Empty version + unpinned apt was installing 3.2.0.
XRPL first ledger + hub peers
- seq=0 with overlay flap and 0–2 peers now pins official hubs in ips_fixed.
- LoadManager stall recycles at medium node size.
XRPL dead server_stop is not a start fault
- no response from server / ExecMainCode=1 during ExecStop on a dead xrpld is ignored; the unit is started.
TON OOM after dump is not Synced
- seqno=0 after dump is apply/OOM, not tip — no 99.9% / 0.1% lag-closed bounce.
- Cap --celldb-cache-size from RAM; strip preload-all / in-memory / fast-state-serializer.
Ethereum tip after sync
- Public tip shows blocks / headers after sync. eth_syncing=false has no highestBlock.
XRPL history peers
- peers_max=100, official hubs, ips_fixed s2.ripple.com. Heal on start.
- No official snapshot — full history is still a long peer backfill.
Synced means tip and history proof
- Live tip alone is not Synced. XRPL complete_ledgers, Stellar oldestLedger, Bitcoin-family not pruned.
- UI and panel require verification_pct ≥ 99.9.
XRPL false Synced
- server_state=full on a short complete_ledgers window is live tip, not history.
- Synced only when complete_ledgers reaches genesis (32570) and the tip.
XRPL Sync bar from complete_ledgers
- verification_pct from complete_ledgers high / tip. No official tarball (~39 TiB via peers).
- 0.4.149panel 0.1.16
Port holder + Kill
- Check ports shows the program holding a catalog port. Kill (with confirm) goes through the tip agent.
- 0.4.137panel 0.1.14
Check ports does not parse ufw
- Reach is a panel dial to the Server public IP. The agent never runs ufw allow / deny.
- 0.4.136panel 0.1.13
Outbound reach on public / agent / p2p
- Check ports: panel dials the Server public IP while the tip holds a nonce listener. reach = reachable or filtered.
Host audit log
- /var/log/rpcnode.log is discrete hostLog ops only (update, provision, start, snapshot, errors). Agent stdout stays per-unit.
TRON Java 8
- ensureJava8 checks java -version. Missing or wrong Java → apt openjdk-8-jre-headless, else Temurin 8.
- Unit ExecStart is pinned to Java 8 so a host default of 17 does not crash GreatVoyage.
Sepolia L1 RPC for Orbit / OP-stack
- Parent-chain default is publicnode ethereum-sepolia. Mainnet L1 stays on the host ethereum port.
- Override with RPCNODE_L1_RPC_URL.
Optimism sepolia + Bitcoin Core 28.1
- Optimism sepolia provision (was a mainnet-only stub). Bitcoin Core default 28.1 for testnet4.
Base sepolia JWT, BSC cache, Arb sepolia
- Write JWT before waiting on authrpc. Sepolia parent-chain uses sepolia L1.
- BSC --cache capped to ~25% RAM. Arb sepolia provision added.
Host OS deps on provision and start
- The agent apt-installs what the network needs. TRON Java 8 is no longer a manual SSH step.