python - 如何通过Python连接比特币rpc?

标签 python python-requests bitcoin json-rpc bitcoind

我在通过 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/

相关文章:

python - 从多个链接构建一个表

laravel - 在 laravel 5.5 中调用未定义的函数 App\Http\Controllers\bcmul()

node.js - 将 bitcore-explorer 与 bitcore-lib (Bitcore) 一起使用时出错

python - ipython 已安装但未在 OSX mavericks 上运行

python - 无法连接到 Kubernetes 上的 PyMongo DB

python - FastAPI和Python请求422错误问题

Python:将多个变量写入文件

python - 寻找加密货币数据之间的相关性

php - chown 在脚本中

python - 这是我在 python 中的边界填充 pgm bt 它只填充了边界的一半