运行全节点
操作系统要求
MyTonCtrl是一个控制台应用程序,它是fift、lite-client和validator-engine-console的方便包装器。它专门开发用于简化在Linux操作系统上的钱包、域和验证者管理任务。
- Ubuntu 20.04
- Ubuntu 22.04
- Debian 11
必要条件
即使符合要求,也不应在个人本地计算机上长时间运行任何类型的节点。节点会主动使用磁盘,并可能迅速损坏磁盘。
含验证器
- 16 cores CPU
- 128 GB RAM
- 1TB NVME SSD OR Provisioned 64+k IOPS storage
- 1 Gbit/s 网络连接
- 公共 IP 地址(_固定 IP 地址)
- 64 TB/月流量(峰值负载时为 100 TB/月)
通常情况下,您需要至少 1 Gbit/s 的连接才能可靠地满足峰值负载(平均负载预计约为 100 Mbit/s)。
端口转发
所有类型的节点都需要一个静态外部 IP 地址,一个 UDP 端口用于转发传入连接,所有传出连接都是开放的 - 节点使用随机端口进行新的传出连接。节点必须通过 NAT 对外可见。
您需要一台具有固定IP地址和高带宽网络连接的机器来运行TON区块链全节点。
您可以使用 netstat -tulpn
命令查看哪个 UDP 端口已打开。
推荐供应商
TON基金会推荐以下供应商运行验证者:
云提供商 | 实例类型 | CPU | RAM | 存储 | 网络 | 公共IP | 流量 |
---|---|---|---|---|---|---|---|
GCP | n2-standard-16 | 32 个 vCPU | 128GB | 1TB NVMe SSD | 16 Gbps | Reserve a static external IP | 64 TB/month |
阿里云 | ecs.g6.4xlarge | 32 vCPUs | 128GB | 1TB NVMe SSD | Up to 10 Gbps | Bind an Elastic IP | 64 TB/month |
腾讯云 | M5.4XLARGE | 32 vCPUs | 128GB | 1TB NVMe SSD | Up to 10 Gbps | Associate an Elastic IP | 64 TB/month |
Vultr | bare metal Intel E-2388G | 16 Cores / 32 Threads | 128GB | 1.92TB NVMe SSD | 10 Gbps | Fixed IP address included with instance | 64 TB/month |
DigitalOcean | general purpose premium Intel | 32 vCPUs | 128GB | 1TB NVMe SSD | 10 Gbps | Fixed IP address included with instance | 64 TB/month |
Latitude | c3.medium.x86 | 16 Cores / 32 Threads | 128GB | 1.9TB NVMe SSD | 10 Gbps | Fixed IP address included with instance | 64 TB/month |
AWS | i4i.8xlarge | 32 vCPUs | 256GB | 2 x 3,750 AWS Nitro SSD (fixed) | Up to 25 Gbps | Bind an Elastic IP | 64 TB/month |
注: 价格、配置和可用性可能有所不同。建议您在做出任何决定之前,始终查看各云提供商的官方文档和定价页面。
GCP (谷歌云平台)
请查看本视频的分步教程,以便及时开始:
腾讯云
切换到您的非root用户:
这一步是成功安装和使用 mytonctrl 的必要,不要忽略非 root 用户创建。没有这一步,安装过程中不会出错,但 mytonctrl 将无法正常工作。
如果没有 非 root 用户,可以通过以下步骤创建一个(否则跳过前两个步骤,进入第三个步骤)。
- 以root用户身份登录并创建新用户:
sudo adduser <username>
- 将用户添加到 sudo 组:
sudo usermod -aG sudo <username>
- 登录新用户(如果使用 ssh,需要停止当前会话,然后使用正确的用户重新连接)。
ssh <username>@<server-ip-address>
安装 MyTonCtrl
从具有 sudo 权限的 非root 用户账户下载并运行安装脚本:
- Ubuntu
wget https://raw.githubusercontent.com/ton-blockchain/mytonctrl/master/scripts/install.sh
sudo bash install.sh
wget https://raw.githubusercontent.com/ton-blockchain/mytonctrl/master/scripts/install.sh
su root -c 'bash install.sh'
- 以具有sudo权限的非root用户身份登录您的服务器。
- 如果您没有非root用户,请以root身份登录并创建一个:
-i
- 忽略最低要求,只有在不使用实际节点的情况下检查编译过程时才使用。-m
- 模式,可以是validator
或liteserver
。-t
- 禁用遥测功能。
** 要使用 testnet**,应在 -c
标志中加入 https://ton.org/testnet-global.config.json
值。
默认 的 -c
标志值为 https://ton-blockchain.github.io/global.config.json
,这是默认的主网配置。
运行 mytonctrl
- 切换到您的非root用户:
mytonctrl
- 使用
status
命令检查MyTonCtrl
的状态:
status
在 testnet 中,必须使用 status fast
命令,而不是 status
。
应显示以下状态:
- mytoncore status:应为绿色。
- local validator status:也应为绿色。
- local validator out of sync:最初显示的是一个
n/a
字符串。新创建的验证器与其他验证器连接后,数字将达到 250k 左右。随着同步的进行,这个数字会逐渐减少。当该数字低于 20 时,验证程序将被同步。
status 命令输出示例:
等待直到 Local validator out of sync
变为少于 20 秒。
当一个新节点启动时,即使是从转储开始,也需要等待长达 3 个小时,不同步的数量才会开始减少。这是因为节点仍需要在网络中建立自己的位置,通过 DHT 表传播自己的地址等。
卸载 mytonctrl
下载脚本并运行:
sudo bash /usr/src/mytonctrl/uninstall.sh
检查 mytonctrl 所有者
运行:
ls -lh /var/ton-work/keys/
技巧与窍门
可用命令列表
- 您可以使用
help
获取可用命令列表:
查看钱包列表
- 要检查 mytonctrl 日志,请打开本地用户的
~/.local/share/mytoncore/mytoncore.log
或 Root 的/usr/local/bin/mytoncore/mytoncore.log
。
检查节点日志
tail -f /var/ton-work/log.thread*
支持
最近(在2023年底),大致数字为最低质押代币约340K TON,最高约1M TON。