
이 글은 eCash 풀노드(Bitcoin ABC) 를 VPS(클라우드 서버)에 설치하고, Avalanche 스테이킹(Stake Proof) 을 활성화해서 Avalanche 노드로 운영하는 방법을 처음부터 끝까지 안내합니다.
초보자도 그대로 따라 할 수 있도록 “명령어 → 설명 → 확인 방법” 순서로 구성했습니다.
✅ 중요한 전제
- eCash의 Avalanche 스테이킹은 “코인을 노드로 옮겨 예치하는 방식”이 아니라, 내 지갑의 UTXO를 증명(Proof)으로 묶어 노드에 연결하는 방식입니다. (Proof가 Sybil 저항 역할)
- 스테이킹 리워드는 2023-11-15 네트워크 업그레이드 이후 활성화되어 있습니다.
- 노드는 항상 최신 메이저 버전(현재 0.32.x) 을 유지해야 합니다(업그레이드 안내 포함).
목차
- 준비물 체크리스트
- 설치 방식 선택: (A) 추가 디스크(볼륨) 마운트 / (B) 루트 디스크만 사용
- 공통 설치 단계 (유저/방화벽/노드 설치)
- 동기화(IBD) 확인
- Stake Proof 만들기 (Electrum ABC)
- Avalanche(스테이킹) 활성화
- 운영/모니터링 명령어
- 업데이트(버전 업) 방법
- 자주 터지는 문제(트러블슈팅)
1) 준비물 체크리스트
서버(VPS)
- Ubuntu 22.04
- 추천 사양: CPU 4코어+, RAM 8GB+ (16GB면 여유)
- 디스크:
- 가장 안전: 추가 볼륨(SSD) 300GB~400GB 권장
- 루트 디스크만 쓸 경우: 용량이 작으면 prune(블록 삭제 모드) 고려(아래에 안내)
지갑(스테이킹용)
- Electrum ABC(Proof Editor 포함) — Proof 생성에 필요
- 스테이킹에 넣을 코인(UTXO) 조건(중요!)
- Proof당 최대 1000 UTXO
- UTXO 1개당 100 MegXEC(=100,000,000 XEC) 이상
- 컨펌 2016+(최근 2주간 안 움직인 코인)
- P2PKH만 가능, P2SH(멀티시그 등)는 불가
Putty
- 개인PC에 설치
- 리눅스 콘솔 접속
- 리눅스 서버 키페어(공개키/비밀키) 생성
- 다운로드 링크: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
2) 설치 방식 선택 (중요: 디스크)
아래 둘 중 하나를 선택해.
(A) 추가 디스크(Hetzner Volume 등)를 마운트해서 데이터 저장 (추천)
- 장점: 루트 디스크 꽉 차서 노드 죽는 문제를 거의 방지
- Hetzner는 Volume을
automatic으로 붙이면/mnt/HC_Volume_<id>로 자동 포맷/마운트될 수 있음
(B) 루트 디스크(/)에 바로 저장
- 장점: 단순함
- 단점: 용량 부족 시 “Disk space is too low!”로 노드가 멈출 수 있음
- 용량이 작다면 prune 고려 (블록을 오래된 것부터 삭제해서 디스크 절약)
3) 디스크 준비 단계 (A/B 중 택1)
A) 추가 디스크(Volume) 마운트 방식
A-1. 디스크 확인
lsblk -f
sudo blkid
df -h
- 예:
/dev/sdb가 ext4로 잡혀 있고/mnt/HC_Volume_...로 마운트돼 있으면 “이미 준비됨”.
A-2. (권장) 마운트 경로를 /data 로 고정
/mnt/HC_Volume_... 는 길고 불편하니 /data 로 옮기는 걸 추천.
- 현재 마운트 해제 후 /data로 마운트
sudo umount /mnt/HC_Volume_XXXXX # 너의 실제 경로로 변경
sudo mkdir -p /data
sudo mount /dev/sdb /data
df -h | grep /data
- 재부팅해도 자동 마운트되도록 fstab에 UUID 등록
sudo nano /etc/fstab
아래 한 줄 추가(예시는 UUID 자리만 네 것으로):
UUID=YOUR_UUID_HERE /data ext4 defaults,nofail,x-systemd.device-timeout=10 0 2
적용 테스트:
sudo mount -a
df -h | grep /data
UUID로 고정하는 이유: 장치명이 sdb→sdc로 바뀌어도 안전하게 마운트됨.
B) 루트 디스크만 쓰는 방식
추가 디스크 없이 루트(/)에 저장할 거면, 최소한 아래를 확인해줘.
- 루트 여유 공간 확인
df -h /
- “루트가 작다/불안하다”면 prune 고려
- prune는 “오래된 블록을 지워 디스크를 줄이는 모드”이고, 나중에 끄면 전체 재다운로드가 필요할 수 있어요.
4) 공통 설치 단계 (A/B 공통)
4-1. 노드 전용 유저 생성
sudo adduser xec
sudo usermod -aG sudo xec
이후부터는 가능하면 xec 유저로 작업:
su - xec
4-2. 필수 패키지 설치
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl wget jq ufw ca-certificates
4-3. 방화벽(UFW) 설정
- SSH(22) 는 열어두고
- 노드 P2P 포트는 기본 8333 (incoming 연결을 받는 게 중요)
sudo ufw allow OpenSSH
sudo ufw allow 8333/tcp
sudo ufw --force enable
sudo ufw status
Avalanche는 “노드가 네트워크에 잘 연결되어 있어야” 제대로 동작합니다.
incoming 연결을 받도록 방화벽/네트워크를 꼭 점검하라고 공식 튜토리얼에서도 강조합니다.
5) Bitcoin ABC(eCash 노드) 설치 (최신 버전 기준)
현재 최신 릴리스는 Bitcoin ABC 0.32.7 입니다.
5-1. 다운로드/압축해제
cd /tmp
VER=0.32.7
wget https://download.bitcoinabc.org/${VER}/linux/bitcoin-abc-${VER}-x86_64-linux-gnu.tar.gz
tar xzf bitcoin-abc-${VER}-x86_64-linux-gnu.tar.gz
5-2. /opt로 이동 + 심볼릭 링크(업데이트 편하게)
sudo mkdir -p /opt
sudo mv bitcoin-abc-${VER} /opt/
sudo ln -sfn /opt/bitcoin-abc-${VER} /opt/bitcoin-abc
sudo ln -sfn /opt/bitcoin-abc/bin/bitcoind /usr/local/bin/bitcoind
sudo ln -sfn /opt/bitcoin-abc/bin/bitcoin-cli /usr/local/bin/bitcoin-cli
bitcoind --version
6) 데이터 디렉토리(datadir) 준비 (A/B에 따라 다름)
A) 추가 디스크(/data)에 저장 (추천)
sudo mkdir -p /data/bitcoinabc
sudo chown -R xec:xec /data/bitcoinabc
sudo chmod 700 /data/bitcoinabc
B) 루트 디스크에 저장
sudo mkdir -p /var/lib/bitcoinabc
sudo chown -R xec:xec /var/lib/bitcoinabc
sudo chmod 700 /var/lib/bitcoinabc
7) 설정 파일(bitcoin.conf) 만들기
공통: 기본 설정 템플릿
아래에서 DATADIR만 A/B에 맞게 바꿔 넣을 거예요.
- A(추가디스크):
/data/bitcoinabc - B(루트):
/var/lib/bitcoinabc
sudo -iu xec
DATADIR="/data/bitcoinabc" # B면 /var/lib/bitcoinabc 로 변경
nano ${DATADIR}/bitcoin.conf
내용 예시:
server=1
listen=1
# 성능(16GB RAM이면 4096 정도 무난)
dbcache=4096
# (루트 디스크가 작으면 아래 prune 고려 - 선택)
# prune=55000
prune 옵션 설명: 디스크를 줄이지만, 나중에 되돌리면 전체 체인을 다시 받아야 할 수 있습니다.
8) systemd 서비스로 실행(강력 추천)
8-1. 서비스 파일 생성(root로)
exit # xec -> root로 복귀
sudo nano /etc/systemd/system/bitcoinabc.service
아래에서 DATADIR만 A/B에 맞게 선택:
[Unit]
Description=Bitcoin ABC (eCash) Node
After=network-online.target
Wants=network-online.target
[Service]
User=xec
Group=xec
Type=simple
# A: /data/bitcoinabc
# B: /var/lib/bitcoinabc
ExecStart=/usr/local/bin/bitcoind -datadir=DATADIR
ExecStop=/usr/local/bin/bitcoin-cli -datadir=DATADIR stop
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
예) A라면:
DATADIR→/data/bitcoinabc로 바꿔서 저장
8-2. 실행
sudo systemctl daemon-reload
sudo systemctl enable --now bitcoinabc
sudo systemctl status bitcoinabc --no-pager
로그 보기:
sudo journalctl -u bitcoinabc -f
9) 초기 동기화(IBD) 확인
동기화 상태 확인:
sudo -iu xec
bitcoin-cli -datadir=/data/bitcoinabc getblockchaininfo # A 예시
blocks와headers값이 같아지고,- 최신 체인 끝(tip)에 도달하면 완료.
10) Stake Proof 만들기 (Electrum ABC)
이 단계는 서버가 아니라 내 PC(윈도우/맥) 에서 진행하는 게 일반적입니다.
공식 튜토리얼의 핵심은 “3단계”입니다.
- Proof 지갑에서 skeleton proof 생성
- 코인 보관 지갑에서 staking할 UTXO를 proof에 추가
- 다시 Proof 지갑에서 Proof Master Key로 서명 완료
10-1. 스테이킹 UTXO 조건 다시 확인(중요)
- UTXO 당 100,000,000 XEC 이상
- 2016+ confirmations
- P2PKH만 가능(P2SH 불가)
10-2. Proof 생성 후 최종적으로 얻는 2개 값
avaproof(hex)avamasterkey(WIF)
11) Avalanche(스테이킹) 활성화
공식 튜토리얼은 bitcoin.conf에 아래를 추가하라고 안내합니다.
11-1. (가장 단순한 방법) bitcoin.conf에 직접 추가
A 기준 예시:
sudo -iu xec
nano /data/bitcoinabc/bitcoin.conf
맨 아래에 추가:
avalanche=1
debug=avalanche
# Proof dependent parameters
avaproof=여기에_당신의_hex_proof
avamasterkey=여기에_당신의_WIF_master_key
debug=avalanche는 필수는 아니지만 로그에서 Avalanche 메시지를 보기 좋아서 추천된 옵션입니다.
노드 재시작:
sudo systemctl restart bitcoinabc
sudo journalctl -u bitcoinabc -f
12) Avalanche 동작 확인(모니터링)
sudo -iu xec
bitcoin-cli -datadir=/data/bitcoinabc getavalancheinfo
bitcoin-cli -datadir=/data/bitcoinabc getavalanchepeerinfo
그리고 공식 튜토리얼에서 강조하는 “잘 연결된 노드” 체크:
- incoming 연결 받기(방화벽/보안그룹 확인)
- 브릿지 노드 뒤에 숨기지 않기
maxconnections같은 제한 옵션은 가급적 두지 않기- 높은 uptime 유지
13) 업데이트(버전 업) 방법
eCash는 네트워크 업그레이드가 주기적으로 있고, 노드는 최신 메이저 버전 유지가 필수입니다.
업그레이드 기본 흐름(공식 페이지 예시에도 동일):
- 노드 중지 → 2) 새 버전 다운로드/압축해제 → 3) 새 버전으로 실행
systemd 사용 중이면:
sudo systemctl stop bitcoinabc
# 새 버전 설치(/opt 교체)
sudo systemctl start bitcoinabc
14) 트러블슈팅(초보자들이 가장 자주 겪는 것)
1) “Disk space is too low!”
- 원인 90%: datadir이 루트(/)에 잡혀서 꽉 참
- 해결:
- A라면
-datadir=/data/bitcoinabc가 서비스 파일에 들어있는지 확인 - 디스크 사용량 확인:
df -h sudo du -sh /data/bitcoinabc
- A라면
2) Avalanche가 “pending inbound connections” 느낌으로 안 살아남
- incoming 연결이 핵심인데, 8333이 막혀있을 때 흔함
- 해결:
ufw status에서 8333 열렸는지- Hetzner 방화벽/보안그룹이 있으면 거기도 8333 열기
- 공식 튜토리얼도 incoming 연결과 “well connected”를 강조
3) IBD가 너무 느림
- 초기 동기화는 CPU/디스크/네트워크에 영향을 받음
- NVMe/SSD + 충분한 RAM이 체감에 중요
dbcache(예: 4096)로 약간 개선 가능
마무리
이 가이드를 그대로 따라 하면,
- (A) 추가 디스크 마운트 방식 / (B) 루트 디스크 방식
둘 다 eCash 노드를 안정적으로 올릴 수 있고,
Stake Proof를 연결해 Avalanche 스테이킹 노드로 운영할 수 있습니다.