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.

Source Distribution

slick-bitcoinrpc-0.1.4.tar.gz (4.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page