Как подключиться к bitcoin rpc через Python?

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


person George    schedule 30.10.2018    source источник
comment
попробуйте использовать pycoinnet.   -  person KC.    schedule 31.10.2018
comment
К вашему сведению, существует специальный сайт вопросов и ответов о биткойнах bitcoin.stackexchange.com, на котором вы с большей вероятностью получите быстрый ответ   -  person Chris Arnesen    schedule 16.11.2018
comment
вы перезапустили биткойн после определения своей конфигурации? А как насчет того, чтобы запустить его в режиме демона?   -  person Ray    schedule 20.11.2018


Ответы (1)


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

person Chris Arnesen    schedule 16.11.2018