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

330 commits

Author SHA1 Message Date
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
EmelyanenkoK
9f93888cf4
TVM Upgrade (#686)
* New TVM instructions

* Remove PREVBLOCKS

* Separate target ton_crypto into TVM-related and -unrelared code

* Add fine for failed "send message"; rework SENDMSG

* Fix include

* Fix bugs, improve action fines

* Disable fines for special accounts

* Handle msg_balance_remaining.grams == null in transaction.cpp

* Bugfixes in SENDMSG

* Fix fee calculation in SENDMSG

* Fix CellStorageStat and transaction.cpp after merge

* SETBOUNCEONACTIONPHASEFAIL instruction

* ADDDIVMOD instructions

* RUNVM, RUNVMX instructions

* Changes in RUNVM

* Tests for adddiv and runvm

* HASHEXT instruction

* Improve opcode-timing

More iterations
Don't measure preliminary run
Remove logs and other excessive operations
Add "error" to output

* Increase RUNVM gas price

* Optimize HASHEXT, adjust gas price

* Add "bounce of action fail" flag to actions

* Stack operations with unlimited arguments

* Ristretto255 instructions

* Adjust gas consumption

* Optional fixed number of return values in RUNVM, fix exception handling

* Adjust gas consumption

* Simplify gas consumption logic

* Support of secp256k1 and sodium libraries in builds (#11)

* add support of secp256k1 library to the builds (linux, win)

* add support of secp256k1 library to the builds (linux, win)

* install secp256k1 via brew

* install libsodium via brew;
change sodium to upper case in FindSodium.cmake

* install libsodium via brew;
change sodium to upper case in FindSodium.cmake

* simplify FindSodium.cmake

* bug fixing

* bug fixing

* bug fixing

* add macro SODIUM_STATIC

* adjust build command for windows

* put back original FindSodium.cmake

* put back original FindSodium.cmake

* fix sodium unzipped path for windows;
add ninja

* fix sodium unzipped path for windows;
add ninja

* fix sodium unzipped path for windows;
add ninja

* Win32 github build for secp256k1

* x64 architecture github build for secp256k1

* fix sodium linking on linux

* enable docker buildx arm64 builds from forked repos

* enable docker buildx arm64 builds from forked repos

* enable docker buildx arm64 builds from forked repos

* adjust mac builds for secp2561k and sodium

* fix tonlib jni generation

* minor fix

* sync fixes across platforms

* add libsodium build script for android and precompiled static libraries

* build tonlib for android (fails)

* FindSodium uppercase

* remove system libsodium for android, use precompiled instead;
specify SECP256K1_INCLUDE_DIR fir mac 12.6

* uppercase sodium

* simplify FindSodium

* fix windows build sodium path;
use ninja for windows

* simplify sodium 2

* adjust windows sodium paths;
add paths to android jni

* add ninja build windows

* add ninja build windows

* add ninja build windows 2

* remove win ninja

* fix 1

* fix 2

* fix win 3

* fix linux compile 3

* fix jni 1

* fix jni 2 and mac

* fix jni 3

* fix jni 4

* fix jni 5

* fix mac 6

* fix mac 7 and jni paths

* fix jni 8

* rework sodium for android

* rework sodium for android

* rework sodium for android 2

* fixed sodium for android 2

* fixed sodium for android 3

* static secp256k1 for android

* add precompiled arm secp256k1

* add precompiled arm secp256k1

* build native-lib with secp256k1 x86-64 (non arm)

* update precompiled with NDK libsecp256k1.a

* update precompiled with NDK libsecp256k1.a

* update precompiled with NDK libsecp256k1.a

* refactor llvm-strip location

* refactor llvm-strip location

* add native-lib.so for armv7a, armv8a

* add native-lib.so for armv7a, armv8a

* test  armv7a, armv8a

* armv7a - fails linking on sodium, test -> armv8a

* works x86-64, armv7a - fails linking on sodium, armv8a - fails linking secp256k1 (incompatible with aarch64linux)

* update libpsec256k1, sodium static libs

* test x86 android native-lib

* test armv7 android native-lib

* test armv8 android native-lib

* x86_64 and arm64 android native-lib works

* x86_64 and arm64 android native-lib works

* x86_64 and arm64 android native-lib works

* test armv7 android native-lib

* test all android native-libs

* test all android native-libs

* test all android native-libs

* test all android native-libs - without SodiumAndroid

* test all android native-libs - with FindSodiumAndroid.cmake

* win, with Sodium via SODIUM_DIR

* win, with Sodium via SODIUM_DIR env

* win, with Sodium via SODIUM_DIR env

* win, with Sodium via SODIUM_DIR env and SODIUM_USE_STATIC_LIBS

* win, with Sodium via SODIUM_DIR, SODIUM_USE_STATIC_LIBS and SODIUM_INCLUDE_DIR

* android, with FindSodium

* android, with FindSodium with SODIUM_USE_STATIC_LIBS

* remove if not apple

* target_link_libraries(ton_crypto_core PUBLIC secp256k1)

* android SECP256K1_INCLUDE_DIRS

* android SECP256K1_INCLUDE_DIR

* add libsecp256k1.a/so pre-compiled with ubuntu 22 x86-64

* add libsecp256k1.a/so pre-compiled with ubuntu 22 x86-64

* sodium dirs

* sodium dirs

* sodium dirs

* remove NOT APPLE and SodiumAndroid

* add NOT APPLE and remove SodiumAndroid

* add NOT APPLE and remove SodiumAndroid

* remove build scripts for 18.04, reduce CMakeLists.txt

* remove build scripts for 18.04, reduce CMakeLists.txt

* Fix cas consumption during library load

* Fix fetch_config_params after merge

* Add all ADDDIVMOD ops to Asm.fif

* Save unpaid storage fee to due_payment

* Add "set prev blocks info" to emulator

* Adjusted builds  (#13)

* Update flake.nix

Add libsodium

* add libsecp256k1-dev and libsodium-dev into wasm build

* make back emulator a shared library;
put emulator to artifacts;
compile wasm artifacts with sodium and secp256k1.

* add secp256k1 to nix

* compile emulator statically with nix

* compile emulator statically with nix

* compile emulator lib statically with nix

* compile emulator lib statically with nix

* add libemulator to artifacts

* add shared libemulator library to artifacts

* minor release fix

* update set-output commands;
add recent_changelog.md

* releases fixes

* releases fixes, multiline

* releases fixes, multiline

* releases fixes, multiline

* put back multiline changelog

* put back multiline changelog

* ConfigParam 19 (global-id) and GLOBALID instruction

* Fix gas consumption in HASHEXT

* Add blst library

* Add bls instructions

* Allow passing long code to opcode-timing

* Add bls testcase

* More BLS instructions

* Fix tests, add bls tests

* Add more bls tests

* Improve some bls operations

* Adjust some BLS gas prices

* Adjust BLS gas prices

* Enable __BLST_PORTABLE__ flag only if PORTABLE flag is set

* Add tests for BLS_PAIRING

* GASCONSUMED instruction

* Fix compilation against docker with blst library; (#14)

* fix compilation against docker with blst library;
add precompiled libblst.a to android builds

* minor fix

* Adjust BLKSWX gas

* Fix comparison with NAN

* Allow arbitrary integers for scalars in ristretto multiplication, fix test

* Adjust nix builds according to PR 694 (#15)

* integrate and test PR-694

* integrate and test PR-694, test 2

* Add P256_CHKSIGN (secp256r1)

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
Co-authored-by: neodiX42 <namlem@gmail.com>
2023-05-24 21:14:13 +03:00
EmelyanenkoK
ef64b92f08
Add fee burning and blackhole address (#703)
* Fix tlbc crash

* Burn specified fraction of fees

* Add "blackhole" for burning TONs

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-05-18 11:26:02 +03:00
EmelyanenkoK
1696ebfa20
Account for unprocessed messages in estimate_block_size; check consensus_config limits in collator (#692)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-05-04 14:45:42 +03:00
EmelyanenkoK
a78adf3062
Increase limit for t_Block.validate, simplify validating StateInit (#691)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-05-03 14:18:18 +03:00
SpyCheese
87d4f4bc7f Fix saving list of packages in archive manager 2023-05-02 18:32:20 +03:00
EmelyanenkoK
444dda8d62
Revert too strictening of queue_cleanup_timeout 2023-04-28 16:42:11 +03:00
EmelyanenkoK
8bc20ede2e
Add archive manager index (#685)
* Optimize get_file_desc_by_ seqno/lt/ut

* Optimize get_next_file_desc

---------

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-04-28 12:58:02 +03:00
EmelyanenkoK
dd8658c4db Comment out excessive checks of outbound messages queue 2023-04-27 14:43:37 +03:00
EmelyanenkoK
d067e6ca3f
Make stricter cleanup timelimit 2023-04-26 21:32:26 +03:00
EmelyanenkoK
7ee70778d2
Add timeout for out_msg_queue_cleanup (#679)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2023-04-26 09:15:16 +03:00
SpyCheese
876c68c5c7 Merge branch 'testnet' into block-generation 2023-03-31 13:11:36 +03:00
SpyCheese
5e0dadfff6
Rollback celldb optimization (#658) 2023-03-30 10:03:05 +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
Marat
078aabe50e
Add method listBlockTransactionsExt to liteserver (#399)
* Verify proof for method blocks.getTransactions

* check completeness of response

* fix start_lt

* fix mode & 128, check bTxes->ids_ out of bounds

* Improve gitactions; separate cpp-check (#346)

* Use ninja build tool and compile blockchain-explorer

Ninja builds TON much faster;

* Use clang instead of gcc

* remove blockchain-explorer

since target not found on github action

* move ccpcheck to other gitaction

* run nativelib-java only against wallets branch for now

* rename gitaction

* Update windows2019x64-tonlib-java.yml

* Update windows2019x64-tonlib-java.yml

* Update macos-10.15-tonlib-java.yml

* Update windows2019x64-tonlib-java.yml

* Update windows2019x64-tonlib-java.yml

* rebase

* update tlo's

* Revert "Improve gitactions; separate cpp-check (#346)"

This reverts commit bd1d96e6d391e48840d81cfcf10d2692848e504e.

* add checks, simplify ls response

* Revert workflows

* Add verifying proofs

* fix win build

---------

Co-authored-by: neodiX42 <namlem@gmail.com>
2023-03-07 19:49:25 +03:00
neodiX42
f06d5cb053
Make path separator cross-platform in few places (#628)
* make path separator cross-platform in few places

* reuse path separator definer
2023-03-05 14:15:53 +03:00
SpyCheese
706be23c83
Limit maximal Merkle depth (#626) 2023-02-28 12:06:57 +03:00
SpyCheese
0578cb4a42
Fix typos, UBs and warnings (#625) 2023-02-28 12:06:09 +03:00
neodiX42
5a47495d87
Add cross-platform Linux and macOS binaries (statically compiled with NixPkgs) + wasm artifacts (#621)
* fix build

* nix flake

* nix package

* static musl build env

* make all builds in static env

* GH Actions nightly and static workflows

* deb package

* cmake install {adnl-proxy,blockchain-explorer,create-state,http-proxy,rldp-http-proxy,storage-cli}

* nix flake: add static glibc build variant

* GH Actions: deb-nightly-{musl,glibc_static}, tests-rolling jobs

* rpm package

* build blockchain-explorer

* GH Actions: deb_rpm-nightly: ubuntu-{latest=>22.04}

* crypto/pow-miner: skip install

* ghactions: tests-rolling: show tests run, progress

* ghactions: deb_rpm-nightly: add manual trigger [skip ci]

* nix flake refactor

* find_package=>pkg-config(zlib)

FindZLIB.cmake can't find static zlib prior to CMake 3.24, so use
pkg-config.

* nix old glibc build

* nix aarch64 support

* packages: Populate APT and RPM repos at ton-repo

- {deb,rpm}.sh: Separate build and install dirs
- rpm.sh: Conditionally include lib/
- Accomodate local CI runs w/act

* [skip ci] README packages

* fix aarch64 build -Wnoerror=address

* [skip ci] rpm set releasever

* [skip ci] document local packages upload

* m1 build: gate cpu=apple-m1 by clang version

* packages: Ship musl binaries + old glibc dylibs

* packages: macos build

* nix: bump nixpkgs

* fix windows CI build

* [skip ci] nix: static aarch64 builds

* packages: deb,rpm multiarch

* ghactions: aarch64 musl deb,rpm build

* [skip ci] deb build: deref source links, -x

* [skip ci] nix darwin static build

* [skip ci] nix common hostPkgs

* [skip ci] brew: move formula over to homebrew-ton-repo

* [skip ci] nix fix aarch64-linux build

* [skip ci] ghactions: nix use GITHUB_TOKEN

* [skip ci] Move from ton-repo to gh releases

* [skip ci] ghactions aarch64-darwin self-hosted runner

* [skip ci] ghactions deb,rpm nightly 10h timeout

* [skip ci] fix brew install

fixes
Errno::EACCES: Permission denied @ dir_s_mkdir - /private/tmp/ton-XXX/bin/.brew_home

* [skip ci] ghactions deb,rpm nightly: don't upload ton-packages as we gh release them later

* [skip ci] README: brew instructions

* [skip ci] nightly linux binaries release

* [skip ci] packages: ship macos dylib

* [skip ci] ghactions: Run Windows build nightly, upload to gh releases

* nix: remove defaultPackage, switch to different oldglibc build method

We used to rebuild nixpkgs-stable with old glibc, which broke on aarch64
due to its particular bootstrap toolchain. This just takes nixos 19.09's
version of GCC but new dependencies, sidestepping the issue.

* fix rpm release, add aur release

* fix local (act) ci run

* ghactions: linux-nightly: Print out SSH public keys

* ghactions: bump cachix actions

* nix: default devShell

* [skip ci] rpm,aur: Ship lib

* [skip ci] packages: windows: Remove CMake files from out

* [skip ci] packages: Import chocolatey package

* fixup! fix rpm release, add aur release

* [skip ci] packages: aarch64-linux: build dylib as well

* [skip ci] ghactions: run on self-hosted

* [skip ci] ghactions: windows-nightly: Bump nodejs actions

* [skip ci] nix: Only add Linux packaging tools on Linux

* [skip ci] doc: document direct download binaries in README

* fix tonlib android jni ci

* fixup! fix tonlib android jni ci

* [skip ci] ghactions: Update GH release dates

Errata: doesn't update tags.

* [skip ci] ghactions: Fix racy brew gh release by splitting arch

* initiali commit - binaries only

* fixes

* fixes

* fixes

* fixes

* remove packages dir for now

* add storage-daemon storage-daemon-cli

* fix emulator

* try macos aarch64

* try macos aarch64

* try macos aarch64

* try macos aarch64

* try macos aarch64

* try macos aarch64

* try macos aarch64

* try macos aarch64

* try macos aarch64

* try macos aarch64

* try macos aarch64 sh

* try macos aarch64 sh

* try macos aarch64 bash

* try macos aarch64 bash

* try macos aarch64 bash

* try macos aarch64 bash

* try macos aarch64 bash

* try macos aarch64 bash

* try macos aarch64 bash

* fix funcfiftlib compilation with emscripten

* fix funcfiftlib compilation with emscripten

* add github action to compile TON with emscripten

* add github action to compile TON with emscripten

* add github action to compile TON with emscripten

* add github action to compile TON with emscripten

* add github action to compile TON with emscripten

* add github action to compile TON with emscripten

* try macos aarch64

* fix funcfiftlib compilation with emscripten

* fix funcfiftlib compilation with emscripten

* add github action to compile TON with emscripten

* disable aarch64 github actions for now

* disable aarch64 github actions for now

* trigger all GH actions

* trigger all GH actions 2

* trigger all GH actions 3

* trigger all GH actions 4

* trigger all GH actions 5

* put back rldp-http-proxy to win build

* put back rldp-http-proxy to win build

* dont use pkgConfig for zlib

* fix zlib_library

* use BUILD_SHARED_LIBS flag for static compilation

* test 1

* test 2

* add wasm binaries to release.
test 3

* add simple binaries' execution test

* build emulator-emscripten

* build and add into artifacts wasm tlbc and emulator-emscripten

* build and add into artifacts wasm tlbc and emulator-emscripten, 2

* build and add into artifacts wasm tlbc and emulator-emscripten, 3

* build and add into artifacts wasm tlbc and emulator-emscripten, 4

* build emulator-emscripten with static libs

* minor nix mac aarch64 fix

* add single artifacts to release

* bypass $repo to Dockerfile

* add wasm artifacts to release

* add wasm artifacts to release

* add wasm artifacts to release

* add wasm artifacts to release

* add more artifacts to release; remove compilation against Ubuntu 18.04.

* retrieve GITHUB_TOKEN for ton-blockchain/ton

* remove binary check for arm64

---------

Co-authored-by: tonthemoon <tonthemoon@mailbox.org>
2023-02-27 12:32:41 +03:00
Andrey Pfau
426879cd82
ErrorCode::notready for "block is not applied": (#594) 2023-02-02 10:04:54 +03:00
SpyCheese
1e4eecfdb0
Logs and size limits for incoming queries in FullNodeShard (#601)
* Log incoming queries in FullNodeShard

* Limit size for some queries in FullNodeShard
2023-02-02 10:04:19 +03:00
EmelyanenkoK
3b3c25b654
Add account state by transaction and emulator (extended) (#592)
* account_state_by_transaction

* Correct time calculation

* Bug fixes

* Refactor

* namespace block::transaction

* smc.forget

* RunEmulator: remove wallet_id

* Refactor & fixes

* AccountStateByTransaction: use shardchain block instead of masterchain block

* transaction emulator core

* refactor

* tx emulator major functionality

* small format changes

* readme

* clean

* return json, add support for init messages

* tx emulator readme

* refactor getConfigParam and getConfigAll

* add shardchain_libs_boc parameter

* option to change verbosity level of transaction emulator

* fix deserializing ShardAccount with account_none

* add mode needSpecialSmc when unpack config

* emulator: block::Transaction -> block::transaction::Transaction

* Refactor

* emulator: Fix bug

* emulator: Support for emulator-extern

* emulator: Refactor

* Return vm log and vm exit code.

* fix build on macos, emulator_static added

* adjust documentation

* ignore_chksig for external messages

* tvm emulator, run get method

* Added more params for transaction emulator

* Added setters for optional transaction emulator params, moved libs to a new setter

* Added actions cell output to transaction emulator

* fix tonlib build

* refactoring, rand seed as hex size 64, tvm emulator send message

* tvm send message, small refactoring

* fix config decoding, rename

* improve documentation

* macos export symbols

* Added run_get_method to transaction emulator emscipten wrapper

* Fixed empty action list serialization

* Changed actions list cell to serialize as json null instead of empty string in transaction emulator

* stack as boc

* log gas remaining

* Fix prev_block_id

* fix build errors

* Refactor fetch_config_params

* fix failing unwrap of optional rand_seed

* lookup correct shard, choose prev_block based on account shard

* fix tonlib android jni build

---------

Co-authored-by: legaii <jgates.ardux@gmail.com>
Co-authored-by: ms <dungeon666master@protonmail.com>
Co-authored-by: krigga <krigga7@gmail.com>
2023-02-02 10:03:45 +03:00
SpyCheese
45c0270716
Improve handling of absent blocks in archive manager (#600) 2023-01-23 14:40:28 +03:00
SpyCheese
5ad7f8c246 Allow queries to collator from validators only 2023-01-17 21:02:47 +03:00
SpyCheese
225f71238b Option for collating masterchain on validators 2023-01-16 19:30:15 +03:00
SpyCheese
d324fa5820 Bugfix 2023-01-13 19:04:11 +03:00
SpyCheese
29851c38ef Various changes after merge 2023-01-12 17:32:59 +03:00
SpyCheese
1ccf25d6b7 Merge branch 'testnet' into block-generation 2023-01-11 16:10:57 +03:00
SpyCheese
13b9f460af
SuspendedAddressList config param (#585)
* SuspendedAddressList config param

* Change tag for cskip_suspended
2023-01-09 20:37:58 +03:00
SpyCheese
eff610f807
Disable liteServer.getState method (#573) 2022-12-27 20:11:22 +03:00
SpyCheese
d652f7d706 Merge branch 'testnet' into block-generation
# Conflicts:
#	adnl/adnl-query.cpp
#	crypto/block/block.tlb
#	crypto/block/mc-config.h
#	lite-client/lite-client.cpp
#	overlay/overlay-manager.h
#	overlay/overlay-peers.cpp
#	overlay/overlay.cpp
#	overlay/overlay.h
#	overlay/overlay.hpp
#	overlay/overlays.h
#	rldp-http-proxy/DNSResolver.cpp
#	rldp-http-proxy/rldp-http-proxy.cpp
#	tl/generate/scheme/ton_api.tl
#	tl/generate/scheme/ton_api.tlo
#	tl/generate/scheme/tonlib_api.tlo
#	ton/ton-types.h
#	tonlib/tonlib/ExtClient.cpp
#	tonlib/tonlib/ExtClient.h
#	tonlib/tonlib/ExtClientLazy.cpp
#	tonlib/tonlib/ExtClientOutbound.h
#	tonlib/tonlib/ExtClientRaw.h
#	tonlib/tonlib/TonlibClient.cpp
#	tonlib/tonlib/TonlibClient.h
#	tonlib/tonlib/tonlib-cli.cpp
#	validator/impl/collator.cpp
#	validator/impl/validate-query.cpp
#	validator/impl/validate-query.hpp
#	validator/manager.cpp
#	validator/state-serializer.cpp
#	validator/state-serializer.hpp
#	validator/validator-group.cpp
#	validator/validator-group.hpp
#	validator/validator.h
2022-12-22 23:37:35 +03:00
SpyCheese
15cdfb0462
Fix compilation error in manager-disk.cpp (#556) 2022-12-15 17:12:43 +03:00
EmelyanenkoK
1b106ef270
Use state with applied shards in liteserver (#553)
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2022-12-13 17:46:54 +03:00
SpyCheese
ac50074ff6
Fix getting cell-db-reader in AsyncStateSerializer (#546) 2022-12-07 21:49:17 +03:00
SpyCheese
33a0d1e8bc
Allow starting node with a newer hardfork in config (#538) 2022-11-30 12:12:19 +03:00
EmelyanenkoK
d8dd75ec83
Limit account storage size (#530)
* Limit size of an account

* Bugfix

* Don't check size for special accounts

* Improve timeouts in collator and validator

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2022-11-30 08:40:19 +03:00
SpyCheese
a4a3ea2b77
liteServer.getAccountStatePrunned method (#534) 2022-11-30 08:39:32 +03:00
SpyCheese
c7f06abfbc
Fix finding blocks by lt and ut in archive manager (#536) 2022-11-30 08:38:46 +03:00
SpyCheese
4714726f4a Cache result of run_collate_query in ValidatorGroup 2022-11-25 09:49:04 +03:00
SpyCheese
d4339b839c Add "delshard", "delcollator" to validator-engine-console 2022-10-17 13:24:59 +03:00
SpyCheese
1d42c38122
Move some constants to global config (#484) 2022-10-10 17:13:21 +03:00
SpyCheese
580884033b
Check limits in validate-query, check timeout in collator (#469) 2022-10-06 21:31:41 +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
SpyCheese
81c0e920c5 Simplify selecting shards for monitor 2022-10-06 13:41:13 +03:00
SpyCheese
9fb986f6f5 Disable downloading archives during sync 2022-10-06 13:41:02 +03:00
SpyCheese
699a56b951 Send block broadcasts directly to collators 2022-10-06 13:40:53 +03:00
SpyCheese
b0c2c6c525 Don't send proof of masterchain message queue 2022-09-23 17:23:00 +03:00
SpyCheese
bb5bc6178c Change recursion to loop in CellSlice 2022-09-21 11:04:40 +03:00
SpyCheese
2512f0287b
Tonlib method getShardBlockProof (#465)
* Tonlib method getShardBlockProof

* Clarify limit of result.size() in getShardBlockProof
2022-09-20 10:49:28 +03:00
SpyCheese
62a412ac13 Add some required collated data 2022-09-15 20:14:34 +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
c2e7d0b0de Bugfixes in manager.cpp 2022-08-23 17:31:37 +03:00
SpyCheese
be824e9649 Check is_applied in liteserver 2022-08-22 10:25:28 +03:00
SpyCheese
1efd425403 Fix compatibility 2022-08-19 18:24:18 +03:00
SpyCheese
ea7a5776fe Download persistent states when syncing new shards 2022-08-19 18:24:18 +03:00
SpyCheese
be2169e523 Reload validator options when needed 2022-08-19 18:24:17 +03:00
SpyCheese
011e97f53c Flag "full collated data" in mc config; fix accept-block 2022-08-19 18:24:17 +03:00
SpyCheese
81d32ba5d6 Out msg queue proof: send only the required part 2022-08-19 18:24:17 +03:00
SpyCheese
597fd8443d Collator nodes preload msg queues 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
662435462e Validators temporary join shard overlays 2022-08-19 18:24:17 +03:00
SpyCheese
5ba2a55716 Add --lite-validator flag, rework is_validator checks 2022-08-19 18:24:17 +03:00
SpyCheese
7241522de2 Remove obsolete interface for importing blocks 2022-08-19 18:24:16 +03:00
SpyCheese
a792565afa Fix MSVC compilation error 2022-08-19 18:24:16 +03:00
SpyCheese
5be10b1e6b Add retries in validator group + bugfix 2022-08-19 18:24:15 +03:00
SpyCheese
212c07f2f0 Change update_shard_configuration 2022-08-19 18:24:15 +03:00
SpyCheese
ac7a33497b Validate msg queue proof 2022-08-19 18:24:15 +03:00
SpyCheese
e43e235143 Get neighbors' msg queues from other nodes 2022-08-19 18:24:15 +03:00
SpyCheese
7ac60bea7d New shard overlays 2022-08-19 18:24:15 +03:00
SpyCheese
53270a00e6 Add CollatorNode and make validators request blocks from it 2022-08-19 18:24:15 +03:00
SpyCheese
996c23e506 Shardchain validation without monitoring shardchains 2022-08-19 18:24:14 +03:00
SpyCheese
bdfca7afef Remove unused code 2022-08-19 18:24:14 +03:00
SpyCheese
415ace3da9 Exporting and importing candidates using validator-engine-console; lite mode for validator group 2022-08-19 18:24:14 +03:00
SpyCheese
625516c568 Lite-mode for validate-query, more collated data in collator 2022-08-19 18:24:14 +03:00
SpyCheese
849d995346 Add getvalidatorsessions query to validator-engine-console 2022-08-19 18:24:14 +03:00
SpyCheese
417c3bb640 More detailed validator session stats 2022-08-18 21:52:08 +03:00
SpyCheese
b3e6819f3f Log validator session stats to file 2022-08-18 21:51:57 +03:00
SpyCheese
30ba32bef9 Fix validator session options hash; fix proto_version 2022-08-09 13:18:06 +03:00
Tsenilov Oleg
e30049930a
Enhance overlay stats output (#386)
* Expand overlay stats

* Add scope and peer broadcast errors to stats

* Add json output format
Co-authored-by: EmelyanenkoK <emelyanenko.kirill@gmail.com>
2022-06-07 16:24:26 +03:00
neodiX42
65e3177def
Fix windows validator-engine.exe runtime access violation error (#387)
* Fix runtime access violation error on Windows
2022-06-03 16:01:55 +03:00
EmelyanenkoK
845cbca1e5
Make asynchronous celldb interface (#388)
* Asynchronous load_cell in celldb

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2022-06-01 10:03:50 +03:00
EmelyanenkoK
ca00f0ed91
Extended error notes for unacceptable external messages (#383)
* patch sendMessage

* Verbose error message for "sendMessage" LS query

* More verbose errors in external-message.cpp

Co-authored-by: dungeon-master-666 <dungeon666master@protonmail.com>
Co-authored-by: SpyCheese <mikle98@yandex.ru>
2022-05-24 21:21:58 +03:00
EmelyanenkoK
89b8717cf8
Persistent optimization (#382)
* State serialization consuming less RAM

* Move large-boc-serializer to crypto/vm, refactor code

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2022-05-24 21:17:11 +03:00
SpyCheese
3b4166be69 Add logs in AsyncStateSerializer 2022-05-16 12:29:39 +03:00
EmelyanenkoK
c07394aab5
Optimization of persistent state serialization (#364)
* Fix double serialization of masterchain; increase sync_blocks_before

* Improve logging in DownloadState

* Write persistent state directly to file instead of a buffer

* Don't keep ref to masterchain state in AsyncStateSerializer

* Sparse state serialization over longer period

Co-authored-by: SpyCheese <mikle98@yandex.ru>
2022-05-15 17:51:24 +03:00
EmelyanenkoK
1e0b587023
Allow untrusted fecs after check (#356)
* Allow untrusted fecs after check

* FEC: save and resend incoming parts

Co-authored-by: OmicronTau <87443739+OmicronTau@users.noreply.github.com>
Co-authored-by: OmicronTau <omicron@ton.org>
2022-05-11 21:12:04 +03:00
EmelyanenkoK
0fbfc91965
Merge pull request #342 from SpyCheese/fix-node-init-timeout
Increase timeout for downloading persistent states and add logs
2022-05-06 11:40:51 +03:00
EmelyanenkoK
76c2764e7f Sparse state serialization over time by randomized delay 2022-05-06 10:48:35 +03:00
Starlight Duck
3fee04e20a Support libraries in LS and request+caching in TLC 2022-05-06 10:48:05 +03:00
OmicronTau
59fcd7cbd5 Deactivate accounts upon destruction in block 2022-05-06 10:44:44 +03:00
OmicronTau
1b480e39ba Fix infinity max_gas_limit for get methods 2022-05-06 10:44:26 +03:00
OmicronTau
cb31a20206 Add methods to sign and import certificates 2022-05-06 10:42:49 +03:00
OmicronTau
3384d204d2 Add checks for external messages 2022-05-06 10:40:12 +03:00
OmicronTau
69d0472510 Add mempool messages cap 2022-05-06 10:33:00 +03:00
OmicronTau
678a8a6a13 Add overlay certificate checks 2022-05-06 10:32:55 +03:00
SpyCheese
21c2727dcf Increase timeout for downloading astate and add logs 2022-05-03 17:19:31 +03:00
tolya-yanot
6faeca69a2 Fix split-depth and collator 2021-11-07 23:58:36 +03:00
OmicronTau
26ce7a7b05 Add logging of rotation params 2021-08-19 13:16:20 +03:00
Kirill A
013038c2ff Add proper declarations for MHD result >=v0.9.71 2021-02-10 23:21:29 +03:00
AleksejMelman
b22611a123 Create ccpp-linux.yaml
Taken from https://github.com/akme/ton/blob/master/.github/workflows/ccpp-linux.yml

Fixing error LNK2019: unresolved external symbol _GetProcessMemoryInfo@12 when building windows desktop client

Fixes compilation error of lite-client on windows

Fixes compilation error:
error C2664: 'std::pair<td::int64,td::int64> std::make_pair<td::int64,td::int64>(_Ty1 &&,_Ty2 &&) noexcept (<expr>)': cannot convert argument 1 from 'const td::uint64' to '_Ty1 &&'

make_pair() has been changed in VS2012 to support a new C++11 feature called move semantics and I suspect that explicitly specifying the types for make_pair() is getting in the way.

The fix should be safe for linux distro as well.

Adding Github action - Win64 ton compile (#14)

* Add github action win64 compile
* manager.cpp - Strange though, but due to this kind of type usage win64 compilation fails. Let's make it more generic.
2021-02-09 11:15:50 +03:00
EmelyanenkoK
f60694e67f Schedule transition to Feb 1 2021-01-26 21:50:54 +03:00
EmelyanenkoK
fe3bfd1053 Reassign validation groups to new ids upon proto transition 2021-01-22 11:54:46 +03:00
EmelyanenkoK
d13691a933 Add versioned validatorSession.config 2021-01-20 16:11:40 +03:00
ton
dab7ee3f97 updated pow-miner + small bugfix 2020-07-10 13:46:16 +03:00
ton
f064b1047a pow-testgiver support 2020-07-06 17:07:20 +03:00
ton
dbde9c1c40 minor bugfix 2020-06-03 21:47:47 +04:00
ton
4e2624459b integrating the existing state of TON Storage / TON Payments / CPS Fift development branches 2020-05-27 22:10:46 +04:00
ton
eecf05ca59 bugfixes + tonlib update 2020-04-30 15:04:47 +04:00
ton
9f008b129f updated submodules, bugfixes
- added new fift/func code for validator complaint creation
- bugfixes in validator
- updates in tonlib
- new versions of rocksdb/abseil
- hardfork support
2020-04-27 16:01:46 +04:00
ton
16a4566091 validator bugfix + old key blocks download improvement 2020-04-11 18:08:57 +04:00
ton
be9c34c62d bugfixes 2020-04-10 23:06:01 +04:00
ton
8be3fc99ed bugfixes + decreased archive slice size 2020-04-08 23:49:28 +04:00
ton
148a5e0179 small db changes 2020-04-07 19:35:04 +04:00
ton
cea5281ad3 increased validator version 2020-04-07 01:27:34 +04:00
ton
cf97f48cd7 error handling in lite client, speed up message dequeue in blocks 2020-04-07 00:08:53 +04:00
ton
dfc040cb00 validator: multiple bugfixes 2020-04-06 15:22:14 +04:00
ton
7efb345e3d remove debug checks to improve performance under load on weak validators 2020-04-05 13:56:24 +04:00
ton
b73b057e08 too big catchain workaround 2020-04-04 17:27:19 +04:00
ton
d17186896b fixed block scheme bug 2020-04-03 23:21:15 +04:00
ton
c300b4ff30 bugfix in validator 2020-04-03 18:47:22 +04:00
ton
54b40df4aa bugfix in collator 2020-04-02 22:13:18 +04:00
ton
0e4277313c fixed crash in validator. Updated elector/config smartcontracts 2020-04-02 17:08:42 +04:00
ton
4b5dd4525e updated lite-client 2020-03-31 17:11:56 +04:00
ton
4dd5eea11f added support for config change proposals
- added some fift scripts for the config change proposal voting
- added validator-engine-console support for the config change proposal voting
- additional sanity checks in catchain
- unsafe slow catchain resync method
2020-03-30 17:20:45 +04:00
ton
a31f8d4424 bugfixed + crypto update
- compiles vs BoringSSL
- config proposal/vote fift code
- bugfixes in catchain
- other small fixes
2020-03-27 18:59:00 +04:00
ton
606e970ed5 fixed possible CE 2020-03-24 11:00:14 +04:00
ton
9f351fc29f emergency update 2020-03-24 03:32:16 +04:00
ton
54c7a4dcc3 updated vm
- updated func/fift
- additional checks in block validator
- docs
- tunnel prototype in ADNL
2020-03-11 14:19:31 +04:00
ton
dd4ac0f440 vm bugfixes 2020-02-28 18:59:47 +04:00
ton
e27fb1e09c updated vm (breaking compatibility)
- updated vm
- new actor scheduler
- updated tonlib
- updated DNS smartcontract
2020-02-28 14:28:47 +04:00
ton
9e4816e7f6 bugfix in import slice 2020-02-21 14:43:20 +04:00
ton
efd47af432 updated tonlib + fixes in vm 2020-02-20 19:56:18 +04:00
ton
28735ddc9e bugfixes 2020-02-17 14:18:59 +04:00
ton
1de39f5d7c bugfixes + doc update 2020-02-08 23:24:49 +04:00
ton
77842f9b63 updated tonlib
- updated tonlib
- updated validator
- updated documentation
- first version of http over rldp proxy
2020-02-06 21:56:46 +04:00
ton
53ec9684bd updated liteserver
- new methods for liteserver/liteclient
- added ADNL/DHT client-only work mode
- fixed crash in ADNL
2020-02-02 16:53:37 +04:00
ton
acf16718e6 updated func/fift
- updated func/fift
- updated liteclient/liteserver
- bugfixes
2019-12-29 12:14:12 +03:00
ton
b6f6788532 validator: fixed initial state download 2019-12-08 19:01:57 +04:00
ton
6143b2051f fixed download of an serialized state 2019-12-08 16:22:48 +04:00
ton
ceaed40ac4 updated fift + bugfixes 2019-12-05 16:51:51 +04:00
ton
090e0c16eb slightly changed block format
- small change in block format
- added config in blockchain explorer
- bugfixes
2019-11-28 18:44:14 +04:00
ton
7f3a22a217 speed up synchronization
- download old files in chunks
- updated docs
- fixed elector/config smartcontracts
2019-11-18 22:15:14 +04:00
ton
0dae2c157b allow db_root without "/" in the end 2019-11-16 00:16:06 +04:00
ton
3d51e41766 fixed compilation error 2019-11-15 19:05:14 +04:00
ton
e30d98eb30 new db
new database
fift/func bugfixes
2019-11-15 18:02:37 +04:00
ton
3002321eb7 updated tonlib 2019-10-31 14:26:04 +04:00
ton
c860ce3d1e updated smartcontracts
- updated smartcontracts
- updated fullnode database layout
- fixed memory leak in blockchain-explorer
- updated tonlib
2019-10-23 17:43:50 +04:00
ton
9c9248a9ae updated func
- updated func
- deleted autogenerated files from git
- updated liteclient
- increase state sync timeout
2019-10-16 13:00:43 +04:00
ton
c50074fd55 fixed bug in initial synchronization 2019-10-14 11:45:47 +04:00
ton
b978e27b2f updated smartcontract code
- updated smartcontract code
- fixed bug in liteserver listening socket
- updated documentation
2019-10-14 11:13:23 +04:00
ton
38c3e39066 func/fift: bugfixes 2019-10-09 20:00:54 +04:00
ton
f67f5d879b func: bugfix
- bugfix in func
- vertseqno support in validator/collator/topsharddescr
2019-10-07 13:08:23 +04:00
ton
dd745485e2 update tonlib
tonlib: update
collator: increased collation speed for masterchain
fift: bugfixes
2019-10-04 16:08:02 +04:00
ton
7ea00ebfcf updated tonlib, fixed bugs
updated tonlib
fixed bugs in func
validator: partial support for hardforks
liteserver: support for waitMasterchainBlock prefix
transactions: support for gas flat rate
2019-10-03 17:04:52 +04:00
ton
841d5ebac2 updated fift
updated fift
updated some smartcontracts
added partial support for hardforks
2019-10-01 14:07:35 +04:00
ton
2845f9a2cc liteserver: bugfix
liteserver/liteclient: fixed bug in proof
validator: added stats
smartcontracts: updates
2019-09-30 16:49:45 +04:00
ton
ac3eb1a7b8 tonlib updated
- updated tonlib
- added documentation
- speed up full node synchronization
2019-09-25 17:50:58 +04:00
ton
07b26e2259 fullnode: added getCapabilities query 2019-09-24 14:20:26 +04:00
ton
a1e352d894 updated tonlib, new fullnode queries 2019-09-24 01:10:57 +04:00
ton
28df74178c updated tonlib
1. updated tonlib
2. fixed bug in state download
2019-09-22 10:14:09 +04:00
ton
f40822b58a fullnode: support for TCP master/slave replication 2019-09-19 23:17:17 +04:00
ton
bfa166d66c fixed some startup problems 2019-09-19 18:00:33 +04:00
ton
b90fa25ba4 fixed bug in check_proof() 2019-09-18 23:08:41 +04:00
ton
13140ddf29 updated block header
1. Updated block header, proofs now contain more data
   Notice, that old proofs may become invalid in the future
2. Fixed message routing
3. Fixed block creator id in block header
4. Support for full proofs in tonlib
5. Support for partial state download
6. Some other bugfixes
2019-09-18 21:46:32 +04:00
ton
bce33f588a updated smartcontract code
updated lite-client and configuration smartcontract
updated tonlib code
2019-09-16 12:08:04 +04:00
ton
8e5bd938aa fixed CE 2019-09-14 21:27:52 +04:00
ton
9d6853ef24 liteclient signature check support
1. update liteclient/liteserver. Now liteserver sends signatures of
blocks and liteclient checks them. I.e. liteclient completely checks
received data.
2. validator-engine: more GC options
3. blockchain-explorer: show all block transactions (instead of 256)
4. some bugfixes
2019-09-14 18:14:55 +04:00
ton
d8244eff53 changed validate broadcast logic, added new queries to
validator-engine-console
2019-09-11 16:50:29 +04:00
ton
47814dca3d deleted unused code, support for logrotate, update in block validation code 2019-09-10 12:31:51 +04:00
initial commit
c2da007f40 initial commit 2019-09-07 14:33:36 +04:00