Lightning Network для Биткоина. #1 :смогу ли я скомпилировать и запустить узел?

*Андреас Брекен (Andreas Brekken)  -  является Директором Shitcoin.com.  С 2011 года он одержим криптовалютами. Автор был одним из основателей компании Justcoin.com, а затем работал инженером с Kraken.com.

 

Сегодня я испытаю LN, платежную систему для Биткоина, решение для его масштабирования, второй слой над блокчейном

Lightning Network (LN) – это решение для масштабирования Биткоина.
Каково это быть пользователем  Lightning  после 3-х лет с выхода его Whitepepper?

- Андреас узнает*.

Я впервые установлю себе  программу `lnd`, предназначенную для работы в сети LN, и я с нетерпением жду, чтобы испытать на себе эту прорывную технологию.

«Lightning Whitepaper»
... Установка и настройка lnd выполняется быстро и просто. Функция автопилота автоматически установит и предоставит платежные каналы, чтобы сделать маршрутизацию платежей быстрой и дешевой...  

дальше « Многа букаф, ниасилил »

«Lightning Whitepaper» была написана Джозефом Пуном и Тадеушом Драйа в январе 2016 года. Существует несколько реализаций стандарта протокола, в том числе «lnd» и «c-lightning».

LN уже адаптирована для  криптовалюты Лайткоин. А в 2013 году были задокументированы и стали возможны Кросс- Атомарные Свопы (обмен криптовалют на разных блокчейнах без посредников), но они так и не стали популярны. Свопы работают по протоколу «Tier Nolan»

Для удобства я разделил обзор сети Lightning Network на несколько частей:

  1. Компиляция и запуск узла (ноды LN)
  2. Стать платежным ХАБом
  3. Покупка товаров и Оплата услуг
  4. Выводы и заключения
ЧАСТЬ ПЕРВАЯ.
Установка Daemon Lightning Network
Настройка экземпляра Amazon EC2

Я точно знаю, что для начала мне нужно запустить полную ноду Биткоина. 

Чтобы обеспечить безопасность, я буду использовать последнюю стабильную версию Bitcoin Core -  это самый популярный и надежный кошельк Биткоин

Я не могу использовать свой ноутбук для запуска полного узла,   это потребует много времени на синхронизацию, мой ноутбук не всегда включен, он часто меняет IP-адрес. 

Поэтому я запускаю виртуальную машину на Amazon AWS .

 

 

Ubuntu 16.04 - популярная версия операционка Linux, к тому же, она совместима с программами разработанными для большинством криптомонет.

 

 

Я выбираю экземпляр (instance) с типом c5.large.

В нём 2-х ядерный процессор, 4 гига оперативки и 10-ти гигабитное интернет-подключение.

 

 

Мне нужно установить весь блокчейн на жестком диске.

 

Хранение всей цепочки Биткойа на жестком диске требует больших ресурсов. Особенно, если тебуется индексирование транзакций.

Я возьму 500 ГБ жесткого диска , этого должно хваить с запасом. 

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

 

 

Я открываю порты одноранговой сети Bitcoin, для оптимизации подключения.

 

Я помню, что Lighting Network требует чтобы нода имела статичный IP-адрес. Я его назначаю.

 

Я подключаюсь к машине через SSH и обновляю Ubuntu.

Пока идет обновление, я изучаю документацию Lightning Network.

Кажется, сеть LN может работать как с графической версией Bitcoin Core, так и с btcd (демоном). У меня больше опыта с Bitcoin Core.

Я подозревал, и видел комментарии о том, что нужно запускать индексацию транзакций txindex=1. Мне так же потребуется ZeroMQ (zmq). ZeroMQ - это способ уведомления различных программ, запущенных на одном компьютере, о событиях, напимер, таких как новые транзакции и блоки.

 

Компиляция Bitcoin Core из исходного кода

Я загружаю Bitcoin Core v0.16.1.

 

$ wget https://github.com/bitcoin/bitcoin/archive/v0.16.1.tar.gz

И извлекаю архив
$ tar zxvf v0.16.1.tar.gz ... $ cd bitcoin-0.16.1/

Зависимости Bitcoin Core кажутся довольно прямолинейными.

 

Я запускаю всё это в командной строке

sudo apt-get install -y build-essential libtool \ autotools-dev automake pkg-config \ libssl-dev libevent-dev bsdmainutils \ python3 libboost-system-dev \ libboost-filesystem-dev libboost-chrono-dev \ libboost-program-options-dev libboost-test-dev \ libboost-thread-dev && \ sudo apt-get install -y software-properties-common && \ sudo add-apt-repository ppa:bitcoin/bitcoin && \ sudo apt-get update && \ sudo apt-get install -y libdb4.8-dev libdb4.8++-dev && \ sudo apt-get install -y libzmq3-dev

Установка зависимостей заняла всего три минуты.

И я компилирую Bitcoin Core.

... make[2]: Leaving directory '/home/ubuntu/bitcoin-0.16.1' make[1]: Leaving directory '/home/ubuntu/bitcoin-0.16.1' ubuntu@ip-172-31-33-128:~/bitcoin-0.16.1$ ... ~/bitcoin-0.16.1$ bitcoind --version Bitcoin Core Daemon version v0.16.1.0-gdac5d68fc6cf Copyright (C) 2009-2018 The Bitcoin Core developers

 

Я должен отредактирровать нужную мне конфигурацию кошелка

 $ vim ~/.bitcoin/bitcoin.conf

В ожидании установки Bitcoin Core, я заглядываю в документацию Lnd . Я добавляю необходимые настройки ZeroMQ.


   не волнуйтесь... , я уже изменил пароль.

 

Я запускаю демон bitcoind. Синхронизация займет несколько дней. Последний блок 530533.

На другой вкладке я ввожу команду watch bitcoin-cli getnetworkinfo , чтобы следить за синхронизацией.

Теперь, мой Bitcoin Core  синхронизируется.

Я смотрю документацию для lnd, Daemon Network Lightning

Она написана на языке GO. Программы на GO, обычно просты в установке.

Я устанавливаю GO и диспетчер пакетов dep , в соответствии с документацией.

$ sudo apt-get install -y golang-1.10-go ... $ sudo ln -s /usr/lib/go-1.10/bin/go /usr/local/bin/go ... 
$ go version go version go1.10 linux/amd64 
$ echo 'export GOPATH=~/gocode' >> ~/.bashrc ... 
$ echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc $ source ~/.bashrc $ go get -u github.com/golang/dep/cmd/dep 
$ dep version $ dep version dep: version : devel

И затем собираю lnd.

go get -d github.com/lightningnetwork/lnd && \ cd $GOPATH/src/github.com/lightningnetwork/lnd && \ make && \ make install

Компиляция заняла менее пяти минут.

$ lnd --version lnd version 0.4.2-beta commit=a0b2fadea35fa4642daf4e9f56e6ecfe31d22ce1

 

Я смотрю в документы lnd – знакомлюсь с примерами файла конфигурации.

vim ~/.lnd/lnd.conf

Я запускаю lnd.

$ lnd loadConfig: either --bitcoin.mainnet, or bitcoin.testnet, bitcoin.simnet, or bitcoin.regtest must be specified

Возможно, этот образец конфигурации устарел. Я добавляю bitcoin.mainnet=1 в [Bitcoin\]секции lnd.conf , и повторяю попытку.

Я удаляю эту опцию и повторяю попытку.

$ lnd loadConfig: debug-htlc mode cannot be used on bitcoin mainnet

Я пробую команду lncli create.

Возможно, образец конфигурации устарел. Я добавляю sword:
Confirm wallet password:
Do you have an existing cipher seed mnemonic you want to use? (Enter y/n): n
Your cipher seed can optionally be encrypted.
Input your passphrase you wish to encrypt it (or press enter to proceed without a cipher seed passphrase):
Generating fresh cipher seed...
!!!YOU MUST WRITE DOWN THIS SEED TO BE ABLE TO RESTORE THE WALLET!!!
---------------BEGIN LND CIPHER SEED---------------
xxxxxxx
xxxxxxx
xxxxxxx
xxxxxxx
xxxxxxx
xxxxxxx
---------------END LND CIPHER SEED-----------------
!!!YOU MUST WRITE DOWN THIS SEED TO BE ABLE TO RESTORE THE WALLET!!!
lnd successfully initialized!
ubuntu@ip-172-31-33-128:~$

 

Программа lnd заметила созданный кошелёк и начала синхронизироваться с bitcoind.

 

Загрузка и синхронизация блоков биткойна займет некоторое время. 

Я продолжу завтра

 

На следующий день, Bitcoind завершила синхронизацию.

 

 

Но Daemon Network Lightning у меня слетел.

 

Терминал также слетел. Я перезагружаю систему и повторяю попытку.

Если машине снова не хватит памяти, то я либо переключусь на Instance с большей ОЗУ, либо попробую добавить файл подкачки.

~ ssh andreas-tries-lightning-network sudo shutdown -r now Connection to 54.203.150.163 closed by remote host.

 

После перезапуска,  lnd догоняет блок 410,000. Я жду.., думаю это будет быстро.

Я искал решения проблемы с памятью и обнаружил, что другие пользователи тоже её испытывают. Оказалось, что для lnd создается слишком много output-ов.

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

[Application Options] #debuglevel=trace #maxpendingchannels=10

Критики Lightning Network, утверждают, что для суммы более 10$ вероятность нахождения маршрутов между двумя случайными узлами очень мала . Я подозреваю, это из-за того, что они выбирают случайные узлы, которые слишком  удалены дрг от друга.

Есть несколько настроек для автопилота - функция, которая автоматически открывает каналы. 

Я должен испытать эту функцию в первую очередь.

Я добавляю autopilot.active=1 в [Autopilot] раздела lnd.conf.

Позже для нормальной работы LN мне понадобятся некоторые средства (несколько биткоинов или сатоши).

Я уверен, что фондирование можно настроить при помощи lncli.

 

newaddress выглядит так, как мне нужно.

$ lncli newaddress [lncli] invalid address type , support address type are: p2wkh and np2wkh .$ lncli newaddress \[lncli\] недопустимый тип адреса, тип адреса поддержки: p2wkh и np2wkh

 

Я предполагаю, что p2wkh это pay-to-witness-key-hash, но я не понимаю, что означает эта "n" впереди.

$ lncli newaddress --help NAME: lncli newaddress - Generates a new address. USAGE: lncli newaddress address-type CATEGORY: Wallet DESCRIPTION: Generate a wallet new address. Address-types has to be one of: - p2wkh: Pay to witness key hash - np2wkh: Pay to nested witness key hash

 

Я до сих пор не знаю, какой из них нужно использовать. Я попробую np2wkh.

$ lncli newaddress np2wkh { "address": "3CkeGETi1N85NSTJ9GFn87dAN34tHYZzQn" }

 

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

Через пару часов я проверю, работает ли автопилот?

 

 

Компиляция, установка и запуск Lightning Network Daemon (lnd), осталась позади

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

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

to be continued...

Подписывайся, если интересно узнать, чем всё это закончится

____________________________________________________________

Об авторе: Андреас Брекен (Andreas Brekken) является генеральным директором Shitcoin.com.
С 2011 года он одержим криптовалютами. Автор был одним из основателей компании Justcoin.com, а затем работал инженером с Kraken.com.

 

lnlightningbitcoinblockchainecryptocurrencyglintблокчейнбиткоинплатежиголосgolosразработкамойопытfintechlndbitcoinlightning-networkголосgoloscryptoфотографиятехнологиифинансымагазин
8
0.081 GOLOS
0
В избранное
gustavson
На Golos с 2018 M07
8
0

Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (1)
Сортировать по:
Сначала старые