Lightweight Bitcoin JSON-RPC Python asynchronous client
Project description
bitcoin-python-async-rpc
Lightweight Bitcoin async JSON-RPC Python client.
Serves as a tiny layer between an application and a Bitcoin daemon, its primary usage is querying the current state of Bitcoin blockchain, network stats, transactions...
If you want complete Bitcoin experience in Python, consult python-bitcoinlib.
Installation
$ pip install bitcoinrpc
Supported methods
Here is a list of supported methods, divided by their categories. Should you need
method not implemented, wrap the call in BitcoinRPC.acall(<your_method>, ...)
coroutine.
Blockchain
Method | Supported? |
---|---|
getbestblockhash |
✔ |
getblock |
✔ |
getblockchaininfo |
✔ |
getblockcount |
✔ |
getblockhash |
✔ |
getblockheader |
✔ |
getblockstats |
✔ |
getchaintips |
✔ |
getdifficulty |
✔ |
getmempoolinfo |
✔ |
getnetworkhashps |
✔ |
Mining
Method | Supported? |
---|---|
getmininginfo |
✔ |
Network
Method | Supported? |
---|---|
getconnectioncount |
✔ |
getnetworkinfo |
✔ |
Raw transactions
Method | Supported? |
---|---|
getrawtransaction |
✔ |
Usage
Minimal illustration (assuming Python 3.8+, where you can run async
code in console)
$ python -m asyncio
>>> import asyncio
>>>
>>> from bitcoinrpc import BitcoinRPC
>>> rpc = BitcoinRPC("http://localhost:18443" "rpc_user", "rpc_passwd")
>>> await rpc.getconnectioncount()
10
>>> await rpc.aclose() # Clean-up resource
You can also use the BitcoinRPC
as an asynchronous context manager, which does
all the resource clean-up automatically, as the following example shows:
$ cat btc_rpc_minimal.py
import asyncio
from bitcoinrpc import BitcoinRPC
async def main():
async with BitcoinRPC("http://localhost:18443", "rpc_user", "rpc_password") as rpc:
print(await rpc.getconnectioncount())
if __name__ == "__main__":
asyncio.run(main())
Running this script yields:
$ python btc_rpc_minimal.py
10
Changelog
- 2021/12/28 - 0.5.0 change the signature of
BitcoinRPC
fromhost, port, ...
tourl, ...
, delegating the creation of the node url to the caller.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for bitcoinrpc-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5a98e98c5cb5fa0ae1144c215b3d2046382c946a8c788106734ae0aaae02fe7 |
|
MD5 | d96158f205c4927782b5c9d55875f2d7 |
|
BLAKE2b-256 | 3d92c3a40feedeffc65678eaa54de5bb84a92c956dbd24822ebc14ebdec8fce3 |