升级节点
使用此过程升级 Stable 节点,同时保留其节点特定的配置和验证器状态。始终从网络历史页面获取版本、二进制文件和激活高度。
开始之前
你需要:
- 对节点具有 shell 访问权限和管理其服务的权限。
- 有足够的磁盘空间用于活动数据目录之外的受保护备份。
- 你的部署的节点主目录、服务名称和已安装的二进制路径。
- 主网版本历史或测试网版本历史中的发布条目。
以下示例使用这些路径。将其更改为与你的部署匹配:
export STABLED_HOME="/var/lib/stabled"
export STABLED_SERVICE="stabled"
export STABLED_BIN="/usr/local/bin/stabled"
export STABLED_ARCH="amd64" # 在 ARM 主机上使用 arm64。无输出。1. 检查运行中的节点
在更改节点之前记录当前的构建和同步状态:
"$STABLED_BIN" version --long
curl -fsS http://localhost:26657/status \
| jq '{catching_up: .result.sync_info.catching_up, latest_block_height: .result.sync_info.latest_block_height}'<当前构建信息>
{
"catching_up": false,
"latest_block_height": "<当前高度>"
}在 catching_up 为 false 之前不要继续。
2. 备份身份和配置
保持验证器密钥和签名状态私有。将此备份存储在加密存储上,权限仅限于节点操作员。
export STABLED_BACKUP="/var/backups/stabled/pre-upgrade"
sudo install -d -m 0700 "$STABLED_BACKUP"
sudo cp -a "$STABLED_HOME/config" "$STABLED_BACKUP/config"
sudo cp -a "$STABLED_HOME/data/priv_validator_state.json" \
"$STABLED_BACKUP/priv_validator_state.json"
sudo cp -a "$STABLED_BIN" "$STABLED_BACKUP/stabled"
printf '备份存储在 %s\n' "$STABLED_BACKUP"备份存储在 /var/backups/stabled/pre-upgrade3. 下载并检查发布
Stable 主网在区块 36,976,000 激活了 v1.8.0。下载适用于你的主机架构的存档,并在安装前检查报告的构建:
export STABLED_RELEASE="v1.8.0"
export STABLED_ARCHIVE="/tmp/stabled-1.8.0-linux-${STABLED_ARCH}-mainnet.tar.gz"
export STABLED_STAGE="/tmp/stabled-v1.8.0"
curl -fL \
"https://stable-data-dist.s3.us-east-1.amazonaws.com/mainnet/binary/stabled-1.8.0-linux-${STABLED_ARCH}-mainnet.tar.gz" \
-o "$STABLED_ARCHIVE"
mkdir -p "$STABLED_STAGE"
tar -xzf "$STABLED_ARCHIVE" -C "$STABLED_STAGE"
"$STABLED_STAGE/stabled" version --long<v1.8.0 的构建信息>对于其他发布或测试网,从相应的版本历史表中复制确切的二进制 URL。
4. 准备 v1.8.0 配置
v1.8.0 向 config.toml 和 app.toml 添加了必需的设置。将主网模板下载到临时目录中:
export STABLED_CONFIG_STAGE="/tmp/stable-v1.8.0-config"
mkdir -p "$STABLED_CONFIG_STAGE"
curl -fL \
"https://stable-data-dist.s3.us-east-1.amazonaws.com/mainnet/configuration/v1.8.0/partners/config.toml" \
-o "$STABLED_CONFIG_STAGE/config.toml"
curl -fL \
"https://stable-data-dist.s3.us-east-1.amazonaws.com/mainnet/configuration/v1.8.0/partners/app.toml" \
-o "$STABLED_CONFIG_STAGE/app.toml"
printf '配置已暂存到 %s\n' "$STABLED_CONFIG_STAGE"配置已暂存到 /tmp/stable-v1.8.0-config从这些模板开始,然后从备份中恢复每个节点特定的值。至少检查:
moniker和external_address。- 持久对等节点、种子和私有对等节点设置。
- API、JSON-RPC、gRPC 和指标设置。
- 组织特定的超时和资源限制。
- 归档节点的修剪设置。
分发的 app.toml 使用默认修剪。修剪的历史记录无法从本地节点重建。v1.8.0 还强制关闭 inter-block-cache。
5. 停止节点并安装文件
对于协调的未来升级,请等到节点在发布的高度停止。v1.8.0 主网高度是历史的,因此可以在安装之前停止较旧的主网节点。
sudo systemctl stop "$STABLED_SERVICE"
systemctl is-active "$STABLED_SERVICE" || trueinactive安装暂存的二进制文件和完整的配置文件:
sudo install -m 0755 "$STABLED_STAGE/stabled" "$STABLED_BIN"
cp "$STABLED_CONFIG_STAGE/config.toml" "$STABLED_HOME/config/config.toml"
cp "$STABLED_CONFIG_STAGE/app.toml" "$STABLED_HOME/config/app.toml"
printf '已安装 %s\n' "$STABLED_RELEASE"已安装 v1.8.0v1.8.0 主网升级不需要状态导出、导入或快照重置。
6. 启动并验证节点
启动服务,验证已安装的构建,并确认节点恢复同步:
sudo systemctl start "$STABLED_SERVICE"
systemctl is-active "$STABLED_SERVICE"
"$STABLED_BIN" version --long
curl -fsS http://localhost:26657/status \
| jq '{catching_up: .result.sync_info.catching_up, latest_block_height: .result.sync_info.latest_block_height}'active
<v1.8.0 的构建信息>
{
"catching_up": false,
"latest_block_height": "<当前高度>"
}在将节点恢复正常操作之前,检查服务日志中是否存在重复的崩溃、共识失败或配置解析错误。
使用 Cosmovisor 自动化未来升级
当链上升级处理程序达到其配置的高度时,Cosmovisor 可以切换二进制文件。遵循 Cosmovisor 文档并使用适用治理提案中的升级名称。
除非你的操作策略明确信任配置的来源,否则请禁用自动二进制下载。在激活高度之前暂存并验证发布二进制文件。
仅根据发布特定说明回滚
如果新进程在执行升级块之前失败,请保持服务停止并检查错误。仅当发布说明说明回滚安全时才恢复以前的二进制文件和配置。
如果节点已执行升级块,请与网络操作员协调恢复。恢复可能需要特定于发布的二进制文件或在约定高度的受信任快照。

