Ton
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.
- 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
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
Build TON blockchain
Ubuntu 20.4, 22.04 (x86-64, aarch64)
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
MacOS 11, 12 (x86-64, aarch64)
cp assembly/native/build-macos-shared.sh . chmod +x build-macos-shared.sh ./build-macos-shared.sh
Windows 10, 11, Server (x86-64)
You need to install
first.
Go to https://www.visualstudio.com/downloads/ and download
.
Launch installer and select
.
After installation, also make sure that
is globally available by adding
to the system
(adjust the path per your needs).
Open an elevated (Run as Administrator)
, go to the root folder and execute:
copy assembly\native\build-windows.bat . build-windows.bat
Building TON to WebAssembly
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
Building TON tonlib library for Android (arm64-v8a, armeabi-v7a, x86, x86-64)
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
Build TON portable binaries with Nix package manager
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
.
Running tests
Tests are executed by running
in the build directory. See
for more information.
Языки
C++
- Java
- Shell
- Python
- PHP
- CMake
- Dockerfile
- Groovy
- Nix
- C
- JavaScript
- Batchfile
- GLSL
- Kotlin