1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-02-13 11:42:18 +00:00
Commit graph

87 commits

Author SHA1 Message Date
SpyCheese
eb4c876f22 Merge branch 'testnet' into block-generation 2024-06-04 16:49:47 +03:00
EmelyanenkoK
3d7e85bafd
Rollback celldb default flag values and decrease default TTLs (#1012)
* Rollback celldb default flag values and decrease default TTLs

* Fix description
2024-06-02 13:41:02 +03:00
EmelyanenkoK
74801d00b8
Command to disable state serializer (#1011)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-05-31 20:50:31 +03:00
SpyCheese
eb41e1a10e Merge branch 'testnet' into block-generation 2024-05-22 11:00:24 +03:00
EmelyanenkoK
7a74888d2f
Automatically disable celldb direct I/O if cache is small (#997)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-05-15 16:06:25 +03:00
EmelyanenkoK
3827409957
Change default values for celldb flags (#996)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-05-14 20:33:53 +03:00
EmelyanenkoK
561f342639
Add --celldb-direct-io and --celldb-preload-all (#993)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-05-14 16:05:29 +03:00
SpyCheese
172c16ca2e Merge branch 'testnet' into block-generation 2024-05-13 16:38:48 +03:00
EmelyanenkoK
816dd9cf2d
Add option --catchain-max-block-delay (#990)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-05-13 14:55:32 +03:00
EmelyanenkoK
c7fd75ce56
Fix creating rocksdb cache (#989)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-05-13 14:54:57 +03:00
EmelyanenkoK
1433f23eff
Add option --celldb-cache-size (#988)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-05-13 12:48:18 +03:00
EmelyanenkoK
d5c09936cf
Block broadcasts in custom overlays (#986)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-05-10 17:04:49 +03:00
SpyCheese
1fda6902a9 Merge branch 'testnet' into block-generation 2024-04-01 18:32:44 +03:00
EmelyanenkoK
f7907bdd58
Rename private ext msg overlays to custom overlays, change interface a bit (#952)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-04-01 18:24:08 +03:00
SpyCheese
4916e4847a Merge branch 'testnet' into block-generation 2024-04-01 17:28:23 +03:00
EmelyanenkoK
0434eadc1f
Add custom overlays for external messages (#949)
* 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>
2024-04-01 16:44:08 +03:00
SpyCheese
7999a7e2c1 Merge branch 'testnet' into block-generation 2024-03-26 16:19:34 +03:00
EmelyanenkoK
9452c367e4
LS queries to nonfinal blocks (#941)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-03-26 14:51:06 +03:00
SpyCheese
2ee7cbc106 Merge branch 'testnet' into block-generation
# Conflicts:
#	tonlib/tonlib/TonlibClient.cpp
#	validator-engine/validator-engine.hpp
#	validator/validator-options.hpp
#	validator/validator.h
2024-03-25 18:40:47 +03:00
Marat
7a6bfa7e7a
Save rocksdb statistics to file every minute (#932)
* Save rocksdb statistics to file every minute

* Add flag to disable collecting rocksdb statistics
2024-03-20 14:21:40 +03:00
SpyCheese
e216651112 Merge branch 'testnet' into block-generation
# Conflicts:
#	crypto/block/mc-config.cpp
#	crypto/block/mc-config.h
2024-03-11 18:08:08 +03:00
EmelyanenkoK
9d05696452
Add infrastructure for precompiled smartcontracts (#927)
* 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>
2024-03-05 16:54:49 +03:00
SpyCheese
28699654fb New private block overlays 2024-02-21 18:38:43 +03:00
SpyCheese
a2eb3f3631 Merge branch 'testnet' into block-generation 2024-02-16 16:38:47 +03:00
EmelyanenkoK
eb4831d7d6
Add --archive-preload-period (#904)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-02-15 12:03:57 +03:00
EmelyanenkoK
12c1b1a2e6
Limit file descriptors num by adding archive slice lru (#892)
* --max-archive-fd option limits open files in archive manager

* Don't close the latest archives + bugfix

* Delete temp packages early

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-02-07 14:56:37 +03:00
SpyCheese
f4fd3ff3be Merge branch 'testnet' into block-generation 2024-02-01 19:29:25 +03:00
EmelyanenkoK
c8918f0c02
Write config.json using temp file (#839)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-12-27 15:50:09 +03:00
EmelyanenkoK
83efcebad0
Improve CellDb migration (#835)
* Fix deserializing cells
* Use proxy actor
* Add delays
* Print stats every minute

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-12-19 10:39:35 +03:00
EmelyanenkoK
5e6b67ae96
Improve handling outbound message queues (#825)
* 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>
2023-12-13 12:57:34 +03:00
EmelyanenkoK
9b6d699c21
Cache recent block states and adjust timeouts (#823)
* 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>
2023-12-08 14:20:17 +03:00
SpyCheese
5847897b37
Various changes in TVM, github builds and tests (#793)
* Bugfixes in TVM and node

* Upgrade to C++17

* Improve GitHub builds

* Fix existing tests and partially integrate them into builds

---------

Co-authored-by: neodiX42 <namlem@gmail.com>
Co-authored-by: EmelyanenkoK <emelyanenko.kirill@gmail.com>
2023-11-03 14:43:34 +03:00
SpyCheese
e814973749 Limit query size in importing out queues 2023-07-31 22:56:25 +03:00
SpyCheese
8e85bfa6e6 Merge branch 'testnet' into block-generation 2023-07-14 16:00:39 +03:00
EmelyanenkoK
afb630bf41
--shutdown-at parameter for validator-engine (#745)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-07-14 15:39:03 +03:00
SpyCheese
e4e77c16c5 Merge branch 'testnet' into block-generation 2023-06-02 13:34:00 +03:00
SpyCheese
5abfe2337e
Catchain improvements (#698)
* Fix "sgn" in fift; fix marking infinite loops as noterurn in func

* TON-P1-1: Remove unused catchain queries

* TON-P1-15: Avoid synchronization with self

* TON-P1-3, TON-P1-17: Disallow more than one candidate per src per round (to prevent flood), add checks to process_broadcast

* TON-P1-10: Fix fast/slow attempts

* TON-P1-14: Add named constants

* TON-P1-18, TON-P1-19: Alloc temporary memory in the same way as persistent memory

* TON-P1-20: Add comment to choose_blocks_to_approve

* TON-P1-16: Avoid creating two catchain blocks on need_new_block

* TON-P1-8: Add some validation to validator-engine parameters

* TON-P1-6: Don't allow sending the same block many times

Many requests for the same block are not unusual (however, there's no need to answer them all)

* TON-P1-2: Enable prohibiting dependencies from blamed nodes (2.7.5 in CatChain doc), fix processing blame proofs

* Best practices

bp-6: Fix incorrect warning
bp-7: Remove unused code
bp-8: Bring back PerfWarningTimer logging (only when no callback)
bp-9: Remove unnecessary condition
bp-11: Remove commented-out code
bp-13: Divide code in validator-session-state
Adherence to Specification: Fix typo
2023-05-10 12:57:57 +03:00
SpyCheese
d082ac36b0 Merge branch 'testnet' into block-generation 2023-03-28 16:52:33 +03:00
EmelyanenkoK
47311d6e0e
Improve tweaking for high throughput (#610)
* Option "--disable-ext-msg-broadcast"

* "Get shard out queue size" query

* Move disabling ext msg broadcasts from command-line arguments to config

* Fix compilation error

* Asynchronous store_cell and gc in celldb

* Make GC in celldb work evenly over time

* Increase timeouts for downloading blocks

* Reuse blocks from previous rounds in validator session

* Use Rldp2 in FullNode for downloading persistent states and archives

* Improve logs in download-archive-slice and download-state

* Decrease delay between serializing shards

* Make CellDbIn::load_cell synchronous to avoid interfering with store_cell

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-03-15 10:47:35 +03:00
SpyCheese
225f71238b Option for collating masterchain on validators 2023-01-16 19:30:15 +03:00
SpyCheese
d4339b839c Add "delshard", "delcollator" to validator-engine-console 2022-10-17 13:24:59 +03:00
SpyCheese
636348ffc2 Merge branch 'testnet' into block-generation
# Conflicts:
#	overlay/overlay-fec-broadcast.cpp
#	overlay/overlay.hpp
#	tl/generate/scheme/ton_api.tl
#	tl/generate/scheme/ton_api.tlo
#	validator-engine-console/validator-engine-console-query.cpp
#	validator-engine-console/validator-engine-console-query.h
#	validator-engine-console/validator-engine-console.cpp
#	validator-engine/validator-engine.cpp
#	validator-engine/validator-engine.hpp
#	validator/downloaders/wait-block-state.hpp
#	validator/impl/validate-query.cpp
#	validator/validator.h
2022-10-06 13:46:25 +03:00
Ivan Siomash
1464ae0b0a
Remove c++17 structure bindings from GetPerfTimerStats (#460)
* Remove c++17 structure bindings
2022-09-18 16:02:08 +03:00
Ivan Siomash
5b2e96c2fa
Fixes for GetPerfTimerStats (#457)
* getperftimerstatsjson: fix json format

* getperftimerstatsjson: fix td::min ambiguous template parameter
2022-09-15 10:26:17 +03:00
SpyCheese
86250706b8 Change format of specifying shards to monitor 2022-09-13 16:02:55 +03:00
EmelyanenkoK
8329a58994
Add GetPerfTimerStats (#451)
* 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>
2022-09-10 12:57:13 +03:00
SpyCheese
1efd425403 Fix compatibility 2022-08-19 18:24:18 +03:00
SpyCheese
be2169e523 Reload validator options when needed 2022-08-19 18:24:17 +03:00
SpyCheese
910398da92 Improved neighbor choosing in full-node-shard 2022-08-19 18:24:17 +03:00
SpyCheese
7749cbfa1f Change config serialization for compatibility 2022-08-19 18:24:17 +03:00