Lightning-Network

在 c-lightning regtest 上執行閃電充電

  • May 19, 2020

我正在嘗試在我的 2 個閃電 ( <https://github.com/ElementsProject/lightning> ) 實例之一之上執行照明充電 ( https://github.com/ElementsProject/lightning-charge )。我在這裡使用腳本執行 2 個節點:. 該文件將啟動一個比特幣實例以及 2 個閃電節點 ( , )lightning/contrib/startup_regtest.sh``/tmp/l1-regtest``/tmp/l2-regtest

然後我嘗試使用以下命令執行閃電充電:

$ NETWORK=regtest charged --api-token super_secret_1 --ln-path ~/.lightning --db-path ~/charge1.db --port 9112

這給了我這個錯誤:

Lightning client connection error { Error: connect ECONNREFUSED ~/.lightning
   at Object._errnoException (util.js:1022:11)
   at _exceptionWithHostPort (util.js:1044:20)
   at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
 code: 'ECONNREFUSED',
 errno: 'ECONNREFUSED',
 syscall: 'connect',
 address: '~/.lightning' }
events.js:183
     throw er; // Unhandled 'error' event
     ^

Error: connect ECONNREFUSED ~/.lightning
   at Object._errnoException (util.js:1022:11)
   at _exceptionWithHostPort (util.js:1044:20)
   at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)

我也試過用ln-pathset to執行它/tmp/l1-regtest/

ps aux我可以看到閃電正在使用以下命令執行:

~/git/lightning/lightningd/lightningd --lightning-dir=/tmp/l1-regtest
and
~/git/lightning/lightningd/lightningd --lightning-dir=/tmp/l2-regtest

有誰知道如何lightning-charge連接到我的 regtest 閃電節點?

自述文件 ( https://github.com/ElementsProject/lightning-charge/blob/master/README.md )中有關於如何在 docker 中執行此操作的說明,但它似乎在 docker 之外不起作用。

問題是在你呼叫charged那裡你傳遞參數--ln-path ~/.lightning假設你在你的主目錄中執行閃電,因此你必須設置ln-path/tmp/l1-regtest/.

現在你說這也行不通。所以在我給你一個解決方案之前,讓我解釋一下到底發生了什麼。charged通過 UNIX 域套接字lightningd上的 rpc 介面進行通信。在舊版本中,在您指定的文件夾中lightningd呼叫了一個文件,但是最近已將其 API 切換為在mainnet、testnet 和 regtest 中包含子目錄。(原因是特別是在預設目錄中,人們希望對 mainnet、testnet 和 regtest 有不同的配置)lightning-rpc``lightning-dir``lightningd``lightning-dir

因此,我假設您會發現lightning-rpc當您這樣做時ls /tmp/l1-regtest/regtest,這意味著您應該tmp/l1-regtest/regtest--ln-path呼叫時傳遞charged。如果不是這種情況,我將不得不看到另一條錯誤消息。

引用自:https://bitcoin.stackexchange.com/questions/96028