1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-02-12 11:12:16 +00:00
No description
Find a file
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
.github TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
adnl Minor DHT improvements (#657) 2023-03-30 10:10:09 +03:00
blockchain-explorer Add cross-platform Linux and macOS binaries (statically compiled with NixPkgs) + wasm artifacts (#621) 2023-02-27 12:32:41 +03:00
catchain Catchain improvements (#698) 2023-05-10 12:57:57 +03:00
CMake TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
common TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
create-hardfork Add custom global configs for hardfork utilites 2021-08-19 13:16:20 +03:00
crypto TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
dht Minor DHT improvements (#657) 2023-03-30 10:10:09 +03:00
dht-server Improve tweaking for high throughput (#610) 2023-03-15 10:47:35 +03:00
doc TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
docker TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
emulator TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
example TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
fec Check fec type in incoming messages in RLDP 2022-10-03 09:14:50 +03:00
http Add cross-platform Linux and macOS binaries (statically compiled with NixPkgs) + wasm artifacts (#621) 2023-02-27 12:32:41 +03:00
keyring bugfixes 2020-04-10 23:06:01 +04:00
keys bugfixes 2020-04-10 23:06:01 +04:00
lite-client Add TON Storage to Proxy via storage gateway (#577) 2022-12-29 17:28:50 +03:00
lite-client-docs Update links to global configs (#398) 2022-08-15 18:29:02 +03:00
memprof bugfixes 2020-04-10 23:06:01 +04:00
overlay TON Storage utilities (#564) 2022-12-22 12:24:13 +03:00
rldp Erase finished transfer_id from receivers (#535) 2022-11-30 08:39:12 +03:00
rldp-http-proxy Fix compilation error in rldp-http-proxy (#630) 2023-03-02 20:39:00 +03:00
rldp2 rldp2 support in rldp-http-proxy (#608) 2023-02-03 09:50:44 +03:00
storage Update storage-provider compilled smartcontracts 2023-05-24 10:29:34 +03:00
tdactor integrating the existing state of TON Storage / TON Payments / CPS Fift development branches 2020-05-27 22:10:46 +04:00
tddb validator large state serialization bugfix + tdlib update for clients 2021-01-07 22:48:04 +03:00
tdfec pow-testgiver support 2020-07-06 17:07:20 +03:00
tdnet pow-testgiver support 2020-07-06 17:07:20 +03:00
tdtl pow-testgiver support 2020-07-06 17:07:20 +03:00
tdutils Catchain improvements (#698) 2023-05-10 12:57:57 +03:00
terminal updated pow-miner + small bugfix 2020-07-10 13:46:16 +03:00
test TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
third-party TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
tl Catchain improvements (#698) 2023-05-10 12:57:57 +03:00
tl-utils integrating the existing state of TON Storage / TON Payments / CPS Fift development branches 2020-05-27 22:10:46 +04:00
ton Move some constants to global config (#484) 2022-10-10 17:13:21 +03:00
tonlib TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
utils TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
validator TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
validator-engine Catchain improvements (#698) 2023-05-10 12:57:57 +03:00
validator-engine-console Improve tweaking for high throughput (#610) 2023-03-15 10:47:35 +03:00
validator-session Catchain improvements (#698) 2023-05-10 12:57:57 +03:00
.clang-format initial commit 2019-09-07 14:33:36 +04:00
.clang_complete initial commit 2019-09-07 14:33:36 +04:00
.gitattributes initial commit 2019-09-07 14:33:36 +04:00
.gitignore Add vscode to gitignore 2022-06-06 23:45:08 +08:00
.gitmodules TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
Changelog.md Add 2023.05 changelog 2023-05-16 13:28:23 +03:00
CMakeLists.txt TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
flake.lock Fix static linking of libcxx on macOS, more portable tonlibjson (#694) 2023-05-19 10:24:24 +03:00
flake.nix TVM Upgrade (#686) 2023-05-24 21:14:13 +03:00
git.cc.in Automatically integrates git build information into executables. 2021-02-27 14:34:43 +03:00
git.h Automatically integrates git build information into executables. 2021-02-27 14:34:43 +03:00
git_watcher.cmake Fix missing git revision when built with Nix. (#680) 2023-05-04 16:49:43 +03:00
GPLv2 updated tonlib 2020-02-06 21:56:46 +04:00
LGPLv2 updated liteserver 2020-02-02 16:53:37 +04:00
LICENSE.LGPL initial commit 2019-09-07 14:33:36 +04:00
README.md Add link to tondev 2023-03-05 14:11:42 +03:00
recent_changelog.md Add 2023.05 changelog 2023-05-16 13:28:23 +03:00
run-clang-format.sh initial commit 2019-09-07 14:33:36 +04:00
shell.nix Add cross-platform Linux and macOS binaries (statically compiled with NixPkgs) + wasm artifacts (#621) 2023-02-27 12:32:41 +03:00

TON logo

Reference implementation of TON Node and tools


TON Overflow Group Stack Overflow Group Telegram Community Chat Telegram Community Group Telegram Foundation Group Twitter Group

Main TON monorepo, which includes the code of the node/validator, lite-client, tonlib, FunC compiler, etc.

The Open Network

The Open Network (TON) is a fast, secure, scalable blockchain focused on handling millions of transactions per second (TPS) with the goal of reaching hundreds of millions of blockchain users.

Updates flow:

  • master branch - mainnet is running on this stable branch.

    Only emergency updates, urgent updates, or updates that do not affect the main codebase (GitHub workflows / docker images / documentation) are committed directly to this branch.

  • testnet branch - testnet is running on this branch. The branch contains a set of new updates. After testing, the testnet branch is merged into the master branch and then a new set of updates is added to testnet branch.

  • backlog - other branches that are candidates to getting into the testnet branch in the next iteration.

Usually, the response to your pull request will indicate which section it falls into.

"Soft" Pull Request rules

  • Thou shall not merge your own PRs, at least one person should review the PR and merge it (4-eyes rule)
  • Thou shall make sure that workflows are cleanly completed for your PR before considering merge

Workflows responsibility

If a CI workflow fails not because of your changes but workflow issues, try to fix it yourself or contact one of the persons listed below via Telegram messenger:

  • C/C++ CI (ccpp-linux.yml): TBD
  • C/C++ CI Win64 Compile (ccpp-win64.yml): TBD