Поднимаем Lightning Network ноду Bitcoin

in #ru7 years ago

Перевод, оригинал статьи https://medium.com/@jadmubaslat/bitcoin-lightning-network-node-easy-setup-tutorial-for-windows-desktop-users-a-how-to-guide-9937b5a8a669

Недавно я заметил возросший интерес к решениям масштабирования сети Bitcoin второго уровня, таких как Lightning Network (LN), но простой и понятной документации по установке и настройке LN я не нашел. Может по что использование LN в тестовой сети только для программистов и пользователей Linux, но на деле все не так сложно. Установка текущего LN-клиента для Windows на самом деле не сильно сложна, И может быть выполнена в течении 30 минут. Что меня приятно удивило.

Имейте в виду, в настоящее время поддерживается только тестовая сеть Bitcoin. Я обновлю инструкцию, когда LN можно будет использовать в основной цепи BTC :)

Десктопный клиент имеет простой пользовательский интерфейс (GUI) для взаимодействия с LND демоном, так же как Bitcoin Core или Bitcoin Knots (или любой другой кошелек Bitcoin для Windows) помогает взаимодействовать пользователю с bitcoin демоном (bitcoind). Далее будет показано, что Zap и Lightning-App показывают одну и ту же информацию, не смотря на разные интерфейсы.

Цели данного туториала:

  • Установка Lightning-App или Zap Desktop (наиболее продвинутые LN приложения)
  • Открытие платежного канала
  • Покупка виртуального кофе в Starblocks (starblocks.acinq.co)
  • Получение LN платежей

В этом туториале используется Windows 7. Если вы когда-либо получали или отправляли биткоин-транзакции, то ничего сложного здесь вы не найдете.

Часть 0: Установка (5-10 минут, легко)

ПРАВКА: если вы не хотите использовать программу Zap и хотите использовать только Lightning App desktop, можете загрузить архив с программой отсюда: https://github.com/lightninglabs/lightning-app/releases/download/v0.1.4-alpha/Lightning-win32-x64v0.1.4.zip Просто скачайте, извлеките и запустите “lightning.exe” и все должно заработать. Можете переходить сразу к Части 2.

Нам необходимо несколько программ для компиляции LN. Скомпилировать LN не так сложно

Скачиваем Node.js для Windows и устанавливаем: https://nodejs.org/en/download/

Скачиваем Git для Windows и устанавливаем его: https://git-scm.com/download/win

Скачиваем Yarn для Windows и запускаем инсталлятор: https://yarnpkg.com/lang/en/docs/install/#windows-tab

Качаем Windows Visual C++ Build Tools 2015 и тоже устанавливаем: http://landinghub.visualstudio.com/visual-cpp-build-tools

После установки всего, перезагружаем компьютер.

После перезагрузки, запускаем командную строку (Пуск →CMD.exe). Вводим node -v, и жмем Enter. Потом вводим git — version, и жмем Enter. Затем, вводим yarn -v, и жмем Enter. Если видим версии всех трех программ, можно продолжать

Убедились, что, git и yarn работают

Наконец, , устанавливаем python версии 2.7 by выполнив следующую команду: (double dashes are auto-formatted on medium.com, so make sure you type it out as you see below)

npm --add-python-to-path=’true’ --debug install --global windows-build-tool

Часть 1a: Установка Lightning-App (5 минут, все еще легко!)

Рекомендую устанавливать сначала Lightning-App, так как  LND демон установится автоматически. Это сократит нам объем работы при установки Zap.

Для начала, создайте папку где вам удобно. В этом примере я устанавливал сюда: C:\Users\Jad\Desktop\Tutorials\Lightning-App

Далее, щелкаем  CMD.exe, и запускаем от имени администратора, и переходим в созданную вами папку “cd C:\Your\Custom\Path” (можно скопировать и вставить в командную строку при помощи правой кнопки мыши)

Теперь когда мы находимся в нужной папке, нужно скачать все исходные файлы Lightning-App в эту папку. Делаем это при помощи команды “git clone https://github.com/lightninglabs/lightning-app.git” Будет скачано что-то около 189 MB. По выполнению увидим следующее:

Все файлы скачаны

Набираем “cd lightning-app”, и жмем Enter. Потом вводим команду “npm run setup”, и снова жмем Enter. Ждем 2–4 минуты до завершения процесса, потом вводим “npm run package-electron”, и жмем Enter. Теперь у нас есть отличный .exe файл, который мы и будем использовать в дальнейшем.

Сборка программы

Сборка .exe файла

Теперь запускаем и ждем пару минут, пока завершится установка. Если случатся какие-то непредвиденные ошибки - проверьте, чтобы командная строка была запущена с привилегиями администратора. Так же я столкнулся с проблемой, когда у меня была установлена Visual Studio Community 2015, и она вызывала конфликты, так что я её предварительно снес перед установкой Visual C++ Build Tools 2015. Если все завершится удачно, появится новая папка “release” в папке lightning-app со следующим содержимым:

Готовы к запуску!

После запуска видим следующее. Синхронизация занимает 5–10 минут и достаточно сделать это один раз:

You’ve done it!

Часть 1b: Установка Zap-Desktop App (опционально)

Установка Zap-Desktop гораздо проще, если вы установили Lightning-App. Лично мне интерфейс Zap понравился больше, чем интерфейс Lightning-App.

Как и до этого, запускаем CMD.exe от имени администратора и заходим в выбранную нами папку. Вводим “git clone https://github.com/LN-Zap/zap-desktop.git”, и жмем Enter:

Установка Zap-Desktop

Когда все скачается, вводим “cd zap-desktop”, и жмем Enter.

Потом вводим “yarn”, жмем Enter и ждем 1–5 минут до завершения команды.

Далее вводим “npm run install-grpc”, и ждем 1-5 минут до завершения команды.

Наконец, чтобы Zap-Desktop заработал, нам надо скопировать файл lnd.exe в папку resources/bin/win32. В моем случае, мне нужно скопировать файл LND.exe в папку C:\Users\Jad\Desktop\Tutorials\zap-desktop\resources\bin\win32. Чтобы найти lnd.exe, нужно ввести lnd в поиск Windows, скопировать и вставить файл. При чем, не имеет значения, какой из найденных:

Далее, создаем в папке zap-desktop файл “launch.bat”. Используя текстовый редактор, записываем в созданный файл следующие две строки:

cd %~dp0

npm run dev

Все готово для запуска! Щелкаем правой кнопкой launch.bat и запускаем от имени администратора:

Часть 2: Открытие платежного канала (меньше 5 минут, легко)

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

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

Get your wallet’s address to receive testnet BTC as an on-chain tx

Теперь переходим сюда: https://testnet.manu.backend.hamburg/faucet и отправляем себе бесплатные монетки тестовой сети. Как только у транзакции будет 3 подтверждения, вы сможете использовать монеты тестовой сети для открытия платежного канала.

В этом примере мы откроем платежный канал с помощью  BitRefill.com. Здесь их прекрасный гайд! Если вы используете Zap, сначала кликните “Peers” в меню слева. Затем “Add new peer” и введите 0298d0c6987e2e64451c7f723e15aff4dfca92f0e3973d214e206257abb0d1dd55 в поле ввода публичного ключа ноды и  lnd.bitrefill.com в поле ввода имени хоста. В Lightning-App, просто вставьте строку 0298d0c6987e2e64451c7f723e15aff4dfca92f0e3973d214e206257abb0d1dd55@lnd.bitrefill.com после нажатия “create channel” во вкладке “channels”:

Создание платежного канала в Lightning-App

В Zap-app вы должны сначала добавить “bitrefill” в качестве пира, перед тем как создавать платежный канал. Во вкладке “peers”, жмем “Add new peer” и заполняем форму:

Теперь переходим в кладку каналов и создаем платежный канал с публичным ключем 0298[..]d55. Крутой фишкой Zap-desktop является то, что вы можете создавать двунаправленные каналы, так что вы можете иметь часть денег уже на другой стороне канала. Например, возможно, вы знаете, что будете вести бизнес с BitRefill какое-то время, и вы платите за что-то наперед, возможно, вы откроете канал с некоторым количеством BTC сразу на стороне BitRefill.

Теперь у вас должен быть открыт один платежный канал. Больше различных нод можно глянуть здесь https://explorer.acinq.co/#/

После трех подтверждений сетью канал откроется. Я также заметил, что каналы иногда активны, а иногда и неактивны. Канал  BitRefill остается активным. Я предполагаю, что это может означать, что другой узел должен оставаться в сети. Если у вас проблемы с подключением, проверьте, чтобы фаерволл не блокировал процесс lnd.exe, а так же проверьте порт 9735. Нужно было сделать это до того, как установить соединение.

Часть 3: Заплатим за виртуальный кофе

Идем сюда: https://starblocks.acinq.co/#/, добавляем любой кофе в корзину и подтверждаем покупку. Копируем выделенный текст:

Наш инвойс

Затем открываем наше LN-приложение и вставляем платежный запрос:

Оплачиваем! На данный момент маршрутизация платежей довольно плохая. Вы, скорее всего, получите ошибку типа “routing failed”. Если это случилось, попробуйте соединиться с большим числом каналов.

Когда LN работает, она работает мгновенно, и это довольно удивительно видеть!

Часть 4: Получаем платежи!

Наконец, протестируем возможность получать платежи. Создаем запрос платежа в одном из приложений. В Zap, после создания запроса, идем на страницу “wallet”, и щелкните по самому запросу:

Теперь, чтобы потренироваться в получении средств, открываем LN web-кошелек http://htlc.me/ и пробуем отправить себе деньги; или устанавливаем eclair testnet wallet на андроид-телефон, и отправляем себе деньгм. Еще одно забавное упражнение -  открытие платежного канала с кошелька eclair к десктопной ноде.

Полезные ссылки

Zap Slack : https://join.slack.com/t/zaphq/shared_invite/enQtMjc5Njg3NjU5MzMzLWE1M2RiNjYxNWEyMTRjMzhmZDIyNTQ0YTRjNDg4MWNiMzI1ODNlODhhMzE5ZWVmMGVkOWVkMTVmNzBhNDhiZjQ

A great Zap YouTube video by the founder: https://www.youtube.com/watch?time_continue=11&v=dhpg_8D2FPI

Lightning App Slack:

https://join.slack.com/t/lightningcommunity/shared_invite/MjI4OTg3MzQ4MjI2LTE1MDMxNzM1NTMtNjlmOGYzOTI1Ng