Skip to main content

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

The client exposes the methods that can be found here:

https://github.com/clemahieu/raiblocks/wiki/RPC-protocol

```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
}
```

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


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.0rc1.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

raiblocks-1.0.0rc1-py2.py3-none-any.whl (4.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file raiblocks-1.0.0rc1.tar.gz.

File metadata

  • Download URL: raiblocks-1.0.0rc1.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for raiblocks-1.0.0rc1.tar.gz
Algorithm Hash digest
SHA256 bb208a3bf46ad6634131fbea7997e6f4016e13b59e1f5b17ab88b8851df0f22f
MD5 307ba807218f41139ebd7cdeb4b1e7c0
BLAKE2b-256 f3db34c24a2c50b53b0ef7fbca4b1bd53e71abcf7f37445f34fbf972634b7de2

See more details on using hashes here.

File details

Details for the file raiblocks-1.0.0rc1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for raiblocks-1.0.0rc1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0d9a1a43564d747c1e7be5daa574a93ed4f40546921912f6bde536fc71b5e089
MD5 0774970b6dfee1203d0d6760f388f973
BLAKE2b-256 b2de3f8f704568ab616e195aec634a1130ba6acf6bf79e1cb6f51cd7ed00017d

See more details on using hashes here.

Supported by

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