In C++20, macro 'ATOMIC_FLAG_INIT' has been marked as deprecated.
We need still to use it to be able to compile for C++17.
For now, just suppress this warning.
* 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 <>
* Improve validator session stats
* Collator stats: block limits, number of processed external messages
* Collator and validator work time
* Last key block seqno
* Approvers and signers
* End validator session stats
* Add --fast-state-serializer and tools for jemalloc
* Disable fast state serializer by default unless RAM is >= 90GB
* Print jemalloc stats once a minute
* Dump jemalloc profile on request
* Respond to AdnlMessageCreateChannel with Nop
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>
* 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>
* Compress block candidates in validator-session
* Compress blocks in full-node (disabled for now)
* test pipeline with lz4
* tonlib compilation required lz4;
try win compile;
* install lz4 on mac.
* wip, test builds
* remove FindLZ4.cmake
* fix typo
* fix wasm lz4 path
* increase groovy timeout to 120 sec
* add lz4 for android and emscripten builds
* add lz4 for android and emscripten builds
* fix win build include path for lz4
* add precompiled lz4 for android
* cleanup
* adjust android include dir for lz4
* fix path for android arm of lz4
* cleanup
* minor fix
---------
Co-authored-by: SpyCheese <mikle98@yandex.ru>
* 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
* 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>
* Fix "sgn" in fift; fix marking infinite loops as noterurn in func
* TON-P1-1: Remove unused catchain queries
* TON-P1-15: Avoid synchronization with self
* TON-P1-3, TON-P1-17: Disallow more than one candidate per src per round (to prevent flood), add checks to process_broadcast
* TON-P1-10: Fix fast/slow attempts
* TON-P1-14: Add named constants
* TON-P1-18, TON-P1-19: Alloc temporary memory in the same way as persistent memory
* TON-P1-20: Add comment to choose_blocks_to_approve
* TON-P1-16: Avoid creating two catchain blocks on need_new_block
* TON-P1-8: Add some validation to validator-engine parameters
* TON-P1-6: Don't allow sending the same block many times
Many requests for the same block are not unusual (however, there's no need to answer them all)
* TON-P1-2: Enable prohibiting dependencies from blamed nodes (2.7.5 in CatChain doc), fix processing blame proofs
* Best practices
bp-6: Fix incorrect warning
bp-7: Remove unused code
bp-8: Bring back PerfWarningTimer logging (only when no callback)
bp-9: Remove unnecessary condition
bp-11: Remove commented-out code
bp-13: Divide code in validator-session-state
Adherence to Specification: Fix typo
* 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>
* 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>
https://howardhinnant.github.io/date/date.html
All logs will display a datetime in format "2021-02-23 12:57:21.1023272" UTC, instead of simply displaying double formatted timestamp.
Update ccpp-linux.yml
Soon github actions will use ubuntu 20.04 as latest. Let's avoid surprised and stick to ubuntu-18.04 fow now.
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.
- added new fift/func code for validator complaint creation
- bugfixes in validator
- updates in tonlib
- new versions of rocksdb/abseil
- hardfork support