Поднимаем Lightning Network ноду Bitcoin
Перевод, оригинал статьи 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 к десктопной ноде.
Полезные ссылки
A great Zap YouTube video by the founder: https://www.youtube.com/watch?time_continue=11&v=dhpg_8D2FPI
Lightning App Slack: