v0.7.0
Overview
QUIC-based public broadcast delivery, lower P2P and storage overhead, TVM optimizations and faster liteserver responses.
Changelog
Public broadcasts and P2P
- Added QUIC-based Plumtree delivery for public broadcasts, with FEC recovery for more reliable block propagation.
- Improved public broadcast routing to reduce duplicate traffic, bound memory usage, and isolate slow peers.
- Improved QUIC connectivity with cached routes, protected dialing, retry backoff, and cleanup of stale connections.
- Added persistent public-peer caching and a broader peer directory, allowing faster recovery after restart without keeping too many active connections.
- Hardened block broadcast processing: invalid and already-applied blocks are dropped early, while large payloads are decoded in bounded workers.
- Prioritized masterchain broadcast decoding so shard traffic does not delay the live masterchain head.
- Improved handling of out-of-order broadcasts by retrying valid payloads once their required predecessor state becomes available.
Synchronization and storage
- Avoided duplicate masterchain state preparation when several synchronization paths process the same block.
- Added early shard preparation so shard work can complete before its masterchain block is committed.
- Improved state-cell caching to keep large updates from blocking readers and other appliers for long periods.
- Improved archive catch-up by preparing the next archive window while the current one is being applied.
- Reworked archive import workers to prioritize active synchronization over background prefetch.
- Kept live block updates responsive when many recent blocks are still waiting to be saved.
- Reduced work and memory churn when publishing a block together with its state, especially on nodes with long block histories.
- Reduced temporary allocations while building shard-account state data, lowering memory pressure during large state operations.
- Improved persistent-state writes, checkpoint preparation, and Pebble batch handling to reduce unnecessary copying and buffer pressure.
- Improved Pebble compaction scheduling to avoid excessive retries and background work under storage pressure.
Liteserver, API, and operations
- Moved LiveView prewarming out of the block-apply path, keeping newly applied blocks available without waiting for expensive preparation.
- Added proactive liteserver warming for common requests at each new masterchain head, reducing cold-request latency.
- Improved historical block lookup through shard splits and merges, using live data before falling back to storage.
- Moved recent TPS calculation to a background tracker, reducing work during status and Prometheus collection.
- Enabled POST requests for all built-in HTTP API routes.
- Aligned rejected-external
estimateFeeresponses with ton-http-api. - Added mutex and block pprof profiles when
--pprof-addris enabled. - Added
node.Run(...)for custom node binaries using the standard CLI, configuration, and built-in extensions.
Upgrade notes
- The node now opens QUIC on UDP
ADNL port + 1000; expose this port through firewall/NAT. gton_p2p_broadcasts_totalgained adeliverylabel; update Prometheus rules and dashboards.- Recent TPS metrics are published only after the live 10-second window is complete.