Lightning 노드를 사용하면 결제 채널을 통해 Bitcoin 결제를 주고받을 수 있으며, 항상 온라인 상태일 때만 제 역할을 합니다. 그래서 VPS가 자연스러운 선택입니다. 이 가이드에서는 같은 서버의 Bitcoin Core 노드를 백엔드로 사용하여 Ubuntu 또는 Debian에 LND(Lightning Network Daemon)를 설정합니다.
먼저 Bitcoin 백엔드 선택
LND는 Bitcoin을 스스로 검증하지 않습니다. 세 가지 백엔드 중 하나가 필요합니다.
- 같은 VPS의 Bitcoin Core. 가장 비공개적이고 안정적인 선택입니다. LND에는 프루닝 노드로 충분하므로 디스크를 작게 유지할 수 있습니다. 설치 방법은 Bitcoin 노드 가이드에서 다룹니다.
- Neutrino. 디스크가 거의 필요 없는 라이트 클라이언트 모드이지만, 블록 필터를 다른 피어에 의존하므로 안정성이 떨어집니다.
- 신뢰하는 원격 노드. 이미 다른 곳에서 운영 중이라면 괜찮습니다. 실제 자금이 들어 있는 노드라면 직접 제어하지 않는 노드를 LND에 연결하지 마세요.
대부분의 경우 같은 서버에 프루닝 Bitcoin Core와 LND를 함께 두는 것이 가장 간단하고 탄탄한 구성입니다. 두 프로그램은 vCPU 2~4개, RAM 4~8 GB 요금제에서 나란히 실행됩니다. 사양은 Lightning 노드 호스팅 페이지를 참고하세요.
1단계: 서버 준비
새로 설치한 Ubuntu 또는 Debian VPS에서 시작하여 새 VPS 보안 설정 방법을 따라 하세요. 노드용 일반 사용자를 만들고 LND를 root로 실행하지 마세요.
sudo adduser --disabled-password --gecos "" lnd
sudo usermod -aG bitcoin lnd # lets LND read the bitcoind cookie file
2단계: Bitcoin Core가 LND와 통신하게 하기
LND는 ZeroMQ를 통해 Bitcoin Core에서 블록과 트랜잭션을 읽습니다. bitcoin.conf에 다음 줄을 추가하고 bitcoind를 재시작하세요.
server=1
prune=20000
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28333
rpcbind=127.0.0.1
rpcallowip=127.0.0.1
계속하기 전에 Bitcoin 노드의 첫 동기화가 끝날 때까지 기다리세요. 아직 따라잡는 중인 노드에서는 LND가 작동하지 않습니다.
3단계: LND 다운로드
GitHub의 공식 lightningnetwork/lnd 릴리스 페이지에서 내 CPU에 맞는 릴리스를 받으세요. 릴리스 노트에 설명된 대로, 실행하기 전에 서명과 체크섬 파일을 확인하세요.
cd /tmp
wget https://github.com/lightningnetwork/lnd/releases/download/vVERSION/lnd-linux-amd64-vVERSION.tar.gz
tar xzf lnd-linux-amd64-vVERSION.tar.gz
sudo install -m 0755 lnd-linux-amd64-vVERSION/lnd lnd-linux-amd64-vVERSION/lncli /usr/local/bin/
VERSION을 직접 확인한 릴리스로 바꾸세요.
4단계: LND 설정
/home/lnd/.lnd/lnd.conf를 만듭니다.
[Application Options]
alias=my-node
listen=0.0.0.0:9735
rpclisten=127.0.0.1:10009
restlisten=127.0.0.1:8080
maxpendingchannels=5
[Bitcoin]
bitcoin.active=1
bitcoin.mainnet=1
bitcoin.node=bitcoind
[Bitcoind]
bitcoind.rpchost=127.0.0.1:8332
bitcoind.rpccookie=/home/bitcoin/.bitcoin/.cookie
bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
쿠키 경로는 Bitcoin 사용자가 쿠키를 보관하는 위치에 맞게 조정하세요. gRPC와 REST 포트는 의도적으로 localhost에만 바인딩되어 있습니다.
5단계: 서비스로 실행
[Unit]
Description=LND
After=bitcoind.service
Requires=bitcoind.service
[Service]
User=lnd
ExecStart=/usr/local/bin/lnd
Restart=on-failure
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
/etc/systemd/system/lnd.service로 저장한 다음 sudo systemctl enable --now lnd를 실행하세요. 지갑은 lncli create로 한 번만 만들면 됩니다.
6단계: 시드와 채널 백업 보호
lncli create는 24단어 시드 문구를 출력합니다. 종이에 적어 오프라인으로 보관하세요. 시드로는 온체인 자금만 복구됩니다. 채널 상태는 별개이므로 channel.backup(~/.lnd/data/chain/bitcoin/mainnet/ 위치)도 서버 밖에 사본을 보관하고 채널이 바뀔 때마다 갱신하세요. 전체 데이터베이스의 오래된 사본은 절대 복원하지 마세요. 페널티가 발생할 수 있습니다.
방화벽
다른 노드가 내게 연결되도록 하려면 포트 9735만 여세요. 10009와 8080은 인터넷에 닫아 두세요. 나머지 기본 사항은 보안 강화 가이드를 읽어 보세요.