Bitcore-node questions

I’m building an app that heavily uses the bitcoin-core JSON-RPC. I understand that you have major improvements in that area with bitcore-node and was wondering if I still have to reindex all data with bitcore-node or can I just use the bitcoind bindings to enjoy the boost in API performance?

You can use a Bitcore node with only the “bitcoind” service enabled and no additional indexing is needed. The API currently currently assumes that txindex for bitcoind has been enabled though. You’ll see the biggest performance boost querying blocks.

With some modifications it could be possible to get it to work without txindex or even with pruning enabled. Though some additional bindings may need to be added to make it more useful for retrieving UTXOs and such. This could be pretty exciting for wallet development.

I’m actually querying for transactions via getrawtransaction <txid> 1 (while running with -txindex=1), should I still expect a performance boost?

Yes, however not as great, here are benchmark results:

bitcoind getblock (native) x 617 ops/sec ±2.18% (105 runs sampled)
bitcoind getblock (json rpc) x 23.27 ops/sec ±1.89% (118 runs sampled)
bitcoind gettransaction (native) x 560 ops/sec ±2.41% (246 runs sampled)
bitcoind gettransaction (json rpc) x 225 ops/sec ±2.38% (226 runs sampled)

Double the throughput is still great :slight_smile: Thanks for the detailed answer!