我在通过 Python 连接到本地比特币节点时遇到一些问题。节点似乎拒绝通过 Python 进行的每个调用,但是当使用 bitcoin-cli 时一切正常。
我的Python脚本:
import simplejson as json
import requests
with open("C:\\Users\\%USERNAME%\\AppData\\Roaming\\Bitcoin\\testnet3\\.cookie", "r") as creds:
cookie = creds.read()
NODE_URL = "http://127.0.0.1:8332"
NODE_USER = cookie.split(":")[0]
NODE_PASSWORD = cookie.split(":")[1]
def rpc(method, params=[]):
payload = json.dumps({
"jsonrpc": "2.0",
"id": "minebet",
"method": method,
"params": params
})
return requests.post(NODE_URL, auth=(NODE_USER, NODE_PASSWORD), data=payload).json()['result']
rpc('getnewaddress')
还有 bitcoin.conf 文件:
testnet=1
server=1
gen=0
prune=1024
我总是得到:
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
我还尝试在bitcoin.conf文件中使用常规的rpcuser和rpcpassword配置,以及较新的rpcauth方法,但它们都不起作用。
最佳答案
“连接被拒绝”很可能意味着您尝试连接的主机名和端口没有任何监听。在你的例子中,你从“testnet”数据目录中的.cookie文件中提取凭据,但你正在连接到默认的主网RPC端口8332。当你在“testnet”模式下启动bitcoind时,默认的RPC端口是18332,不是 8332。
关于python - 如何通过Python连接比特币rpc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53073163/