Какой подход лучше для взаимодействия с биткойн-узлом: вызов RPC или библиотека?

Я думаю, что такие библиотеки, как BitcoinJ или python-bitcoin, делают то же самое (вызов rpc в фоновом режиме). Если это так, есть ли причина использовать такие библиотеки вместо вызова rpc
. Например:

(в случае питона)

rpccall:

import requests
payload = {"jsonrpc":1,"id":"curltext","method":"getblockchaininfo","params"=[]}
response = requests.get(url,  data=json.dumps(payload))

Звонок в библиотеку:

import bitcoinrpc
conn = bitcoinrpc.connect_to_local()
info = conn.getblockchaininfo()

Почему я должен предпочесть один подход другому, если они работают одинаково? В чем разница между ними? И какой подход выполняется быстрее?

Какая библиотека? Какое программное обеспечение узла?
Большинство библиотек просто вызывают RPC внизу.

Ответы (1)

Я думаю, что библиотека, такая как BitcoinJ или python-bitcoin, делает то же самое (вызов rpc в фоновом режиме)

Нет, это не так.

BitcoinJ — это реализация биткойн-клиента. Он напрямую подключается к сети Биткойн и использует протокол биткойн-точка-точка. Он не вызывает RPC для узла.

f это правда, есть ли причина использовать такие библиотеки вместо вызова rpc

Библиотеки, которые используют RPC в фоновом режиме, позволяют вам избавиться от необходимости понимать, как работает протокол JSON-RPC. Вам не нужно иметь что-то, что может отправлять HTTP-запросы; вам не нужно иметь что-то, что может вычислить базовые вещи для авторизации; вам не нужно иметь парсер JSON. Эти библиотеки абстрагируют эти вещи, чтобы вы могли просто иметь дело с командами RPC и данными, которые они возвращают.

Преимуществ в производительности нет. Единственным преимуществом является то, что код чище, его легче читать и писать.

я нашел ответ @Pieter Wuille на аналогичный вопрос: bitcoin.stackexchange.com/questions/49362/… там он говорит, что у него будет меньше накладных расходов с использованием вызова rpc