
0) 사양/디스크 권장
- OS: Ubuntu 22.04
- 권장: 6 vCPU / 16GB RAM / SSD 넉넉히(1TB급 권장)
- 디스크는 2가지 방식 중 선택:
- A안: 루트 디스크에 그대로 설치(간단, 용량 부족 리스크)
- B안: 추가 SSD 볼륨을
/data로 마운트해서 거기에 체인데이터 저장(운영자 강추)
1) 서버 기본 보안/준비(공통)
1-1. 업데이트 & 필수 패키지
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl wget nano ufw fail2ban ca-certificates
1-2. (권장) 전용 유저 만들기
sudo adduser xec
sudo usermod -aG sudo xec
이후부터는:
ssh xec@서버IP
2) 디스크 구성 (A안 / B안)
A안) 루트 디스크 사용
- 데이터 디렉토리:
/var/lib/bitcoinabc로 잡고 진행
아래만 설정:
export DATADIR=/var/lib/bitcoinabc
B안) 추가 SSD 볼륨을 /data로 마운트 (Hetzner에서 흔한 구성)
네가 보여준 것처럼
/dev/sdb가 이미 ext4 + UUID가 있으면 재포맷 없이 UUID로 마운트만 하면 됨.
- 디스크/UUID 확인
lsblk -f
sudo blkid
- 마운트 포인트 만들기
sudo mkdir -p /data
- 지금
/mnt/HC_Volume_...등에 자동 마운트돼 있으면 해제
mount | grep sdb
sudo umount /mnt/HC_Volume_*
- UUID로
/data에 마운트
sudo mount /dev/disk/by-uuid/<여기에-sdb-UUID> /data
df -h /data
- 재부팅 후에도 자동 마운트(
/etc/fstab)
sudo nano /etc/fstab
맨 아래 추가:
UUID=<여기에-sdb-UUID> /data ext4 defaults,nofail,x-systemd.device-timeout=10 0 2
테스트:
sudo mount -a
df -h /data
그리고 데이터 디렉토리:
export DATADIR=/data/bitcoinabc
참고:
/data를 터미널에 그냥 치면 “디렉토리다”라고 뜨는 건 정상(명령이 아니라 폴더라서). 이동은cd /data.
3) Bitcoin ABC(=eCash 풀노드) 최신 버전 설치
3-1. 최신 버전 확인
현재 최신은 0.32.7로 공지되어 있고, 0.32.x는 네트워크 업그레이드 대응에 중요함.
3-2. 다운로드 & 설치
export ABC_VER=0.32.7
cd /tmp
curl -fL -o bitcoin-abc.tar.gz "https://download.bitcoinabc.org/${ABC_VER}/linux/bitcoin-abc-${ABC_VER}-x86_64-linux-gnu.tar.gz"
sudo mkdir -p /opt/bitcoinabc/${ABC_VER}
sudo tar -xzf bitcoin-abc.tar.gz -C /opt/bitcoinabc/${ABC_VER} --strip-components=1
# 편하게 쓰려고 심링크
sudo ln -sf /opt/bitcoinabc/${ABC_VER}/bin/bitcoind /usr/local/bin/bitcoind
sudo ln -sf /opt/bitcoinabc/${ABC_VER}/bin/bitcoin-cli /usr/local/bin/bitcoin-cli
bitcoind --version
4) 노드 데이터 디렉토리 & 설정 파일
4-1. 데이터 디렉토리 만들기/권한
sudo adduser --system --home /nonexistent --no-create-home --group bitcoinabc
sudo mkdir -p "$DATADIR"
sudo chown -R bitcoinabc:bitcoinabc "$DATADIR"
sudo chmod 750 "$DATADIR"
4-2. bitcoin.conf 생성
sudo nano "$DATADIR/bitcoin.conf"
기본(운영자 권장값):
# 기본
server=1
listen=1
# 로그
debuglogfile=debug.log
# IBD/운영 성능 (16GB RAM 기준 예시)
dbcache=4096
dbcache같은 옵션은 서버 사양 따라 조정(너무 높이면 메모리 압박).
5) systemd로 24/7 상시 운영
5-1. 서비스 파일
sudo nano /etc/systemd/system/bitcoinabc@.service
내용:
[Unit]
Description=Bitcoin ABC (eCash) full node
After=network-online.target
Wants=network-online.target
[Service]
User=bitcoinabc
Group=bitcoinabc
Type=simple
ExecStart=/usr/local/bin/bitcoind -datadir=%i -conf=%i/bitcoin.conf
ExecStop=/usr/local/bin/bitcoin-cli -datadir=%i stop
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
5-2. 실행
sudo systemctl daemon-reload
sudo systemctl enable --now bitcoinabc@"$DATADIR"
sudo systemctl status bitcoinabc@"$DATADIR" --no-pager
로그:
sudo journalctl -u bitcoinabc@"$DATADIR" -f
6) 네트워크/포트: 8333 인바운드가 “운영자 생명줄”
Bitcoin ABC 계열 노드는 기본적으로 8333 포트(P2P) 를 사용하며, 인바운드가 막히면 네트워크 연결 품질이 떨어짐.
6-1. UFW 방화벽
sudo ufw allow 22/tcp
sudo ufw allow 8333/tcp
sudo ufw enable
sudo ufw status
6-2. Hetzner 방화벽도 확인
- Hetzner 콘솔(Cloud Firewall/Network)에서 TCP 8333 인바운드 허용 필요
- UFW만 열어도, 클라우드 방화벽이 막으면 인바운드 안 들어옴(운영자 흔한 함정)
7) IBD(동기화) 완료 확인
sudo -u bitcoinabc bitcoin-cli -datadir="$DATADIR" getblockchaininfo
blocks/headers가 따라잡히고initialblockdownload가false로 가면 거의 완료
디스크 체크:
df -h "$DATADIR"
sudo du -sh "$DATADIR"
8) (핵심) Delegation을 받아 Avalanche 노드로 운영하기
이 파트는 Bitcoin ABC의 Avalanche 튜토리얼(Delegation 포함) 흐름에 맞춘 운영자용 절차야.
8-1. 스테이커에게서 받을 3가지
스테이커가 Delegation을 만들어 주면 운영자는 아래 3개를 받는다.
avaproof(HEX)avadelegation(HEX)avamasterkey(WIF) — delegation 전용 키
다시 강조: 운영자는 니모닉/지갑 개인키/Proof master key 같은 “코인 스펜딩 가능 정보”를 받으면 안 됨.
운영자는 “Proof를 네트워크에 대표로 올려주는 역할”만 해야 안전한 구조가 유지돼.
8-2. 노드 중지
sudo systemctl stop bitcoinabc@"$DATADIR"
8-3. bitcoin.conf에 Avalanche + Delegation 설정 추가
sudo nano "$DATADIR/bitcoin.conf"
아래 추가:
# Avalanche ON
avalanche=1
debug=avalanche
# Delegated proof
avaproof=<스테이커가 준 HEX>
avadelegation=<스테이커가 준 HEX>
avamasterkey=<스테이커가 준 WIF (delegation용)>
권한 강화(추천):
sudo chown bitcoinabc:bitcoinabc "$DATADIR/bitcoin.conf"
sudo chmod 640 "$DATADIR/bitcoin.conf"
8-4. 노드 재시작
sudo systemctl start bitcoinabc@"$DATADIR"
sudo journalctl -u bitcoinabc@"$DATADIR" -f
8-5. Avalanche 상태 확인(RPC)
sudo -u bitcoinabc bitcoin-cli -datadir="$DATADIR" getavalancheinfo
sudo -u bitcoinabc bitcoin-cli -datadir="$DATADIR" getavalanchepeerinfo
- 피어가 붙고(연결성),
- proof 관련 카운트/상태가 정상으로 나오면 운영 OK
튜토리얼에서도 “검증 상태가 블록 생성/연결 상태에 따라 변동”될 수 있고, 인바운드 연결이 중요하다고 안내하는 흐름이 있음.
9) 운영 품질 체크리스트(운영자 관점)
9-1. “인바운드 연결”이 정말 중요
- 8333이 열려 있어야 하고(서버/클라우드 방화벽 모두)
- 너무 빡센 제한(예: 극단적으로 낮은 connection 제한)은 피하는 게 좋다
(튜토리얼에서도 연결 품질/인바운드 문제를 자주 언급)
9-2. 로그에서 확인할 것
sudo tail -n 200 "$DATADIR/debug.log"
avalanche관련 로그가 살아 있는지- 피어 연결/끊김이 반복되는지
10) 업데이트(버전업) 절차
eCash는 업그레이드 시점에 구버전 노드가 동기화에서 탈락할 수 있어, 운영자는 최신 릴리즈 유지가 사실상 필수.
업데이트 루틴:
- 중지
sudo systemctl stop bitcoinabc@"$DATADIR"
- 새 버전 다운로드 →
/opt/bitcoinabc/<NEW>에 설치 →/usr/local/bin심링크 교체 - 재시작
sudo systemctl start bitcoinabc@"$DATADIR"
11) 장애/자주 터지는 이슈
(1) /data 마운트가 안 됨
sudo mount -a실행 시 에러가 뜨면 fstab 문법/UUID 불일치가 대부분sudo blkid로 UUID 다시 확인해서 fstab와 1:1로 맞추기
(2) “피어가 잘 안 붙는 느낌 / 인바운드 0”
- UFW 8333 열었는지
- Hetzner 방화벽에서 8333 허용했는지
- 서버가 NAT/프록시 뒤에 있거나 인바운드가 막혔는지
(3) 디스크 부족
- 운영자면 웬만하면 B안(
/data)로 가는 게 정답 - 디스크 80% 넘기기 전에 증설/이전 계획 세우기