Как повторно синхронизировать c-lightning с блокчейном основной сети?
Я играю с реализацией молнии с https://github.com/ElementsProject/lightning и после следующих шагов клиент-клиент не может перечислить средства, которые я перечислил на сгенерированный адрес из внутреннего кошелька
- Я установил bitcoind-0.16 и полностью синхронизировал mainnet-blockchain
- Я установил c-lightning и синхронизировался с локальным полным узлом
- Я сгенерировал новый адрес с
./lightning-cli newaddr
- Я получил этот адрес из своего кошелька Electrum (не из кошелька локального узла) и увидел входящую транзакцию с
./lightning-cli listfunds
- Тогда я случайно удалил файл
.lightning/lightningd.sqlite3
- После перезапуска 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 (что займет довольно много времени).
Обратите внимание, что это работает только до тех пор, пока у вас нет открытых каналов, поскольку в этом случае вы больше не являетесь единственным владельцем средств. Поэтому никогда не удаляйте БД!