本节将演示使用节点快照,快速同步节点。
快照提供者
节点快照由社区提供和管理。
你可以在这里 找到最新快照。以下将示例同步 提供的节点快照。
什么是节点快照?
快照是一种快速同步节点的方法,无需同步整条链的数据。如果没有快照,节点必须从创世区块开始,下载每个区块的数据,快照可以节省数天甚至数周的同步时间。
快照仍需要一定的时间同步,它们只是特定时间点的链上副本。请务必检查快照的时间戳,确保是最新快照,以便有效使用。
快照有哪些类型?
不同的客户端类型
在Berachain中,共识客户端和执行客户端均有快照。运行节点只需要共识客户端的快照,因为执行客户端可以从其对应的共识客户端重构链历史消息。但如果已有执行客户端快照,建议跳过重构步骤,以减少同步时间。
共识客户端快照
Beacon-Kit允许使用不同的数据库运行节点。默认数据库是pebbledb
,但也支持使用其他数据库 (可以通过初始化客户端实现, 文件中可以找到完整的数据库列表)。
执行客户端快照
快照大小和类型
快照一般包括以下两种类型:
导入节点快照
第 1 步:下载快照
根据所在地区和快照类型,从Berachain基金会快照列表中选择信标客户端快照。以下选项可供选择:
在快照文件夹中,信标快照在以下文件路径:
运行以下代码,下载快照:
复制 # $SNAPSHOT_URL example: https://storage.googleapis.com/bartio-snapshot/beacon/full/snapshot_beacond_full_20240913200045.tar.lz4
wget $SNAPSHOT_URL;
其中,$SNAPSHOT_URL
后所示链接,便是你选择的快照。
在快照文件夹中,执行客户端快照在以下文件路径:
第 2 步:验证快照 (可选操作)
根据checksum验证快照,确保下载的快照有效。Checksum是快照文件的哈希,用于验证快照的完整性。
Checksum文件由Berachain基金会提供,文件类型为.sha256
,将其添加至快照文件名末尾。例如,如果想获得上述快照文件的sha256sum,则文件名为https://storage.googleapis.com/bartio-snapshot/beacon/full/snapshot_beacond_full_20240913200045.tar.lz4.sha256
。
以下是下载并验证信标快照checksum的示例:
复制 # Download the checksum file
# $SNAPSHOT_URL example: https://storage.googleapis.com/bartio-snapshot/beacon/pruned/beacond-pruned-snapshot-202408292106.tar.lz4
wget $SNAPSHOT_URL.sha256;
# Verify the checksum
# The following command will check the hash against the snapshot file as long as the filename matches
# $SNAPSHOT_CHECKSUM_FILE example: beacond-pruned-snapshot-202408292106.tar.lz4.sha256
sha256sum -c $SNAPSHOT_CHECKSUM_FILE;
# [Expected Equivalent Output]:
# beacond-pruned-snapshot-202408292106.tar.lz4: OK
其中$SNAPSHOT_CHECKSUM_FILE
后所示内容,便是你下载的checksum文件名称。
警告 :快照文件文件名与checksum文件文件名务必相同,否则sha256sum
将无法验证快照。此外,快照文件及其checksum文件必须位于同一文件目录中。
第 3 步:导出快照
警告 :如果节点正在运行,在导出快照操作前,务必停止运行。否则,有可能导致数据损坏。
导出的快照文件和文件夹格式如下:
复制 # $EXTRACTED_SNAPSHOT_DIR example: /root/beacon-snapshot
tree $EXTRACTED_SNAPSHOT_DIR;
# [Expected Equivalent Output]:
# /root/beacon-snapshot
# ├── data
# ├── application.db
# │ ├── 000056.sst
# │ ├── ...
# │ ├── CURRENT
# │ ├── LOCK
# │ ├── MANIFEST-014039
# │ ├── MANIFEST-014065
# │ └── OPTIONS-014066
# ├── blockstore.db
# │ ├── 002506.sst
# │ ├── ...
# │ ├── CURRENT
# │ ├── LOCK
# │ ├── MANIFEST-047787
# │ ├── MANIFEST-047831
# │ └── OPTIONS-047832
# ├── deposits.db
# │ ├── 001142.log
# │ ├── ...
# │ ├── CURRENT
# │ ├── LOCK
# │ ├── MANIFEST-001125
# │ ├── MANIFEST-001131
# │ └── OPTIONS-001132
# ├── evidence.db
# │ ├── 000075.sst
# │ ├── 000076.sst
# │ ├── 000077.log
# │ ├── CURRENT
# │ ├── LOCK
# │ ├── MANIFEST-000073
# │ ├── MANIFEST-000078
# │ └── OPTIONS-000079
# ├── priv_validator_state.json
# ├── state.db
# ├── 001750.sst
# ├── ...
# ├── CURRENT
# ├── LOCK
# ├── MANIFEST-008554
# ├── MANIFEST-008576
# └── OPTIONS-008577
#
# 13 directories, 4804 files
首先,运行以下代码,提取Beacon-Kit快照。
复制 # Ensure that you have `lz4` installed on your system
# $BEACOND_SNAPSHOT_FILE example: beacond-pruned-snapshot-202408292106.tar.lz4
# $BEACOND_HOME example: /root/.beacond/
lz4 -d $BEACOND_SNAPSHOT_FILE | tar -xvf - --strip-components=2 -C $BEACOND_HOME;
检查上述代码,$BEACOND_SNAPSHOT_FILE
后所示内容,应指向已下载的信标快照文件名;$BEACOND_HOME
后所示内容,应指向信标快照文件配置目录。
操作步骤取决于使用的执行客户端类型,但总体流程相同。
例如,如果你正在使用geth
客户端,则会出现以下类似代码:
复制 # $GETH_SNAPSHOT_FILE example: geth-pruned-snapshot-202408292106.tar.lz4
# $GETH_DATA_DIR example: /root/.ethereum/data/geth
lz4 -c -d $GETH_SNAPSHOT_FILE | tar -x -C $GETH_DATA_DIR;
检查上述代码,$GETH_SNAPSHOT_FILE
后所示内容,应指向已下载的geth快照文件名;$GETH_DATA_DIR
后所示内容,应指向geth快照文件配置目录。
第 4 步:启动节点
现在,你可以重启节点了!运行相应的代码、systemd服务或其他自定义配置,重启信标节点和执行客户端。