只是另一个python比特币rpc客户端
slick-bitcoinrpc的Python项目详细描述
只是另一个python比特币rpc客户端。 作为使用pycurl和ujson的python bitconilib rpc(https://github.com/petertodd/python-bitcoinlib)和python bitconirpc(https://github.com/jgarzik/python-bitcoinrpc)的更快替代品而构建。
安装
pip install slick-bitcoinrpc
示例
fromslickrpcimportProxybitcoin=Proxy("http://%s:%s@127.0.0.1:8332"%(rpcuser,rpcpassword))print(bitcoin.getblock(bitcoin.getbestblockhash()))
性能比较
方法
下面的bash脚本能够测量这种比特币rpc客户端的性能
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[@]}"dofor SETUP in "${SETUPS[@]}"do python -m timeit -s "$SETUP" -n 1000"$TASK"donedone
结果
值最好为3,每个循环的毫秒数
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 |