메인 콘텐츠로 건너뛰기
이 가이드는 다양한 플랫폼에서 Stable 노드를 설치하고 설정하는 방법에 대한 자세한 지침을 제공합니다.

사전 요구사항

설치를 시작하기 전에 다음 사항을 확인하세요:
  • 모든 시스템 요구사항을 충족했는지 확인
  • 서버에 대한 root 또는 sudo 액세스 권한
  • Linux 커맨드라인에 대한 기본 지식

설치 방법

플랫폼에 맞는 사전 컴파일된 바이너리를 사용하세요.

Linux AMD64

# Download the latest binary for AMD64 architecture
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/stabled-latest-linux-amd64-testnet.tar.gz

# Extract the archive
tar -xvzf stabled-0.8.1-testnet-linux-amd64.tar.gz

# Move binary to system path
sudo mv stabled /usr/bin/

# Verify installation
stabled version

Linux ARM64

# Download the binary for ARM64 architecture
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/stabled-latest-linux-arm64-testnet.tar.gz

# Extract and install
tar -xvzf stabled-0.8.1-testnet-linux-arm64.tar.gz
sudo mv stabled /usr/bin/

# Verify installation
stabled version

노드 초기화

바이너리를 설치한 후 노드를 초기화하세요:

단계 1: Moniker 설정

# Set your node's moniker (choose a unique name)
export MONIKER="your-node-name"

단계 2: 노드 초기화

# Initialize with the correct chain ID (see Testnet Information for current chain ID)
stabled init $MONIKER --chain-id stabletestnet_2201-1

# This creates the configuration directory at ~/.stabled/
참고: 체인 ID를 포함한 현재 네트워크 파라미터는 테스트넷 정보를 참조하세요

단계 3: Genesis 파일 다운로드

# Create backup of default genesis
mv ~/.stabled/config/genesis.json ~/.stabled/config/genesis.json.backup

# Download testnet genesis
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/stable_testnet_genesis.zip
unzip stable_testnet_genesis.zip

# Move genesis to config directory
cp genesis.json ~/.stabled/config/genesis.json

# Verify genesis checksum
sha256sum ~/.stabled/config/genesis.json
# Expected: 66afbb6e57e6faf019b3021de299125cddab61d433f28894db751252f5b8eaf2

단계 4: 노드 구성

구성 파일 다운로드

# Download optimized configuration
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/rpc_node_config.zip
unzip rpcnode_config.zip

# Backup original config
cp ~/.stabled/config/config.toml ~/.stabled/config/config.toml.backup

# Apply new configuration
cp config.toml ~/.stabled/config/config.toml

# Update moniker in config
sed -i "s/^moniker = \".*\"/moniker = \"$MONIKER\"/" ~/.stabled/config/config.toml

필수 구성 업데이트

~/.stabled/config/app.toml을 편집하세요:
# Enable JSON-RPC for EVM compatibility
[json-rpc]
enable = true
address = "0.0.0.0:8545"
ws-address = "0.0.0.0:8546"
allow-unprotected-txs = true
~/.stabled/config/config.toml을 편집하세요:
# P2P Configuration
[p2p]
# Maximum number of peers
max_num_inbound_peers = 50
max_num_outbound_peers = 30

# Persistent peers (add stable seed nodes)
persistent_peers = "5ed0f977a26ccf290e184e364fb04e268ef16430@37.187.147.27:26656,128accd3e8ee379bfdf54560c21345451c7048c7@37.187.147.22:26656"

# Enable peer exchange
pex = true

# RPC Configuration
[rpc]
# Listen address
laddr = "tcp://0.0.0.0:26657"

# Maximum number of simultaneous connections
max_open_connections = 900

# CORS settings (adjust for production)
cors_allowed_origins = ["*"]

Systemd 서비스 설정

자동 관리를 위한 systemd 서비스를 생성하세요:

단계 1: 서비스 파일 생성

sudo tee /etc/systemd/system/stabled.service > /dev/null <<EOF
[Unit]
Description=Stable Daemon Service
After=network-online.target

[Service]
User=$USER
ExecStart=/usr/bin/stabled start --chain-id stabletestnet_2201-1
Restart=always
RestartSec=3
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal
SyslogIdentifier=stabled

[Install]
WantedBy=multi-user.target
EOF

단계 2: 서비스 활성화 및 시작

# Reload systemd configuration
sudo systemctl daemon-reload

# Enable service to start on boot
sudo systemctl enable stabled

# Start the service
sudo systemctl start stabled

# Check service status
sudo systemctl status stabled

# View logs
sudo journalctl -u stabled -f

Cosmovisor 설정 (자동 업그레이드를 위한 권장 방법)

Cosmovisor는 체인 업그레이드를 자동으로 처리하는 프로세스 매니저입니다. 프로덕션 노드에 권장되는 설정입니다.

단계 1: Cosmovisor 설치

# Install Cosmovisor
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest

# Or download pre-built binary
wget https://github.com/cosmos/cosmos-sdk/releases/download/cosmovisor%2Fv1.7.0/cosmovisor-v1.7.0-linux-amd64.tar.gz
tar -xvzf cosmovisor-v1.7.0-linux-amd64.tar.gz
sudo mv cosmovisor /usr/bin/

# Verify installation
cosmovisor version

단계 2: 환경 변수 설정

# Add to ~/.bashrc or ~/.profile
echo "# Cosmovisor Configuration" >> ~/.bashrc
echo "export DAEMON_NAME=stabled" >> ~/.bashrc
echo "export DAEMON_HOME=$HOME/.stabled" >> ~/.bashrc
echo "export DAEMON_ALLOW_DOWNLOAD_BINARIES=true" >> ~/.bashrc
echo "export DAEMON_RESTART_AFTER_UPGRADE=true" >> ~/.bashrc
echo "export DAEMON_LOG_BUFFER_SIZE=512" >> ~/.bashrc
echo "export UNSAFE_SKIP_BACKUP=true" >> ~/.bashrc

# Load variables
source ~/.bashrc

단계 3: Cosmovisor 디렉토리 구조 설정

# Create cosmovisor directory structure
mkdir -p ~/.stabled/cosmovisor/genesis/bin
mkdir -p ~/.stabled/cosmovisor/upgrades

# Copy current binary to genesis
cp /usr/bin/stabled ~/.stabled/cosmovisor/genesis/bin/

# Create current symlink
ln -s ~/.stabled/cosmovisor/genesis ~/.stabled/cosmovisor/current

# Verify setup
ls -la ~/.stabled/cosmovisor/
cosmovisor run version

단계 4: 환경 변수 설정

# Set service name (default: stable)
export SERVICE_NAME=stable

단계 5: 서비스 파일 생성

sudo tee /etc/systemd/system/${SERVICE_NAME}.service > /dev/null <<EOF
[Unit]
Description=Cosmovisor daemon
After=network-online.target

[Service]
Environment="DAEMON_NAME=stabled"
Environment="DAEMON_HOME=$HOME/.stabled"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=true"
Environment="DAEMON_LOG_BUFFER_SIZE=512"
Environment="UNSAFE_SKIP_BACKUP=true"
User=$USER
ExecStart=$(which cosmovisor) run start --chain-id stabletestnet_2201-1
Restart=always
RestartSec=3
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal
SyslogIdentifier=${SERVICE_NAME}

[Install]
WantedBy=multi-user.target
EOF

단계 6: 서비스 활성화 및 시작

# Reload systemd
sudo systemctl daemon-reload

# Enable service
sudo systemctl enable ${SERVICE_NAME}

# Start the service
sudo systemctl start ${SERVICE_NAME}

# Check status
sudo systemctl status ${SERVICE_NAME}

# View logs
sudo journalctl -u ${SERVICE_NAME} -f

업그레이드 준비

체인 업그레이드가 공지되면:
# Example: Preparing for v0.8.0 upgrade
UPGRADE_NAME="v0.8.0"
mkdir -p ~/.stabled/cosmovisor/upgrades/$UPGRADE_NAME/bin

# Download new binary
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/v8/stabled-0.8.0-testnet-linux-amd64.tar.gz
tar -xvzf stabled-0.8.0-testnet-linux-amd64.tar.gz

# Place in upgrade directory
mv stabled ~/.stabled/cosmovisor/upgrades/$UPGRADE_NAME/bin/

# Verify the binary
~/.stabled/cosmovisor/upgrades/$UPGRADE_NAME/bin/stabled version

# Cosmovisor will automatically switch to this binary at the upgrade height

Cosmovisor 모니터링

# Check current binary version
cosmovisor run version

# View upgrade info
ls -la ~/.stabled/cosmovisor/upgrades/

# Check service logs for upgrade status
sudo journalctl -u ${SERVICE_NAME} | grep -i upgrade

# Monitor real-time logs during upgrade
sudo journalctl -u ${SERVICE_NAME} -f

수동 Systemd 서비스 설정 (대체 방법)

Cosmovisor를 사용하지 않으려면 표준 systemd 서비스를 생성할 수 있습니다:

단계 1: 환경 변수 설정

# Set service name (default: stable)
export SERVICE_NAME=stable

단계 2: 서비스 파일 생성

sudo tee /etc/systemd/system/${SERVICE_NAME}.service > /dev/null <<EOF
[Unit]
Description=Stable Daemon Service
After=network-online.target

[Service]
User=$USER
ExecStart=/usr/bin/stabled start --chain-id stabletestnet_2201-1
Restart=always
RestartSec=3
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal
SyslogIdentifier=${SERVICE_NAME}

[Install]
WantedBy=multi-user.target
EOF

단계 3: 서비스 활성화 및 시작

# Reload systemd configuration
sudo systemctl daemon-reload

# Enable service to start on boot
sudo systemctl enable ${SERVICE_NAME}

# Start the service
sudo systemctl start ${SERVICE_NAME}

# Check service status
sudo systemctl status ${SERVICE_NAME}

# View logs
sudo journalctl -u ${SERVICE_NAME} -f

동기화 옵션

빠른 동기화를 위해서는 다음을 확인하세요:
  • 아카이브 노드 스냅샷
  • Pruned 노드 스냅샷
자세한 내용은 스냅샷 및 동기화 가이드를 참조하세요.

설치 후 검증

노드 상태 확인

# Check if node is running
sudo systemctl status stabled

# Check sync status
curl -s localhost:26657/status | jq '.result.sync_info'

# Check connected peers
curl -s localhost:26657/net_info | jq '.result.n_peers'

# Check latest block
curl -s localhost:26657/status | jq '.result.sync_info.latest_block_height'

로그 모니터링

# Follow service logs
sudo journalctl -u stabled -f

# Check for errors
sudo journalctl -u stabled --since "1 hour ago" | grep -i error

# Check for peer connections
sudo journalctl -u stabled --since "10 minutes ago" | grep -i "peer"

다음 단계

  1. 노드 구성: 구성 가이드를 참조하세요
  2. 동기화 속도 향상: 스냅샷 및 동기화를 확인하세요
  3. 노드 모니터링: 모니터링을 설정하세요
  4. 커뮤니티: Discord에서 지원을 받으세요

문제 해결

설치 중 문제가 발생하면:
  • 문제 해결 가이드를 확인하세요
  • 시스템 요구사항이 충족되는지 확인하세요
  • 방화벽에서 포트가 차단되지 않았는지 확인하세요
  • 디스크 공간과 권한을 확인하세요
  • systemd 로그에서 오류를 검토하세요