Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

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


Release history Release notifications

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
slick-bitcoinrpc-0.1.4.tar.gz (4.4 kB) Copy SHA256 hash SHA256 Source None Jul 12, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page