풀노드 구축 방법
풀노드를 비트코인 코어 또는 노츠 패키지를 직접 설치한 경우가 아니라면 엄브렐, 시타델 중 하나를 선택하는 경우가 많습니다. 가장 보편적으로 사용하는 엄브렐과 엄브렐의 대안으로 부상 중인 시타델로 구축하는 방법을 설명하겠습니다.
엄브렐 - x86 PC 기기
1단계: 준비물 확인
-
하드웨어 요구사항:
- x86 기반의 PC (노트북 또는 데스크톱)
- 최소 1TB 이상의 외장 하드 드라이브 또는 SSD / 2TB 권장
- USB 메모리 (Umbrel OS 설치 용도, 16GB 이상)
- 안정적인 인터넷 연결
-
소프트웨어 요구사항:
- Umbrel OS x86 버전
- 부팅 가능한 USB를 만드는 도구 (예: balenaEtcher, Rufus)
2단계: Umbrel OS 다운로드 및 USB에 플래시
- Umbrel 공식 웹사이트에서 x86 버전의 Umbrel OS를 다운로드합니다.
- balenaEtcher 또는 Rufus를 사용해 USB 메모리에 Umbrel OS를 플래시:
- Etcher 실행 → Umbrel OS 이미지 선택 → USB 메모리 선택 → Flash 시작
- USB가 부팅 가능한 상태가 됩니다.
3단계: 외장 하드 드라이브 연결
- 외장 하드 드라이브를 PC에 연결합니다.
- NTFS 또는 ext4 형식으로 포맷 권장.
- 외장 하드 드라이브가 블록체인 데이터 저장소로 사용됩니다.
4단계: PC 부팅 설정
- x86 PC에 USB 메모리를 연결합니다.
- x86 PC를 켜고 BIOS/UEFI 설정에 진입:
- 일반적으로 부팅 중
F2
,Del
, 또는F12
키를 누릅니다.
- 일반적으로 부팅 중
- 부팅 디바이스를 USB 메모리로 설정하고 저장 후 종료합니다.
5단계: Umbrel 설정
- x86 PC가 USB 메모리를 통해 부팅되면 Umbrel OS가 실행됩니다.
- 브라우저에서
http://umbrel.local
또는 PC의 IP 주소를 입력합니다. - 초기 설정 진행:
- 사용자 이름 및 비밀번호 설정
- 네트워크 설정 확인
- 외장 하드 드라이브가 블록체인 데이터 저장소로 자동 감지됩니다.
풀노드가 도메인으로 접속되지 않는 경우 풀노드 설치 기기의 IP 주소를 찾아 내부IP를 브라우저에 입력하여 접속하면 됩니다. 자세한 방법은 풀노드 접속방법 문서를 참고하세요.
6단계: 비트코인 노드 동기화
- Umbrel 대시보드에서 동기화 상태를 확인합니다.
- 동기화가 완료될 때까지 기다립니다.
- 인터넷 속도와 하드 드라이브 성능에 따라 며칠이 걸릴 수 있습니다.
엄브렐 - 라즈베리파이 5 기기
1단계: 준비물 확인
-
하드웨어 요구사항:
- Raspberry Pi 5 (4GB RAM 이상 권장)
- 최소 1TB 외장 하드 드라이브 또는 SSD / 2TB 권장
- microSD 카드 (32GB 이상 권장)
- 안정적인 인터넷 연결
- Raspberry Pi 5용 USB-C 전원 어댑터
-
소프트웨어 요구사항:
- Umbrel OS (Raspberry Pi 버전)
- 부팅 가능한 microSD 카드 작성을 위한 소프트웨어 (예: balenaEtcher)
2단계: Umbrel OS 다운로드 및 설치
- Umbrel 공식 웹사이트에 접속합니다.
- Raspberry Pi용 Umbrel OS 이미지를 다운로드합니다.
- balenaEtcher를 사용해 Umbrel OS를 microSD 카드에 플래시:
- Etcher 실행 → Umbrel OS 이미지 파일 선택 → microSD 카드 선택 → Flash 시작
- 플래시가 완료되면 microSD 카드를 Raspberry Pi에 삽입합니다.
3단계: 하드웨어 연결
- 외장 하드 드라이브 또는 SSD를 Raspberry Pi에 연결합니다.
- 이더넷 케이블로 라즈베리파이를 인터넷 라우터와 연결하거나 Wi-Fi를 설정합니다.
- 전원 어댑터를 연결하여 Raspberry Pi를 켭니다.
4단계: Umbrel 초기화
- Raspberry Pi가 부팅되면, 브라우저에서
http://umbrel.local
에 접속하거나, 라즈베리파이의 로컬 IP 주소를 입력합니다. - 초기 설정 과정 진행:
- 사용자 이름 및 비밀번호 설정
- 네트워크 연결 확인
- 설정이 완료되면 비트코인 블록체인 동기화를 시작합니다.
풀노드가 도메인으로 접속되지 않는 경우 풀노드 설치 기기의 IP 주소를 찾아 내부IP를 브라우저에 입력하여 접속하면 됩니다. 자세한 방법은 풀노드 접속방법 문서를 참고하세요.
시타델 - x86 PC 기기
1단계: 준비물 확인
-
하드웨어 요구사항:
- x86 기반의 PC (노트북 또는 데스크톱)
- 최소 1TB 이상의 외장 하드 드라이브 또는 SSD / 2TB 권장
- USB 메모리 (Citadel OS 설치용, 16GB 이상)
- 안정적인 인터넷 연결
-
소프트웨어 요구사항:
- Citadel OS x86 버전
- 부팅 가능한 USB 작성을 위한 소프트웨어 (예: balenaEtcher, Rufus)
2단계: Citadel OS 다운로드 및 USB 플래시
- Citadel 공식 웹사이트에서 x86 버전의 Citadel OS를 다운로드합니다.
- balenaEtcher 또는 Rufus를 사용해 USB 메모리에 Citadel OS를 플래시:
- Citadel OS 이미지 파일 선택
- USB 메모리 선택
- Flash 클릭
- 완료 후 USB가 부팅 가능한 상태가 됩니다.
3단계: 외장 하드 드라이브 연결
- 외장 하드 드라이브 또는 SSD를 PC에 연결합니다.
- NTFS 또는 ext4 형식으로 포맷하여 블록체인 데이터를 저장할 준비를 합니다.
4단계: PC 부팅 설정
- USB 메모리를 PC에 연결합니다.
- PC의 BIOS/UEFI 설정에 진입:
- 부팅 중
F2
,Del
, 또는F12
키를 누릅니다.
- 부팅 중
- 부팅 우선순위를 USB로 설정한 후 저장하고 종료합니다.
5단계: Citadel 초기화
- PC가 USB를 통해 부팅되면 Citadel OS가 실행됩니다.
- 브라우저에서
http://citadel.local
또는 PC의 IP 주소를 입력합니다. - 초기 설정을 완료합니다:
- 사용자 이름 및 비밀번호 설정
- 네트워크 연결 확인
- 외장 하드 드라이브가 블록체인 데이터 저장소로 자동 감지됩니다.
풀노드가 도메인으로 접속되지 않는 경우 풀노드 설치 기기의 IP 주소를 찾아 내부IP를 브라우저에 입력하여 접속하면 됩니다. 자세한 방법은 풀노드 접속방법 문서를 참고하세요.
6단계: 비트코인 노드 동기화
- Citadel 대시보드에서 노드 동기화를 시작합니다.
- 인터넷 속도 및 하드웨어 성능에 따라 동기화에 며칠이 소요될 수 있습니다.
시타델 - 라즈베리파이 5 기기
1단계: 준비물 확인
-
하드웨어 요구사항:
- Raspberry Pi 5 (4GB RAM 이상 권장)
- 최소 1TB 외장 하드 드라이브 또는 SSD / 2TB 권장
- microSD 카드 (32GB 이상 권장)
- 안정적인 인터넷 연결
- Raspberry Pi 5용 USB-C 전원 어댑터
-
소프트웨어 요구사항:
- Citadel OS 이미지
- 부팅 가능한 microSD 카드 작성을 위한 소프트웨어 (예: balenaEtcher)
2단계: Citadel OS 다운로드 및 설치
- Citadel 공식 웹사이트에 접속하여 라즈베리파이용 Citadel OS를 다운로드합니다.
- balenaEtcher를 설치한 후 다음 단계를 수행:
- Citadel OS 이미지 파일 선택
- microSD 카드 선택
- Flash 클릭
- 완료 후 microSD 카드를 Raspberry Pi에 삽입합니다.
3단계: 하드웨어 연결
- 외장 하드 드라이브 또는 SSD를 Raspberry Pi에 연결합니다.
- 네트워크 라우터와 라즈베리파이를 이더넷 케이블로 연결하거나 Wi-Fi를 설정합니다.
- Raspberry Pi 전원 케이블을 연결하고 부팅합니다.
4단계: Citadel 초기화
- 부팅 후 브라우저에서
http://citadel.local
로 접속하거나 Raspberry Pi의 IP 주소를 입력합니다. - 초기 설정 진행:
- 사용자 이름 및 비밀번호 설정
- 네트워크 연결 확인
- Citadel 대시보드가 나타나면 기본적인 설치가 완료됩니다.
풀노드가 도메인으로 접속되지 않는 경우 풀노드 설치 기기의 IP 주소를 찾아 내부IP를 브라우저에 입력하여 접속하면 됩니다. 자세한 방법은 풀노드 접속방법 문서를 참고하세요.
5단계: 비트코인 노드 동기화
- Citadel 대시보드에서 비트코인 노드 동기화를 시작합니다.
- 동기화는 인터넷 속도와 저장 장치 성능에 따라 며칠이 소요될 수 있습니다.
엄브렐 - 오드로이드 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 기기에 엄브렐이 구동됩니다.