Skip to main content

Sui 归档

Sui 归档是 Sui 上所有交易数据的历史记录,延迟到最新检查点的后面 10 分钟。作为 Sui 节点操作员,你可以将这个历史记录写入对象存储,如 S3、GCS 或类似的存储,以便妥善保存。保存此归档数据被认为是最佳实践,因为 Sui 会删除全节点上的历史交易及其影响。例如,对等节点如果落后当前纪元超过最新几个纪元,可能无法通过同步来追赶所有交易和影响。对等节点可以通过从归档下载此信息而不是依赖同步来进行回退。

Sui 归档节点(将数据写入归档的全节点)不在本地存储中存储历史状态,也不帮助查询历史数据。它们的目的是使对等节点能够追赶到最新检查点,并且对于审计和验证网络上所有交易的完整历史记录非常有用。

创建一个归档节点

要开始将交易历史记录保存为归档,你需要修改节点配置。打开你的 fullnode.yaml 文件并添加以下配置。默认情况下,fullnode.yaml 文件位于你的 ~/.sui/sui_config 目录中。

state-archive-write-config:
object-store-config:
object-store: "S3"
bucket: "<bucket_name>"
aws-access-key-id: "<AWS_ACCESS_KEY_ID>"
aws-secret-access-key: "<AWS_SECRET_ACCESS_KEY>"
aws-region: "<aws_region>"
object-store-connection-limit: 20
concurrency: 5
use-for-pruning-watermark: false
state-archive-read-config:
- object-store-config:
object-store: "S3"
# Use the same bucket which is being used in `state-archive-write-config`
bucket: "<bucket_name>"
aws-access-key-id: "<AWS_ACCESS_KEY_ID>"
aws-secret-access-key: "<AWS_SECRET_ACCESS_KEY>"
aws-region: "<aws_region>"
object-store-connection-limit: 20
concurrency: 5
# This should be set to true in this case. Setting this to true
# would prevent pruning of local transaction data until it is archived
# in the bucket
use-for-pruning-watermark: true

设置归档回退

为了在出现滞后的情况下使你的节点能够回退到档案,将以下内容添加到你的 fullnode.yaml 文件中:

state-archive-read-config:
- object-store-config:
object-store: "S3"
# Use mysten-testnet-archives for testnet
# Use mysten-mainnet-archives for mainnet
bucket: "mysten-<testnet|mainnet>-archives"
# Use your AWS account access key id
aws-access-key-id: "<AWS-ACCESS-KEY-ID>"
# Use your AWS account secret access key
aws-secret-access-key: "<AWS-SECRET-ACCESS-KEY>"
aws-region: "<AWS-REGION>"
object-store-connection-limit: 20
# How many objects to read ahead when catching up
concurrency: 5
# Whether to prune local state based on latest checkpoint in archive.
# This should stay false for most use cases
use-for-pruning-watermark: false