Ich betreibe einen Testnet-Knoten. Ich kann bitcoin-cli gut verwenden:
>bitcoin-cli.exe getinfo
{
"version" : 100000,
"protocolversion" : 70002,
"walletversion" : 60000,
[... snipped]
Aber wenn ich diesen Python-Code ausführe:
from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
import logging
rpc_user = "rpcuser"
rpc_password = "xxxxx"
logging.basicConfig()
logging.getLogger("BitcoinRPC").setLevel(logging.DEBUG)
rpc_connection = AuthServiceProxy("http://%s:%s@192.168.1.39:8332/" % (rpc_user, rpc_password))
print(rpc_connection.getinfo())
Ich bekomme diesen Fehler:
DEBUG:BitcoinRPC:-1-> getinfo []
Traceback (most recent call last):
File "<path>\rawtransactiondemo\raw.py", line 11, in <module>
print(rpc_connection.getinfo())
[... snipped]
File "C:\Python27\lib\json\decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Das ist meine bitcoin.conf:
testnet=1
rpcuser=bitcoinrpc
rpcpassword=xxxxx
daemon=1
rpcport=8332
rpcallowip=192.168.1.39
bind=192.168.1.39
Ich verwende die python-bitcoinrpc- Bibliothek.
Ich habe etwas Code hinzugefügt, um zu debuggen, was Bitcoin zurücksendet – es stellte sich als 401-Fehler heraus.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML>
<HEAD>
<TITLE>Error</TITLE>
<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'>
</HEAD>
<BODY><H1>401 Unauthorized.</H1></BODY>
</HTML>
Warum wurde das ausgelöst? Wenn Sie sich meine bitcoin.conf und meinen Python-Code ansehen, können Sie sehen, dass der Benutzername unterschiedlich ist (bitcoinrpc vs. rpcuser). Das zu ändern hat es behoben.
Wie auch immer, wenn Sie den Fehler erhalten ValueError: No JSON object could be decoded
, könnte dies Ihr Problem sein.
Für alle anderen, die dies finden und das Problem KEIN Tippfehler wie in der akzeptierten Antwort war:
Das Problem für mich war einfach, dass ich meine conf-Datei am falschen Ort hatte.
Ich habe dies auf Ubuntu 20.04 installiert und die conf-Datei in /.bitcoin/bitcoin.conf gespeichert, aber sie hat in /home/user gesucht, was eigentlich ~.bitcoin/bitcoin.conf war.
Das Speichern der conf-Datei am richtigen Ort hat alles behoben. Ich könnte jetzt bitcoin-cli ohne sudo und die Python-Skripte mit python-bitcoinrpc verwenden.
Wenn Sie das Testnet verwenden, sollte rpcport 18332 sein.
Nick Odell
Zauberer von Ozzie