Как создать узел Bitcoin Lightning в Linux

Изображение узла Bitcoin Lightning 00

Одной из самых больших проблем при использовании Bitcoin являются долгие времена транзакций. Это может быть разочаровывающим для новых пользователей, которые только начинают знакомиться с этой цифровой валютой. Один из самых простых способов улучшить это — использовать вторичный платежный слой, такой как Bitcoin Lightning.

Bitcoin Lightning — это система, которая использует специальные транзакции Bitcoin для быстрого перемещения активов вне обычного процесса блокчейна. В этом отношении Lightning похож на сеть Tor, где используется TCP/IP в качестве основы для маршрутизации анонимных соединений.

Содержание

  • Почему Bitcoin медленный?
  • Как работает сеть Lightning?
  • Настройка собственного узла Bitcoin Lightning
  • Часто задаваемые вопросы

Также читайте: Как управлять своими финансами в режиме Ledger в Emacs

Bitcoin позволяет вам легко обменивать деньги через Интернет без центрального органа. Каждая транзакция, которую вы совершаете, направляется непосредственно получателю, и вы распределяете ее по всей сети.

Почему Bitcoin медленный?

Визуализация блоков Bitcoin 03

В результате любая оплата, которую вы совершаете в Bitcoin, требует времени для завершения и подтверждения. Например, обычная транзакция Bitcoin обычно занимает от 10 до 30 минут для завершения.

Как работает сеть Lightning?

В своей основе Lightning работает, создавая “on-chain” платеж, который резервирует определенную сумму Bitcoin на вашем узле. Затем Lightning использует ваши зарезервированные Bitcoin для создания канала между другими узлами Lightning.

График сети Lightning 04

Это позволяет вам создавать дополнительные “off-chain” платежи через Lightning, которые не нужно подтверждать в блокчейне, значительно сокращая время платежа между двумя пользователями. Например, обычная транзакция Lightning занимает всего около секунды для завершения.

Также читайте: Как исправить высокую загрузку ЦП в Linux

Настройка собственного узла Bitcoin Lightning

Чтобы начать работу с Lightning, хорошо иметь свой собственный личный узел. Подобно настройке узла Bitcoin, узел Lightning позволяет вам полностью контролировать свои транзакции в его сети.

Чтобы начать установку, вам нужно иметь ряд ресурсов, доступных и готовых:

  • Машина с приличным объемом памяти и хранилища. В моем случае я использую старый настольный компьютер Dell Optiplex с 1 ТБ хранилища и 2 ГБ ОЗУ.
  • Постоянное подключение к Интернету, так как узел Lightning должен регулярно общаться с другими узлами, чтобы поддерживать свое состояние.
  • Небольшое количество Bitcoin, которое вы можете использовать для “финансирования” вашего узла Lightning.

Зная эти факторы, этот учебник сосредоточен на установке c-lightning на машину с Ubuntu 22.04.1 LTS.

Получение зависимостей

Первый шаг в установке c-lightning — создать новую учетную запись пользователя, чтобы гарантировать, что все файлы и настройки для вашего узла будут отделены от вашего основного пользователя:

sudo useradd -s/bin/bash-d/home/lightning -m-Gsudo lightning  
sudopasswd lightning

Создание нового пользователя 05

Переключитесь на этого нового пользователя, выполнив: su lightning, затем добавьте сторонний репозиторий, который будет содержать все программы для работы c-lightning:

sudo add-apt-repository -u ppa:lightningnetwork/ppa

Установите зависимости узла:

sudo apt install software-properties-common lightningd snapd

Установка зависимостей 06

Также читайте: 4 способа увеличить время работы батареи вашего ноутбука с Linux

Настройка простого узла Bitcoin

Отсюда вам нужно установить и настроить простой узел Bitcoin. Как обсуждалось выше, Lightning — это сеть наложения, которая работает, используя специальные транзакции Bitcoin для создания “финансовых каналов”.

Чтобы создать эти каналы, вашему узлу Lightning необходимо работать вместе с простым узлом Bitcoin, который можно установить, выполнив следующую команду:

sudo snap install bitcoin-core

Установка Bitcoin через Snap 07

Создайте символическую ссылку между вашим корневым каталогом “snap” и папкой “bin”:

sudoln-s/snap/bitcoin-core/current/bin/bitcoin{d,-cli}/usr/local/bin/

Запустите начальную загрузку блоков для вашего узла Bitcoin:

bitcoind -daemon

Эта команда отправит узел в фоновый режим для загрузки и проверки всей блокчейн-сети Bitcoin. Вы можете проверить его прогресс, выполнив следующую команду:

tail-f/home/$USER/.bitcoin/debug.log

Журнал загрузки 08

Важно отметить, что этот процесс может занять от нескольких часов до нескольких дней. Например, моему настольному компьютеру Dell Optiplex потребовалось 5 дней, чтобы полностью синхронизироваться с сетью Bitcoin.

Настройка вашего простого узла Bitcoin

Как только ваш узел синхронизирован с сетью, убедитесь, что он совместим с Lightning, сначала остановив узел Bitcoin:

bitcoind stop

Отредактируйте его файл конфигурации по адресу “/etc/bitcoin.conf”:

nano/home/$USER/.bitcoin/bitcoin.conf

Файл конфигурации узла 09

Отключите две опции: walletbroadcast и prune. Первая опция говорит вашему узлу Bitcoin использовать свои данные только с Lightning, а вторая опция гарантирует, что вы сохраняете весь блокчейн на своем жестком диске.

walletbroadcast=0  
prune=0

Перезапустите ваш узел Bitcoin, выполнив следующую команду:

bitcoind -daemon

Запуск вашего узла Bitcoin Lightning

Запустите ваш узел Lightning, выполнив следующую команду:

lightningd --network=bitcoin --log-level=debug --daemon

Инициализация узла Lightning 11

Эта команда отправит узел в фоновый режим и создаст его файлы конфигурации в “/home/$USER/.lightning.” Проверьте, работает ли ваш узел Lightning правильно, выполнив эту команду:

lightning-cli --lightning-dir=$HOME/.lightning getinfo

Проверка информации узла 12

Также читайте: Лучшие инструменты с открытым исходным кодом для защиты вашего сервера Linux

Завершение настройки вашего узла Bitcoin Lightning

С работающим c-lightning вы можете завершить настройку вашего узла, создав “финансовые каналы” между различными партнерами Lightning. Как обсуждалось выше, “финансовый канал” — это специальная транзакция Bitcoin, которая позволяет вам перемещать ваши Bitcoin без обязательств перед блокчейном.

Чтобы создать это, сначала “депонируйте” Bitcoin на ваш узел Lightning, сгенерировав адрес для получения для вашего узла с помощью следующей команды:

lightning-cli newaddr

Генерация Bitcoin адреса 13

Перейдите в внешний кошелек и отправьте Bitcoin на этот адрес для получения. В моем случае я отправлю 0.00050000 BTC, используя мой кошелек Bitcoin Core.

Отправка средств из внешнего кошелька 14

Как только транзакция будет в блокчейне, ваш узел Lightning автоматически обновит свой баланс средств. Просмотрите это, выполнив следующую команду:

lightning-cli listfunds

Подключение к удаленным узлам Bitcoin Lightning

Начните подключать ваш узел к его партнерам в сети, чтобы иметь возможность отправлять и получать Bitcoin через Lightning.

Для начала найдите как его открытый ключ, так и IP-адрес. Подобно использованию PGP-шифрования, это позволяет вам подключаться и проверять подлинность узла через криптографию с открытым ключом.

Одним из самых распространенных инструментов для этого является 1ML: веб-сайт, который перечисляет все активные узлы Lightning в сети.

Список узлов 1ml 15

Как только у вас есть активный узел, используйте команду lightning-connect, чтобы установить запрос на подключение. Например, эта команда подключит мой узел к ACINQ:

lightning-cli connect 1 03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f 3.33.236.230
  • Первое значение указывает номер слота, который вы хотите назначить текущему партнеру. Для этого узла я использую слот 1.
  • Второе значение — это открытый ключ удаленного узла. В этом случае я использую открытый ключ ACINQ.
  • Третье значение — это публичный IP-адрес удаленного узла.

Чтобы завершить запрос, отправьте часть баланса Bitcoin вашего узла удаленному узлу, чтобы создать “финансовый канал” между вами и узлом-партнером.

Например, эта команда создаст “финансовый канал” на 0.00030000 BTC для первого партнера в моем списке:

lightning-cli fundchannel 130000

Создание финансового канала 16

Отправка и получение платежей Lightning

С активным “финансовым каналом” используйте ваш узел для отправки и получения платежей. По умолчанию Lightning использует формат BOLT11, который начинается с “lnbc”, чтобы отличать его от Bitcoin.

Чтобы отправить Bitcoin через Lightning, вы должны знать адрес BOLT11 вашего получателя. Например, следующая команда отправляет 0.00005000 BTC на удаленный адрес:

lightning-cli pay lnbc20m1[...]qdhhwkj 50000

Отправка Bitcoin через Lightning 18

Вы также можете получать Bitcoin через Lightning, используя команду invoice и указав точную сумму Bitcoin, которую вы хотите получить. Например, эта команда создает счет на 0.00010000 BTC:

lightning-cli invoice 100000

Получение Bitcoin через Lightning 19

Также читайте: Как найти большие файлы в Linux

Часто задаваемые вопросы

Я использую Dojo в качестве моего узла Bitcoin. Возможно ли использовать его с c-lightning?

Нет. По умолчанию Dojo — это программа, которая использует контейнеры Docker для запуска изолированной версии Bitcoin Core. Узел Bitcoin Dojo не сможет общаться с любой программой вне своего изолированного контейнера.

Мой кошелек не поддерживает адрес “bc1”. Возможно ли все еще внести депозит на мой узел Lightning?

Да! Хотя c-lightning изначально генерирует адрес в формате “bc1”, возможно перевести Bitcoin на узел Lightning, используя более старый формат P2SH. Для этого выполните следующую команду: lightning-cli newaddr p2sh-segwit.

Мой платеж Lightning иногда не проходит. Мой узел сломан?

Нет! Эта проблема, скорее всего, связана с нехваткой соединений узла между вами и получателем. Сеть Lightning, по своей сути, зависит от того, чтобы каждый узел постоянно и напрямую общался друг с другом.

Один из способов исправить эту проблему — увеличить количество партнеров и “финансовых каналов”, к которым подключается ваш локальный узел. Например, наличие как минимум двух-трех активных партнеров позволит вам подключиться к почти любому пользователю Lightning.

Кредит изображения: Unsplash и Wikimedia Commons. Все изменения и скриншоты сделаны Рамсесом Редом.