블록체인 기술의 발전과 함께 다양한 암호화폐 네트워크에 참여하는 방법에 대한 관심이 높아지고 있습니다. 오늘은 비트코인 SV(Bitcoin Satoshi Vision) 노드를 우분투 환경에서 설치하고 실행하는 방법과 함께, 큰 용량의 블록체인 데이터를 효율적으로 관리하는 방법까지 상세히 알아보겠습니다.
비트코인 SV란?
비트코인 SV는 2018년 비트코인 캐시(BCH)에서 하드포크된 암호화폐로, 사토시 나카모토의 원래 비전에 충실하다는 철학을 가지고 있습니다. 특히 큰 블록 크기를 지원하여 확장성 문제를 해결하는 데 중점을 두고 있으며, 이로 인해 전체 블록체인 데이터의 크기가 상당히 큽니다.
사전 요구사항
비트코인 SV 노드를 실행하기 전에 다음 요구사항을 확인해야 합니다:
- 우분투 서버 (20.04 LTS 또는 22.04 LTS 권장)
- 최소 500GB의 디스크 공간 (장기적으로는 1TB 이상 권장)
- 슈퍼유저(root) 권한 또는 sudo 접근 권한
- 안정적인 인터넷 연결
1. 시스템 업데이트 및 종속성 설치
모든 소프트웨어 설치와 마찬가지로, 최신 패키지로 시스템을 업데이트하는 것부터 시작합니다:
sudo apt update
sudo apt upgrade -y
그 다음, 비트코인 SV를 컴파일하는 데 필요한 다양한 라이브러리와 도구를 설치합니다:
sudo apt install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils libboost-all-dev libminiupnpc-dev libzmq3-dev libdb-dev libdb++-dev -y
2. 비트코인 SV 소스코드 다운로드 및 컴파일
GitHub에서 비트코인 SV 소스코드를 클론합니다:
git clone https://github.com/bitcoin-sv/bitcoin-sv.git
cd bitcoin-sv
소스코드를 컴파일하고 시스템에 설치합니다:
./autogen.sh
./configure
make
sudo make install
ARM 아키텍처(예: Apple Silicon Mac에서 Parallels를 통한 우분투 실행)에서 작업하는 경우, 컴파일 시간을 단축하기 위해 다음과 같이 병렬 처리를 활용할 수 있습니다:
make -j$(nproc)
3. 디스크 공간 관리: 대용량 데이터를 위한 파티션 생성
비트코인 SV의 블록체인 데이터는 현재 300-400GB 규모이며 지속적으로 증가하고 있습니다. 기본적으로 데이터는 홈 디렉토리의 .bitcoin
폴더에 저장되지만, 대부분의 경우 루트 파티션은 이러한 대용량 데이터를 저장하기에 충분하지 않습니다.
다음 단계를 통해 추가 디스크 공간을 확보하고 비트코인 데이터를 저장할 전용 파티션을 생성할 수 있습니다:
3.1 디스크 상태 확인
먼저 현재 디스크 사용 상황을 확인합니다:
df -h
sudo fdisk -l
3.2 새 파티션 생성
디스크에 미사용 공간이 있다면 새 파티션을 생성할 수 있습니다:
sudo fdisk /dev/sda
fdisk 인터페이스에서:
n
(새 파티션 생성)p
(주 파티션)- 파티션 번호를 선택 (기본값 사용)
- 첫 번째 섹터와 마지막 섹터 (기본값 사용)
w
(변경사항 저장 및 종료)
3.3 파티션 포맷 및 마운트
새 파티션을 포맷하고 마운트 포인트를 생성합니다:
sudo mkfs.ext4 /dev/sda3
sudo mkdir -p /mnt/bitcoin-data
sudo mount /dev/sda3 /mnt/bitcoin-data
3.4 권한 설정 및 자동 마운트 구성
사용자 권한을 설정하고 시스템 부팅 시 자동으로 마운트되도록 구성합니다:
sudo chown $USER:$USER /mnt/bitcoin-data
echo '/dev/sda3 /mnt/bitcoin-data ext4 defaults 0 2' | sudo tee -a /etc/fstab
4. 비트코인 SV 설정
이제 비트코인 SV 노드의 설정 파일을 생성합니다. 새로 생성한 파티션에 데이터 디렉토리를 만들고 설정 파일을 추가합니다:
mkdir -p /mnt/bitcoin-data/bitcoin
nano /mnt/bitcoin-data/bitcoin/bitcoin.conf
다음 내용을 설정 파일에 추가합니다:
server=1
rpcuser=yourusername # 실제 사용할 사용자 이름으로 변경
rpcpassword=yourpassword # 강력한 비밀번호로 변경
txindex=1
# 필수 합의 매개변수
excessiveblocksize=2000000000
maxstackmemoryusageconsensus=100000000
# 필수 정책 매개변수
minminingtxfee=0.00000500
# 데이터 디렉토리 설정 (필요한 경우)
datadir=/mnt/bitcoin-data/bitcoin
중요한 설정 매개변수에 대한 설명:
excessiveblocksize
: 최대 블록 크기를 2GB로 설정maxstackmemoryusageconsensus
: 스크립트 실행 시 스택 메모리 사용량 제한을 100MB로 설정minminingtxfee
: 최소 채굴 수수료를 0.00000500 BSV/KB로 설정
5. 비트코인 SV 노드 실행 및 모니터링
설정된 디렉토리에서 비트코인 SV 노드를 실행합니다:
bitcoind -daemon -datadir=/mnt/bitcoin-data/bitcoin
명령어 사용 편의를 위한 별칭을 설정할 수 있습니다:
echo "alias bsv-cli='bitcoin-cli -datadir=/mnt/bitcoin-data/bitcoin'" >> ~/.bashrc
echo "alias bsv-d='bitcoind -datadir=/mnt/bitcoin-data/bitcoin'" >> ~/.bashrc
source ~/.bashrc
노드가 제대로 실행되었는지 확인합니다:
bitcoin-cli -datadir=/mnt/bitcoin-data/bitcoin getinfo
블록체인 동기화 진행 상황을 모니터링하려면:
bitcoin-cli -datadir=/mnt/bitcoin-data/bitcoin getblockcount
실시간으로 디스크 사용량을 모니터링하는 간단한 스크립트:
while true; do du -sh /mnt/bitcoin-data/bitcoin/; sleep 60; done
6. 시스템 시작 시 자동 실행 설정
노드가 시스템 재부팅 후에도 자동으로 시작되도록 systemd 서비스 파일을 만들 수 있습니다:
sudo nano /etc/systemd/system/bitcoind.service
다음 내용을 추가합니다:
[Unit]
Description=Bitcoin SV daemon
After=network.target
[Service]
User=YOUR_USERNAME
Group=YOUR_GROUP
Type=forking
ExecStart=/usr/local/bin/bitcoind -daemon -datadir=/mnt/bitcoin-data/bitcoin
Restart=always
TimeoutStopSec=300
RestartSec=30
[Install]
WantedBy=multi-user.target
서비스를 활성화합니다:
sudo systemctl enable bitcoind
sudo systemctl start bitcoind
성능 최적화 팁
비트코인 SV 노드의 성능을 최적화하기 위한 몇 가지 추가 설정:
- dbcache 크기 증가: 사용 가능한 메모리가 충분하다면 데이터베이스 캐시 크기를 늘려 초기 블록 다운로드 속도를 높일 수 있습니다.
dbcache=4096 # 메모리가 8GB 이상인 경우
- maxconnections 제한: 네트워크 연결 수를 제한하여 대역폭 사용량을 조절할 수 있습니다.
maxconnections=50
- prune 모드 고려: 전체 블록체인을 저장할 공간이 없다면, 프루닝(pruning) 모드를 활성화할 수 있지만, 이 경우 완전한 노드 기능을 수행할 수 없게 됩니다.
prune=10000 # 약 10GB만 유지
결론
비트코인 SV 노드를 설치하고 실행하는 과정은 기술적 지식이 필요하지만, 단계별로 접근하면 충분히 가능합니다. 특히 대용량 블록체인 데이터를 효율적으로 관리하는 방법을 이해하는 것이 중요합니다. 적절한 디스크 공간 관리와 시스템 설정을 통해 안정적인 노드 운영이 가능해집니다.
비트코인 SV 노드를 운영함으로써 BSV 네트워크의 탈중앙화와 보안에 기여할 수 있으며, 개인적으로는 블록체인 기술에 대한 이해도를 높이고 실제 운영 경험을 쌓을 수 있는 좋은 기회가 될 것입니다.
답글 남기기