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

261 commits

Author SHA1 Message Date
SpyCheese
eb4c876f22 Merge branch 'testnet' into block-generation 2024-06-04 16:49:47 +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
86d3ed97c1 Fix parsing block limits config 2024-05-30 18:19:38 +03:00
SpyCheese
172c16ca2e Merge branch 'testnet' into block-generation 2024-05-13 16:38:48 +03:00
EmelyanenkoK
037053fffe
More verbose state serializer logs (#976)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-04-29 16:33:10 +03:00
SpyCheese
8143eb074e Merge branch 'testnet' into block-generation 2024-04-08 14:44:28 +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
SpyCheese
103eb9aad5 Separate limits for collated data 2024-03-26 12:50:01 +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
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
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
EmelyanenkoK
b09f910bf2
Fix converting int to int256 (#925)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-03-04 17:37:42 +03:00
SpyCheese
e575d27302 Remove unused priority_broadcast_receivers 2024-02-19 14:21:15 +03:00
SpyCheese
a2eb3f3631 Merge branch 'testnet' into block-generation 2024-02-16 16:38:47 +03:00
EmelyanenkoK
a4d618b0fc
Patch funcfiftlib and emulator-emscripten builds (#905)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-02-16 11:51:43 +03:00
SpyCheese
f4fd3ff3be Merge branch 'testnet' into block-generation 2024-02-01 19:29:25 +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
51d30e2f2b
Add TVM instructions for working with nonzero-level cells (#880)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-01-26 18:24:39 +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
49d62dc3bb
Activate new changes in TVM by version>=5, reduce gas cost for loading libraries (#875)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2024-01-24 13:05:22 +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
neodix42
e0a320f715
Improve TON build scripts and some tests (#855)
* fix macOS github actions

* fix android tonlib GH action;

* fixing wasm GH action

* strip binaries

* fix randomly failing ubuntu and wasm GH actions

* fix randomly failing ubuntu and wasm GH actions

* revert some changes

* adding more nix scripts and automated native build scripts;
debug static ton compilation

* minor fix

* do not use pkg_config if path specified

* move wasm script, run with sudo action script

* weird, fixing - cp: missing destination file operand after 'assembly/native/build-ubuntu-20.04-shared.sh'

* weird, fixing - cp: missing destination file operand after 'assembly/native/build-ubuntu-20.04-shared.sh'

* ok

* some adjustments for android and win builds

* some adjustments for android and win builds

* moving stripping inside the build script

* access rights handling; adding simple binaries' tests

* make lite-client-common, fift-lib and smc-envelope deliberately static;
add -a (artifacts) flag to build scripts;

* minor wasm build fix;
create separate tonlib android build script;
remove outdated __has_trivial_copy(T)

* add windows build - WIP

* adjust android build;
improve win build;

* adjust sodium paths for android build; use proper compiler for windows build;

* add github windows build auxiliary file

* adjust wasm build

* add portable ubuntu build

* exclude some unstable tests for some time

* compile portable binaries on ubuntu-20.04

* exclude some unstable tests

* include static gsl

* restart builds

* restart builds

* restart builds

* remove libreadline, gsl and blas dependencies in linux build

* add macos build script

* install missing autoconf in macos builds

* enable all tests and see what fails

* enable win tests and restart others

* enable win tests and fix test-smartcont.cpp

* enable win tests

* use clang-16 on mac builds, add blockchain-explorer for ubuntu builds, add portable macos build

* move sudo part outside a build scripts

* move sudo part outside a build scripts

* run llvm install with sudo

* remove libgnutls28-dev before ubuntu static compilation, include blockchain-explorer into artifacts;
remove warning: definition of implicit copy constructor for 'Stat' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy]

* rework wrong decision, put back system gnutls, but compile libmicrohttpd with --disable-https

* add jenkins pipeline sceleton

* WIP jenkins pipeline sceleton

* WIP jenkins pipeline changes

* WIP jenkins pipeline: add stage timout, zip and group artifacts

* WIP jenkins pipeline: macos portable build fix

* WIP jenkins pipeline: wording

* WIP jenkins pipeline: add android tonlib

* WIP jenkins pipeline: add was binaries

* WIP jenkins pipeline: add TOTAL_MEMORY 1.5gb to funcfiftlib wasm linking

* WIP jenkins pipeline: add nix build on linux aarch64

* WIP jenkins pipeline: funcfiftlib compilation fails that 16mb mem is not enough, increase to 32mb

* WIP jenkins pipeline: enable test in nix build

* WIP jenkins pipeline: add linux x86-64 nix build

* WIP jenkins pipeline: include libs in nix build

* WIP jenkins pipeline: include libs in nix build

* WIP jenkins pipeline: include mac nix build

* WIP jenkins pipeline: include mac nix build

* WIP jenkins pipeline: include mac nix build

* WIP jenkins pipeline: include mac nix build

* WIP jenkins pipeline: include mac nix build

* WIP jenkins pipeline: include mac nix build

* WIP jenkins pipeline: nix linux arm64 with openssl 1.1 for now

* WIP jenkins pipeline: working ubuntu arm64 libtonjson

* WIP jenkins pipeline: working ubuntu arm64 libtonjson + minor fix

* WIP jenkins pipeline: working ubuntu arm64 libtonjson + minor fix 2

* WIP jenkins pipeline: merry christmas

* WIP jenkins pipeline: merry christmas 2

* WIP jenkins pipeline: remove native static builds

* WIP jenkins pipeline: enable more tests

* WIP jenkins pipeline: zip artifacts better

* WIP jenkins pipeline: get rid of path in the final zip

* WIP jenkins pipeline: minor fix, include lib and smartcont folders

* WIP jenkins pipeline: minor fix, include lib and smartcont folders into nix artifacts also

* WIP jenkins pipeline: minor fix

* WIP jenkins pipeline: minor fix

* adjust github actions for new nix builds

* cleanup

* cleanup

* cleanup

* cleanup

* rename libtonlibjson.so.0.5 to libtonlibjson.so

* Add TON build instructions to README.md

* simplify

* fix test-tonlib-offline

* set timeout per test of 300 sec

* set timeout per test of 600 sec for non nix builds

* increase test timeout to 900 sec; minor changes

* use MS VS 2022 for win TON compilation; update README.md

* use MS VS 2022 for win TON compilation; update README.md

* change path to MSVC in github workflow

* change path to MSVC in groovy pipeline

* compile ton on win, with msvc 2022 community and enterprise versions

* minor fixes

* improve network tests

* remove TON compilation against macos-11 github runner

* add `choco feature enable -n allowEmptyChecksums` since pkg-config-lite-0.28-1 does not have a checksum

* abort win compilation if 3pp can't be downloaded

* increase test timeout to 30 min

* improving test-catchain
2024-01-15 23:48:04 +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
cf83bd1893
Add note on highload wallet pecularities 2024-01-09 15:49:42 +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
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
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
030ebaf772 Change GASCONSUMED opcode to f807 2023-11-03 15:25:58 +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
2bfa6240dd
Support wallet-v4 in tonlib (#785) 2023-10-25 12:20:23 +03:00
SpyCheese
06a6ef2fa9 Merge branch 'testnet' into block-generation 2023-10-16 11:23:04 +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
SpyCheese
9e02853cbb Improve importing msg queues 2023-08-03 12:06:41 +03:00
SpyCheese
5c02459fd8 Optimize importing out queues 2023-07-31 18:12:09 +03:00
SpyCheese
f1e62d0075 Move msg queue limits to config 2023-07-24 15:29:55 +03:00
SpyCheese
869c6fe675 Rework limiting imported msg queues 2023-07-20 17:48:52 +03:00