Как повторно синхронизировать c-lightning с блокчейном основной сети?

Я играю с реализацией молнии с https://github.com/ElementsProject/lightning и после следующих шагов клиент-клиент не может перечислить средства, которые я перечислил на сгенерированный адрес из внутреннего кошелька

  1. Я установил bitcoind-0.16 и полностью синхронизировал mainnet-blockchain
  2. Я установил c-lightning и синхронизировался с локальным полным узлом
  3. Я сгенерировал новый адрес с ./lightning-cli newaddr
  4. Я получил этот адрес из своего кошелька Electrum (не из кошелька локального узла) и увидел входящую транзакцию с ./lightning-cli listfunds
  5. Тогда я случайно удалил файл .lightning/lightningd.sqlite3
  6. После перезапуска lightningd воссоздал файл, но теперь ./lightning-cli listfunds показывает пустые результаты, но средства должны быть там, потому что транзакция финансирования видна в блокчейне.

Я исследовал ./lightning-cli dev-listaddrs который показывает все адреса внутреннего кошелька и есть мой адрес финансирования. Так что я думаю, что мне нужно повторно синхронизировать Lightningd с цепочкой биткойнов, но ./lightning-cli dev-rescan-outputs не было успеха

Что я могу сделать, чтобы снова увидеть и потратить средства? Или как получить начальный / закрытый ключ внутреннего (молниеносного) кошелька?

1 ответ

Решение

Идеальный ответ был дан от члена c-lightning здесь: https://github.com/ElementsProject/lightning/issues/1170

В случае, если ссылка умирает:

Ну, краткий ответ: не удаляйте БД, что в конечном итоге приведет к потере средств, точно так же, как и при удалении wallet.dat в биткойне.

Длинный ответ таков: используйте newaddr для восстановления всех ваших адресов (это нормально называть в несколько раз больше). Затем остановите lightningd, откройте lightningd.sqlite3 и попросите его выполнить сканирование из более раннего блока:

sqlite3 $ HOME /.lightning / lightningd.sqlite3 "ОБНОВЛЕНИЕ vars SET val= 500000 ГДЕ name='last_processed_block';"

Затем перезапустите lightningd, и он должен начать сканирование блоков с высоты 500'000 (что займет довольно много времени).

Обратите внимание, что это работает только до тех пор, пока у вас нет открытых каналов, поскольку в этом случае вы больше не являетесь единственным владельцем средств. Поэтому никогда не удаляйте БД!

Другие вопросы по тегам