본문으로 건너뛰기

풀노드 구축 방법

비트코인 코어나 노츠를 직접 설치하는 방법 외에 엄브렐이나 시타델 같은 패키지를 이용해 풀노드를 구성하는 방법도 있습니다. 아래는 기기별 설치 절차와 제가 사용한 오드로이드 구성 예시입니다.

아래의 2TB 권장은 구성 예시입니다. 블록 데이터는 계속 늘어나고, 가지치기 여부와 선택한 인덱스·앱에 따라 필요한 저장 공간이 달라집니다. 구축 전 Bitcoin Core의 저장 공간 안내와 사용할 앱의 요구사항을 확인하세요.

엄브렐 - x86 PC 기기

엄브렐 공식 x86 설치 안내에 따라 USB 설치 프로그램으로 부팅한 뒤 내부 저장 장치에 OS를 설치합니다.

1단계: 준비물 확인

  1. 하드웨어 요구사항:

    • x86 기반의 PC (노트북 또는 데스크톱)
    • OS와 노드 데이터를 저장할 내부 드라이브 또는 SSD (1TB 이상을 구성 예시로 사용하며 2TB 권장)
    • USB 메모리 (Umbrel OS 설치 용도, 16GB 이상)
    • 안정적인 인터넷 연결
  2. 소프트웨어 요구사항:

    • Umbrel OS x86 버전
    • 부팅 가능한 USB를 만드는 도구 (예: balenaEtcher, Rufus)

2단계: Umbrel OS 다운로드 및 USB에 플래시

  1. Umbrel 공식 웹사이트에서 x86 버전의 Umbrel OS를 다운로드합니다.
  2. balenaEtcher 또는 Rufus를 사용해 USB 메모리에 Umbrel OS를 플래시:
    • Etcher 실행 → Umbrel OS 이미지 선택 → USB 메모리 선택 → Flash 시작
  3. USB가 부팅 가능한 상태가 됩니다.

3단계: 설치 대상 드라이브 확인

  1. PC 내부의 설치 대상 드라이브를 확인합니다.
  2. OS 설치 과정에서 대상 드라이브가 덮어써지므로 필요한 자료를 먼저 백업합니다. 외장 드라이브를 연결하는 것만으로 노드 데이터 저장소가 지정되지는 않습니다.

4단계: PC 부팅 설정

  1. x86 PC에 USB 메모리를 연결합니다.
  2. x86 PC를 켜고 BIOS/UEFI 설정에 진입:
    • 일반적으로 부팅 중 F2, Del, 또는 F12 키를 누릅니다.
  3. 부팅 디바이스를 USB 메모리로 설정하고 저장 후 종료합니다.

5단계: Umbrel 설정

  1. USB 설치 프로그램으로 부팅한 뒤 설치할 내부 드라이브를 선택합니다. 설치가 끝나면 전원을 끄고 USB를 제거한 뒤 다시 켭니다.
  2. 브라우저에서 http://umbrel.local 또는 PC의 IP 주소를 입력합니다.
  3. 초기 설정 진행:
    • 사용자 이름 및 비밀번호 설정
    • 네트워크 설정 확인
  4. 초기 설정 후 비트코인 노드 앱을 설치하고 사용할 저장 공간을 확인합니다.
정보

풀노드가 도메인으로 접속되지 않는 경우 풀노드 설치 기기의 IP 주소를 찾아 내부IP를 브라우저에 입력하여 접속하면 됩니다. 자세한 방법은 풀노드 접속방법 문서를 참고하세요.

6단계: 비트코인 노드 동기화

  1. Umbrel 대시보드에서 동기화 상태를 확인합니다.
  2. 동기화가 완료될 때까지 기다립니다.
    • 인터넷 속도와 하드 드라이브 성능에 따라 며칠이 걸릴 수 있습니다.

엄브렐 - 라즈베리파이 5 기기

아래는 microSD에 OS를 설치하고 외장 SSD에 데이터를 저장하는 구성입니다. 공식 Pi 5 설치 안내에서 이 구성의 절차를 확인할 수 있습니다.

1단계: 준비물 확인

  1. 하드웨어 요구사항:

    • Raspberry Pi 5 (4GB RAM 이상 권장)
    • 최소 1TB 외장 하드 드라이브 또는 SSD / 2TB 권장
    • microSD 카드 (32GB 이상 권장)
    • 안정적인 인터넷 연결
    • Raspberry Pi 5용 USB-C 전원 어댑터
  2. 소프트웨어 요구사항:

    • Umbrel OS (Raspberry Pi 버전)
    • 부팅 가능한 microSD 카드 작성을 위한 소프트웨어 (예: balenaEtcher)

2단계: Umbrel OS 다운로드 및 설치

  1. Umbrel 공식 웹사이트에 접속합니다.
  2. Raspberry Pi용 Umbrel OS 이미지를 다운로드합니다.
  3. balenaEtcher를 사용해 Umbrel OS를 microSD 카드에 플래시:
    • Etcher 실행 → Umbrel OS 이미지 파일 선택 → microSD 카드 선택 → Flash 시작
  4. 플래시가 완료되면 microSD 카드를 Raspberry Pi에 삽입합니다.

3단계: 하드웨어 연결

  1. 외장 하드 드라이브 또는 SSD를 Raspberry Pi에 연결합니다.
  2. 이더넷 케이블로 라즈베리파이를 인터넷 라우터와 연결합니다.
  3. 전원 어댑터를 연결하여 Raspberry Pi를 켭니다.

4단계: Umbrel 초기화

  1. Raspberry Pi가 부팅되면, 브라우저에서 http://umbrel.local에 접속하거나, 라즈베리파이의 로컬 IP 주소를 입력합니다.
  2. 초기 설정 과정 진행:
    • 사용자 이름 및 비밀번호 설정
    • 네트워크 연결 확인
  3. 설정 후 비트코인 노드 앱을 설치하고 전체장부 동기화를 시작합니다.
정보

풀노드가 도메인으로 접속되지 않는 경우 풀노드 설치 기기의 IP 주소를 찾아 내부IP를 브라우저에 입력하여 접속하면 됩니다. 자세한 방법은 풀노드 접속방법 문서를 참고하세요.

시타델 - x86 PC 기기

시타델 공식 설치 안내는 Debian/Ubuntu에서의 설치, Umbrel에서의 마이그레이션, 실험적인 Docker+Sysbox 구성을 안내합니다. x86 PC에 설치하려면 선택한 방식이 지원하는 기종과 OS 버전, 요구사항을 먼저 확인하세요. 이 안내가 x86용 USB 설치 이미지의 제공을 뜻하지는 않습니다.

참고: Citadel 공식 웹사이트. 위 설치 안내 저장소는 2023년 10월 2일에 아카이브되었습니다.

시타델 - 라즈베리파이 5 기기

시타델 공식 설치 안내에 명시된 라즈베리파이 기종은 Raspberry Pi 4입니다. Pi 5에 설치하려면 사용할 배포물의 지원 기종과 버전을 먼저 확인해야 합니다. Pi 4용 안내를 Pi 5에 그대로 적용할 수 있다는 뜻은 아니며, 이 안내만으로 Pi 5에서 설치가 불가능하다고 단정할 수도 없습니다.

엄브렐 - 오드로이드 m1s

아래는 제가 오드로이드 m1s에서 사용한 도커 기반 엄브렐 구성입니다. 명령어를 중심으로 정리한 경험 기록이며, 특정 OS와 컨테이너 조합을 전제로 합니다. 명령에 쓰인 이미지는 dockur/umbrel 프로젝트의 배포물입니다.

1단계: 오드로이드 m1s 부팅

오드로이드 m1s를 부팅하면 총 3개의 OS 설치 옵션이 나옵니다. 이 중에서 우분투(Ubuntu) 20.04 Server 버전을 선택합니다. 선택 후 몇 분 정도 설치하고 재부팅하라고 합니다. 재부팅합니다.


2단계: ssh로 접속

재부팅 후에는 오드로이드 m1s 기기에 직접 연결하지 않고 ssh로 연결해서 사용하면 됩니다. 제가 사용한 이미지의 초기 계정은 ID odroid / PW odroid 입니다. 이 정보를 활용하여 ssh 연결합니다. 연결을 위한 IP 확인은 Angry IP Scanner를 사용하면 됩니다.

같은 IP에 접속한 적이 있다는 이유만으로 기록을 지울 필요는 없습니다. OS 재설치 등으로 호스트 키가 바뀐 경우, 접속 대상과 키 변경 이유를 확인한 뒤 기존 키 기록을 제거하고 다시 접속합니다. 아래 명령은 OpenSSH 설명에 나온 호스트 키 제거 옵션입니다.

ssh-keygen -R 192.168.1.x

3단계: 데스크톱 패키지 설치

제가 테스트한 구성에서는 아래 명령으로 데스크톱 패키지를 설치한 뒤 도커를 실행했습니다. 당시에는 22.04 버전 등으로 OS를 업그레이드하는 것보다 이 방법이 간편했습니다. 이 경험을 도커 실행에 데스크톱 환경이 항상 필요하다는 뜻으로 받아들이지는 마세요.

sudo apt update && sudo apt upgrade -y
sudo apt install -y ubuntu-desktop

설치가 완료되면 재부팅합니다.


4단계: 계정생성 및 권한 부여

재부팅 후 초기 ID/PW로 다시 ssh 접속한 후 내가 원하는 계정을 만든 후 어드민 계정 권한을 부여해야 합니다. 제가 구축대행할 때 사용하는 명령어 모음입니다. ID mybtc로 설정하는 경우입니다. mybtc가 아닌 다른 아이디를 사용하려면 원하는 것으로 바꾸세요.

sudo apt update && sudo apt upgrade -y
sudo adduser mybtc
sudo usermod -aG sudo mybtc
sudo su mybtc
cd ../mybtc
sudo apt update && sudo apt upgrade -y
sudo chown -R mybtc:mybtc /home/mybtc

5단계: ssd 마운트

제가 사용한 오드로이드 m1s에는 OS가 설치되는 64GB 자체 저장 장치가 있었습니다. 전체 블록을 보관하는 이 구성에서는 별도의 SSD(2TB 추천)를 포맷한 후 마운트합니다. 아래의 장치 경로는 예시입니다. 포맷 전에 실제 대상과 백업 여부를 확인하세요. //로 시작하는 두 줄은 설명이며 셸 명령이 아닙니다. UUID= 줄은 터미널에 실행하는 명령이 아니라 /etc/fstab에 기록할 내용입니다.

lsblk
sudo fdisk -l
sudo mkfs.ext4 /dev/nvme0n1
sudo mkdir /mnt/fullnode
cd ../../mnt/fullnode
sudo mount /dev/nvme0n1 /mnt/fullnode
// 언마운트는 sudo umount /dev/nvme0n1
sudo chown -R mybtc:mybtc /mnt/fullnode
sudo blkid
// ssd 장치의 디스크UUID를 찾아서 fstab에 등록하기 위한 과정 진행
sudo apt install nano
sudo nano /etc/fstab
UUID="디스크UUID" /mnt/fullnode ext4 defaults,auto,exec,rw 0 0
df -Th

이렇게 하면 마운트한 외장 ssd가 목록에 보입니다. 이제 설치하면 됩니다.


6단계: 도커 설치

도커 기반 엄브렐 구성을 위해 도커를 설치하고 활성화합니다.

sudo apt -y install fswatch jq rsync curl python3-semver python3-requests python3-yaml git
curl -fsSL https://get.docker.com | sh
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker

7단계: 엄브렐 설치

마지막으로 도커로 엄브렐을 설치합니다. 제가 이 명령어 1줄을 찾기 위해 몇 시간을 테스트했는지 모릅니다. 제가 사용한 구성에서는 재부팅 후에도 엄브렐 화면이 자동으로 실행됐습니다. 저도 아래의 명령어로 오드로이드 m1s 기기에서 풀노드를 돌리고 있고, 구축대행 시에도 이 명령어를 사용하고 있습니다.

sudo docker run -d --restart always -p 80:80 -v /mnt/fullnode:/data -v /var/run/docker.sock:/var/run/docker.sock --stop-timeout 60 --pid=host --privileged dockurr/umbrel

이렇게 구성해 오드로이드 m1s에서 엄브렐을 사용했습니다.


엄브렐 - 오드로이드 m1

오드로이드 m1에 도커를 사용하여 풀노드를 구축하는 방법도 있습니다. 아래는 SSD에 리눅스를 설치한 뒤 도커로 엄브렐을 실행한 구성입니다.

1단계: 오드로이드 m1 부팅

m1 본체와 모니터를 연결하고 전원을 공급하면 기기 자체 초기 화면이 나옵니다. 키보드 화살표로 위/아래 이동할 수 있고, 선택은 Enter키를 치면 됩니다. 화면에 있는 Exit to shell 메뉴로 이동하여 엔터키를 칩니다.

Exit to shell

커서가 깜빡입니다. 이곳에 키보드로 명령어를 입력하면 됩니다. 화면에 udhcpc 글자를 입력한 후 엔터를 칩니다.

udhcpc

그러면 다음과 같은 글자가 화면에 나오고 커서가 깜빡입니다. 화면에 netboot_default 글자를 입력합니다.

netboot_default

그러면 화면에는 별다른 변화가 없이 커서만 깜빡일 것입니다. exit 글자를 입력하고 엔터를 칩니다.

exit

그러면 네트워크에 연결하여 부팅 할 수 있는 OS 종류가 나옵니다. 여기서 원하는 버전의 우분투를 선택합니다. 키보드로 커서를 해당 위치로 이동한 뒤 엔터키를 누릅니다. 선택이 되어 부팅을 위한 준비가 바로 이루어지면 모니터 하단에 몇 가지 메시지가 떴다가 사라집니다.


2단계: 우분투 설치

잠시 기다리면 리눅스 설치 설정에 들어갑니다. 리눅스 설치는 어렵지 않습니다. 중간에 호스트 이름과 아이디 입력하는 부분만 잘 판단해서 진행하면 어렵지 않은 영어로 설치할 수 있습니다.

그리고 중간에 디스크 파티션을 설정하는 화면이 나오는데 [자동 - 디스크 전체 사용] 메뉴를 선택한 후 진행하면 SSD를 포맷한 후 우분투를 설치합니다.

여러 개의 파일을 네트워크로 다운로드한 후 설치합니다. 그리고 재부팅하라고 나옵니다. 부팅이 끝나면 화면에 로그인 화면이 나옵니다. 계정 아이디와 패스워드를 입력하면 끝납니다.


3단계: ssh로 접속

호스트를 fullnode, 계정을 mybtc라고 입력했을 때의 예시입니다.


4단계: 도커 설치

도커 기반 엄브렐 구성을 위해 도커를 설치하고 활성화합니다.

sudo apt -y install fswatch jq rsync curl python3-semver python3-requests python3-yaml git
curl -fsSL https://get.docker.com | sh
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker

5단계: 엄브렐 설치

마지막으로 도커로 엄브렐을 설치합니다. 제가 이 명령어 1줄을 찾기 위해 몇 시간을 테스트했는지 모릅니다. 제가 사용한 구성에서는 재부팅 후에도 엄브렐 화면이 자동으로 실행됐습니다. 저도 아래의 명령어로 오드로이드 m1 기기에서 풀노드를 돌리고 있고, 구축대행 시에도 이 명령어를 사용하고 있습니다.

sudo docker run -d --restart always -p 80:80 -v /home/mybtc:/data -v /var/run/docker.sock:/var/run/docker.sock --stop-timeout 60 --pid=host --privileged dockurr/umbrel

이제 오드로이드 m1 기기에 엄브렐이 구동됩니다.

링크 복사하기X에 공유페이스북에 공유쓰레드에 공유