* Accelerator: partial fullnodes
1) Node can monitor a subset of shards
2) New archive slice format (sharded)
3) Validators are still required to have all shards
4) Support partial liteservers in lite-client, blockchain explorer, tonlib
5) Proxy liteserver
* Fix compilation error
* Remove unneeded "wait_neighbours_not_empty"
* Fix "round_started_at" for the first round
* Fix use after move in overlay.cpp
* Move "last gc masterchain state" stat to CellDbIn::prepare_stats
* Fix disabling state serializer
* getactorstats query for validator-engine-console
* celldb in-memory mode (--celldb-in-memory option)
* rldp2: bugfix - do not estimate speed while nothing is sent
* add simple ed25519 benchmark
* fix compilation errors of different platforms and move to c++20
* fix some warnings
* turn on TON_USE_ABSEIL for glibc 2.27 nix build
---------
Co-authored-by: birydrad <>
* Validator improvements
* Fix cancelling state serialization
* Disable state serializer on all mainnet validators
* Flag --catchain-max-block-delay-slow
* Set default catchain-max-block-delay to 0.4, delay-slow to 1.0
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>
* Improve validator session stats
* Collator stats: block limits, number of processed external messages
* Collator and validator work time
* Last key block seqno
* Approvers and signers
* End validator session stats
This commit contains some parts of https://github.com/ton-blockchain/ton/tree/accelerator
This is auxiliary code that mostly does not change node behavior.
1) Semiprivate overlays and other improvements in overlays code
2) Rename actual_min_split -> monitor_min_split, fix building shard overlays
3) Loading block candidates by block id from DB, fix accept_block after validator restart
4) Cells: ProofStorageStat and changes in CellUsageTree
5) Remove some unused code, other minor changes
* Improve validator session stats
* Collator stats: block limits, number of processed external messages
* Collator and validator work time
* Last key block seqno
* Approvers and signers
* End validator session stats
* Set collator options from validator console
* Fix compilation error in manager-disk
* Defer all messages if out msg queue is too big
* Fix checking queue size in collator
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>
* Private overlay for external messages
* Improve ext msg overlays
* Manage from validator console
* Bypass out queue size limit for high-priority messages
* Shuffle messages in get_external_messages
* Cleanup mempool when creating validator group
* Improve private overlays for externals
1. Allow using validator adnl ids in addition to fullnode ids
2. Set priority per sender, not per overlay
3. Require the same overlay name for all nodes
4. Enable lz4 in private block overlay
* Fix typo, add debug logs
* Enable lz4 in private block overlay by config
Change proto_version for lz4 in catchain overlays to 4
* Add logs for broadcasts in fullnode
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>
* Add logs to collator and validator
* More logs to get_ext_messages, decrease verbosity level
* Adjust allowed time lag for last_liteserver_state
* Change verbosity of STATUS message
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>
* Improve handling outbound message queues
* Cleanup queue faster
* Calculate queue sizes in background
* Force or limit split/merge depending on queue size
* Increase validate_ref limit for transaction
* Add all changes of public libraries to block size estimation
* Don't crash on timeout in GC
* Don't import external messages when queue is too big
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>
* Add parameter --celldb-compress-depth to speed up celldb
* Fix collator timeout
* Add block_state_cache
* Adjust state cache ttl
* Don't merge shards when queue is too big
* Decrease lt limit if previous block is too old
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>
* Add getperfwarningtimeraverage query for validator-engine-console
* Fix for getperfwarningtimeraverage query
* getperftimerstats
* Add history max size: 1 hour
* PerfWarningTimer: move callback instead of copy
* PerfWarningTimer: fix move constructor bug
* PerfWarningTimer: fix bug: lifetime of the callback was greater than lifetime of the local variable 'manager' captured by reference
* Fix validate-query.cpp: 'manager' used after it was moved
* PerfWarningTimer: remove logs
* getperftimerstats: write to json file
* getperftimerstatsjson
Co-authored-by: legaii <jgates.ardux@gmail.com>
Co-authored-by: Ivan Siomash <106972486+legaii@users.noreply.github.com>
* Fix double serialization of masterchain; increase sync_blocks_before
* Improve logging in DownloadState
* Write persistent state directly to file instead of a buffer
* Don't keep ref to masterchain state in AsyncStateSerializer
* Sparse state serialization over longer period
Co-authored-by: SpyCheese <mikle98@yandex.ru>