Skip to main content

Just another Python bitcoin-rpc client

Project description

Just another Python bitcoin-rpc client. Built as faster alternative to python-bitcoinlib rpc (https://github.com/petertodd/python-bitcoinlib) and python-bitcoinrpc (https://github.com/jgarzik/python-bitcoinrpc) using pycurl and ujson.

Installation

pip install slick-bitcoinrpc

Example

from slickrpc import Proxy

bitcoin = Proxy("http://%s:%s@127.0.0.1:8332"%(rpcuser, rpcpassword))
print(bitcoin.getblock(bitcoin.getbestblockhash()))

Performance Comparison

Method

Here’s bash script able to measure performance of such bitcoin rpc clients

RPC_URL='http://username:password@127.0.0.1:8332'
TASKS=(
  "p.getinfo()"
  "p.getblock(p.getbestblockhash())"
  "map(lambda tx: p.getrawtransaction(tx['txid'], 1), p.listtransactions())"
)
SETUPS=(
  "from slickrpc import Proxy; p = Proxy(service_url='$RPC_URL');"
  "from bitcoinrpc.authproxy import AuthServiceProxy; p = AuthServiceProxy(service_url='$RPC_URL');"
  "from bitcoin.rpc import Proxy; p = Proxy(service_url='$RPC_URL');"
)
for TASK in "${TASKS[@]}"
do
  for SETUP in "${SETUPS[@]}"
  do
    python -m timeit -s "$SETUP" -n 1000 "$TASK"
  done
done

Results

Values are best of 3, msec per loop

  getinfo() p.getblock(p.getbestblockhash()) map(lambda tx: p.getrawtransaction( tx[‘txid’], 1), p.listtransactions()
slick- bitcoinrpc 1.01 msec 1.17 msec 27.7 msec
python- bitcoinrpc 2.53 msec 3.89 msec 41.9 msec
python- bitcoinlib 2.76 msec DeserializationExtraDataError AttributeError

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for slick-bitcoinrpc, version 0.1.4
Filename, size File type Python version Upload date Hashes
Filename, size slick-bitcoinrpc-0.1.4.tar.gz (4.4 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page