Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
4ebd741
Merge pull request #1828 from ton-blockchain/testnet
EmelyanenkoK Oct 10, 2025
0667560
Debug logs for applying blocks
SpyCheese Oct 20, 2025
590f1c3
Change the behavior of extra_flags (#1846)
SpyCheese Oct 20, 2025
2aed6e4
Run CI on pull request (#1844)
DanShaders Oct 20, 2025
2f352bc
Add -Werror CI job (#1845)
DanShaders Oct 20, 2025
f0b26ba
Add log error
tvorogme Oct 23, 2025
6e747c9
Fix error
tvorogme Oct 23, 2025
a1d1657
Try force load cell
tvorogme Oct 23, 2025
f9db7bd
fix WASM artefacts by upgrading emscripten, forcing filesystem access…
neodix42 Oct 23, 2025
ecd8fbb
[vm] Add new opcodes to store and load `addr_std$10` (#1849)
i582 Oct 24, 2025
9386b31
On destroy - acquire gil
tvorogme Oct 24, 2025
66ddb32
Add more logs for BlockArchiver and similar things
SpyCheese Oct 27, 2025
7b7db09
Add timeout to default failure signal handler (#1856)
SpyCheese Oct 27, 2025
b118ab3
Moar CMake improvements (#1847)
DanShaders Oct 27, 2025
0f6252a
fix(tonlib): correct error messages for gen_utime checks in header ve…
Lapo4kaKek Oct 28, 2025
1d75202
Increase timeout for ValidateBroadcast
SpyCheese Oct 28, 2025
e376747
Don't create more than one BlockArchiver for a block
SpyCheese Oct 28, 2025
5d27d05
Optimize reading files in BlockArchiver
SpyCheese Oct 28, 2025
a3f948e
Better log for "file not in db"
SpyCheese Oct 28, 2025
d6560ca
Adjust the delay of the initial node sync (#1860)
neodix42 Oct 29, 2025
ccdff9c
Upgrade abseil to August 2025, Patch 1, tag=20250814.1 (#1859)
neodix42 Oct 29, 2025
f2cf376
Add set_vm_verbosity_level
tvorogme Oct 29, 2025
27f9642
Remove outdated warning suppressions (#1861)
DanShaders Oct 30, 2025
85d8b01
Make DHT node not care about validator section of global config (#1862)
DanShaders Oct 30, 2025
a1ddbcc
Better error processing in ArchiveManager
SpyCheese Oct 30, 2025
ea2718a
Merge pull request #1863 from ton-blockchain/apply-block-patch
EmelyanenkoK Oct 30, 2025
fc397a9
Add config contract version with ownable parameters
EmelyanenkoK Oct 30, 2025
6f6db6f
Update changelog
EmelyanenkoK Oct 30, 2025
af7b554
Merge pull request #1866 from sonofmom/update/double_fd
sonofmom Oct 31, 2025
a8810e7
Fix error processing in finished_wait_state (#1868)
SpyCheese Nov 3, 2025
5c03491
Merge pull request #1871 from ton-blockchain/testnet
EmelyanenkoK Nov 4, 2025
cb01573
improve logs of emulator, get logs in python
tvorogme Nov 6, 2025
e547706
Merge upstream
tvorogme Nov 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/build-ton-linux-x86-64-werror.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Ubuntu TON -Werror build (shared, x86-64)

on: [push, pull_request, workflow_dispatch, workflow_call]

jobs:
build:
runs-on: ubuntu-24.04

steps:
- name: Check out repository
uses: actions/checkout@v3
with:
submodules: 'recursive'

- name: Date Stamp
shell: bash
id: date-stamp
run: |
echo "timestamp=$(date -u "+%Y%m%d%H%M_%S")" >> "$GITHUB_OUTPUT"

- name: Install system libraries
run: |
sudo apt-get update
sudo apt-get install -y build-essential git cmake ninja-build zlib1g-dev libsecp256k1-dev libmicrohttpd-dev libsodium-dev liblz4-dev libjemalloc-dev

- name: Install Clang 21
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 21 clang

# TODO: Preserve ccache cache between runs once we get rid of warning suppression mappings.

- name: Build TON
run: |
cmake -S . -B build -G Ninja \
-DCMAKE_C_COMPILER=clang-21 \
-DCMAKE_CXX_COMPILER=clang++-21 \
-DCMAKE_BUILD_TYPE=Release \
-DTON_USE_JEMALLOC=ON \
-DTON_USE_LLD=On \
-DTON_WERROR_BUILD=On
ninja -C build
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ parsetab.py
parsetab.pyc
tdutils/generate/auto/
tl/generate/auto/
tl/generate/scheme/*.tlo
compile_commands.json
crypto/block/block-auto.cpp
crypto/block/block-auto.h
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
[submodule "third-party/abseil-cpp"]
path = third-party/abseil-cpp
url = https://github.com/abseil/abseil-cpp.git
branch = 20250814.1
[submodule "third-party/libraptorq"]
path = third-party/libraptorq
url = https://github.com/ton-blockchain/libRaptorQ
Expand All @@ -20,6 +21,9 @@
path = third-party/secp256k1
url = https://github.com/bitcoin-core/secp256k1
branch = v0.3.2
[submodule "third-party/tl-parser"]
path = third-party/tl-parser
url = https://github.com/ton-blockchain/tl-parser.git
[submodule "third-party/pybind11"]
path = third-party/pybind11
url = https://github.com/pybind/pybind11.git
Expand Down
74 changes: 0 additions & 74 deletions CMake/AddCXXCompilerFlag.cmake

This file was deleted.

135 changes: 72 additions & 63 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,16 @@ set(CMAKE_CXX_EXTENSIONS FALSE)

set(CMAKE_COLOR_DIAGNOSTICS TRUE)

if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(GCC 1)
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CLANG 1)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(INTEL 1)
elseif (NOT MSVC)
message(FATAL_ERROR "Compiler isn't supported")
endif()

#BEGIN internal
option(BUILD_SHARED_LIBS "Use \"ON\" to build shared libraries instead of static where it's not specified (not recommended)" OFF)
option(USE_EMSCRIPTEN "Use \"ON\" for config building wasm." OFF)
Expand Down Expand Up @@ -80,16 +90,29 @@ if ((ARCHITECTURE MATCHES "arm64") AND (CMAKE_SYSTEM_NAME STREQUAL "Darwin") AND
endif()
#END M1 support

if (CLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "20")
add_compile_options(--warning-suppression-mappings=${CMAKE_SOURCE_DIR}/suppression_mappings.txt)
endif()

option(TON_WERROR_BUILD "Use -Werror" OFF)

# If we want to check -Werror build in CI, we want to use it for third party projects as well but we
# don't want to force our warning options on them.
if (TON_WERROR_BUILD)
add_compile_options(-Werror)
endif()

if (TON_USE_ABSEIL)
message("Add abseil-cpp")
set(ABSL_PROPAGATE_CXX_STD TRUE)
add_subdirectory(third-party/abseil-cpp EXCLUDE_FROM_ALL)
function(abseil_scope)
set(ABSL_PROPAGATE_CXX_STD TRUE)
set(CMAKE_POLICY_VERSION_MINIMUM "3.10")
add_subdirectory(third-party/abseil-cpp EXCLUDE_FROM_ALL)
endfunction()
abseil_scope()
set(ABSL_FOUND 1)
endif()

#add_subdirectory(third-party/libcuckoo EXCLUDE_FROM_ALL)
#add_subdirectory(third-party/junction EXCLUDE_FROM_ALL)

if (WIN32)
message("Add wingetopt")
function(wingetopt_scope)
Expand Down Expand Up @@ -155,6 +178,9 @@ add_subdirectory(third-party/cppkafka)
set(CPPKAFKA_INCLUDE_DIRECTORIES third-party/cppkafka/include)
include_directories(${CPPKAFKA_INCLUDE_DIRECTORIES}) # I feel bad for doing this, could not manage to do the proper way

message("Add tl-parser")
add_subdirectory(third-party/tl-parser EXCLUDE_FROM_ALL)

message("Add ton")
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})

Expand All @@ -173,16 +199,6 @@ else()
message(STATUS "Could NOT find ccache")
endif()

if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(GCC 1)
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CLANG 1)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(INTEL 1)
elseif (NOT MSVC)
message(FATAL_ERROR "Compiler isn't supported")
endif()

include(CheckCXXCompilerFlag)

set(CMAKE_THREAD_PREFER_PTHREAD ON)
Expand Down Expand Up @@ -289,33 +305,37 @@ set(TONLIB_COMPILE "0")
set(TONLIB_COMPILE "1")
#END tonlib

include(AddCXXCompilerFlag)
if (MSVC)
add_cxx_compiler_flag("/experimental:external /external:anglebrackets /external:W0")
endif()
if (NOT MSVC)
add_cxx_compiler_flag("-Wall")
add_cxx_compiler_flag("-Wextra")
endif()

add_cxx_compiler_flag("-Wimplicit-fallthrough=2")
add_cxx_compiler_flag("-Wpointer-arith")
add_cxx_compiler_flag("-Wcast-qual")
add_cxx_compiler_flag("-Wsign-compare")
add_cxx_compiler_flag("-Wduplicated-branches")
add_cxx_compiler_flag("-Wduplicated-cond")
add_cxx_compiler_flag("-Walloc-zero")
add_cxx_compiler_flag("-Wlogical-op")
add_cxx_compiler_flag("-Wno-tautological-compare")
add_cxx_compiler_flag("-Wpointer-arith")
add_cxx_compiler_flag("-Wvla")
add_cxx_compiler_flag("-Wnon-virtual-dtor")
add_cxx_compiler_flag("-Wno-unused-parameter")
add_cxx_compiler_flag("-Wconversion")
add_cxx_compiler_flag("-Wno-sign-conversion")
add_cxx_compiler_flag("-Qunused-arguments")
add_cxx_compiler_flag("-Wno-unused-private-field")
add_cxx_compiler_flag("-Wno-redundant-move")
add_compile_options(/experimental:external /external:anglebrackets /external:W0)
endif()

if (GCC OR CLANG)
add_compile_options(-Wall)
add_compile_options(-Wextra)

add_compile_options(-Wpointer-arith)
add_compile_options(-Wcast-qual)
add_compile_options(-Wsign-compare)
add_compile_options(-Wpointer-arith)
add_compile_options(-Wvla)
add_compile_options(-Wnon-virtual-dtor)
add_compile_options(-Wconversion)

# TODO: Either justify all of these or remove.
add_compile_options(-Wno-tautological-compare)
add_compile_options(-Wno-unused-parameter)
add_compile_options(-Wno-sign-conversion)
add_compile_options(-Wno-unused-private-field)
add_compile_options(-Wno-redundant-move)

if (GCC)
add_compile_options(-Wimplicit-fallthrough=2)
add_compile_options(-Wduplicated-branches)
add_compile_options(-Wduplicated-cond)
add_compile_options(-Walloc-zero)
add_compile_options(-Wlogical-op)
endif()
endif()

if (GCC OR CLANG)
if (CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo")
Expand All @@ -325,30 +345,19 @@ if (GCC OR CLANG)
endif()
endif()

#add_cxx_compiler_flag("-Wno-unused-function")
#add_cxx_compiler_flag("-Wno-unused-variable")
#add_cxx_compiler_flag("-Wno-shorten-64-to-32")
#add_cxx_compiler_flag("-Werror")

#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem /usr/include/c++/v1")
if (CLANG)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()
if (TON_USE_ASAN)
add_cxx_compiler_flag("-fsanitize=address")
add_compile_options(-fsanitize=address)
add_link_options(-fsanitize=address)
add_definitions(-DTD_USE_ASAN=1)
endif()
if (TON_USE_TSAN)
add_cxx_compiler_flag("-fsanitize=thread")
add_compile_options(-fsanitize=thread)
add_link_options(-fsanitize=thread)
endif()
if (TON_USE_UBSAN)
add_cxx_compiler_flag("-fsanitize=undefined")
add_compile_options(-fsanitize=undefined)
add_link_options(-fsanitize=undefined)
endif()
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=leak")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -finstrument-functions")

#Compilation database
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
Expand All @@ -368,6 +377,10 @@ if (NOT LATEX_FOUND)
endif()
#END internal

if (NOT OPENSSL_FOUND)
find_package(OpenSSL REQUIRED)
endif()

function(target_link_libraries_system target)
set(libs ${ARGN})
foreach(lib ${libs})
Expand Down Expand Up @@ -475,10 +488,6 @@ target_link_libraries(test-fift PRIVATE fift-lib)

add_executable(test-tdutils test/test-td-main.cpp ${TDUTILS_TEST_SOURCE})
target_link_libraries(test-tdutils PRIVATE tdutils ${CMAKE_THREAD_LIBS_INIT} memprof ${JEMALLOC_LIBRARIES})
#target_link_libraries_system(test-tdutils absl::base absl::container absl::hash )
#target_link_libraries_system(test-tdutils libcuckoo)
#target_include_directories(test-tdutils PRIVATE SYSTEM ${JUNCTION_ALL_INCLUDE_DIRS})
#target_link_libraries(test-tdutils PRIVATE ${JUNCTION_ALL_LIBRARIES})

add_executable(test-tdactor test/test-td-main.cpp ${TDACTOR_TEST_SOURCE})
target_link_libraries(test-tdactor PRIVATE tdactor ${CMAKE_THREAD_LIBS_INIT})
Expand Down Expand Up @@ -559,7 +568,7 @@ if (HAS_PARENT)
${ED25519_TEST_SOURCE}
${TONDB_TEST_SOURCE}
${BIGNUM_TEST_SOURCE}
${CELLS_TEST_SOURCE} # ${TONVM_TEST_SOURCE} ${FIFT_TEST_SOURCE} ${TONLIB_ONLINE_TEST_SOURCE}
${CELLS_TEST_SOURCE}
PARENT_SCOPE)
endif()
add_library(all_tests INTERFACE)
Expand Down
10 changes: 10 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## 2025.11 Update

1. [TVM version v12](./doc/GlobalVersions.md) update: [forbid unused high bits in extra_flags](https://github.com/ton-blockchain/TEPs/pull/503/commits/d949d70d5a69026d273cbbc07653d12c4373117a), [bounce extra_flags equal to initial message extra_flags](https://github.com/ton-blockchain/TEPs/pull/503/commits/d33ff342d69de04f1c33d11360dcf06b63a6c21e), [new TVM opcodes](https://github.com/ton-blockchain/ton/commit/ecd8fbb833c408eb34ec1aa4516e9e4344b54a22).
2. Abseil upgrade
3. Improvements in node synchronisation
4. Fixing rare ArchiveManager issues
5. Various improvements in logging, builds, DHT node behavior, private net launching, failure handlers.

Besides the work of the core team, this update is based on the efforts of the @Lapo4kaKek and [Vahagn x.com/vah_13](https://x.com/vah_13).

## 2025.10 Update

1. [TVM version v12](./doc/GlobalVersions.md): full bounces, new `BTOS` and `HASHBU` instuctions, limit on contract size in masterchain.
Expand Down
2 changes: 1 addition & 1 deletion adnl/adnl-packet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ td::Result<AdnlPacket> AdnlPacket::create(tl_object_ptr<ton_api::adnl_packetCont
R.addr_ = std::move(addr_list);
}
if (R.flags_ & Flags::f_priority_address) {
TRY_RESULT(addr_list, AdnlAddressList::create(std::move(packet->address_)));
TRY_RESULT(addr_list, AdnlAddressList::create(std::move(packet->priority_address_)));
R.priority_addr_ = std::move(addr_list);
}
if (R.flags_ & Flags::f_seqno) {
Expand Down
4 changes: 0 additions & 4 deletions catchain/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
if (NOT OPENSSL_FOUND)
find_package(OpenSSL REQUIRED)
endif()

set(CATCHAIN_SOURCE
catchain-received-block.cpp
#catchain-receiver-fork.cpp
Expand Down
5 changes: 0 additions & 5 deletions create-hardfork/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
if (NOT OPENSSL_FOUND)
find_package(OpenSSL REQUIRED)
endif()


set(CREATE_HARDFORK_SOURCE
create-hardfork.cpp
)
Expand Down
Loading
Loading