Testnet

比特幣 cli regtest 的問題

  • July 7, 2021

這些是我在建構具有所有依賴項的干淨 ubuntu docker 映像後執行的命令:

./src/bitcoin-cli -regtest &

它產生錯誤:

error: too few parameters (need at least command)

接下來我跑了:

./src/bitcoin-cli -regtest -daemon

這導致:

error: too few parameters (need at least command)

最後:

./src/bitcoin-cli -regtest 101 & 

產量:

error: Could not locate RPC credentials. No authentication cookie could be found, and no rpcpassword is set in the configuration file (/root/.bitcoin/bitcoin.conf)

這些命令取自以下資源:

<https://bitcoin.org/en/developer-examples#regtest-mode>

這裡有個問題,對應的答案提供了啟動regtest的腳本,這是一個好的解決方案嗎?

要停止守護程序,請使用界面或執行bitcoin-cli stop.


下一步

所以我先跑:

bitcoind -regtest -daemon

我得到了輸出:

Bitcoin server starting

然後我嘗試了:

bitcoin-cli -regtest getinfo

這導致:

error: Could not locate RPC credentials. No authentication cookie could be found, and no rpcpassword is set in the configuration file (/root/.bitcoin/bitcoin.conf)

這些命令也產生了與上面相同的輸出:

./src/bitcoin-cli -regtest help  
./src/bitcoin-cli -regtest 101

所以我創建了以下文件:

vim /root/.bitcoin/bitcoin.conf

實際上就是這樣:

rpcpassword=123

*也試過這個:

server=1
rpcuser=root
rpcpassword=password
rpcconnect=127.0.0.1
rpcport=8332

現在發出命令:

bitcoin-cli -regtest getinfo

結果如下:

error: couldn't connect to server: unknown (code -1)
(make sure server is running and you are connecting to the correct RPC port)

看來你混淆了bitcoindbitcoin-cli

bitcoind是比特幣核心守護程序。它必須先執行,然後才能執行任何操作。是一個向正在執行的實例bitcoin-cli發送 RPC 命令的工具。bitcoind

從連結的文件頁面:

bitcoind -regtest -daemon

&如果您使用-daemon.

一旦bitcoind執行,您可以例如getinfo使用以下命令發送命令bitcoin-cli

比特幣-cli -regtest 獲取資訊

或發送generate 101生成 101 個區塊:

比特幣-cli -regtest 生成 101

要了解您可以發送的其他命令:

比特幣-cli -regtest 幫助

這樣您就可以了解該ping命令。要了解更多資訊,您可以發送:

bitcoin-cli -regtest 幫助 ping

您需要-regtest為每個命令指定,因為您可以為每個網路執行一個守護程序(一個用於主網,一個用於測試網,一個用於 regtest),或者如果您將每個網路配置為在單獨的目錄和網路埠中執行,則可以執行更多。

請注意,這bitcoin-cli只是一個使用 JSON-RPC(這是一種標準化協議)的程序,儘管它有些專門用於bitcoind. 您可以bitcoind使用任何 JSON-RPC 客戶端(所有流行語言都存在這些庫)進行連接。為此,您需要配置使用者名/密碼以連接bitcoind.

解釋你所看到的:

  • ./src/bitcoin-cli -regtest &``bitcoind由於尚未執行,因此無法工作,並且您沒有指定要發送的命令。
  • ./src/bitcoin-cli -regtest -daemon同樣地。
  • ./src/bitcoin-cli -regtest 101 &看起來幾乎是正確的,除了你錯過了generate,所以你試圖將不存在的命令發送101到一個尚未執行的守護程序。

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