TRON 网络节点数据备份与恢复¶
java-tron 节点将其持久化数据存储在指定的数据目录下。默认的数据目录是 /output-directory/。您可以通过在 java-tron 节点启动命令中添加 -d 或 --output-directory 参数来指定不同的数据存储位置,例如:
java -jar fullnode.jar -d ./outputdir
备份节点数据¶
在备份节点数据之前,请务必 关闭节点进程。您可以按照以下步骤进行操作:
首先,使用以下命令获取 java-tron 进程的 PID:
ps -ef | grep FullNode.jar | grep -v grep | awk '{print $2}'
然后,使用获取到的 PID 来终止进程。建议使用以下停止脚本来安全关闭 java-tron 进程,以避免数据库损坏:
#!/bin/bash
while true; do
pid=`ps -ef |grep FullNode.jar |grep -v grep |awk '{print $2}'`
if [ -n "$pid" ]; then
kill -15 $pid
echo "The java-tron process is exiting, it may take some time, forcing the exit may cause damage to the database, please wait patiently..."
sleep 1
else
echo "java-tron killed successfully!"
break
fi
done
当 java-tron 进程成功关闭后,您可以使用以下命令进行数据备份:
tar cvzf output-directory.`date "+%Y%m%d%H%M%S"`.etgz output-directory
恢复节点数据¶
恢复数据非常简单,只需将备份的数据复制到节点的数据目录下即可。
如果您的数据库备份文件名为 output-directory.20220628152402.etgz,您可以使用以下命令来恢复数据库文件:
tar xzvf output-directory.20220628152402.etgz
使用公共备份数据(数据快照)¶
对于主网和 Nile 测试网,由于新节点启动时需要同步的数据量巨大,这会导致同步过程耗时较长。为了方便开发者快速部署节点,TRON 社区会定期提供 数据快照。
数据快照是 TRON 网络节点在某个特定时刻的数据库备份压缩文件。开发者可以通过下载并使用数据快照来显著加快节点的同步过程。
主网数据快照¶
FullNode 数据快照¶
下表列出了 FullNode 数据快照的下载地址。请根据您所在的地理位置、节点数据库类型以及是否需要查询历史内部交易等需求,选择最适合的数据快照。
| FullNode 节点数据源 | 下载地址 | 说明 |
|---|---|---|
| 官方数据源 (美洲: 美国弗吉尼亚) | http://34.86.86.229/ | LevelDB 数据,不包含内部交易 |
| 官方数据源 (亚洲: 新加坡) | http://34.143.247.77/ | LevelDB 数据,不包含内部交易 |
| 官方数据源 (美洲: 美国) | http://35.197.17.205/ | RocksDB 数据,不包含内部交易 |
| 官方数据源 (亚洲: 新加坡) | http://35.247.128.170/ | LevelDB 数据,包含内部交易 |
| 官方数据源 (美洲: 美国弗吉尼亚) | http://34.48.6.163/ | LevelDB 数据,不包含内部交易,包含账户历史余额 |
注意:
- LevelDB 和 RocksDB 数据不允许混用。FullNode 的数据库类型通过配置文件中的
db.engine配置项指定,可选值为LEVELDB或ROCKSDB。 - 内部交易通过配置文件中的
vm.saveInternalTx或者vm.saveFeaturedInternalTx配置项开启/关闭。只有开启vm.saveInternalTx,才会保存内部交易,如果saveFeaturedInternalTx也同时开启,则会保存所有类型的内部交易,否则,只保存call、create、suicide交易。影响接口:gettransactioninfobyid - 账户历史余额通过配置文件中的
storage.balance.history.lookup配置项开启/关闭。影响接口:getaccountbalance
Lite FullNode 数据快照¶
TRON 网络从 GreatVoyage-V4.1.0 版本开始支持 Lite FullNode 类型的节点。相比于普通的 FullNode,Lite FullNode 拥有更小的数据库和更快的启动速度,因为它只需要状态数据和必要的历史数据即可启动。下表列出了 Lite FullNode 数据快照的下载地址。
| Lite FullNode 节点数据源 | 下载地址 | 说明 |
|---|---|---|
| 官方数据源 (亚洲: 新加坡) | http://34.143.247.77/ | LevelDB 数据 |
小提示: 如果您已经拥有 FullNode 的全量数据,可以使用 Lite FullNode 数据裁剪工具自行将 FullNode 数据裁剪为 Lite FullNode 数据。
Nile 测试网数据快照¶
关于 Nile 测试网数据快照的详细信息,请参照 官网。使用方法与主网数据快照相同。
数据快照的使用¶
数据快照的使用步骤如下:
- 根据自己需求下载相应压缩备份数据库。
- 解压备份数据库压缩包至
output-directory目录(或根据需求指定其他目标目录)。有关详细解压说明,请参见下方数据快照解压方式章节。 - 启动节点。节点默认读取
output-directory目录。如果您的数据解压到了其他目录,请在节点启动时添加-d参数并指定数据库目录名。
数据快照的解压方式¶
TRON 网络快照数据大小超过 2TB。我们推荐使用流式处理(边下载边解压),以节省磁盘空间。
方法 1:流式下载并解压(推荐,节省空间)
创建一个名为 download_snapshot.sh 的脚本文件,并写入以下内容:
#!/bin/bash
wget -q -O - SNAPSHOT_URL/FullNode_output-directory.tgz | tar -zxvf -
运行脚本:
bash download_snapshot.sh
此方法无需存储完整压缩包,直接解压至目标目录,显著减少磁盘占用。
方法 2:先下载后解压(需充足存储空间)
# 1. 下载完整快照文件
wget SNAPSHOT_URL/FullNode_output-directory.tgz
# 2. 解压文件
tar -zxvf FullNode_output-directory.tgz
此方法在解压时同时保留压缩包和解压后的文件,建议使用2个3TB的磁盘(3TB+ 压缩包 & 3TB+ 解压数据,解压后可释放一块磁盘,节省成本)。