All notable changes to the TON Rust Node will be documented in this file. For Helm chart changes, see helm/ton-rust-node/CHANGELOG.md.
The format is based on Keep a Changelog.
Versions follow the node release tags (e.g. v0.1.2-mainnet).
Image: ghcr.io/rsquad/ton-rust-node/node:v0.5.0
- Support non-standard RaptorQ symbol size (> 65536)
- Simplex consensus updates (pipeline context, latest protocol changes)
- QUIC connection deduplication
- LiteServer runSmcMethod implementation
- Optimized collection of overlay statistics
- Stability fix for fast Merkle update apply
- Transaction execution fixes (two rounds)
- Fix pipeline context for Simplex consensus
- Fix config params creation for emulator
Image: ghcr.io/rsquad/ton-rust-node/node:v0.4.0
This release brings support for the Simplex consensus protocol and QUIC transport — key protocol upgrades rolling out across the TON network. It also introduces archival node functionality and a range of fixes to fee accounting, storage phase handling, and sync stability.
- Simplex consensus updates and QUIC integration
- QUIC transport with separate address support and connection deduplication
- Archival node functionality with split/merge resilience
- CellsDB cells cache
- Validate query uses capabilities from blockchain config instead of candidate block
- Enforce mcStateExtra flags <=1, remove ValidatorsStat
- Storage phase: preserve original due_payment for special accounts in partial storage phase
- Masterchain ValueFlow burned fees and blackhole accounting
- Fee accumulation: accumulate fees_collected instead of overwriting to preserve shard burn
- Untouched account change detection
- Fast sync overlay creation reliability
- Archive sync stalling on shard split/merge
Image: ghcr.io/rsquad/ton-rust-node/node:v0.3.0
- Simplex consensus implementation (feature-gated)
- JSON-RPC:
getAccountandgetBlockmethods, updated OpenAPI spec - State downloads limit
- Applied blocks metric
- TPS measurement tool (test tooling)
- ADNL broadcast improvements: randomized neighbour selection, reduced wave size, FEC timeout tuning, wider GetRandomPeers spreading
- ADNL send buffer limits increased
- Telemetry: switch to
current_averagefor throughput calculations - Disabled validation/collation task await for non-accelerated consensus
- Slot bounds: receiver-level checks before signature verification, sanity checks to prevent unbounded window allocation
- Diagnostic dump no longer lists self in inactive nodes
- LDX primitives: fix load 0 bits
- Base gas check before execute to prevent out-of-gas on commit
- Message stat calculation and storage stat update after balance change
- Collation error handling: reset
is_collatingon error, cross-check notarize/finalize hashes - Earliest collation time handling for simplex consensus
- Session restart: preserve DB on stop, register overlay before bootstrap, replace dead overlay clients
- ADNL packet parse and multipart handling
- Two-step broadcast ID validation
LITESERVER_PUBLIC_KEYparsing- Overlay listener leak on failed
start_overlay - FinalCert: broadcast only on local creation, not on external ingest
Image: ghcr.io/rsquad/ton-rust-node/node:v0.2.1-mainnet
- Secrets vault: backward compatibility for vault files created by v0.1.x (path separator changed from
/to.)
Image: ghcr.io/rsquad/ton-rust-node/node:v0.2.0-mainnet
- Deferred messages in collator with dispatch queues, per-account processing, and configurable limits
- TVM emulator with C FFI for transaction emulation and
runGetMethod - Stabilized Liteserver responses on fresh blocks
- CellsDB: bugfixes and performance improvements
- Merkle update speedup via custom cells DB loader (
apply_for_with_cells_loader) - Control server: anonymous client access (no explicit authorization required)
- Container image moved from
ghcr.io/rsquad/ton-rust-nodetoghcr.io/rsquad/ton-rust-node/node - Vault config removed from node config JSON — connection now configured via environment variables only
StorageCellrenamed toStoredCell- JSON-RPC:
sendBocpayload limit removed
GLOBALIDTVM primitive — incorrect handling of negative integers (e.g.-239)- Storage limits off-by-one rejecting cells/bits exactly at the limit
- Validator session crash from
Durationoverflow - Several small fixes in VM types JSON import/export
Image: ghcr.io/rsquad/ton-rust-node:v0.1.2-mainnet
- Prometheus metrics
- Liveness and readiness probes on metrics HTTP server (
/healthz,/readyz) - Metrics config moved from env vars to
config.json - Liteserver LRU cache
- Liteserver fast/slow pipeline split for light vs heavy queries
- Shared wait registry for
waitMasterchainSeqno - New JSON-RPC methods:
getBlockBoc - Key-block mode for
getConfigParamswith zerostate fallback - Overlay ping, two-step simple broadcasts
- StatsD metrics exporter
- Legacy feature flags (
prometheus,log_metrics)
- SAMEALTSAVE mnemonic
- Missing MC block metrics by emitting from
save_last_applied_mc_block_id - RLDP addresses cache with bad peers tracking
Image: ghcr.io/rsquad/ton-rust-node:v0.1.0-mainnet
Initial release.