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 details)

Uploaded Source

File details

Details for the file slick-bitcoinrpc-0.1.4.tar.gz.

File metadata

File hashes

Hashes for slick-bitcoinrpc-0.1.4.tar.gz
Algorithm Hash digest
SHA256 8a4ff4b45489dbd4e8f3a1ed3d482bf915b9ebc1b11698fb523b4d9fbe3eeea6
MD5 e75e15b8755eb92efc26c06648d1ab93
BLAKE2b-256 f0bc81d8c2296c5a4f7dbe5c9f822ac18d0547bf612589bf0e88b1e90c607d89

See more details on using hashes here.

Supported by

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