跳到主要内容

运行归档节点

概述

需要系统管理员

运行节点需要具备 Linux/Ubuntu 系统管理的基本知识。

存档节点是一种完整节点类型,存储区块链的扩展历史数据。 如果您正在创建一个需要访问历史数据的 blockchain 浏览器或类似的应用程序, 建议使用归档节点作为索引器。

先决条件

我们强烈建议使用支持的操作系统安装 mytonctrl:

  • Ubuntu 20.04
  • Ubuntu 22.04
  • Debian 11

请使用 具有 sudo 权限的非 root 用户 安装和运行 mytonctrl。

硬件要求

  • 16 x 内核 CPU
  • 128GB ECC 内存
  • 4TB SSD OR 预配置 32+k IOPS 存储器
  • 1 Gbit/s 网络连接
  • 峰值流量为每月 16 TB
  • 公共 IP 地址(固定 IP 地址)

Note注意:4 TB 假定使用启用压缩的 zfs 卷

安装

一般来说,运行存档节点需要以下步骤:

  1. 安装 ZFS 并准备卷
  2. 安装 MyTonCtrl
  3. 在服务器上运行完整节点并停止验证器进程
  4. https://archival-dump.ton.org 下载和恢复转储数据
  5. 运行完整节点,为存档节点配置数据库规格

安装 ZFS 并准备卷

通常,为您的节点在专用SSD驱动器上创建一个单独的ZFS池是个好主意,这将使您更容易管理存储空间并备份您的节点。

通常,在专用 SSD 驱动器上为节点创建一个单独的 ZFS 池是个好主意,这样可以方便管理存储空间和备份节点。

  1. 安装 zfs
sudo apt install zfsutils-linux
  1. 在专用的 4TB <disk>创建池,并将其命名为 data
sudo zpool create data <disk>
  1. 在还原之前,我们强烈建议在父 ZFS 文件系统上启用压缩功能,这将为您节省 大量空间。要启用 "数据 "卷的压缩功能,请使用 root 账户输入:
sudo zfs set compression=lz4 data

安装 MyTonCtrl

请使用 Running Full Node 安装 mytonctrl。

准备节点

准备节点

  1. 执行还原之前,必须使用 root 账户停止验证器:
sudo -s
systemctl stop validator.service
  1. 备份 ton-work 配置文件(我们需要 /var/ton-work/db/config.json/var/ton-work/keys/var/ton-work/db/keyring)。
mv /var/ton-work /var/ton-work.bak

下载转储

  1. @TONBaseChatEn Telegram 聊天中请求userpassword凭证以获得下载转储的访问权限。
  2. 下面是一个从 ton.org 服务器下载和恢复转储的命令示例:
wget --user <usr> --password <pwd> -c https://archival-dump.ton.org/dumps/latest.zfs.lz | pv | plzip -d -n <cores> | zfs recv data/ton-work

转储大小为~1.5TB,因此下载和恢复需要一些时间。

准备并运行命令:

  1. 必要时安装工具(pv, plzip)
  2. <usr><pwd> 替换为您的凭据
  3. 告诉 plzip 在机器允许的范围内使用尽可能多的内核,以加快提取速度 (-n)

安装转储

  1. 挂载 zfs:
zfs set mountpoint=/var/ton-work data/ton-work && zfs mount data/ton-work
  1. db/config.jsonkeysdb/keyring从备份恢复到/var/ton-work
cp /var/ton-work.bak/db/config.json /var/ton-work/db/config.json
cp -r /var/ton-work.bak/keys /var/ton-work/keys
cp -r /var/ton-work.bak/db/keyring /var/ton-work/db/keyring
  1. 请确保/var/ton-work/var/ton-work/keys目录的权限提升正确:
  • /var/ton-work/db "目录的所有者应为 "validator "用户:
chown -R validator:validator /var/ton-work/db
  • /var/ton-work/keys "目录的所有者应为 "ubuntu "用户:
chown -R ubuntu:ubuntu /var/ton-work/keys

更新配置

更新存档节点的节点配置。

  1. 打开节点配置文件 `/etc/systemd/system/validator.service
nano /etc/systemd/system/validator.service
  1. ExecStart 行中添加节点的存储设置:
--state-ttl 315360000 --archive-ttl 315360000 --block-ttl 315360000
信息

启动节点并观察日志后,请耐心等待。转储不带 DHT 缓存,因此您的节点需要一些时间才能找到其他节点,然后与它们同步。根据快照的时间,您的节点可能需要几个小时到几天的时间才能赶上网络。这是正常现象。

启动节点

  1. 运行命令启动验证器:
systemctl start validator.service
  1. local user 打开 mytonctrl 并使用 status 检查节点状态。

节点维护

节点数据库需要不时清理(我们建议每周清理一次),为此请以 root 身份执行以下步骤:

  1. 停止验证程序(切勿跳过!)。
sudo -s
systemctl stop validator.service
  1. 删除旧日志
find /var/ton-work -name 'LOG.old*' -exec rm {} +
  1. 删除临时文件
rm -r /var/ton-work/db/files/packages/temp.archive.*
  1. 启动验证程序
systemctl start validator.service

故障排除和备份

如果由于某种原因,某些程序无法运行或发生故障,你可以随时 roll back 到 ZFS 文件系统上的 @archstate 快照,这是转储的原始状态。

  1. 停止验证程序(切勿跳过!)。
sudo -s
systemctl stop validator.service
  1. 检查快照名称
zfs list -t snapshot
  1. 回滚到快照
zfs rollback data/ton-work@dumpstate

如果您的节点运行良好,您可以删除该快照以节省存储空间,但我们确实建议您定期为文件系统拍摄快照,以便回滚,因为验证器节点在某些情况下会损坏数据和 config.json。zfsnap是一个自动轮换快照的好工具。

需要帮助吗?

有问题或需要帮助?请在 TON dev 聊天室 中提问,以获得社区的帮助。MyTonCtrl 开发人员也会在那里交流。

参阅