OffshoreVps
Инструкции19 окт. 20267 мин чтенияАвтор: команда OffshoreVps

Как запустить узел Lightning (LND) на VPS

Установите LND на Ubuntu с Bitcoin Core в качестве бэкенда: конфигурация, служба systemd, резервная копия кошелька и каналов, правила брандмауэра и что нужно защищать.

Нода Lightning позволяет отправлять и получать платежи Bitcoin через платёжные каналы, и она оправдывает себя, только если остаётся в сети. Поэтому VPS — естественное место для неё. В этом руководстве настраивается LND (Lightning Network Daemon) на Ubuntu или Debian с нодой Bitcoin Core на том же сервере в роли бэкенда.

Окно терминала на VPS с командами для запуска узла Lightning с LND, начиная с «sudo adduser --disabled-password --gecos "" lnd»
Примерно такие команды вы будете выполнять на своём сервере в этом руководстве.

Сначала выберите бэкенд Bitcoin

LND сам не проверяет Bitcoin. Ему нужен один из трёх бэкендов:

  • Bitcoin Core на том же VPS. Самый приватный и надёжный вариант. Для LND достаточно обрезанной ноды, что позволяет сохранить небольшой диск. Установка описана в нашем руководстве по ноде Bitcoin.
  • Neutrino. Режим лёгкого клиента, которому почти не нужен диск, но он полагается на других пиров в части фильтров блоков и менее устойчив.
  • Удалённая нода, которой вы доверяете. Подойдёт, если вы уже запускаете её в другом месте. Никогда не подключайте LND к ноде, которую вы не контролируете, если на ноде лежат реальные средства.

Для большинства людей самый простой и надёжный вариант — обрезанный Bitcoin Core и LND на одном сервере. Обе программы работают рядом на тарифе с 2–4 vCPU и 4–8 ГБ ОЗУ. Подбор размеров смотрите на нашей странице хостинга нод Lightning.

Шаг 1: подготовьте сервер

Начните со свежего VPS на Ubuntu или Debian и выполните шаги из статьи как защитить новый 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 читает блоки и транзакции из Bitcoin Core через ZeroMQ. Добавьте эти строки в 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

Возьмите релиз для вашего процессора на официальной странице релизов lightningnetwork/lnd на GitHub. Перед запуском проверьте подпись и файл контрольных сумм, как объясняют заметки к релизу.

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 на версию релиза, которую вы проверили.

Шаги этого руководства по порядку: 1. Сначала выберите бэкенд Bitcoin; 2. подготовьте сервер; 3. скачайте LND; 4. настройте LND; 5. защитите сид-фразу и резервную копию каналов; 6. Брандмауэр
Шаги этого руководства по порядку.

Шаг 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

Измените путь к cookie-файлу на тот, где его хранит ваш пользователь 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: защитите seed-фразу и резервную копию каналов

lncli create выводит seed-фразу из 24 слов. Запишите её на бумаге и храните офлайн. Seed восстанавливает только ваши ончейн-средства. Состояние каналов хранится отдельно, поэтому также держите копию channel.backup (в ~/.lnd/data/chain/bitcoin/mainnet/) где-нибудь вне сервера и обновляйте её после каждого изменения каналов. Никогда не восстанавливайте старую копию всей базы данных, потому что это может привести к штрафу.

Файрвол

Открывайте только порт 9735, если хотите, чтобы другие ноды могли подключаться к вам. Держите 10009 и 8080 закрытыми для интернета. Остальные основы читайте в руководстве по усилению защиты.