RaiBlocks Python RPC client for rai_node
Project description
# RaiBlocks Python RPC client for rai_node
[![Build Status](https://travis-ci.org/dourvaris/raiblocks-py.svg?branch=master)](https://travis-ci.org/dourvaris/raiblocks-py)
[![Coverage](./coverage.svg)](https://travis-ci.org/dourvaris/raiblocks-py)
A python wrapper for the [RaiBlocks RPC server](https://github.com/clemahieu/raiblocks)
which tries to make it a little easier to work with by converting RPC responses
to native python ones and exposing a pythonic api for making RPC calls.
Note: This library is still new so there may be bugs and api changes, PRs are welcome.
## Install
```
pip install raiblocks
```
## Usage
```python
>>> from raiblocks import Client
>>> client = Client('http://localhost:7076')
>>> client.version()
{'rpc_version': 1, 'store_version': 10, 'node_vendor': 'RaiBlocks 9.0'}
>>> client.peers()
{
'[::ffff:75.171.168.5]:7075': 4,
'[::ffff:108.44.38.183]:1032': 4
}
```
The client exposes the methods that can be found here: https://github.com/clemahieu/raiblocks/wiki/RPC-protocol
At the moment the client replicates the RPC API which means there are some
instances where the same method will return different types eg:
```
# Returns a list
>>> client.pending(
... "xrb_1111111111111111111111111111111111111111111111111117353trpda")
[
'3342AEE6ED02A3ED8D84A2EEE4808157C35EB536D464C7EAD66CFFA23232F14C',
'1AAE335A94C5DA1E4E1D0B45C3B100CCA241CC5BC557E24BB367C779D55E3A0C',
'20D5D6EA5CA355B11A0E3C11A74FBB4E91D126F4B3FD97232945D451A621E6F7'
]
```
```
# Returns a dict
>>> client.pending(
... "xrb_1111111111111111111111111111111111111111111111111117353trpda",
... threshold=10e30)
{
'3342AEE6ED02A3ED8D84A2EEE4808157C35EB536D464C7EAD66CFFA23232F14C': 100000000000000000000000000000000,
'1AAE335A94C5DA1E4E1D0B45C3B100CCA241CC5BC557E24BB367C779D55E3A0C': 95000000000000000000000000000000,
'20D5D6EA5CA355B11A0E3C11A74FBB4E91D126F4B3FD97232945D451A621E6F7': 36968007000000000000000000000000
}
```
## Development
```
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt -r test-requirements.txt
```
### Tests
Regular
```
pytest
```
Coverage:
```
./coverage
```
[![Build Status](https://travis-ci.org/dourvaris/raiblocks-py.svg?branch=master)](https://travis-ci.org/dourvaris/raiblocks-py)
[![Coverage](./coverage.svg)](https://travis-ci.org/dourvaris/raiblocks-py)
A python wrapper for the [RaiBlocks RPC server](https://github.com/clemahieu/raiblocks)
which tries to make it a little easier to work with by converting RPC responses
to native python ones and exposing a pythonic api for making RPC calls.
Note: This library is still new so there may be bugs and api changes, PRs are welcome.
## Install
```
pip install raiblocks
```
## Usage
```python
>>> from raiblocks import Client
>>> client = Client('http://localhost:7076')
>>> client.version()
{'rpc_version': 1, 'store_version': 10, 'node_vendor': 'RaiBlocks 9.0'}
>>> client.peers()
{
'[::ffff:75.171.168.5]:7075': 4,
'[::ffff:108.44.38.183]:1032': 4
}
```
The client exposes the methods that can be found here: https://github.com/clemahieu/raiblocks/wiki/RPC-protocol
At the moment the client replicates the RPC API which means there are some
instances where the same method will return different types eg:
```
# Returns a list
>>> client.pending(
... "xrb_1111111111111111111111111111111111111111111111111117353trpda")
[
'3342AEE6ED02A3ED8D84A2EEE4808157C35EB536D464C7EAD66CFFA23232F14C',
'1AAE335A94C5DA1E4E1D0B45C3B100CCA241CC5BC557E24BB367C779D55E3A0C',
'20D5D6EA5CA355B11A0E3C11A74FBB4E91D126F4B3FD97232945D451A621E6F7'
]
```
```
# Returns a dict
>>> client.pending(
... "xrb_1111111111111111111111111111111111111111111111111117353trpda",
... threshold=10e30)
{
'3342AEE6ED02A3ED8D84A2EEE4808157C35EB536D464C7EAD66CFFA23232F14C': 100000000000000000000000000000000,
'1AAE335A94C5DA1E4E1D0B45C3B100CCA241CC5BC557E24BB367C779D55E3A0C': 95000000000000000000000000000000,
'20D5D6EA5CA355B11A0E3C11A74FBB4E91D126F4B3FD97232945D451A621E6F7': 36968007000000000000000000000000
}
```
## Development
```
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt -r test-requirements.txt
```
### Tests
Regular
```
pytest
```
Coverage:
```
./coverage
```
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
raiblocks-1.0.0rc2.tar.gz
(3.2 kB
view hashes)
Built Distribution
Close
Hashes for raiblocks-1.0.0rc2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53642e97c62f99ec35db91a4cf3527f346827a8c4fe76a8dd13f997d88a3304c |
|
MD5 | 82d8d4106c2bb12887299050c6d79c64 |
|
BLAKE2b-256 | 4288e9026ef1a97fd7370755ca1cc76a58b78a5e00202c82c6e2d79e2d05ec9d |