v0.4.0
Overview
Archival node sync form zero state support, reduced block broadcasts apply latency (faster new blocks availability), faster archival blocks download, configurable liteserver rate limits, multiple performance optimizations.
Changelog
- Added archive node sync from zero support
- Improved archive downloads: peer pinning, cooldowns, retries, hedged downloads, and checkpoint backpressure.
- Improved broadcast flow: hot masterchain/shard caches, delayed compressed decode, and multi-block pending queues per chain.
- Added liteserver configurable rate limits: per-IP request limits, connection limits, keep-alive timeout.
- Improved live sync latency with priority masterchain broadcasts and faster catch-up from cached full blocks.
- Hardened state checkpoints: non-zero states now must be saved together with full block and proof artifacts.
- State snapshots no longer persist state-only checkpoints without block artifacts.
- Block history lookups now return only blocks with served-full artifacts.
- Hardened block metadata validation against forged served-full flags and direct next refs.
- Fixed checkpoint completion so older flushes do not drop newer applied states.
- Optimized liteserver
sendMessage, account proof cache, block data loading, and non-final state cell lookup. - Added configurable large-BOC read workers and persistent-state BOC batch size.
- Reduced Pebble cell-store allocations by reusing write batches.
- Improved liteserver errors parity with the C++ node.
- Metrics now expose applied masterchain progress separately from persisted state.
- Changed several defaults in config.
- Updated
tonutils-go.