ton-blockchain/ton
GitHub: ton-blockchain/ton
TON区块链的官方核心代码库,涵盖全节点、验证者、轻客户端及FunC编译器的完整实现。
Stars: 3903 | Forks: 1470
##
主要 TON monorepo,包含 node/validator、lite-client、tonlib、FunC 编译器等的代码。
## 开放网络
__The Open Network (TON)__ 是一个快速、安全、可扩展的区块链,专注于处理_每秒数百万笔交易_ (TPS),目标是服务数亿区块链用户。
- 要了解更多关于 TON 区块链及其底层生态系统的不同方面,请查看[文档](https://ton.org/docs)
- 要运行节点 (node)、验证者 或轻服务器,请查看[参与部分](https://ton.org/docs/participate/nodes/run-node)
- 要开发去中心化应用,请查看[教程](https://docs.ton.org/v3/guidelines/smart-contracts/guidelines)、[FunC 文档](https://ton.org/docs/develop/func/overview)和 [DApp 教程](https://docs.ton.org/v3/guidelines/dapps/overview)
- 要使用 TON,请查看[钱包](https://ton.app/wallets)、[浏览器](https://ton.app/explorers)、[DEX](https://ton.app/dex)和[实用工具](https://ton.app/utilities)
- 要与 TON 交互,请查看 [APIs](https://docs.ton.org/v3/guidelines/dapps/apis-sdks/overview)
## 更新流程
* **master 分支** - 主网 在此稳定分支上运行。
只有紧急更新、迫切更新或不影响主代码库的更新(GitHub workflows / docker images / 文档)才会直接提交到此分支。
* **testnet 分支** - 测试网 在此分支上运行。该分支包含一组新更新。测试完成后,testnet 分支将合并到 master 分支,然后一组新的更新会被添加到 testnet 分支。
* **backlog** - 其他有资格在下一轮迭代中进入 testnet 分支的分支。
通常,对你 pull request 的回复会指出它属于哪个部分。
## “软性” Pull Request 规则
* 不得合并自己的 PR,至少应由一人审查并合并 PR(四眼原则)
* 在考虑合并之前,请确保你的 PR 已顺利完成 workflows
## 构建 TON 区块链
### Ubuntu 22.04, 24.04 (x86-64, aarch64)
安装额外的系统库
```
sudo apt-get update
sudo apt-get install -y build-essential git cmake ninja-build
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 21 clang
```
编译 TON 二进制文件
```
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)
你需要先安装 `MS Visual Studio 2022`。
访问 https://www.visualstudio.com/downloads/ 并下载 `MS Visual Studio 2022 Community`。
启动安装程序并选择 `Desktop development with C++`。
安装完成后,还需通过将
`C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin` 添加到系统 `PATH` 中(根据你的需要调整路径),来确保 `cmake` 全局可用。
以管理员身份 打开 `x86-64 Native Tools Command Prompt for VS 2022`,进入根文件夹,并执行:
```
copy assembly\native\build-windows-2022.bat .
build-windows-2022.bat
```
### MSYS2 MinGW64 (x86-64)
从 MinGW64 shell 执行
```
cp assembly/msys2/build-mingw64-clang21.sh .
chmod +x build-mingw64-clang21.sh
./build-mingw64-clang21.sh -a
```
结果,你将获得完全静态编译的 TON windows 二进制文件。
### MSYS2 UCRT64 (x86-64)
从 ucrt64 shell 执行
```
cp assembly/msys2/build-ucrt64-clang21.sh .
chmod +x build-ucrt64-clang21.sh
./build-ucrt64-clang21.sh -a
```
结果,你将获得完全静态编译的 TON windows 二进制文件。
### 构建 TON 到 WebAssembly
在 Ubuntu 上安装额外的系统库
```
sudo apt-get update
sudo apt-get install -y build-essential git cmake ninja-build
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 21 clang
```
使用 emscripten 编译 TON 二进制文件
```
cd assembly/wasm
chmod +x fift-func-wasm-build-ubuntu.sh
./fift-func-wasm-build-ubuntu.sh
```
### 为 Android 构建 TON tonlib 库 (arm64-v8a, armeabi-v7a, x86, x86-64)
在 Ubuntu 上安装额外的系统库
```
sudo apt-get update
sudo apt-get install -y build-essential git cmake ninja-build automake libtool texinfo autoconf libgflags-dev \
libreadline-dev pkg-config libgsl-dev python3 python3-dev libtool autoconf
```
编译 TON tonlib 库
```
cp assembly/android/build-android-tonlib.sh .
chmod +x build-android-tonlib.sh
./build-android-tonlib.sh
```
### TON 便携式二进制文件
Linux 便携式二进制文件被封装在 AppImages 中,而 MacOS 便携式二进制文件是静态链接的可执行文件。
Linux 和 MacOS 二进制文件均支持 x86-64 和 arm64 架构。
## 运行测试
通过在 build 目录中运行 `ctest` 来执行测试。更多信息请参见 `doc/Tests.md`。
标签:Bash脚本, C++, FunC 编译器, Layer1, SOC Prime, Telegram, The Open Network, TON, Tonlib, Web3, 公链, 共识算法, 分布式账本, 加密技术, 加密货币, 区块链, 区块链底层, 去中心化, 可扩展性, 开发工具, 数据擦除, 智能合约, 节点, 轻客户端, 验证器