Main TON monorepo, which includes the code of the node/validator, lite-client, tonlib, FunC compiler, etc.
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.
- To learn more about different aspects of TON blockchain and its underlying ecosystem check documentation
- To run node, validator or lite-server check Participate section
- To develop decentralised apps check Tutorials, FunC docs and DApp tutorials
- To work on TON check wallets, explorers, DEXes and utilities
- To interact with TON check APIs
-
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.
- 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
Install additional system libraries
sudo apt-get update
sudo apt-get install -y build-essential git cmake ninja-build zlib1g-dev libsecp256k1-dev libmicrohttpd-dev libsodium-dev
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 16 all
Compile TON binaries
cp assembly/native/build-ubuntu-shared.sh .
chmod +x build-ubuntu-shared.sh
./build-ubuntu-shared.sh
cp assembly/native/build-macos-shared.sh .
chmod +x build-macos-shared.sh
./build-macos-shared.sh
You need to install MS Visual Studio 2022
first.
Go to https://www.visualstudio.com/downloads/ and download MS Visual Studio 2022 Community
.
Launch installer and select Desktop development with C++
.
After installation, also make sure that cmake
is globally available by adding
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
to the system PATH
(adjust the path per your needs).
Open an elevated (Run as Administrator) x86-64 Native Tools Command Prompt for VS 2022
, go to the root folder and execute:
copy assembly\native\build-windows.bat .
build-windows.bat
Install additional system libraries on Ubuntu
sudo apt-get update
sudo apt-get install -y build-essential git cmake ninja-build zlib1g-dev libsecp256k1-dev libmicrohttpd-dev libsodium-dev
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 16 all
Compile TON binaries with emscripten
cd assembly/wasm
chmod +x fift-func-wasm-build-ubuntu.sh
./fift-func-wasm-build-ubuntu.sh
Install additional system libraries on Ubuntu
sudo apt-get update
sudo apt-get install -y build-essential git cmake ninja-build automake libtool texinfo autoconf libgflags-dev \
zlib1g-dev libssl-dev libreadline-dev libmicrohttpd-dev pkg-config libgsl-dev python3 python3-dev \
libtool autoconf libsodium-dev libsecp256k1-dev
Compile TON tonlib library
cp assembly/android/build-android-tonlib.sh .
chmod +x build-android-tonlib.sh
./build-android-tonlib.sh
You need to install Nix first.
sh <(curl -L https://nixos.org/nix/install) --daemon
Then compile TON with Nix by executing below command from the root folder:
cp -r assembly/nix/* .
export NIX_PATH=nixpkgs=https://github.com/nixOS/nixpkgs/archive/23.05.tar.gz
nix-build linux-x86-64-static.nix
More examples for other platforms can be found under assembly/nix
.
Tests are executed by running ctest
in the build directory. See doc/Tests.md
for more information.