All notable changes to this project will be documented in this file.
- Added ability not to split out message queues during shard split
- Try to use old persistent states in cold boot if newest one is not ready yet
- Backport from public
- Switch to rocksdb from crates.io
- Implement initial_sync_disabled node run parameter allowing node to sync from zero state
- Decrease test memory usage
- Fixed compile warnings
- Updates in REMP protocol
- Optimizations on external messages processing
- Front node functionality isolation
- Fixed accept block when block data already saved
- Fixed persistent shard states GC
- Cells cache with improved performance
- Added REMP broadcast message delayer
- Removed delay for direct REMP messages
- Added node tests
- Updates in REMP protocol
- More support for BLS TL structures
- Support BLS TL structures
- Catchain low-level receiver configuration options
- Added command line option
--process-conf-and-exit
.
- Run TVM control requests
- Remove deprecated level_mask_mut() call
- Fixed the blocks parser for newly synchronized nodes
- Move cleaning outdated Catchain caches on node startup into separate thread
- Cleaning outdated Catchain caches on node startup
- FIX: breaking compat in ever-block-json
- Correct cleanup of catchain DBs
- Added EngineTraits::load_and_pin_state method to work with states which may be deleted by GC.
- Fixed bug when ShardStatesKeeper tried to restore already deleted (by GC) shard state.
- Use tcmalloc without debug functionality (stability+)
- Sending blocks to Kafka was moved to separate worker
- Write
last_trans_lt
to account's json for deleted accounts.
- Fixed a possible hang-up while saving a shard state
- Refactor processing of external messages
- Support hardforking in node
- Remove time limit for boot
- Support hops check for old-fashioned broadcasts
- Fix build for front node
- Fixed loop to request peers from queue (add_overlay_peers)
- Save persistent state with BocWriterStack
- Update for fast finality
- Bugfixes for states cache optimisations
- Added control queries
GetAccountByBlock
,GetShardAccountMeta
,GetShardAccountMetaByBlock
,GetAppliedShardsInfo
- Produce applied shard hashes and raw block proofs to Kafka
- Bump cc crate version
- Supported ton_block library without fast-finality feature
- Speed up node shutdown
- Improved previous sessions calculation
- Improved sessions validator info logging
- Added parameter to default_config to limit maximal REMP queue length
- Added shard states cache modes ("states_cache_mode" param in config.json)
- "Off" - states are saved synchronously and not cached.
- "Moderate" - recommended - states are saved asiynchronously. Number of cached cells (in the state's BOCs) is minimal.
- "Full" - states saved asynchronously. The number of cells in memory is continuously growing.
- Added "cache_cells_counters" param in config.json. If it is set to true, then cell counters are cached in memory. It speeds up cells' DB but takes more memory. This cache was always enabled before.
- Added limit for cells DB cache size ("cells_lru_size" param in config.json). Zero value means default limit - 1000000.
- Fixed stopping of node (in part of a cells GC)
- Limit for rocksdb log file: max 3 files, 100MB each
- Refactor boot procedure
- Simplify procedure to get next key blocks
- Fixed migration of DB from v4 to v5
- Adjusted the total WAL size limit for RocksDB
- Validation fixes for single-node sessions
- Fixed shard states GC stopping
- New cleaning algorithm for shard states cache. Now it lives less in case of a persistent state saving.
- Pretty logging for major workers' positions
- Skip validations for single node sessions
- Validator manager fix for single-node sessions
- Update session creation for single node sessions
- Fix for deep recursion on catchain blocks dropping
- Increase package version
- Now message REMP history before session start is properly collected
- Different fixes
- Fix of SystemTime::elapsed() unwrap call
- Prohibited big cells in ext messages
- Peristent state heuristics
- Remove ever-crypto crate
- Fast finality prototype
- Stabilization of fast finality feature
- Supported new version of BocWriter::with_params with fixed cell lifetime
- Filled gen_utime_ms for block and state
- Remp collation check for uid duplicates added
- Limited the number of attempts in accept block routine (was infinite)
- Fixed setup of special settings for the "cells" column family in RocksDB
- Fix got GetStats during boot
- Optimistic consensus: supported key blocks
- Improve node requests logging
- Process lost collator
- Support for different formats of validator statistics
- Disable debug symbols in release
- Improve log messages about neighbours
- Stopping validation in validator_group after all blocks in range are generated
- Increase package version
- Preliminary changes for status merge
- Refactored REMP message forwarding criteria: now a forwarded message is collated if it has at least one non-reject status from previous sessions
- Test for status merges in REMP
- Fixes in check_message_duplicates: now same-block duplicate checks are properly performed
- log::error to log::trace for no validator_group
- Updated version number in Cargo.toml
- Merge shards MVP
- Add script to restart specific node
- Optimistic consensus: fixed cc rotating
- Update restart_nodes.sh
- Added 'validation_countdown_mode' option
- Printing valIdation_countdown_mode
- Changed default config for test_run_net - no countdown for zerostate
- Increase package version
- Disable timeout for catchain processing after restart
- Increase package version
- Added precalculation of out message queues for split
- Refactored limits and timeout in collator
- Skiped collator phases for after_split block
- Added processed_count_limit into clean_out_msg_queue
- Speeded up cleanup of huge output queue
- Added GlobalCapabilities::CapSuspendedList to supported_capabilities
- Supported new rocksdb interface
- Some changes for better test
- Added more statistic metrics
- Fix build errors
- Increase package version
- Fix boot wrong next key block sequence
- Fix boot from init block
- Optimistic consensus - part one
- No new validator lists for Remp; message rerouting in Remp fixed; less load when Remp caps is off
- Message duplicate checks using message unique ids (body hashes) in Remp
- Fixed compilation for build without telemetry feature
- Stabilize internal DB tests
- Increase package version
- Fixed bug in ShardStateKeeper: 'is_queue_update_for' had been called wrong way.
- Prototype flexible build process
- Add ever-types to flexible build
- Increase package version
- Mokup package version for flex build
- Open catchain tests
- Open archive tests
- Open storage tests
- Open node tests
- Increase node version
- Fast validator session configuration
- Ready to use fast single session code
- SessionFactory::create_single_node_session has been added
- Move shardstate DB performance test to becnhes
- Fix script to run local test network
- Increase node version
- Fixed bug in DB restore: LAST_ROTATION_MC_BLOCK pointer is not truncated.
- Added ability to send the validator status to the console
- Fixed compilation after auto bumped rocks_db version
- Supported ever-types version 2.0
- Fixed bug in external messages storage. It was not properly cleaned up when node collated blocks only in workchain or masterchain.
- Fixed bug in archives GC. Now it checks if shard state related to block is allowed to be deleted.
- Made Jaeger tracing optional
- Bumped block version to 37
- Supported CapFeeInGasUnits capability
- New version of cells DB with separated values for cells counters. New version works faster.
By-default old version is used (no need to refill DB). To migrate to new version it is need
to run node with
--force-check-db
flag. - Added new section in config.json.
Description for flags see below.
"cells_db_config": { "states_db_queue_len": 1000, "max_pss_slowdown_mcs": 750, "prefill_cells_cunters": false }
- Added in-memory cache for all cells counters. It speeds up cells DB but takes more memory.
Enabled by
prefill_cells_cunters
flag. By-default it is disabled. - Abjusteble queue length for states DB. It is a throttling threshold - node slows down
if the queue is full. Abjusted by
states_db_queue_len
flag in config.json. Default value is 1000. - Slow down of persistent state saving. It reduces load on cells DB when it is overloaded.
Maksimum slowdown time (pause before next cell saving) is set by
max_pss_slowdown_mcs
flag in config.json. Default value is 750 microseconds. - Setup Bloom filters and increased caches in the cells DB. It gives significant performance boost on databases with a lot of cells (more than 10 millions).
- Fast database recovery. It works by optimistic scenario - doesn't check all cells. If cell lost while node works - it restarts and runs cells DB full recovery.
- Bumped block version to 31
- Removed unused code
- Fixed build warnings
crc32c
crate changed to commoncrc
- Added rust version to node info