curl gibt eine leere Ausgabe zurück, wenn json-rpc

Ich kann keine JSON-RPC-Antwort über Curl erhalten. Anfragen werden scheinbar nicht angenommen.

Meine bitcoin.conf

rpcuser=USER
rpcpassword=PASS
server=1
rpcport=9332

Laufender Dämon

$ bitcoind -conf=~/.bitcoin/bitcoin.conf -daemon
Bitcoin server starting

Kli prüfen

$ bitcoin-cli -conf=~/.bitcoin/bitcoin.conf getinfo
{
  "version": 140200,
  "protocolversion": 70015,
  "walletversion": 130000,
  "balance": 0.00000000,
  "blocks": 439348,
  "timeoffset": 0,
  "connections": 8,
  "proxy": "",
  "difficulty": 254620187304.0614,
  "testnet": false,
  "keypoololdest": 1500029964,
  "keypoolsize": 100,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}

Curl testen

$ curl http://localhost:3333
curl: (7) Failed to connect to localhost port 3333: Connection refused

Der Port ist natürlich falsch:

$ curl http://localhost:9332
JSONRPC server handles only POST requests

Einen Beitrag erstellen

$ curl http://localhost:8332 -H 'content-type:text/plain;' --data-binary ''

Die Ausgabe ist immer leer, egal ob ich Daten oder Benutzer,Passwort hinzufüge. Ist immer leer:

$ curl http://localhost:9332 -H 'content-type:text/plain;' --data-binary ''
$ curl http://localhost:9332 -H 'content-type:text/plain;' --data-binary ''
$ curl http://USER:PASS@localhost:9332 -H 'content-type:text/plain;' --data-binary ''
$ curl http://USER:PASS@localhost:9332 -H 'content-type:text/plain;' --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getinfo","params":[]}'
$ curl --user USER:PASS http://localhost:9332 -H 'content-type:text/plain;' --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getinfo","params":[]}'

Irgendwelche Ideen, warum das passiert? Weiß nicht, was ich noch versuchen soll.

Können Sie die ausführliche Option hinzufügen und uns sagen, was darin steht?-v / --verbose

Antworten (3)

Wenn Sie bei Amazon AWS sind, versuchen Sie Folgendes:

setsebool -P httpd_can_network_connect 1

Ich hatte das gleiche Problem und es dauerte Stunden, bis ich herausfand, dass der Server Verbindungen blockierte. Ich dachte, es sei nicht das Problem, weil meine AWS-Sicherheitsgruppe es zugelassen hat. Aber anscheinend hat der Server es direkt blockiert.

Für alle, die versuchen, sich lokal mit einem Wallet zu verbinden:

Ich habe es geschafft, meine lokal zum Laufen zu bringen, indem ich geändert habe rpcallowipund rpcconnectvon 127.0.0.1zu meiner tatsächlichen lokalen IP-Adresse (z. B. 192.168.0.2). Scheint, dass die Verwendung von Standard localhostoder 127.0.0.1nicht immer funktioniert.

fügen Sie dies zu bitcoin.conf hinzu

rpcallowip=0.0.0.0/0

alle IP zulassen

Das ist unglaublich unsicher. Sie sollten nur die IPs zulassen, von denen Sie eine Verbindung herstellen.