* 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
* Add --fast-state-serializer and tools for jemalloc
* Disable fast state serializer by default unless RAM is >= 90GB
* Print jemalloc stats once a minute
* Dump jemalloc profile on request
* Respond to AdnlMessageCreateChannel with Nop
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>
* 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>
* Deferred messages and msg metadata
* Store out msg queue size in state
* Add checks for queue processing
1. Collator must process at least one message from AccountDispatchQueue (unless block is full)
2. The first message from a transaction is not counted, it cannot be deferred (unless AccountDispatchQueue is not empty)
* Return msg metadata from LS in listBlockTransactions[Ext]
* Enable new features by capabilities
* Changes in deferred messages
* Process deferred messages via new_msgs in collator
* Rework setting deferred_lt, bring back check_message_processing_order, check order of deferred_lt in validator
* Use have_unprocessed_account_dispatch_queue_ in collator
* Fix setting transaction lt for deferred messages
* Fix lite-client compilation error
* Changes in process_dispatch_queue, rename deferred_lt -> emitted_lt
* Fix compilation error
* Use uint64 for msg queue size
* Add liteServer.getBlockOutMsgQueueSize
* Fix compilation error
* Fix typos in comments
---------
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>
* Utils for writing precompiled contracts
* Precompiled contracts in config, override gas_usage for them
* Add base class for precompiled contracts
* Improve utils for precompiled smc
* Implement GETPRECOMPILEDGAS
* Enable precompiles by flag
* Process null data in PrecompiledSmartContract
* Fix ton_block wasm build
* Fix vm::util::store_(u)long
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>
* Improve LS runSmcMethod
* Full c7 and libraries
* Don't request c7 (mode 8) in lite-client
* Prioritize remote result in lite-client runmethod (but not runmethodfull)
* Return simplified c7 from runSmgMethod, add flag to return full
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>