Bitcoind

JSON RPC 庫無法連接到 bitcoind?

  • August 12, 2017

我可以使用我的命令行連接到 bitcoind,並且該程序正在使用適當的埠執行,但是當我在使用 JSON-RPC 庫後嘗試通過 XAMPP 執行它時(我使用 PHP 開發人員介紹程式碼)它給出我出現以下錯誤,我不知道為什麼:

Warning:  fopen(): Failed to enable crypto in /opt/lampp/htdocs/bitcoins/jsonRPCClient.php on line 132

Warning:  fopen(https://...@127.0.0.1:8332/): failed to open stream: operation failed in /opt/lampp/htdocs/bitcoins/jsonRPCClient.php on line 132
Fatal error:  Uncaught exception 'Exception' with message 'Unable to connect to https://user:password
@127.0.0.1:8332/' in /opt/lampp/htdocs/bitcoins/jsonRPCClient.php:140
Stack trace:
#0 /opt/lampp/htdocs/bitcoins/testServer.php(7): jsonRPCClient->__call('getinfo', Array)
#1 /opt/lampp/htdocs/bitcoins/testServer.php(7): jsonRPCClient->getinfo()
#2 {main}
 thrown in /opt/lampp/htdocs/bitcoins/jsonRPCClient.php on line 140

程式碼如下:(我們嘗試在 http 和 https 之間切換,但仍然無法正常工作)

require_once 'jsonRPCClient.php';

$bitcoin = new jsonRPCClient('https://user:password@127.0.0.1:8332/');

echo "<pre>\n";
print_r($bitcoin->getinfo());
echo "</pre>";

正如@Bittylicious 提到的,JSON-RPC 有點問題

<https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)#PHP>

注意:jsonRPCClient 庫使用 fopen(),如果它從 bitcoind 接收到 404 或 500 錯誤,將拋出異常“無法連接”。這可以防止您看到由 bitcoind 生成的錯誤消息(因為它們以狀態 404 或 500 發送)。

您可以選擇使用EasyBitcoin,它會拋出更準確的錯誤消息,並且與 JSON-RPC 幾乎相同

&lt;?php
require_once 'YOUR_FOLDER/easybitcoin.php';
$rpc_host = 'YOUR_IP';
$rpc_port = 'YOUR_PORT';
$rpc_user = 'YOUR_USER';
$rpc_pass = 'YOUR_KEY';
$bitcoin = new Bitcoin($rpc_user, $rpc_pass, $rpc_host, $rpc_port);
print_r($bitcoin-&gt;getinfo());
print_r($bitcoin-&gt;listaccounts());
print_r($bitcoin-&gt;listreceivedbyaddress(0, true));
?&gt;

希望這可以幫助!

預設情況下,bitcoind RPC 通過 http,而不是 https。當然,除非您通過生成 SSL 密鑰並設置所需的配置選項來啟用 SSL…

rpcssl=1

否則,這一行:

$bitcoin = new jsonRPCClient('https://user:password@127.0.0.1:8332/');

應改為:

$bitcoin = new jsonRPCClient('http://user:password@127.0.0.1:8332/');

如果那沒有回答,請告訴我。還有其他幾種方法。

歡迎來到基於 satoshi 客戶端的結晶貨幣世界!

我認為這個小資訊應該很不恰當地發布,它隱藏在沒有人閱讀的文件中。

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