1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-02-15 04:32:21 +00:00
Commit graph

321 commits

Author SHA1 Message Date
EmelyanenkoK
cc4244f5a4
Fix setting inited_ in FullNodeCustomOverlay (#954)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-04-03 12:11:07 +03:00
EmelyanenkoK
8390d887d3
Set temp packages ttl to 1h (#953)
This leaves only 3 last temp packages

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-04-02 11:46:40 +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
Marat
46ca0e6014
Check pack_statistics for nullptr (#950) 2024-03-29 22:01:53 +03:00
SpyCheese
f5cedc3b6e Enable compression in private overlays v2 and in collator node 2024-03-29 15:04:07 +03:00
SpyCheese
8385336eab Merge branch 'testnet' into block-generation 2024-03-28 18:12:21 +03:00
Marat
10487b1c71
Collect statistics for .pack files (#944)
* Statistics for .pack files

* optimizations

* fix typo

* fix erasing packages
2024-03-27 14:23:11 +03:00
SpyCheese
036ce69786 Use compression in new private overlays 2024-03-26 16:22:52 +03:00
SpyCheese
7999a7e2c1 Merge branch 'testnet' into block-generation 2024-03-26 16:19:34 +03:00
EmelyanenkoK
b07614335c
liteServer.getOutMsgQueueSizes method (#943)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-03-26 15:55:58 +03:00
EmelyanenkoK
0bcebe8a0e
Exp/compress candidates (#942)
* Compress block candidates in validator-session

* Compress blocks in full-node (disabled for now)

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-03-26 14:52:46 +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
3190c67f18 Simplify getCapabilities in fullnode 2024-03-26 11:42:30 +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
0feaaf591c
Mode 644 for db_stats.txt (#938) 2024-03-20 15:57:20 +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
EmelyanenkoK
0a82a19313
Don't serialize expired persistent states (#935)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-03-19 15:43:03 +03:00
EmelyanenkoK
f1592641de
Tonlib improvement fixes (#934)
* 3.6. Fix directory traversal in KeyValueDir

* 3.9. Fix buffer_to_hex reversing nibbles

* 3.5. Fix error handling at blocks.getBlockHeader

* 3.11. Fix query.forget

* 3.12. Fix error handling in RemoteRunSmcMethod

* 4.1. Delete unused files

* 3.10. Use named constants instead hardcoded constants

* 3.4. Fix response block header verification

* 3.1. Check proof of blocks.getShards response

* fix td::buffer_to_hex + test

* 3.2. Add proof check for listBlockTransactions response in RunEmulator actor

* 3.8. Add proof checking for getLibraries method

* fix regression tests

* 3.3 Add proof checking for lookupBlock method

* Add publishers to proof of getLibrariesWithProof response  (#25)

* fix missing return, fix requesting mc block

* Fix requesting lookupBlock with client mc blk == mc ref block

* Fix duplicating lib data in proof and data, add mode 2 for not including the data

* Migration of LastBlockStorage with fixed td::buffer_to_hex

---------

Co-authored-by: ms <dungeon666master@protonmail.com>
Co-authored-by: Marat <98183742+dungeon-master-666@users.noreply.github.com>
2024-03-19 15:31:29 +03:00
Marat
69de1cb621
Fix linker error: undefined reference to LiteServerCacheImpl::MAX_CACHE_SIZE (#930)
Co-authored-by: EmelyanenkoK <emelyanenko.kirill@gmail.com>
2024-03-19 15:24:15 +03:00
EmelyanenkoK
fc69377f9c
Fix running VM in liteserver and tonlib (#933)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-03-19 15:23:34 +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
6c680dbc4e Cleanup code in validator-group.cpp (after merge) 2024-02-22 15:00:41 +03:00
SpyCheese
0fb781b4c3 Improve queue cleanup (after merge) 2024-02-22 14:55:11 +03:00
SpyCheese
28699654fb New private block overlays 2024-02-21 18:38:43 +03:00
EmelyanenkoK
310dd6dec1
Fix fetching mc config for runSmcMethod, fix caching in LS (#915)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-02-21 16:13:55 +03:00
EmelyanenkoK
c7302bc4a3
Fix checking ext message broadcasts (#912)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-02-19 19:01:50 +03:00
SpyCheese
e575d27302 Remove unused priority_broadcast_receivers 2024-02-19 14:21:15 +03:00
SpyCheese
747b24aa18 Fix QueueSizeCounter and ValidatorGroup after merge 2024-02-19 13:10:47 +03:00
SpyCheese
a2eb3f3631 Merge branch 'testnet' into block-generation 2024-02-16 16:38:47 +03:00
EmelyanenkoK
af71dae31b
Ls run method (#906)
* 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>
2024-02-16 16:30:43 +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
4d39772e40
Drop only accepted duplicate ext messages, don't cache errors (#902)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-02-12 10:42:02 +03:00
EmelyanenkoK
f344aa46c3
Drop duplicate ext msg broadcasts (#894)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-02-09 15:28:23 +03:00
EmelyanenkoK
79c48ebbba
Add cache for some LS requests (#893)
* Cache runSmcMethod queries to LS

* Drop duplicate sendMessage

* Drop sendMessage cache once a minute

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-02-07 15:45:51 +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
EmelyanenkoK
e723213d5c
Log number of LS queries by type (#891)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-02-06 16:52:12 +03:00
SpyCheese
c38b2928ec
Fix typo in archive-slice.cpp (#850) (#879) 2024-02-02 17:02:38 +03:00
EmelyanenkoK
59927ba534
Improve block broadcasts processing; add special overlay for blocks for validators (#885)
* Improve block broadcast processing

* ValidatorManagerImpl::written_handle
* Retry sending broadcasts in ValidatorGroup
* Fix setting channel_ready in AdnlPeerPair

* Add special overlay for validators for block broadcasting (#842)

* Private overlay for broadcasting blocks

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>

(cherry picked from commit a52045bd91)

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-02-01 20:20:45 +03:00
SpyCheese
f4fd3ff3be Merge branch 'testnet' into block-generation 2024-02-01 19:29:25 +03:00
EmelyanenkoK
64b04e46d7
Cheap fee calculations (#878)
* TVM v6

* New tuple with unpacked config parameters in c7
* New instructions for calculating fees

* Change unpacked_config_tuple, fix typo

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-01-26 15:43:53 +03:00
EmelyanenkoK
2e231ec2ff
Count gas usage for ordinar transactions on special accounts in separate counter (#872)
* Improve checking total gas usage in collator and validator

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-01-22 21:56:11 +03:00
EmelyanenkoK
d91643face
Fix getting shard client block id (#870)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-01-22 18:33:26 +03:00
EmelyanenkoK
42d4c051ef
Disallow recursive library cells (#868)
* Disallow recursive library cells

* Stop emulation of external messages on accept

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-01-22 12:34:49 +03:00
EmelyanenkoK
128a85bee5
Use Config 8 to activate new gas limit behavior instead of new GasLimitsPrices constructor (#867)
* Remove gas_prices_v3, enable new gas limits by GlobalVersion = 5

* Change final date for higher gas limit

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-01-21 12:59:59 +03:00
EmelyanenkoK
b1f2160510
Fix setting gas limits in transaction.cpp (#864)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-01-17 12:01:34 +03:00
SpyCheese
a68b5cbe62
Improve validator session stats (#861) 2024-01-16 14:24:46 +03:00
EmelyanenkoK
4303e49c93 Postpone addition of overlay for block broadcasting (#842)
This reverts commit a52045bd91.
2024-01-16 11:29:03 +03:00
SpyCheese
388c8a6d86
Increase gas limit for a specific wallet (enabled by config) (#859) 2024-01-15 23:43:11 +03:00
EmelyanenkoK
ff40c1f2a0
Do not count gas on special accounts in block gas limits (enabled by config) (#856)
* Set higher gas limit for special accounts, don't add gas from special accounts to block total

* Make removing special accounts from block gas limits enabled by config

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-01-12 12:34:28 +03:00
Andrey Kravchenko
bc7ea2af2d
Fix pass the selected neighbor to the download proof (#854)
* Fix pass the selected neighbor to the download proof.

* Fix GetNextKeyBlocks as well

Previously, the neighbor was choosed, but it was not passed to the DownloadProof class, as a result, in got_download_token we always get a random one from overlay, but after failure, bad statistics are recorded for the previously selected neighbor, which did not participate in this operation.
2024-01-10 16:27:06 +03:00
EmelyanenkoK
a52045bd91
Add special overlay for validators for block broadcasting (#842)
* Private overlay for broadcasting blocks

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-12-28 21:54:55 +03:00
EmelyanenkoK
6c615a105a
Fix generating block header proof (#841)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-12-28 17:40:54 +03:00
EmelyanenkoK
b3be4283ff
Better error messages from LS for missing blocks (#837)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-12-25 09:30:51 +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
ace934ff35
Adjust allowed time lag for last_liteserver_state + more verbose logs (#836)
* 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>
2023-12-19 10:39:25 +03:00
EmelyanenkoK
1fc4a0faed
Move low blockrate lt_limits to appropriate place (#828)
* Fix setting lt_delta limits

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-12-13 21:33:54 +03:00
EmelyanenkoK
7a457ca278
Fix linking error (#827)
* Fix linking error

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-12-13 15:12:58 +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
EmelyanenkoK
7fcf267717
Improve large OutMsgQueue clearance (#822)
* Improve Collator::opt_msg_queue_cleanup, increase collator timeout

* Disable importing ext msgs if queue is too big

* Extend timeout in collator if previous block is too old

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-12-06 19:34:01 +03:00
EmelyanenkoK
7262a66d21
Don't allow deploying a contract with public libs (#812)
* Check account size limits in unpack_msg_state

* Don't allow deploying a contract with public libs

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-11-23 18:17:44 +03:00
SpyCheese
31263fb475
Limit max number of public libraries on contracts (#808) 2023-11-22 10:27:39 +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
06a6ef2fa9 Merge branch 'testnet' into block-generation 2023-10-16 11:23:04 +03:00
SpyCheese
1eef6ed55e Bugfix in check_neighbor_outbound_message 2023-10-16 11:22:41 +03:00
SpyCheese
98fe1f886d Remove excessive logs in collator 2023-08-31 11:57:02 +03:00
SpyCheese
1e3a12259b Optimize masterchain collation
Use only shard blocks with ready msg queues
2023-08-30 20:14:19 +03:00
SpyCheese
47c60d8bf0 Bugfix in OutMsgQueueImporter 2023-08-21 14:33:58 +03:00
SpyCheese
7155bf5eca Fix processing message queue in collator and validator 2023-08-13 20:37:59 +03:00
SpyCheese
6e51453056
Fix parsing dict of public libraries (#762) 2023-08-07 19:48:33 +03:00
SpyCheese
9e02853cbb Improve importing msg queues 2023-08-03 12:06:41 +03:00
SpyCheese
e814973749 Limit query size in importing out queues 2023-07-31 22:56:25 +03:00
SpyCheese
5c02459fd8 Optimize importing out queues 2023-07-31 18:12:09 +03:00
SpyCheese
44ba040934 Don't store candidates on collator nodes 2023-07-30 18:54:25 +03:00
SpyCheese
503e10c05a Fix choose_neighbour in full-node-shard 2023-07-26 17:28:14 +03:00
SpyCheese
783c75fc85 Decrease verbosity in out-msg-queue-proof.cpp 2023-07-26 16:29:37 +03:00
SpyCheese
da137fecf5 Extra shard overlay stats 2023-07-26 13:05:16 +03:00
SpyCheese
8c4bc5b3f1 Fix sending msg queue queries 2023-07-26 12:21:19 +03:00
SpyCheese
f1e62d0075 Move msg queue limits to config 2023-07-24 15:29:55 +03:00
SpyCheese
66b98b6d6a Merge branch 'testnet' into block-generation 2023-07-21 19:29:57 +03:00
SpyCheese
32b3fe748a Fix validating inbound msg queues 2023-07-21 19:29:29 +03:00
SpyCheese
869c6fe675 Rework limiting imported msg queues 2023-07-20 17:48:52 +03:00
SpyCheese
e6b77ef71d Remove excessive check in check_neighbor_outbound_message 2023-07-19 14:53:10 +03:00
SpyCheese
aa4f5769ca More logs for collators and validators 2023-07-18 19:44:41 +03:00
SpyCheese
3265e397f2 Rename actual_min_split and soft_mis_split to avoid confusion 2023-07-17 19:14:39 +03:00
SpyCheese
b8f347231f Fix shard overlays 2023-07-17 18:45:32 +03:00
SpyCheese
96afdc12ac Increase INACTIVE_SHARD_TTL
Node in overlay should be available until peer is expired
2023-07-14 17:16:49 +03:00
neodiX42
50d2361394
On MacOS, writing more than 0x7fffffff bytes will fail with errno 22 (#737) 2023-07-14 16:27:59 +03:00
SpyCheese
8e85bfa6e6 Merge branch 'testnet' into block-generation 2023-07-14 16:00:39 +03:00
EmelyanenkoK
08cfc4c6ee
Initialize random seed properly (#742)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-07-14 14:50:03 +03:00
SpyCheese
21ce145af2 Limit collated data size in collator 2023-07-12 13:29:59 +03:00
SpyCheese
d5a56b7c2b Changes in CollatorNode 2023-07-12 09:01:15 +03:00
SpyCheese
f10c7f54a8 Bugfix in processing message queues; improve out_msg_queue_cleanup 2023-07-06 11:44:21 +03:00
SpyCheese
5dd0c15d07 Limit imported msg queue size 2023-07-04 23:34:34 +03:00
SpyCheese
e4e77c16c5 Merge branch 'testnet' into block-generation 2023-06-02 13:34:00 +03:00
EmelyanenkoK
6b941dcceb
Fix returning config from LS, add extra c7 elements in getmethods (#713)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-05-27 21:22:31 +03:00