본문으로 건너뛰기

풀노드 구축 방법

풀노드를 비트코인 코어 또는 노츠 패키지를 직접 설치한 경우가 아니라면 엄브렐, 시타델 중 하나를 선택하는 경우가 많습니다. 가장 보편적으로 사용하는 엄브렐과 엄브렐의 대안으로 부상 중인 시타델로 구축하는 방법을 설명하겠습니다.

엄브렐 - x86 PC 기기

1단계: 준비물 확인

  1. 하드웨어 요구사항:

    • x86 기반의 PC (노트북 또는 데스크톱)
    • 최소 1TB 이상의 외장 하드 드라이브 또는 SSD / 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에 연결합니다.
    • NTFS 또는 ext4 형식으로 포맷 권장.
  2. 외장 하드 드라이브가 블록체인 데이터 저장소로 사용됩니다.

4단계: PC 부팅 설정

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

5단계: Umbrel 설정

  1. x86 PC가 USB 메모리를 통해 부팅되면 Umbrel OS가 실행됩니다.
  2. 브라우저에서 http://umbrel.local 또는 PC의 IP 주소를 입력합니다.
  3. 초기 설정 진행:
    • 사용자 이름 및 비밀번호 설정
    • 네트워크 설정 확인
  4. 외장 하드 드라이브가 블록체인 데이터 저장소로 자동 감지됩니다.
정보

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

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

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

엄브렐 - 라즈베리파이 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. 이더넷 케이블로 라즈베리파이를 인터넷 라우터와 연결하거나 Wi-Fi를 설정합니다.
  3. 전원 어댑터를 연결하여 Raspberry Pi를 켭니다.

4단계: Umbrel 초기화

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

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

시타델 - x86 PC 기기

1단계: 준비물 확인

  1. 하드웨어 요구사항:

    • x86 기반의 PC (노트북 또는 데스크톱)
    • 최소 1TB 이상의 외장 하드 드라이브 또는 SSD / 2TB 권장
    • USB 메모리 (Citadel OS 설치용, 16GB 이상)
    • 안정적인 인터넷 연결
  2. 소프트웨어 요구사항:

    • Citadel OS x86 버전
    • 부팅 가능한 USB 작성을 위한 소프트웨어 (예: balenaEtcher, Rufus)

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

  1. Citadel 공식 웹사이트에서 x86 버전의 Citadel OS를 다운로드합니다.
  2. balenaEtcher 또는 Rufus를 사용해 USB 메모리에 Citadel OS를 플래시:
    • Citadel OS 이미지 파일 선택
    • USB 메모리 선택
    • Flash 클릭
  3. 완료 후 USB가 부팅 가능한 상태가 됩니다.

3단계: 외장 하드 드라이브 연결

  1. 외장 하드 드라이브 또는 SSD를 PC에 연결합니다.
  2. NTFS 또는 ext4 형식으로 포맷하여 블록체인 데이터를 저장할 준비를 합니다.

4단계: PC 부팅 설정

  1. USB 메모리를 PC에 연결합니다.
  2. PC의 BIOS/UEFI 설정에 진입:
    • 부팅 중 F2, Del, 또는 F12 키를 누릅니다.
  3. 부팅 우선순위를 USB로 설정한 후 저장하고 종료합니다.

5단계: Citadel 초기화

  1. PC가 USB를 통해 부팅되면 Citadel OS가 실행됩니다.
  2. 브라우저에서 http://citadel.local 또는 PC의 IP 주소를 입력합니다.
  3. 초기 설정을 완료합니다:
    • 사용자 이름 및 비밀번호 설정
    • 네트워크 연결 확인
  4. 외장 하드 드라이브가 블록체인 데이터 저장소로 자동 감지됩니다.
정보

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


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

  1. Citadel 대시보드에서 노드 동기화를 시작합니다.
  2. 인터넷 속도 및 하드웨어 성능에 따라 동기화에 며칠이 소요될 수 있습니다.

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

1단계: 준비물 확인

  1. 하드웨어 요구사항:

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

    • Citadel OS 이미지
    • 부팅 가능한 microSD 카드 작성을 위한 소프트웨어 (예: balenaEtcher)

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

  1. Citadel 공식 웹사이트에 접속하여 라즈베리파이용 Citadel OS를 다운로드합니다.
  2. balenaEtcher를 설치한 후 다음 단계를 수행:
    • Citadel OS 이미지 파일 선택
    • microSD 카드 선택
    • Flash 클릭
  3. 완료 후 microSD 카드를 Raspberry Pi에 삽입합니다.

3단계: 하드웨어 연결

  1. 외장 하드 드라이브 또는 SSD를 Raspberry Pi에 연결합니다.
  2. 네트워크 라우터와 라즈베리파이를 이더넷 케이블로 연결하거나 Wi-Fi를 설정합니다.
  3. Raspberry Pi 전원 케이블을 연결하고 부팅합니다.

4단계: Citadel 초기화

  1. 부팅 후 브라우저에서 http://citadel.local로 접속하거나 Raspberry Pi의 IP 주소를 입력합니다.
  2. 초기 설정 진행:
    • 사용자 이름 및 비밀번호 설정
    • 네트워크 연결 확인
  3. Citadel 대시보드가 나타나면 기본적인 설치가 완료됩니다.
정보

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


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

  1. Citadel 대시보드에서 비트코인 노드 동기화를 시작합니다.
  2. 동기화는 인터넷 속도와 저장 장치 성능에 따라 며칠이 소요될 수 있습니다.

엄브렐 - 오드로이드 m1s

도커를 사용하면 오드로이드 m1s에서도 엄브렐 최신 버전을 구축할 수 있습니다. 제가 사용하는 방법을 명령어 중심으로 정리합니다. 명령어가 많기 때문에 명령어에 대한 자세한 설명은 생략합니다.

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

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


2단계: ssh로 접속

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

만약 기존에 접속 IP에 ssh로 접속한 이력이 있다면 이력을 초기화한 후 다시 접속해야 합니다. 아래 명령어를 사용해서 초기화한 후 다시 ssh 접속합니다.

ssh-keygen -R 192.168.1.x

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

접속에 성공한 후에는 아래 명령어를 사용해서 데스크톱 패키지를 설치합니다. 오드로이드 m1s로 여러가지 테스트를 해 본 결과 도커를 설치한 후 실행하기 위해서는 데스크톱 패키지를 설치해야 하더군요. 아니면 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 추천)를 포맷한 후 마운트해야 합니다. 이와 관련한 명령어 모음입니다.

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에 도커를 사용하여 풀노드를 구축하는 방법도 있습니다. 오드로이드 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 기기에 엄브렐이 구동됩니다.