I'm trying to scale getrawtransaction calls from bitcoind, without manually parsing the .dat files.
I've tried:
- rpcworkqueue=512 (no difference)
- rpcthreads=128 (no difference)
- par=8 (no difference)
- passing the blockhash with every call to avoid searching the txindex (big difference)
- using JSON rpc batching (big difference)
- having two separate instances on the same pc and rotating requests (double speed, but costs 200GB)
It seems that a bitcoind will only ever devote 1 core of the cpu to JSON RPC, so when it gets to 100% the only way to scale is with another instance. Unfortunately my server has 24 cores at 2.1GHZ.
Does anyone know if it's possible to have two instances of bitcoind running in the same folder. I.E. one instance is connected to the network and the other instance is running in a read only mode.
Or is is possible to allocate multiple cores(not threads) to JSON rpc
Any help is appreciated, thank you.