Запускаем свою lightning-ноду

0
ПОДЕЛИТЬСЯ

Не твои ключи — не твои монеты; не твой узел — не твои правила. В этом посте вы найдёте несколько несложных сценариев установки и первичной настройки lightning-узла на LND и Umbrel. Плюс базовые инструкции по открытию каналов (включая поиск подходящих частных пиров) и управлению ликвидностью — то, что нужно для самых первых самостоятельных шагов.

Это не исчерпывающее руководство и не ставит целью охватить все возможности, реализации Lightning и тонкие настройки. Мы рассмотрим несколько самых простых сценариев запуска своего узла, рассчитанных на не(очень)подготовленного пользователя. Подготовленным и требовательным к нюансам читателям предлагаю обратиться к инструкциям в github и документации, ссылки на которую здесь тоже будут.

Здесь мы будем устанавливать:

  • лёгкий узел LND на сервер с Ubuntu () и
  • полный узел Umbrel на Raspberry Pi () — включая сборку, это очень просто ().

Само собой, эти сценарии можно с соответствующими изменениями воспроизводить на другом подходящем оборудовании и дополнять в меру собственного понимания.

 



 

Lightning-нода: что это и зачем

Дальше: Зачем Lightning Network нужны свои узлы

Lightning, в общем смысле, представляет собой просто программное обеспечение, работающее на множестве подключённых к интернету компьютеров, образующих сеть. Пользователи со своими индивидуальными узлами могут свободно присоединяться к сети и выходить из неё, подобно тому, как это происходит в базовом для Lightning Network уровне сети Биткойна.

От узлов Биткойна lightning-ноды отличаются главным образом тем, какие транзакции они проверяют. Биткойн-узлы должны проверять каждую транзакцию в блокчейне, тогда как узлы LN проверяют только те транзакции, с которыми непосредственно взаимодействуют. Это продиктовано самим принципом работы Lightning Network.

Читайте также:

Запускаем свою lightning-ноду
Не твой узел — не твои правила

ПО узла Lightning подключается и взаимодействует с основной блокчейн-сетью, а также внутри Lightning Network. Под основным блокчейном мы подразумеваем в основном только Биткойн, хотя (сюрприз) LN может работать и в других блокчейнах, включая и такие сайдчейны, как Liquid NetworkState Chains или RGB Network.

Есть несколько разных программ для LN-узлов, написанных на разных языках программирования и называемых “реализациями” Lightning. Обычно они имеют версии, адаптированные под многие операционные системы и процессорные архитектуры.

Вот три наиболее распространённых реализации Lightning (более полный список здесь):

  1. LND от Lightning Labs,
  2. Core Lightning от Blockstream,
  3. Eclair от ACINQ.

Lightning-узел можно запустить просто как программу на своём повседневном ноутбуке либо использовать для этого выделенное устройство. Но поскольку крайне желательно обеспечить работу вашего узла 24/7, достичь этого с основной “рабочей” машиной, скорее всего, будет проблематично.

Почему 24/7. После того как вы открыли публичные (объявленные) каналы, остальная сеть ожидает, что вы будете онлайн. Если же вы надолго уйдёте офлайн, могут возникнуть проблемы: ваши партнёры по каналам могут закрыть каналы с вами, и если повезёт, то вы получите правильную сумму, причитающуюся вам. Хотя эти риски существенно снижаются с использованием watchtowers, “смотровых башен”, которые помогают вовремя обнаружить и предотвратить неправомерное принудительное закрытие канала.

И ещё одно важное соображение: поскольку LN-узлы подключаются к интернету и управляют горячими биткойн-кошельками, рекомендуется использовать для этого выделенное устройство, не используемое для иных целей, — это сокращает поверхность атаки.

Зачем Lightning Network нужны свои узлы

Дальше: Для чего вам заводить свой LN-узел

Для лучшего масштабирования и эффективной работы LN необходимо, чтобы больше узлов помещали биткойны в LN-каналы, делая их доступными для Lightning Network. Чем больше в LN публичных узлов (а ничто вам не мешает создать и приватный — просто не объявляйте о нём всей сети), тем больше создаётся платёжных каналов, а чем больше платёжных каналов, тем проще маршрутизировать платежи. По сути, увеличение числа LN-нод повышает надёжность общей сети платёжных соединений, чтобы гарантировать, что платежи смогут найти самый короткий и дешёвый маршрут до получателя.

На конец июля 2024 Lightning Network имеет ёмкость ~5 300 тыс. BTC (стоимостью ~357 миллионов долларов) и состоит из 15,5 тыс. активных узлов, соединённых друг с другом ~55 тыс. (объявленных) каналов. Как присоединиться к ним на правах полноценного участника сети (в противовес пользователю одного из элементарных кошельков, где всё “лишние” технические аспекты спрятаны “под капотом”)?

Для чего вам заводить свой LN-узел

Дальше: Риски работы со своей lightning-нодой

Разумный вопрос: «Я ведь и так могу пользоваться Lightning Network через простые и довольно удобные кошельки; зачем же мне возиться ещё с отдельным узлом?»

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

Ещё одно важное преимущество — конфиденциальность платежей. Тратя средства со своего lightning-узла, вы не сообщаете нескольким третьим сторонам, что вы покупаете или каковы ваши привычки в расходах. Когда вы тратите средства с карты Visa, например, ваш банк точно знает, когда, где и сколько вы потратили, так же как и эмитент карты. Это удар по конфиденциальности, поскольку эти компании часто продают ваши данные рекламодателям или, ещё хуже, иным заинтересованным лицам. Самые простые в использовании LN-кошельки, полностью снимающие с пользователей управление каналами и ликвидностью, тоже делают это ценой приватности транзакций — это неизбежный компромисс между удобством и конфиденциальностью.

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

Запускаем свою lightning-ноду

Приятный бонус: с помощью Lightning Node Connect вы можете использовать свой LN-узел как бэкенд для нескольких кошельков, которыми могут пользоваться ваши друзья и родные. Такое начинание будет полезно не только для вашего “ближнего круга”: это помогает несколько нивелировать влияние узлов с огромной ликвидностью на здоровье сети.

Собственно, это скорее и всё: автономность, приватность, дешёвые платежи в BTC.

Да, в LN есть возможности для получения небольшого дополнительного дохода — пассивного и не только, — но эффективность этого — вопрос дискуссионный. Я бы не рассчитывал сделать из своей частной LN-ноды “бизнес”. Да и с точки зрения самой сети, что на самом деле нужно Lightning — это бизнес, построенный на ней, а не превращение самой сети в бизнес.

Тем не менее, освоившись со своей LN-нодой, можно изучить и способы её оптимизации для получения некоторого дополнительного дохода.

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

Маршрутизация платежей — простая для понимания концепция, но чем больше о ней узнаёшь, тем сложнее она начинает выглядеть. Настраивая свой первый узел, лучше просто принять к сведению, что маршрутизация через него может происходить, и порадоваться, когда это случится. Со временем вы сможете больше узнать о том, как оптимизировать свой узел для более эффективного участия в маршрутизации платежей в LN.

Для понимания того, как работает Lightning Network и ликвидность в ней, рекомендую обратиться к этой статье:
Мир нуждается в Lightning Network

Ещё один способ заработать сатоши с помощью своей ноды в Lightning Network — это получать оплату за открытие каналов. Есть пользователи, настолько заинтересованные в наличии каналов с высокоценными узлами, что готовы за это платить. Есть и маркетплейс для такой торговли: Magma. По состоянию на июль 2024 средняя годовая процентная ставка для продавцов каналов составляет 5,5%. Выглядит довольно неплохо при минимальном риске. Единственные требования для продажи каналов с ликвидностью на Magma — это высококачественная нода и капитал для открытия каналов.

Запускаем свою lightning-ноду
Источник

Существуют и менее очевидные способы. Можно использовать свой узел для получения запов в сети Nostr, получать сатоши от The Bitcoin Company или подключить BTCPayServer к своему интернет-магазину. Есть возможность настроить пэйвол с оплатой в Lightning, играть в игры на THNDR games и многое другое, получая любые возникающие доходы на собственный узел.

Риски работы со своей lightning-нодой

Использование собственной LN-ноды сопряжено с несколькими рисками. Один из них заключается в том, что LN-узлы должны постоянно находиться онлайн для отправки и получения платежей. Это увеличивает возможности для взлома, а если компьютер, на котором расположен узел, будет взломан, то монеты могут быть украдены.

Отключение от сети и уход офлайн создаёт ещё один важный риск в LN: пока ваша нода находится офлайн, другая сторона платёжного канала может в одностороннем порядке закрыть канал, забрав все средства из него — и свои, и ваши. Кроме того, есть также риски, связанные с восстановлением ноды после сбоя оборудования или памяти.

Однако все риски, связанные с использованием LN, можно нивелировать, используя watchtowers, которые помогают вовремя обнаружить и предотвратить неправомерное принудительное закрытие канала.

Кроме того, важно понимать, что управление каналами своего и местонахождение ваших сатоши будет вашей и только вашей ответственностью. Вы можете удивляться, почему не получаете платежи уже какое-то время, пока не поймёте, что у вас нет входящей ликвидности.

Запускаем свою lightning-ноду

Дальше: Облачные lightning-узлы по подписке

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

Держать компьютер постоянно включённым часто непрактично, поэтому чаще LN-ноды запускают на выделенных устройствах. Это также минимизирует поверхность атаки через программное окружение. Поверхности атаки могут быть цифровыми и физическими, поэтому компьютер, используемый также для навигации в интернете, будет заведомо более уязвим для цифровой атаки.

Использование выделенного устройства подразумевает некоторые первоначальные инвестиции в оборудование. Либо оплату облачной инфраструктуры (актуально для лёгкого узла) или готового lightning-узла по подписке.

Рассмотрим варианты в порядке от простого к сложному:

  • Облачные LN-узлы по подписке (Voltage)
  • Аппаратные ноды в сборе
    (либо готовое ПО для своего устройства)
  • Установка полного узла Umbrel на Raspberry Pi
    (или замените Raspberry Pi на любое другое подходящее устройство)
  • Установка лёгкого узла LND на сервер с Ubuntu
    (или используйте отдельный ноутбук)

Облачные lightning-узлы по подписке

Дальше: Аппаратная нода в сборе (либо готовое ПО для своего устройства)

Облачные сервисы типа нода-как-услуга. Для частных пользователей это в первую очередь Voltage. Для профессиональных и бизнес-клиентов есть также Greenlight от Blockstream. Кроме того, кошелёк Breez предлагает ранний доступ к своему сервису Breez Cloud, пока находящемуся в стадии альфа-тестирования.

Запускаем свою lightning-ноду
Домашняя страница для только что созданной LN-нодой в Voltage

Для полного узла необходимо хранить весь блокчейн, предпочтительно на SSD объёмом не менее 1 ТБ. Содержать такой узел на собственном VPS-сервере где-то на AWS, Google Cloud или Digital Ocean нерационально.

Для собственного облачного сервера подойдёт лёгкий LND-узел на Neutrino, установку которого на Ubuntu мы рассматриваем ниже ().

 

Для такого узла не требуется загружать блокчейн; соответственно, данные о его состоянии и транзакциях в нём узел получает из сети.

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

Установка узла здесь с вас снимается, но управлять своей нодой вам придётся самостоятельно. Используется та же базовая реализация Lightning: LND. Подключение только через Tor.

Tor (сокр. от The Onion Router) — это сеть анонимизации, предназначенная для сокрытия IP-адреса участника. В некотором смысле это похоже на использование VPN с несколькими переходами.

 

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

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

Плюсы:

  • Узлы Voltage работают работают в дата-центре с круглосуточным мониторингом и поддержкой.
  • Автоматизированные системы резервного копирования.
  • Узел работает как через cеть Tor, так и в обычной сети, и имеет статический IP-адрес и доменное имя. (При всех преимуществах Tor, кажется, что он может замедлять различные аспекты Lightning.)
  • Использование Voltage сохраняет затраты на облачную ноду на таком оборудовании в разумных пределах за счёт совместного использования объёмной копии блокчейна Биткойна многими LN-узлами (для кого-то это будет жирным минусом).

Минусы:

  • Voltage является зависимостью и единой точкой отказа.
  • Это удалённый узел, и есть некоторые дополнительные шаги, которые необходимо предпринять для его безопасности, такие как создание белого списка IP-адресов.
  • Резервное копирование LN-узла не тривиально и нет хорошего решения для восстановления отказавшего узла.
  • Платная подписка

Аппаратная нода в сборе (либо готовое ПО для своего устройства)

Дальше: DIY lightning-нода

Можно приобрести готовую аппаратную ноду в сборе, с предзагруженным блокчейном или нет.

На сегодня это в основном:

Запускаем свою lightning-ноду
MyNode

С доставкой, разумеется, могут и будут возникать ограничения. Но большинство поставщиков продают отдельно готовые программные решения, которые можно установить на своё “железо”.

Есть и несколько более широкие решения готового домашнего сервера в сборе — с предустановленной ОС и магазином приложений, из которого можно в пару кликов установить bitcoin– и lightning-ноду и прочие приложения для Биткойна и LN:

Операционная система здесь — это linux-дистрибутив с открытым исходным кодом. Обе ОС можно бесплатно скачать и установить на любое подходящее устройство.

Запускаем свою lightning-ноду
Домашний экран UmbrelOS

По сравнению с MyNode и RaspiBlitz, предлагающих широкий спектр функций и возможности более тонкой настройки lightning-узла, Umbrel предоставляет более ограниченную контролируемую среду, которую гораздо проще настроить начинающему пользователю, чем во многом и объясняется её популярность — это, вероятно, самый простой вариант установки и настройки собственной кастомной ноды.

Далее в посте есть иллюстрированный пример установки Umbrel на Raspberry Pi.

Запускаем свою lightning-ноду
(Источник)

Все сервисы Umbrel по умолчанию используют TOR (The Onion Router) для сохранения анонимности пользователей. Удалённый доступ к вашей ноде через веб-интерфейс возможен с помощью браузера, поддерживающего TOR.

Плюсы Umbrel:

  • Такой сетап отлично подходит, если вы хотите попробовать и поупражняться с личным Unix-сервером. Он находится у вас дома, полностью под вашим контролем, и вы можете подключить к нему монитор и клавиатуру и экспериментировать.
  • Если вы хотите писать небольшие скрипты на Python или как-то иначе программно взаимодействовать с узлом, то удобно иметь его на своём столе — не нужно так сильно беспокоиться о портах и сетевых настройках.
  • Umbrel настроен для коммуникации с LN и Биткойном только через Tor. Это огромный плюс для конфиденциальности, хотя может иметь и некоторые недостатки.

Минусы:

  • Ваш узел подключен только через Tor. Вам не придётся открывать порты на вашем роутере, но, с другой стороны, доступ к вашему узлу извне вашего дома, возможно, будет медленным и не очень надёжным.
  • Если вы захотите запустить более сложную систему приёма платежей, полагающуюся на прямое подключение к вашему узлу, — как BTCPay Server или LNURL, — придётся разобраться с перенаправлением портов и, возможно, даже с настройкой перенаправления DNS и сертификатов.

DIY lightning-нода

Что понадобится для DIY lightning-ноды

Во всех случаях для LN-ноды лучше использовать отдельное устройство, которое можно будет оставить работающим 24/7.

Основные требования:

  • Операционная система:
    • Любой из надёжных и поддерживаемых дистрибутивов Linux: Ubuntu, Debian, Raspbian (для Raspberry Pi), Fedora, Arch Linux ARM будут хорошим выбором.
      • Специализированные linux-дистрибутивы с предустановленными bitcoin– и lightning-сервисами: UmbrelOS, MyNode, RaspiBlitz, StartOS.
    • MacOS будет приемлемым выбором для домашнего узла.
    • На Windows могут возникать нюансы и ограничения, для некоторых реализаций рекомендуют использовать Docker.
    В целом обычно не рекомендуется запускать маршрутизирующий LN-узел на Windows.
  • Оперативная память: от 4 ГБ
  • SSD от 1 ТБ (часто рекомендуется 2 ТБ) *
    • Для лёгкой ноды или при удалённом подключении к Bitcoin Core будет достаточно 10-25 ГБ
  • Стабильное интернет-соединение

* Для полного узла SSD практически необходим. Можно использовать и обычный жёсткий диск (HDD), но начальная синхронизация будет особенно медленной.

На любительском уровне можно использовать:

  • Ноутбуки либо готовые ПК
  • Одноплатные компьютеры
  • Raspberry Pi

Для домашних пользователей наиболее подходящим устройством для запуска lightning-ноды выглядит выделенный для этого ноутбук. Важный плюс ноутбука — это наличие встроенного аккумулятора (если он скорее жив), который может какое-то время питать ноду в случае отключения электроэнергии, что в противном случае могло бы привести к повреждению данных.

По сравнению с настольными компьютерами, ноутбуки обычно более энергоэффективные и тихие. Практически во всех случаях они обладают лучшей производительностью по сравнению с одноплатными компьютерами вроде Raspberry Pi или Rock64 и даже могут обойтись дешевле при покупке.

Установка ПО узла тоже подчас бывает возможна просто из установочного файла, по крайней мере частично.

Хорошие практики для продвинутых пользователей

(На основе документации Core Lightning)

Пользователям со сложными и более профессиональными сценариями использования рекомендуется рассмотреть следующие аппаратные и программные решения. Как минимум, узел следует оснастить ECC-памятью и зеркальным хранилищем (обычно RAID-1).

ECC-память

Память с коррекцией ошибок (ECC) защищает ваши данные от повреждений из-за инвертирования битов и аппаратных ошибок. При работе с чувствительными данными важно исключить их повреждение, и ECC обнаруживает и исправляет ошибки, возникающие в оперативной памяти.

SSD

Выбирая жёсткий диск, имейте в виду, что твердотельные диски (SSD) обычно надёжнее, чем HDD, поскольку в них нет движущихся частей, которые могут изнашиваться со временем. Кроме того, SSD имеют гораздо лучшую производительность, потребляют меньше энергии и тоже относительно недороги.

Зеркалирование хранилища

Зеркалирование обеспечивает защиту вашего узла от аппаратных сбоев, потенциально способных привести к потере данных и средств. Дублируя данные на двух и более независимых устройствах (предпочтительно SSD), вы гарантируете сохранность данных в случае выхода из строя одного из устройств.

Файловая система с контрольными суммами

Файловая система с контрольными суммами, как BTRFS или ZFS, дополняет ECC-память, вычисляя криптографический хеш данных перед записью. Этот хеш сохраняется в хранилище вместе с самими данными. Такой подход позволяет проверять целостность данных при чтении путём сравнения сохранённой контрольной суммы с вновь вычисленной и немедленно реагировать на любые нарушения.

Удалённая реплика

Несмотря на безопасность хранения данных, обеспечиваемую ECC-памятью, зеркалированием хранилища и проверкой контрольных сумм на уровне файловой системы, LN-нода остаётся уязвимой к таким “событиям непреодолимой силы”, как пожары или наводнения. Поэтому важно иметь реплику данных и в удалённом хранилище.

Установка Umbrel на Raspberry Pi

Сборка Raspberry Pi

(По источнику)

Дальше: Установка Umbrel

Минимальный рекомендуемый комплект для сборки LN-ноды будет выглядеть примерно так:

Запускаем свою lightning-ноду
(Источник)
  • Raspberry Pi 4 и выше (5)
    • Блок питания
  • Внешний накопитель SSD на 2 ТБ (8)
  • Карта microSD или SDHC объёмом 16-32 ГБ (на фото micro SDHC) (7)
    • Адаптер для microSD или SDHC
  • Радиаторы (для отвода тепла) (6)
  • Корпус (1, 2, 3, 4)
  • Ethernet-кабель

Плюс опционально, на фото отсутствуют:

  • Сенсорный ЖК-экран 3,5″ RPi Display *
    • Сенсорный контроллер XPT2046
  • GPIO подключение — может быть полезным для дополнительных функций: подключения аппаратных кошельков или кнопки для подтверждения транзакций, индикации состояний ноды, мониторинга и управления питанием.

* Дисплей не обязателен, потому что, независимо от выбранной реализации LN, вы сможете получить доступ к управлению нодой через веб-интерфейс с любого устройства, подключённого к той же сети.

Для Raspberry Pi доступно множество различных корпусов. В этом примере используется алюминиевый JOY-IT Case Pro для Raspberry Pi 4, у вас может быть любой другой подходящий. Также можно дополнить комплектацию сенсорным экраном, GPIO подключением и т.д. — по своему усмотрению и в меру собственного понимания.

Итак, соберём из компонентов на фото выше готовый к использованию Raspberry Pi. Для начала возьмём нижнюю часть корпуса (1) и прикрутим деталь (2) следующим образом:

Запускаем свою lightning-ноду

Запускаем свою lightning-ноду

Следующим шагом мы прикрепим радиаторы (6) к Raspberry Pi (5). Разместите большой радиатор на процессоре, а маленькие — на контроллерах RAM и USB.

Запускаем свою lightning-ноду

Результат должен выглядеть примерно так:

Запускаем свою lightning-ноду

Теперь вставим всю конструкцию в корпус и добавим деталь (3). Затем закрепите всю материнскую плату самым длинным винтом. Должно получиться как-то так:

Запускаем свою lightning-ноду

Теперь просто добавьте часть (4), и сборка завершена.

Запускаем свою lightning-ноду

Запускаем свою lightning-ноду

Raspberry Pi собран.

Установка Umbrel

Дальше: Настройка watchtower

Подойдёт и любой другой готовый дистрибутив: MyNode, RaspiBlitz, StartOS

 

Любой из надёжных и поддерживаемых дистрибутивов Linux тоже будет хорошим выбором. В этом случае вам может пригодиться наш следующий пример (хотя в нём мы устанавливаем лёгкий узел, без загрузки всего блокчейна):

Установка Lightning Network Daemon (LND) на сервер с Ubuntu

Вставьте карту памяти (microSD или SDHC) в адаптер и подключите её к (своему основному) компьютеру. Перейдите на сайт www.umbrel.com/umbrelos, нажмите “Install now” и следуйте процессу установки.

Загрузив UmbrelOS на карту памяти, вставьте её в предназначенный для этого слот Raspberry Pi, как показано ниже:

Запускаем свою lightning-ноду

Теперь подключите блок питания, Ethernet кабель и внешний жёсткий диск:

Запускаем свою lightning-ноду

Запускаем свою lightning-ноду

Затем подключите Ethernet кабель к LAN-порту своего роутера и включите кабель питания в розетку. На этом этапе всё должно выглядеть примерно так:

Запускаем свою lightning-ноду

Убедитесь, что вы подключены к тому же роутеру (по кабелю или по Wi-Fi — не важно), что и Raspberry Pi. Откройте браузер и введите в адресной строке umbrel.local. Вы должны увидеть следующее окно:

Запускаем свою lightning-ноду

Кликните “Start” и переходите к созданию учётной записи. Не забудьте тщательно сохранить пароль, так как опции его восстановления не предвидится; потеряв пароль, вы не сможете получить доступ к своему Umbrel.

После создания учётной записи вы должны увидеть следующее окно:

Запускаем свою lightning-ноду

Жмите “Next”, и вы будете перенаправлены в магазин приложений, где вам предстоит загрузить своё первое приложение: Bitcoin Node.

Запускаем свою lightning-ноду

Кликните по иконке Bitcoin Node и нажмите “install”.

Запускаем свою lightning-ноду

После завершения установки вы увидите домашний экран. Теперь нужно загрузить ещё несколько приложений. Перейдите в App Store и найдите приложение Lightning Node.

Запускаем свою lightning-ноду

Запускаем свою lightning-ноду

Запускаем свою lightning-ноду

Нажимайте “Install”, “Continue” и дождитесь завершения установки. Это приложение будет служить вам кошельком для LN и Bitcoin.

Затем загрузите ThunderHub, интерфейс управления lightning-узлом.

Запускаем свою lightning-ноду

Последним в списке приложением будет LNbits. Оно не обязательное, но может быть полезным. Через него можно создавать дополнительные кошельки для друзей или семьи, генерировать инвойсы с URL-адресами и многое другое.

Запускаем свою lightning-ноду

Теперь ваш домашний экран в UmbrelOS должен выглядеть как-то так:

Запускаем свою lightning-ноду

Установив приложения, откройте Bitcoin Node.

Запускаем свою lightning-ноду

Здесь необходимо загрузить и синхронизировать весь блокчейн Биткойна — это нужно для запуска lightning-ноды. По завершении синхронизации (которая запросто может занять пару дней и больше) можно будет переходить к настройке остальных приложений.

Прогресс загрузки можно отслеживать на панели управления. Надо сказать, что сначала процесс будет идти быстрее, но постепенно он будет замедляться: блоки будут обрабатываться медленнее. Со временем количество транзакций в блоках растёт, и нашей ноде придётся проверить корректность каждой из них.

Последнее, что я здесь покажу — это как получить доступ к вашему Umbrel из-за пределов домашней сети. Для этого используется сеть Tor, поэтому не забудьте скачать браузер Tor с сайта torproject.org. Ну или Brave.

Итак. Перейдите в настройки Umbrel и включите опцию “Remote Tor access”.

Запускаем свою lightning-ноду

После перезагрузки системы в настройках под “Remote Tor access” вы найдёте свой onion-адрес. По этому адресу вы сможете получить доступ к вашему Umbrel из любой внешней сети.

Всё, на этом начальный этап установки успешно завершён. После полной загрузки и синхронизации блокчейна можно приступать к настройке уже установленных приложений.

К этому моменту ваша нода уже будет подключена к Lightning Network, поскольку Umbrel создаёт подключение автоматически в фоновом режиме. Но для того, чтобы отправлять и получать платежи через LN, вам понадобится открыть канал.

К главе Открываем канал(ы)

К подключению кошелька

Настройка watchtower

Воспроизводим пример из этого видео

Дальше: Установка Lightning Network Daemon (LND) на сервер с Ubuntu

В оригинальном видео автор использует Umbrel, но поскольку в Umbrel используется LND, можно ожидать, что руководство должно быть применимо и к LND на Ubuntu — с поправкой на систему.

Поэтому там, где уместно, я приведу команды в двух вариантах: для Umbrel, как в оригинале, и для Ubuntu — по аналогии.

 

Ссылка на руководство по подключению и настройке Watchtower в документации LND: https://www.lightningnode.info/advanced-tools/watchtower

Открываем терминал и подключаемся к Umbrel (либо к серверу с Ubuntu, если это ваш вариант):

umbrel@umbrel.local

Введите пароль, если настроен, и входите на сервер.

Запускаем свою lightning-ноду

Откроем в текстовом редакторе файл конфигурации lnd.conf (система ещё раз запросит пароль):

Для Umbrel:

sudo nano umbrel/lnd/lnd.conf

Для Ubuntu.

Создайте директорию ~/.lnd, если она ещё не существует; откройте файл ~/.lnd/lnd.conf (при необходимости создайте):

mkdir -p ~/.lnd && nano ~/.lnd/lnd.conf

В открывшемся файле можно редактировать имеющиеся и добавлять новые настройки.

Давайте как-нибудь назовём нашу ноду (установите значение alias по своему вкусу) и активируем опцию watchtower (что важно для безопасности каналов):

alias=PrettyGoodName

[wtclient]
wtclient.active=true
wtclient. sweep-fee-rate=10

[watchtower]
watchtower.active=true

Расшифровка приведённых настроек watchtower:

Настройка Описание
wtclient.active=true Включает клиент Watchtower (в разделе [wtclient] файла lnd.conf)
wtclient.sweep-fee-rate=10 Устанавливает комиссию для клиента Watchtower в сатоши за байт для justice-транзакции (в разделе [wtclient] файла lnd.conf)
watchtower.active=true Включает встроенный watchtower, по умолчанию слушающий порт :9911 (в разделе [watchtower] файла lnd.conf)

Зададим также значения комиссий по умолчанию. В раздел [Bitcoin] файла lnd.conf добавим строки:

bitcoin.basefee=0
bitcoin.feerate=100
Настройка Описание
bitcoin.basefee=0 Базовая комиссия в миллисатоши, которую мы будем взимать за пересылку платежей по нашим каналам. Считается хорошей практикой устанавливать это значение равным 0. Вы можете возвращаться к этому файлу в любое время и менять любые настройки по своему усмотрению.
bitcoin.feerate=100 Ставка комиссии, применяемая при направлении чужих платежей через наши каналы. Общая взимаемая комиссия рассчитывается по формуле: basefee + (amount * feerate / 1000000), где amount — это пересылаемая сумма. Настройка выше эквивалентна комиссии в 100 ppm (частей на миллион).

С другими параметрами настроек я предлагаю ознакомиться в документации LND. Мы пока остановимся на этом.

Нужно сохранить изменения, закрыть файл (Ctrl+O, Enter, Ctrl+X) и перезагрузить ноду.

Umbrel:

cd ~/umbrel; docker-compose restart lnd; docker- compose ps

Ubuntu:

sudo systemctl restart lnd && sudo systemctl status lnd
Запускаем свою lightning-ноду

Добавим Watchtower, которая будет смотреть за нашей нодой — т.е. некую другую ноду, которая будет “присматривать” за безопасностью наших каналов на случай, если наша нода уйдёт офлайн. Для этого нам нужен её URL, с которым мы выполним в терминале команду вида:

Umbrel:

~/umbrel/bin/lncli wtclient add <watchtower URL>

Ubuntu (при размещении файлов программы по умолчанию):

/usr/local/bin/lncli wtclient add <watchtower URL>

Рабочие адреса Watchtower можно посмотреть в этом списке. Некоторые ноды в этой директории тоже предоставляют адреса для watchtower. Я для примера скопирую onion-адрес из этого руководства:

Umbrel:

~/umbrel/bin/lncli wtclient add 02f1158dd65fb7dad3d8274e39edcb8c03ff639365884ced2f143372b5fb050bc1@ddoi7crm7rhj2eyztcsv6iprclrxhmsquhaswef3xphhu2fin726w7ad.onion:9911

Ubuntu:

/usr/local/bin/lncli wtclient add 02f1158dd65fb7dad3d8274e39edcb8c03ff639365884ced2f143372b5fb050bc1@ddoi7crm7rhj2eyztcsv6iprclrxhmsquhaswef3xphhu2fin726w7ad.onion:9911

Проверим, что всё работает.

Umbrel:

~/umbrel/bin/lncli wtclient towers

Ubuntu:

/usr/local/bin/lncli wtclient towers

И для просмотра статистики используем команду…

Для Umbrel:

~/umbrel/bin/lncli wtclient stats

В Ubuntu:

/usr/local/bin/lncli wtclient stats

К подключению кошелька

Установка Lightning Network Daemon (LND) на сервер с Ubuntu

Дальше: Открываем канал(ы)

Lightning Network Daemon, сокращённо LND, — наиболее популярная из реализаций протокола Lightning Network, что во многом обусловлено созданной вокруг неё экосистемой приложений, помогающих отслеживать состояние и управлять узлом и каналами.

Если командная строка и терминал — это не для вас, рассмотрите другие варианты создания lightning-узла, описанные выше.

Для тех, кто уверенно себя чувствует в работе с командной строкой, пройдёмся по установке LND на сервере с Ubuntu, опираясь на это видео от Lightning Labs.

Это гайд по простой и быстрой установке лёгкого узла на Neutrino — без Bitcoin Core и загрузки всего блокчейна.

 

Зато он подходит для установки на облачный сервер или на машину без внешнего жёсткого диска.

 

Если это не ваш случай, см. инструкцию по установке в github LND и документации по LND и связанным сервисам здесь.

 

Альтернативное видео (одно из) по установке и настройке LND на Ubuntu (англ.)

 

– “Печатное” руководство от RaspiBolt, которому следуют в этом видео:
https://raspibolt.org/guide/lightning/lightning-client.html

Подключившись в терминале к серверу, обновим все пакеты, выполнив:

sudo apt update && sudo apt upgrade -y

После этого в браузере перейдём на github-страницу Lightning Labs: https://github.com/lightninglabs/, где найдём репозиторий Lightning Terminal.

На странице с релизами найдём инструкцию по проверке цифровой подписи релиза (который нам ещё предстоит скачать). Не будем пропускать эту проверку и, выбрав последнюю версию (на момент публикации это v0.13.3-alpha), сразу загрузим указанный на странице PGP-ключ, выполнив в терминале:

gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 26984CB69EB8C4A26196F7A4D7D916376026F177

На той же странице выбираем подходящий релиз (в данном случае это будет linux-amd64) и копируем ссылку на загрузку:

Запускаем свою lightning-ноду
https://github.com/lightninglabs/lightning-terminal/releases

Вставляем эту ссылку в терминал с командой wget и загружаем нужный нам архив с файлами программы (версия релиза будет меняться, так что не поленитесь проверить актуальную версию на github и сделать на это поправку во всех командах):

wget https://github.com/lightninglabs/lightning-terminal/releases/download/v0.13.3-alpha/lightning-terminal-linux-amd64-v0.13.3-alpha.tar.gz

Нам также понадобится файл manifest с подписью (с расширением .sig) и сам manifest (.txt). загрузим и их тоже:

Запускаем свою lightning-ноду
https://github.com/lightninglabs/lightning-terminal/releases
wget https://github.com/lightninglabs/lightning-terminal/releases/download/v0.13.3-alpha/manifest-v0.13.3-alpha.sig
wget https://github.com/lightninglabs/lightning-terminal/releases/download/v0.13.3-alpha/manifest-v0.13.3-alpha.txt

Проверим подпись манифеста командой gpg --verify:

gpg --verify manifest-v0.13.3-alpha.sig manifest-v0.13.3-alpha.txt

Мы ожидаем получить ответ “Good signature” такого вида:

Запускаем свою lightning-ноду

Дополнительно можно вывести в терминал содержание файла манифеста (cat manifest-v0.13.3-alpha.txt), рассчитать sha256sum для скачанного архива (sha256sum lightning-terminal-linux-amd64-v0.13.3-alpha.tar.gz) и сверить полученную контрольную сумму с суммой из манифеста для соответствующего файла.

Убедившись в подлинности скачанного архива с файлами программы, извлечём его содержимое:

tar -xvzf lightning-terminal-linux-amd64-v0.13.3-alpha.tar.gz

Установим программу, перенеся файлы в директорию /usr/local/bin:

sudo install -m 0755 -o root -g root lightning-terminal-linux-amd64-v0.13.3-alpha/* /usr/local/bin/

Перед тем как запустить программу, нужно еще сделать директорию .lit и поместить в неё файл lit.conf:

mkdir -p ~/.lit && nano ~/.lit/lit.conf

Скопируем в открывшийся файл эти настройки (ниже). Для ключа uipassword замените значение на свой пароль, качественный и уникальный, — это будет ваш пароль доступа в веб-интерфейс узла, шифрующий соединение.

httpslisten=0.0.0.0:8443
uipassword=your_strong_random_password_here
lnd-mode=integrated
lnd.bitcoin.active=1
lnd.bitcoin.mainnet=1
lnd.bitcoin.node=neutrino
lnd.feeurl=https://nodes.lightning.computer/fees/v1/btc-fee-estimates.json
lnd.protocol.option-scid-alias=true
lnd.protocol.zero-conf=true

Последние две строки конфигурации полезны, если вы хотите использовать zero-conf каналы. Такие каналы становятся доступны немедленно после трансляции HTLC с открытием канала в сеть — можно не дожидаться подтверждения транзакции.

Это быстрый и рациональный вариант запуска LN-узла: в частности, здесь используется Neutrino — это значит, что мы не запускаем на машине Bitcoin Core, вместо этого, подключаясь к глобальной сети Биткойна и используя её. Поскольку Neutrino не имеет мемпула, нам нужно получать откуда-то данные о комиссиях. Этот источник прописан в строке lnd.feeurl.

С конфигурацией на этом всё, можно сохранить изменения и закрыть файл с настройками (Ctrl+O, Enter, Ctrl+X). Запустите узел командой litd , и он начнёт синхронизацию с блокчейном.

Тем временем можно открыть новое окно терминала и создать кошелёк: инициируйте процесс командой lncli create и следуйте инструкциям: понадобится создать и подтвердить (надёжный) пароль от файла с кошельком, сгенерировать и сохранить новую seed-фразу либо ввести имеющуюся — всё как обычно.

Создав кошелёк, вы можете посмотреть информацию о нём, включая статус синхронизации, командой lncli getinfo.

Запускаем свою lightning-ноду
Источник

Когда кошелёк создан и синхронизирован, по большому счёту нода уже готова к использованию: можно принимать и отправлять ончейн-транзакции, открывать lightning-каналы и принимать предложения об открытии каналов. Чего мы, скорее всего, ещё не можем делать — это совершать платежи по LN, даже если бы уже открыли первый канал, потому что у нашего узла пока нет достаточного представления о LN. Но он быстро её узнаёт — это дело считанных минут, так что к тому времени как вы войдёте и осмотритесь в веб-интерфейсе, узел успеет синхронизировать и граф LN тоже.

Прогресс можно посмотреть командой lncli getnetworkinfo.

Запускаем свою lightning-ноду
Источник

Для перехода в веб-интерфейс введите в адресной строке браузера IP-адрес узла и через двоеточие — порт, который мы писали в настройках выше (если не меняли, то :8443) — убедимся, что порт открыт и подключение происходит.

Браузер выдаст вам предупреждение о потенциальном риске для безопасности. Это предупреждение он будет показывать каждый раз, потому что мы не можем получить правильный TLS-сертификат для этого IP. Если бы мы привязали к нему доменное имя, тогда мы бы смогли получить этот сертификат и избавиться от этого предупреждения.

А пока что надо выбрать ~[ Advanced > Accept the Risk and Continue ]. В открывшемся окне введите пароль от UI — тот, который вы присвоили ключу uipassword в настройках узла, — и вы должны попасть на домашнюю страницу веб-интерфейса вашего узла:

Запускаем свою lightning-ноду

Здесь у вас есть доступ к настройкам узла, Loop (для ребалансирования и управления ликвидностью), управлению каналами (Lightning Node Connect) и можно подключить узел к Lightning Terminal — сервису, в котором можно искать узлы для открытия каналов, выполнять свопы между ончейн-BTC и LN и т.д.

См. также:

Установив расширение Alby и воспользовавшись мастером подключения LND Onboarding от Alby, можно в два шага подключить кошелёк Alby и автоматически открыть первый канал — с исходящей ликвидностью, входящей в ходе этой настройки вы не получаете.

(О способах управления ликвидностью см. ниже)

Открываем канал(ы)

Для публичных каналов: устанавливайте каналы на 3-5-10-20 млн сатоши (или больше) с качественными пирами. Каналы меньше чем на 3 млн сатоши в основном игнорируются при маршрутизации.

Для любых каналов: когда размер канала слишком мал, может возникнуть ситуация, когда его невозможно закрыть из-за высоких комиссий в Биткойне. Это также делает канал уязвимым в случае, если контрагент попытается закрыть его с использованием устаревшего состояния балансов (в свою пользу).

Поиск и выбор пиров для каналов

Дальше: Как получить входящую ликвидность

Телеграм-бот с рекомендациями каналов: ChanRecommenderBot даёт рекомендации по каналам для вашей ноды. Вы вводите публичный ключ ноды, указываете, сколько сатоши вы хотите вложить в канал, и получаете рекомендацию.


Признаки хорошего пира для открытия канала и где таких искать

Хорошими пирами в LN считаются узлы с хорошей связностью с остальной сетью и высоким уровнем доступности. В большинстве случаев количество каналов с хорошими пирами важнее, чем общее число каналов вашего узла. Пиры с хорошей связностью повышают качество маршрутизации ваших платежей в LN.

[ Развернуть ]

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

Может быть полезно подключаться к узлам, с операторами которых можно связаться в случае возникновения проблем (см. ссылки на социальные сети и мессенджеры в профиле узла).

Запускаем свою lightning-ноду
Источник: Lightning Terminal
Запускаем свою lightning-ноду
Источник: Lightning Terminal

Непрерывная конкуренция между узлами и постоянно меняющийся платёжный баланс между ними не позволяет со 100% точностью определить оптимальные каналы для получения дохода от комиссий за маршрутизацию в каждый конкретный момент времени. В конце концов, если бы было возможно точно предсказать, какие каналы принесут маршрутизирующим узлам непропорционально большой доход, эти возможности быстро привлекли бы конкурирующие узлы с более крупными каналами, большим количеством соединений и более низкими комиссиями, — пока эти возможности не исчезли бы. Свободная конкуренция с открытым доступом для всех и непредсказуемость платежей способствуют созданию более равных условий для всех узлов, поощряя эксперименты и эффективное управление ликвидностью.

Запускаем свою lightning-ноду
Домашняя страница Lightning Terminal

Имея в виду вопрос получения входящей ликвидности (для получения платежей через LN), стоит обратить внимание на колонку Inbound Liquidity в Lightning Terminal.

Узел с хорошей входящей ликвидностью доступен с низкими затратами и в короткие сроки. Хорошая входящая ликвидность необходима для надёжного получения платежей, предотвращения сбоев маршрутизации и высоких комиссий. Низкая входящая ликвидность может приводить к пропуску платежей и издержкам, которые трудно точно оценить.

В Lightning Terminal результат классификации отображается в процентилях. Нахождение в 10-м процентиле означает, что 9 из 10 узлов имеют лучшую входящую ликвидность. Terminal также сигнализирует о степени уверенности в оценке: яркие цвета сигнализируют о высоком уровне уверенности в оценке, серый цвет указывает на низкую уверенность. Из документации ресурса:

Hard to Reach (ниже 15 процентиля):

  • В адрес этого узла сложно провести платёж. Поиск маршрутов занимает много времени или они оказываются дорогостоящими.
  • Может быть выгодно открыть канал с этим узлом.
  • Если это ваш узел: вам может быть полезно увеличить входящую ликвидность, совершая платежи, с помощью инструмента Loop от Lightning Terminal, submarine swaps или путём покупки дополнительной входящей ёмкости. Чтобы сохранять низкие комиссии за входящие транзакции, регулярно высвобождайте ликвидность, чтобы существующие каналы можно было использовать повторно.

Reachable (15 – 60 процентиль):

  • Этот узел может быть достигнут за разумное время и с приемлемыми затратами.

Easy to Reach (выше 60 процентиля):

  • Этот узел может легко принимать платежи с низкими комиссиями
  • Рассмотрите возможность приобретения входящей ёмкости у этого узла для улучшения собственной входящей ликвидности.

Читайте также: Руководство по управлению ликвидностью в Lightning Network

Если вы подключили свой узел к Lightning Terminal, то можете открыть канал с выбранным узлом кнопкой Open Channel. Если нет, то вам понадобится его адрес. По умолчанию в Terminal показывается IPv4 адрес; чтобы скопировать onion-адрес для подключения через Tor, нужно переключиться на него:

Запускаем свою lightning-ноду

Ещё один полезный ресурс, который можно использовать для поиска подходящих пиров — LightningNetwork.plus, раздел Explorer. Здесь проще выявить LN-узлы индивидуальных пользователей. Будут полезны фильтры по подключенным твикстер- или Nostr-аккаунтам и, конечно, по ёмкости и количеству каналов. Можно также воспользоваться поиском (по имени или публичному ключу), чтобы посмотреть дополнительную информацию об узле, найденном в Lightning Terminal.

Запускаем свою lightning-ноду
Интерфейс LightningNetwork.plus

Важный ресурс с полезной статистикой по LN-узлам и их каналам, включая изменение количества каналов во времени (хорошо, когда оно стабильно высокое или растёт, а не снижается), — это Amboss.space:

Запускаем свою lightning-ноду

В статистике ноды на Amboss.space имеет смысл сразу обратить внимание на графики общего количества каналов и ёмкости и на возраст самого старого канала. Кроме того, на отдельных вкладках сервиса можно найти множество подробной статистики, включая данные о комиссиях узла.

 



Как определить успешный узел (чтобы его “эмулировать”)

Чтобы повысить свои шансы на участие в маршрутизации и получении комиссий, хорошей мыслью выглядит выбрать с помощью этих инструментов — Lightning Terminal, LightningNetwork.plus и Amboss.space — успешный и сравнительно прибыльный частный узел и эмулировать его поведение.

[ Развернуть ]

Эта часть кратко воспроизводит этот видеогайд (ссылка с таймкодом)

Когда мы убедились, что рассматриваем частный узел (наличие ссылок на достоверные социальные профили добавит уверенности), в данном случае нас будут интересовать следующие моменты:

  • Общая ёмкость узла: чем больше, тем лучше.
  • Возраст самого старого канала (Amboss): хорошо, если узел не очень молодой / имеет устойчивые каналы.
  • Динамика числа каналов и общей ёмкости (Amboss): хорошо, когда эти показатели стабильны и растут.
  • Отношение исходящих комиссий ко входящим (Amboss, вкладка Fee Report):
    • в данном случае нас интересуют высокие исходящие (outbound) комиссии и низкие входящие (inbound), с соотношением не меньше 1x, лучше >2x.

Выбрав подходящий узел, можно обратиться к списку его каналов и воспроизвести основные из них на своём узле, обратив внимание на их относительный объём.

Из списка каналов “эмулируемого” узла открываем его страничку его пира, и если статистика выглядит убедительно, копируем адрес этого узла и идём открывать с ним канал.

* Избегайте каналов с сервисами свопа ликвидности (как Loop в Lightning Terminal): они будут работать исключительно в одном направлении, раз за разом вытягивая исходящую ликвидность.

** Намного удобнее будет открыть несколько каналов покрупнее, чем много слишком мелких каналов, которыми будет неудобно управлять и с ёмкостью, недостаточной для платежей.

 


В приложениях на UmbrelOS или других реализациях LN эти действия можно воспроизвести по аналогии.

Для веб-интерфейса ThunderHub:

(который вы, возможно, установили вслед за LND)

На вкладке Home в разделе Quick Actions нажмите кнопку Open. Откроется меню “Open a Channel” с выбором из нескольких нод по умолчанию, которыми вы вполне можете и ограничиться, если у вас нет никаких ожиданий от канала помимо простой отправки и получения транзакций.

Если хотите открыть канал с узлом по своему выбору, выберите опцию Manual.

  • Опцию “Is New Peer” переключите на Yes.
  • В поле New Node вставьте адрес выбранного узла.
  • Определите размер канала.
  • Fee: Auto > Fastest (либо определите вручную, если уверены в том, что делаете).

В разделе Advanced можно:

  • Выбрать опцию приватного канала:
    • Актуально для регулярных расчётов, например, с деловым партнёром. Но если вы хотите выполнять чужие платежи и получать за это комиссии, то канал должен быть публичным.
  • Отправить баланс канала другой его стороне, полностью или частично.

Задав все нужные параметры, осталось нажать кнопку “Open Channel”. Канал откроется после трёх подтверждений транзакции в блокчейне.

Для веб-интерфейса Ride The Lightning:

(который вы тоже могли выбрать после установки LND)

В боковом меню выберите: Lightning > Peers/Channels.

  • На вкладке “Peers” нажмите кнопку “Add Peer”.
  • В поле Peer Details вставьте адрес узла; нажмите Add Peer под этим полем.

Откроется меню с параметрами канала.

  • В поле Amount определите размер канала.
  • Transaction Type: Fee (либо по своему усмотрению)
    • Определите размер комиссии.

Задав желаемые параметры, жмём кнопку “Open Channel”. Канал откроется после трёх подтверждений транзакции в блокчейне.

Ликвидность

Как получить входящую ликвидность

Дальше: Как управлять ликвидностью каналов

Чтобы принимать платежи в LN вам понадобится входящая ликвидность. Вот некоторые из наиболее распространённых и универсальных способов получения входящей ликвидности (можно использовать любую их комбинацию или выбрать то, что лучше подходит именно вам):

  1. Расходование со своей ноды. Отправляя платежи через LN, вы превращаете исходящую ликвидность во входящую. Это наиболее очевидный способ получения входящей ликвидности. Можно также перевести средства из узла на другой свой lightning-кошелёк или на биржу с поддержкой депозитов в Lightning, что переместит ликвидность в использованном канале из исходящей во входящую.
  2. Lightning Loop. В этом случае вы выплачиваете средства через ваши каналы на сервис Loop. Сервис Loop, в свою очередь атомарно выполняет ончейн-транзакцию того же номинала (за вычетом комиссии) на ончейн-кошелёк вашего узла. Полученные при этом ончейн средства можно использовать для открытия новых каналов. Доступ к Loop можно получить через Lightning Terminal. Можно также использовать Boltz.exchange, который работает аналогично Loop, но является отдельным сервисом.
  3. Amboss Magma/Hydro. Amboss Magma — это рынок ликвидности, который можно использовать для получения входящих каналов от других узлов. Это также называют “арендой ликвидности”, когда вы платите другому узлу в сети за открытие канала к вам, тем самым обеспечивая своему узлу входящую ликвидность. Можете также использовать их сервис Hydro для автоматизации открытия каналов, чтобы ваш узел никогда не испытывал недостатка во входящей ликвидности.
  4. Lightning Network+. Lightning Network+ — это платформа для обмена ликвидностью, где узлы LN могут заключать соответствующие соглашения. Эти соглашения не требуют от вас уплаты каких-либо комиссий. Например, вы в принципе можете заключить соглашение с двумя другими операторами узлов, где A открывает канал к B, B открывает канал к C, а C открывает канал к A. Это очень простой и дешёвый способ получить входящую ликвидность. Недостаток состоит в том, что для большинства соглашений требуется, чтобы ваш узел уже имел какие-то каналы перед вступлением в обмен ликвидностью.

См. также другие рынки ликвидности в сравнительной таблице.

  1. Воспользоваться услугами провайдера ликвидности (LSP). LSP (Liquidity Service Provider) — это поставщик услуг ликвидности. Таких сервисов на рынке немало. Из наиболее распространённых можно выделить Voltage LSP, Olympus LSP, LNBIG и Thor.

Наглядная иллюстрация получения входящей ликвидности (в несколько ином представлении) есть в этом видео (ссылка с таймкодом). И там же несколько вариантов ребалансирования каналов.

Как управлять ликвидностью каналов

Для публичного маршрутизирующего узла

Дальше: Для приватных LN-узлов

Для публичных каналов: устанавливайте каналы на 3-5-10-20 млн сатоши (или больше) с качественными пирами. Каналы меньше чем на 3 млн сатоши в основном игнорируются при маршрутизации. Кроме того, стоимость открытия и закрытия небольших каналов будет слишком высока, чтобы это могло быть эффективно.

Внимательно выбирайте пиров (см. выше), плюс можно прогнать каждого из них через симулятор каналов на SparkSeer.space и посмотреть, что канал с ними может дать вашему узлу.

После открытия канала, в зависимости от доступной исходящей/входящей ликвидности, выполните loop-out примерно на 30-40-50% этой ликвидности, чтобы сбалансировать новый канал. Это поможет вам освоиться. Можно использовать для этого временный внешний lightning-кошелёк или просто сделать своп в ончейн. Выведенные в свопе средства можно потом использовать для открытия новых каналов.

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

Для loop-in и loop-out можно использовать:

  • Интегрированные свопы в Ride The Lightning и Thunderhub (используют Loop и Boltz)
  • Deezy.io — простой и быстрый сервис, провайдер ликвидности (LSP), свопы LN-ончейн
  • CoinOS.io — веб-кошелёк, поддержка ончейн и LN, свопы, кастодиальные и некастодиальные
  • Boltz.exchange — простой и быстрый сервис, свопы из LN в блокчейн
  • FixedFloat — простой и быстрый сервис, свопы из LN в блокчейн
  • RoboSats (только через Tor) — свопы фиат <–> LN и LN <–> блокчейн, совершенно приватно
  • DiamondHands — проект под управлением японского комьюнити операторов узлов
  • Submarine Swaps — от Alex Bossworth (разработчика LND)
  • myLoop Telegram-бот — подойдёт для небольших сумм

Это самый важный график для публичного маршрутизирующего узла: отчёт об общей ликвидности узла (взят из веб-приложения ThunderHub, веб-интерфейса управления нодой).

Запускаем свою lightning-ноду

Как видите, не так важно поддерживать идеальный баланс в каждом канале, как сохранять общий баланс входящей и исходящей ликвидности узла. Нарушение этого баланса — скажем, когда у вас 60% исходящей и 40% входящей общей ликвидности, — может напрямую повлиять на маршрутизацию: через вас будет направляться меньше платежей. Почему? Потому что если у вас недостаточно “пространства” для получения и пересылки платежа, ваш узел отклонит такой маршрут.

Этот дисбаланс в ликвидности можно скорректировать следующими способами:

  • Сделать своп в опустошённый или из переполненного канала.
  • С помощью Lightning Terminal Loop.
  • Скорректировать комиссии для некоторых каналов, чтобы направить ликвидность туда, где она наиболее необходима.
  • Скорректировать минимальную либо максимальную сумму HTLC.

Общие рекомендации для публичных маршрутизирующих узлов:

  • Держите каналы открытыми как можно дольше. Но если канал довольно мал, а вы видите, что через него проходит значительный объём транзакций, закройте его и откройте канал большего размера.
  • Поддерживайте максимально возможную надёжность вашего узла. Его репутация зависит от этого.
  • Если заинтересованы в маршрутизации, не запускайте узел так, чтобы он работал только через Tor. Маршрутизация подразумевает публичность. Узлы, работающие только через Tor, не будут на 100% надёжными и доступными, что повлияет не только на вас, но и на остальных участников сети.
  • Если приватность для вас имеет больший приоритет, чем маршрутизация, не запускайте публичный узел.

Для приватных LN-узлов

Дальше: Подключаем lightning-кошелёк к Umbrel

В этой категории всё довольно просто, и зависит от того, как вы используете эти приватные LN-узлы.

Основная задача состоит в поиске надёжных публичных узлов для подключения. Они должны соответствовать следующим критериям:

  • обеспечивать максимально низкие комиссии;
  • соглашаться на открытие меньших каналов;
  • соглашаться на открытие приватных каналов и держать их открытыми, пока в них есть активность;
  • предоставлять хорошие и быстрые маршруты платежей.

И даже тогда старайтесь избегать открытия слишком маленьких каналов — например, на 20-50-100 тыс. сатоши. Обычного канала на 1-5 млн сатоши будет достаточно для обеспечения хорошего количества платежей.

Подготовьте также 2-3-4 канала на своём мобильном приватном узле. Почему не один? Потому что никогда не знаешь, когда ваш пир окажется офлайн или не будет иметь хороших маршрутов. Кроме того, имея как минимум 3 канала, вы можете использовать сплайсинг, разделяя сумму платежа на меньшие части и отправляя их сразу по нескольким маршрутам, — это не только повышает приватность, но и является более эффективным способом использования ваших каналов и сети в целом.

Подключаем lightning-кошелёк к Umbrel

Приятные мелочи напоследок. Только BlueWallet и Zeus для примера.

Lightning-кошелёк, менеджер и LNDHub

Важное различие, которое надо понимать, прежде чем мы продолжим, — это разница между lightning-кошельками и приложениями для управления вашим lightning-узлом. Простой способ это объяснить и понять — через сравнение вашего lightning-узла с отделением банка.

Вы, как владелец банка, управляете узлом-“отделением”: открываете lightning-каналы, пополняете кошелёк узла биткойнами (это можно сравнить с банковским хранилищем), обеспечиваете постоянное подключение узла к интернету, устанавливаете комиссии за каналы и многое другое.

Всё это можно делать из командной строки либо из подключаемых графических интерфейсов и приложений, многие из которых уже упоминались или даже использовались выше. Некоторые из них есть и в виде приложений для Umbrel, как Lightning Node, Ride The Lightning, ThunderHub или Lightning Terminal. Эти приложения позволяют удалённо управлять вашим lightning-узлом и его основным кошельком – “банковским хранилищем”. Из мобильных приложений, так работает, например, Zeus.

И совершенно отдельно от этого существует категория lightning-кошельков. Ваш LN-узел (банк) имеет собственный кошелёк (банковское хранилище), но вы также можете установить т.н. LNDHub. Этот “хаб” позволяет другим создавать lightning-кошельки, которые подключаются к вашему узлу.

Запускаем свою lightning-ноду
Источник

Эти отдельные кошельки можно представить как клиентов, которые приходят в ваш банк и открывают новый счёт. Их lightning-кошелёк начинает с нулевого баланса в сатоши и полностью отделен от основного кошелька вашего узла (банковского хранилища). Они могут вносить, снимать, отправлять и получать средства через ваш банк, используя свой lightning-кошелёк / счёт. У вашего банка может быть 1, 10 или 100 000 “клиентских” lightning-кошельков, открывших счета, — это никак не влияет ни на ваш собственный (банковского хранилища) баланс, ни на безопасность.

  • Lightning-узел = отделение банка, где кошелёк вашего узла является банковским хранилищем (ликвидность);
  • LNDHub = ПО для подключения клиентских счетов;
  • Lightning-кошельки, подключающиеся к LNDHub = клиенты, открывающие счета в вашем банке.

Все действия в Биткойне производятся через узлы сети.

Читайте также: Полный узел Биткойна: руководство по обеспечению суверенитета

BlueWallet

Дальше: Подключаем Zeus

BlueWallet (сайт, обзор) — это кошелёк для Lightning Network, способный подключаться к LNDHub. При этом подключение к собственному LNDHub по разработчики кошелька больше не предлагают — можно только указать свой или любой сторонний по выбору (что и неплохо — иначе бы у компании был доступ к информации обо всех наших LN-платежах).

Но мы как раз установили-таки (надеюсь) свою lightning-ноду, и ничто нам не мешает подключить к ней LNDHub, а к нему BlueWallet. Вы даже можете предоставить доступ к своему LN-узлу (через LNDHub) всем друзьям и родственникам, которые смогут использовать его через свой кошелёк, получив гораздо более безопасную среду, управляемую вами.

Причём здесь Electrum

BlueWallet позволяет создавать и биткойн-кошельки. Для достижения полной автономности вам нужно подключить его к своему биткойн-узлу на Umbrel через встроенный Electrum Server.

Electrum, по сути, это лёгкий биткойн-кошелёк. Для достижения высокой скорости работы и быстрой настройки он использует клиент-серверную архитектуру: кошелёк Electrum (клиент) подключается к Electrum Server, который может быть запущен кем угодно. В случае Umbrel Electrum Server работает непосредственно на биткойн-узле, что является приватным решением, находящимся под полным вашим (и только вашим) контролем.

Electrum был создан ещё в 2011, и с тех пор многие приложения-кошельки интегрировали его в свой код. Поддержка его практически повсеместна. Это свободно распространяемое опенсорс ПО, и доступно множество публичных серверов для подключения. По умолчанию BlueWallet будет подключаться к публичному Electrum-серверу, но гораздо лучше запустить собственный приватный Electrum Server и подключиться к нему.

Перед подключением

Убедитесь, что на вашем Umbrel уже установлено следующее ПО:

  1. Bitcoin Node — установлено и полностью синхронизировано с блокчейном
  2. Electrs (Electrum Server)
  3. Lightning Node
  4. BlueWallet Lightning

И не забудьте установить BlueWallet на телефон 🙂

Tor

Поскольку Umbrel работает только через Tor, то для подключения к нему ваш компьютер или телефон тоже должны быть подключены к сети Tor. В некоторых биткойн- и LN-кошельках есть встроенная поддержка Tor, но BlueWallet больше её не предоставляет, поэтому придётся скачать и установить Tor отдельно. Способ установки зависит от операционной системы.

Windows: Скачайте и установите Tor Expert Bundle для Windows

Ubuntu: Откройте терминал и выполните команду:

sudo apt-get install tor

MacOS: Откройте терминал и выполните команду:

brew update && brew install tor

Если менеджер пакетов Homebrew не установлен, и система не узнаёт команду brew, то сначала установите менеджер и ещё раз повторите команду выше. Для установки Homebrew выполните:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Android: Скачайте и установите Orbot на телефон, затем откройте приложение и нажмите на большую иконку лука.

iOS: Скачайте и установите Orbot на телефон, затем откройте приложение и нажмите на большую иконку лука.

Как подключить BlueWallet к Umbrel

Шаг 1: Получите данные своего Electrum Server

Запускаем свою lightning-ноду

В первую очередь убедитесь, что на вашем устройстве запущен Tor и вы подключены к сети Tor. Затем нужно найти данные вашего Electrum Server: это может быть либо адрес в открытой сети, например 127.0.0.1, либо имя хоста Tor или адрес .onion. В UmbrelOS разные приложения выполняют разные функции, и чтобы найти данные Electrum, вам нужно установить и открыть приложение Electrs.

После открытия рекомендую выбрать адрес Tor, так как у большинства пользователей соединение с их полным узлом на Umbrel настроено без использования HTTPS-сертификата, что означает отсутствие шифрования. Это может быть опасно даже в локальной сети, если к ней подключены разнообразные IoT-устройства или другие пользователи. Tor же использует шифрование по умолчанию, поэтому это гораздо безопаснее.

Шаг 2: Введите данные своего Electrum Server

Запускаем свою lightning-ноду

В BlueWallet перейдите в раздел Settings -> Electrum Server и скопируйте значения Address и Port. Можно это сделать вручную или тапнуть по строке Scan Or Import A File внизу экрана, чтобы отсканировать QR-код из Electrs на вашем Umbrel.

После ввода всех данных нажмите кнопку Save. Это подключит вас к вашему узлу Umbrel через сеть Tor. Имейте в виду, что процесс может занять минуту или две — если понадобится, просто дождитесь его завершения.

Подключив BlueWallet к Electrum Server, вы гарантируете, что любые ончейн-кошельки, которые вы создаёте в BlueWallet, будут использовать именно ваш полный узел, а не какой-либо из публичных.

Шаг 3: Получите данные своего BlueWallet LNDhub

Запускаем свою lightning-ноду

Далее вам понадобятся данные BlueWallet LNDhub. Установите в Umbrel и откройте приложение BlueWallet Lightning, оно выглядит примерно так как показано выше (пока это не устареет). Открыв приложение, вы увидите QR-код в правом верхнем углу.

Шаг 4: Введите свои настройки Lightning

Запускаем свою lightning-ноду

В BlueWallet перейдите в Settings -> Lightning Settings и тапните по строке Scan Or Import A File внизу экрана, чтобы отсканировать QR-код из LNDHub на вашем Umbrel.

Введя все данные, сохраните изменения и перезапустите приложение. Это подключит вас к LNDHub на вашем Umbrel через сеть Tor. Имейте в виду, что процесс может занять минуту или две — если понадобится, просто дождитесь его завершения.

Подключение BlueWallet к собственному LNDHub гарантирует, что любые lightning-кошельки, которые вы создаёте в BlueWallet, будут использовать именно ваш LN-узел (через LNDHub), а не какой-либо из публичных.

Zeus

В начало, к навигации

Перед подключением

Убедитесь, что на вашем Umbrel уже установлено следующее ПО:

  1. Bitcoin Node — установлено и полностью синхронизировано с блокчейном
  2. Lightning Node

И не забудьте установить Zeus Wallet на телефон 🙂

Как подключить Zeus Wallet к Umbrel

Шаг 1: Настройка Open Node

Запускаем свою lightning-ноду

После открытия Zeus Wallet перейдите в раздел Настройки, нажав на значок в левом верхнем углу. Выберите Connect A Node, затем нажмите кнопку + в правом верхнем углу, чтобы добавить новый узел. Когда откроется экран Node Configuration, включите опцию Use Tor в нижней части экрана.

Шаг 2: Получите данные сервера своего Lightning-узла

Запускаем свою lightning-ноду

Далее вам понадобятся данные вашего Lightning LND сервера. Установите в Umbrel и откройте приложение Lightning Node.

Открыв приложение, нажмите на три точки в правом верхнем углу и выберите Connect Wallet. Это откроет всплывающее окно, похожее на то, что показано выше. Убедитесь, что в выпадающем меню режима и сети выбрано REST (Tor), затем заполните поля Host, Port и Macaroon.

На момент составления этой инструкции авторам не удалось использовать функцию сканирования QR-кода в Zeus для ввода этих данных — пришлось копировать и вставлять вручную.

Шаг 3: Введите данные сервера своего lightning-узла

Запускаем свою lightning-ноду

В меню Node Configuration убедитесь, что в выпадающем списке Node Interface выбрано значение LND (REST), затем скопируйте данные Host, Port и Macaroon. Введя все данные, сохраните настройки, и Zeus подключится к вашему узлу на Umbrel. Имейте в виду, что процесс может занять минуту или две — если понадобится, просто дождитесь его завершения.

В случае ошибки подключения к Tor попробуйте принудительно закрыть Zeus и перезапустить приложение.

Шаг 4: Подтверждение подключения

Запускаем свою lightning-ноду

Если соединение установлено успешно, вы должны переключиться на домашний экран, с которого можно переключаться по различным вкладкам снизу для просмотра и управления своим lightning-узлом. Поздравляю, это всё: вы успешно подключились к своему узлу на Umbrel через Tor 🎉💐.

 


Подписывайтесь на BitNovosti в Telegram!
Делитесь вашим мнением об этой статье в комментариях ниже.

 

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here