노드 업그레이드
이 절차를 사용하여 노드별 구성 및 검증자 상태를 보존하면서 Stable 노드를 업그레이드합니다. 항상 네트워크의 기록 페이지에서 버전, 바이너리 및 활성화 높이를 가져오세요.
시작하기 전에
필요한 사항:
- 노드에 대한 셸 액세스 권한과 서비스 관리 권한.
- 활성 데이터 디렉터리 외부에 보호된 백업을 위한 충분한 디스크 공간.
- 배포에 대한 노드 홈, 서비스 이름 및 설치된 바이너리 경로.
- 메인넷 버전 기록 또는 테스트넷 버전 기록에서 릴리스 항목.
아래 예시는 다음 경로를 사용합니다. 배포에 맞게 변경하세요.
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 'Backup stored at %s\n' "$STABLED_BACKUP"백업이 /var/backups/stabled/pre-upgrade에 저장되었습니다.3. 릴리스 다운로드 및 검사
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 'Configuration staged at %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" || true비활성스테이징된 바이너리와 완료된 구성 파일을 설치합니다.
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 'Installed %s\n' "$STABLED_RELEASE"v1.8.0 설치됨v1.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}'활성
<v1.8.0 빌드 정보>
{
"catching_up": false,
"latest_block_height": "<현재 높이>"
}노드를 정상 작동으로 되돌리기 전에 서비스 로그에서 반복되는 패닉, 합의 실패 또는 구성 구문 분석 오류를 확인합니다.
Cosmovisor로 향후 업그레이드 자동화
Cosmovisor는 온체인 업그레이드 핸들러가 구성된 높이에 도달하면 바이너리를 전환할 수 있습니다. Cosmovisor 문서를 따르고 해당 거버넌스 제안의 업그레이드 이름을 사용하세요.
운영 정책이 구성된 소스를 명시적으로 신뢰하지 않는 한 자동 바이너리 다운로드를 비활성화된 상태로 유지하세요. 활성화 높이 전에 릴리스 바이너리를 스테이징하고 확인하세요.
릴리스별 지침이 있는 경우에만 롤백
새 프로세스가 업그레이드된 블록을 실행하기 전에 실패하면 서비스를 중지하고 오류를 검사하세요. 릴리스 노트에 롤백이 안전하다고 명시된 경우에만 이전 바이너리 및 구성을 복원하세요.
노드가 업그레이드된 블록을 실행했다면 네트워크 운영자와 복구를 조율하세요. 복구에는 릴리스별 바이너리 또는 합의된 높이의 신뢰할 수 있는 스냅샷이 필요할 수 있습니다.
다음으로 이동할 곳
- 네트워크 업그레이드: 각 프로토콜 릴리스의 호환성 및 운영자 영향을 식별합니다.
- 노드 모니터링: 업그레이드 후 동기화, 피어, 리소스 사용 및 서비스 상태를 확인합니다.
- 노드 문제 해결: 시작, 네트워킹, 합의 및 스토리지 실패를 진단합니다.

