1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00
Commit graph

136 commits

Author SHA1 Message Date
Andrey Tvorozhkov
240b7dd4f4
Merge 963b4b342a into 44e7e091b2 2025-03-02 13:58:45 +00:00
SpyCheese
b3b2bd1c3c
New extra currency behavior (#1539) 2025-02-27 15:18:59 +03:00
SpyCheese
ce6c29941e Get rid of std::cerr logs in collator/validator 2025-02-13 14:25:04 +03:00
EmelyanenkoK
3c245c6146
Add forgotten highload-v2 to unlock (#1511) 2025-02-03 11:16:44 +03:00
SpyCheese
da5644e758
Enable VmState::jump_to bugfix in version 9 (#1491) 2025-01-24 17:48:05 +03:00
SpyCheese
2d603f1f47 Adjust overridden gas limit 2025-01-17 12:46:58 +03:00
SpyCheese
77e5a2f4a2 Merge branch 'testnet' into tvm-v9 2025-01-17 12:32:09 +03:00
SpyCheese
d3485e42b9 Temporary increase gas limit for certain accounts 2025-01-17 12:26:53 +03:00
SpyCheese
710514b8f1
Validate Merkle proofs and updates in TLB validate (#1479)
* Validate Merkle proofs and updates in TLB validate

* Fix out-of-bound access in tl_jni_object.cpp
2025-01-16 09:42:05 +03:00
SpyCheese
62838571eb
Support extra currencies in reserve action with +2 flag (#1429)
* Support extra currencies in reserve action with +2 flag

* Enable new reserve behavior in version 9
2025-01-15 10:43:33 +03:00
SpyCheese
0fff1bd8c7 Fix loading library cell in contract code 2024-12-18 12:57:21 +03:00
SpyCheese
a01c7e2e75 Add more recent blocks to "previous blocks info" 2024-12-18 12:57:21 +03:00
SpyCheese
7bc50e63d7
tonNode.getOutMsgQueueProof query in public shard overlays (#1413)
* tonNode.getOutMsgQueueProof query in public shard overlays

* Allow responding to getOutMsgQueueProof requests one at a time only
2024-12-04 14:38:57 +03:00
SpyCheese
954a96a077
Accelerator: partial fullnodes (#1393)
* 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
2024-11-26 14:46:58 +03:00
SpyCheese
603d1d14b9
More precise calculation of expected shard blocks in checkload (#1279)
* More precise calculation of expected shard blocks in checkload

* Fix monte-carlo checkload
2024-10-15 17:59:12 +03:00
SpyCheese
2ce2c8fc49
Count account_dict size in block size estimation (#1261)
* Count account_dict size in block size estimation

* Fix updating account dict estimator
2024-10-12 13:21:47 +03:00
SpyCheese
257cd8cd9c
Fix estimating block size, repeat collation on error (#1178)
* Fix extimating block size, repeat collation on error

* Cancel collation when it is non needed
2024-10-01 10:22:15 +03:00
EmelyanenkoK
b78199370e
Merge pull request #1202 from ton-blockchain/tvm-patch
Fix transaction original_balance and VmState::jump_to
2024-09-23 21:10:57 +03:00
birydrad
72020c04c4
celldb in-memory mode, stats for actors, perf counters, minor fix in rldp2 (#1164)
* 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 <>
2024-09-23 17:34:37 +03:00
SpyCheese
e04965c400 Fix setting original_balance in transaction.cpp 2024-09-20 15:16:46 +03:00
SpyCheese
908415d00b
Accelerator, part 1 (#1119)
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
2024-08-23 11:46:40 +03:00
SpyCheese
28f9a9b159
More verbose vm logs, fix parsing slice literals (#1076)
* More verbose VM logs

* Fix parsing slice literals in fift
2024-07-26 16:09:43 +03:00
EmelyanenkoK
57f95cc282
Add collator options (#1052)
* 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>
2024-07-10 14:58:13 +03:00
SpyCheese
c54f095c1b
Don't use user-provided fees for internal messages (#1050) 2024-07-10 09:17:37 +03:00
EmelyanenkoK
0daee1d887
Merge message dispatch queue (#1030)
* 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>
2024-06-27 16:12:23 +03:00
EmelyanenkoK
c2e7278fcd
Fix skipped action list order (#1036)
* nullify incorrect actions directly in skipped_action_list
2024-06-25 11:18:36 +03:00
EmelyanenkoK
bd23029d0a
Soft send message validation (#1021)
* check mode on invalid action_send_msg

* Fix random seed generation

* Explicitly skip invalid actions

* Count skipped valid messages, rename cfg option to message_skip_enabled

* Allow unfreeze via external messages

* Detect and handle bounce_on_fail mode for invalid messages

* Fix codestyle

* Adjust doc
2024-06-11 15:08:08 +03:00
neodix42
5186c4755c
Change fift path separator for FIFTPATH and -I argument (#1014)
* add github action for macOS 14 (arm64, M1)

* add github action (portable) for macOS 14 (arm64, M1)

* rename macOS arm64 output artifact

* Colon cannot be used as a path separator for FIFTPATH or -I argument in fift on Windows when absolute paths are used (e.g. C:\path\lib:C:\path\smartcont).
Suggestion to use @ as a new path separator on Windows.

---------

Co-authored-by: neodiX <neodix42@ton.org>
2024-06-07 18:50:11 +03:00
EmelyanenkoK
a2bd695b89
Fix prepare_vm_c7 (#958)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-04-08 14:29:54 +03:00
EmelyanenkoK
b8111d8b5b
Fix setting due_payment in storage phase (#957)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-04-08 11:15:52 +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
EmelyanenkoK
a11ffb1637
Add DUEPAYMENT and some others + small fixes of new opcodes (#881)
* Changes in TVM v6

* Rename some opcodes
* Add due payment to c7
* Add GETORIGINALFWDFEE, GETGASFEESIMPLE, GETFORWARDFEESIMPLE
* Bugfix in GETGASFEE

* Fix typo

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-01-29 16:38:42 +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
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
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
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
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
EmelyanenkoK
6b8994e456
Return zero instead of null in compute_storage_fees (#810)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-11-22 15:41:02 +03:00
SpyCheese
1cffca0b40
Fix due payment reimbursement (#809) 2023-11-22 10:27:58 +03:00
SpyCheese
31263fb475
Limit max number of public libraries on contracts (#808) 2023-11-22 10:27:39 +03:00
SpyCheese
909e7dbdfc
Allow anycast destination address in masterchain (#807) 2023-11-22 10:25:53 +03:00
EmelyanenkoK
ba03657617
Fix transaction credit phase (#797)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-11-03 17:05:43 +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
cdf96a21d0
Do not retranslate external messages with wrong initstate (#778) 2023-10-12 14:54:14 +03:00
SpyCheese
41ed354b9f
Explicitly handle special cells in action list (#777) 2023-10-12 14:53:54 +03:00
Andrey Tvorozhkov
2c0bce4b54
Fix config proposal scheme
https://github.com/ton-blockchain/ton/blob/master/crypto/smartcont/config-code.fc#L298
2023-09-05 13:45:10 +06:00
SpyCheese
b4f4aa3ca7
Fix typo in BurningConfig (#721) 2023-06-05 17:22:13 +03:00