본문으로 건너뛰기

풀노드 재동기화 방법

풀노드를 운영하다 보면 비트코인 노드(코어 또는 노츠) 동기화에 문제가 생길 때가 있습니다. 전체 환경을 재설치하기 전에 노드 로그에서 원인을 확인하고, 블록 인덱스나 체인상태를 다시 구성해야 하는지 판단합니다. 아래는 리눅스에 명령어로 설치한 구형 엄브렐에 SSH로 접속해 재색인을 설정하는 방법입니다.

 

경고

아래의 경로와 명령은 리눅스에 명령어로 설치한 구형 엄브렐 환경을 전제로 합니다. 마이크로SD 카드나 USB 메모리에 플래싱해서 엄브렐을 설치한 경우는 사용할 수 없습니다. 현재 엄브렐의 모든 버전과 기기에 적용되는 절차는 아니므로, 설치 방식과 버전을 먼저 확인하세요.

Umbrel에 SSH 접속​

  1. Umbrel 서버의 IP 주소 확인 (같은 네트워크에 있는 경우 umbrel.local 사용 가능).

  2. SSH 클라이언트를 사용하여 Umbrel 서버에 접속:

  • 여기서 umbrel은 풀노드 구축 당시 설정한 아이디입니다.
  • 명령어를 입력한 후 엔터를 치면 패스워드를 입력하라고 나옵니다.
  • 기본 패스워드는 설치 과정에서 설정한 것을 사용합니다. 만약 초기 설정값을 사용했다면 Umbrel 문서를 참고하세요.
정보

만약 umbrel.local 주소로 ssh 접속이 안되면 내부IP를 찾아 umbrel.local 대신 내부IP주소를 통해 접속해야 합니다. 내부IP가 192.168.1.3이라면 아래와 같이 접속하면 됩니다.

내부IP가 무엇인지 모른다면 풀노드 접속 방법 문서를 참고하세요.


Nano 설치 확인​

Nano 편집기가 설치되지 않은 경우, 설치합니다:

  1. 설치 확인:
    nano --version
    명령을 찾을 수 없다는 메시지가 나오면 Nano를 설치하세요.
  2. Nano 설치:
    sudo apt update
    sudo apt install -y nano

Umbrel 비트코인 설정 파일 수정​

  1. Umbrel 비트코인 설정 파일의 위치로 이동:

    cd ~/umbrel/app-data/bitcoin/data/bitcoin/
  2. bitcoin.conf 파일 열기:

    sudo nano bitcoin.conf

재동기화를 위한 설정 추가​

열어 둔 bitcoin.conf 파일에서 노드의 상태와 목적에 맞는 설정을 확인합니다. 아래 설명은 Bitcoin Core의 옵션 정의를 기준으로 합니다.

  1. 전체 블록을 보관하려면 가지치기를 비활성화합니다:

    prune=0

    prune=0은 오래된 블록을 삭제하는 가지치기를 끄는 설정이며, 모든 데이터를 삭제하는 명령이 아닙니다. 이미 전체 블록을 보관하고 있다면 이 설정만으로 재색인이나 전체 재다운로드를 시작하지 않습니다. 이전에 가지치기한 노드를 전체 보관 방식으로 바꾸려면 삭제된 블록을 다시 다운로드해야 합니다. 이 경우 아래의 reindex=1도 설정해 재색인과 재다운로드를 진행합니다.

  2. 블록 인덱스와 체인상태를 다시 구성해야 한다면 재색인을 설정합니다:

    reindex=1

    이 설정은 로컬에 저장된 blk*.dat 블록 파일을 읽어 블록 인덱스와 체인상태를 다시 만듭니다. 임의의 특정 블록 높이부터 동기화를 시작하도록 지정하는 옵션은 아닙니다. 필요한 블록 파일이 남아 있다면 이를 재사용하지만, 가지치기 등으로 필요한 데이터가 없으면 네트워크에서 다시 받아야 합니다. 가지치기를 계속 사용할 노드라면 재색인을 위해 반드시 prune=0으로 바꿀 필요는 없습니다.

  3. 저장 후 종료:

    • 저장: Ctrl + O (Enter 키로 확인)
    • 종료: Ctrl + X

Umbrel 비트코인 노드 재시작​

비트코인 노드를 재시작하기 위해 엄브렐을 재시작합니다. reindex=1을 설정했다면 저장된 블록을 재색인하며, 필요한 블록 데이터가 없으면 다운로드도 진행합니다. prune=0만 설정한 경우에는 가지치기가 비활성화될 뿐, 그 설정 자체가 재색인을 시작하지는 않습니다.

cd ~/umbrel
sudo ./scripts/stop
sudo ./scripts/start
경고
  • 재색인이 완료되면 reindex=1 옵션을 제거하는 것이 좋습니다.
  • 그렇지 않으면 노드가 재시작될 때마다 비트코인 전체장부를 재색인하게 됩니다.

동기화 진행 상황 확인​

  1. SSH를 통해 동기화 상태를 확인:
    tail -f ~/umbrel/app-data/bitcoin/data/bitcoin/debug.log
    • 로그에서 동기화 상태를 모니터링할 수 있습니다.

노츠 동기화 오류를 설정 초기화로 해결한 사례​

위 절차는 구형 엄브렐에 SSH로 접속해 명령어로 재색인하는 방법입니다. 이 절은 명령어 없이 엄브렐 앱 화면의 설정만으로 노츠(Knots) 동기화 오류를 해결한 별도 사례입니다. 영상은 2025년 12월에 공개되었고 노츠 29.2와 당시 엄브렐 앱 화면을 기준으로 하므로, 메뉴 이름은 이후 바뀔 수 있습니다.

발언자는 풀노드 구축 대행 의뢰로 오드로이드 H4에 엄브렐을 설치하고 코어와 노츠를 모두 설치해 동기화해 보았습니다. 코어는 실패했고 노츠 29.2는 성공해서 노츠로 운영하고 있었다고 합니다. 얼마 뒤 의뢰한 사용자가 동기화 오류 화면을 보내 왔고, 발언자는 그분의 양해를 얻어 이 사례를 공유한다고 밝힙니다.

발언자는 노츠를 설정할 때 들어오는 피어 연결(incoming peer connections)을 켜고, 최적화 항목의 데이터 캐리어 크기(datacarriersize)를 0으로 저장해 준다고 설명합니다. 이 사례에서 발언자는 자신이 바꾼 설정 때문에 문제가 생겼을 수 있다고 보고, 노드 앱 화면 아래의 설정(Settings)에서 기본값 복원(Restore defaults)을 누르라고 안내했습니다. 설정이 바뀌면 노드가 재시작됩니다.

기본값을 복원한 뒤 노드는 15시간쯤 정상 동작하다가 다시 문제가 생겼습니다. 사용자가 확인해 보니 기본값 복원 뒤에는 들어오는 연결의 클리어넷, 토르, I2P 옵션이 꺼져 있었고, 이 세 옵션을 다시 켜자 그 뒤로는 문제없이 동작했다고 합니다. 이 사례에서 확인된 것은 기본값 복원 뒤 꺼져 있던 들어오는 연결 옵션을 다시 켜자 정상 동작했다는 결과뿐입니다. 데이터 캐리어 크기나 들어오는 연결 설정이 오류의 원인이라고 영상이 밝힌 것은 아닙니다.

발언자는 이런 동기화 실패를 노츠의 버그로 봅니다. 같은 오류 화면이 나오면 노츠를 지웠다가 다시 설치하거나, 바꾼 설정을 기본값으로 돌려 시험해 보는 방법이 있다고 정리합니다.

발언자의 다른 경험도 있습니다. 엄브렐에 코어와 노츠를 함께 설치해 보면 기기에 따라 코어가 동기화를 받지 못하거나 노츠가 멈추는 경우가 있었고, 그 이유는 모른다고 합니다. 노츠가 멈춰 코어로 바꿔 운영한 경우도 있었다고 말합니다.

발언자는 노드를 운영하는 일이 자기 돈에 대한 통제권을 확보하는 수단이라고 봅니다. 또한 사용자 활성화 소프트포크 같은 상황이 닥쳤을 때 자기 목소리를 낼 수 있는 수단이라고 보며, 직접 구축하거나 구입해서 운영해 보기를 권합니다. 비용 부담 때문에 저렴한 기기로 직접 구축하면 이런 문제 해결도 각자 해야 하므로, 이 사례를 참고 자료로 공유한다고 설명합니다.

영상​

원본 영상: 비트코인 노츠(Knots) 동작 오류 해결 방법 (공개일: 2025-12-29)

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