Я думаю, что такие библиотеки, как 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()
Почему я должен предпочесть один подход другому, если они работают одинаково? В чем разница между ними? И какой подход выполняется быстрее?
Я думаю, что библиотека, такая как BitcoinJ или python-bitcoin, делает то же самое (вызов rpc в фоновом режиме)
Нет, это не так.
BitcoinJ — это реализация биткойн-клиента. Он напрямую подключается к сети Биткойн и использует протокол биткойн-точка-точка. Он не вызывает RPC для узла.
f это правда, есть ли причина использовать такие библиотеки вместо вызова rpc
Библиотеки, которые используют RPC в фоновом режиме, позволяют вам избавиться от необходимости понимать, как работает протокол JSON-RPC. Вам не нужно иметь что-то, что может отправлять HTTP-запросы; вам не нужно иметь что-то, что может вычислить базовые вещи для авторизации; вам не нужно иметь парсер JSON. Эти библиотеки абстрагируют эти вещи, чтобы вы могли просто иметь дело с командами RPC и данными, которые они возвращают.
Преимуществ в производительности нет. Единственным преимуществом является то, что код чище, его легче читать и писать.
Питер Уилле
Рагхав Суд