Как подключиться к биткойнам rpc через Python? - PullRequest
0 голосов
/ 31 октября 2018

У меня проблемы с подключением к моему локальному узлу биткойн через 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] Невозможно установить соединение, поскольку целевая машина активно отказала ему

Я также пытался использовать обычную конфигурацию rpcuser и rpcpassword в файле bitcoin.conf, а также более новый метод rpcauth, но все они не работали.

1 Ответ

0 голосов
/ 16 ноября 2018

«Отказ в соединении», скорее всего, означает, что просто нет ничего прослушивающего имя хоста и порт, к которому вы пытаетесь подключиться. В вашем случае вы извлекаете учетные данные из файла .cookie в каталоге данных "testnet", но подключаетесь к стандартному RPC-порту основной сети 8332. Когда вы запускаете bitcoind в режиме "testnet", RPC-порт по умолчанию - 18332, не 8332.

...