Skip to main content

Python based ABCI Server for Tendermint

Project description

Build blockchain applications in Python for Tendermint

Version

Supports ABCI v0.14.0 and latest Tendermint

Installation

Requires Python >= 3.6.5

pip install tm-abci OR python setup.py install

Generating Protobuf

ONLY needed for developing this code base, not to create apps. If you just want to create apps, goto Getting Started

  1. Update all .proto files (protobuf dir)

  2. Install protoc

  3. Install go

  4. Install gogo protobuf via go

  5. Run make gogo

Or using Docker container:

  1. Update all .proto files (protobuf dir)

  2. Build image:sudo docker build -t abcidev .

  3. Run container: sudo docker run -it abcidev sh

  4. Inside container run: make gogo

Testing with tm-bench

Use this if you want to test throughput of server and application. By default, dummpy app is used, you can change it in docker-compose.yml, abci command section (before build).

  1. Build tm-bench and move to tm-abci directory (you can get it here)

  2. Change testing config in tm-bench command section of docker-compose.yml

  3. Run sudo docker-compose -f docker-compose.yml up -d

  4. Wait about minute (or more/less if you changed default) and run sudo docker-compose -f docker-compose.yml logs --tail 50 tm-bench

Getting Started

  1. Extend the BaseApplication class

  2. Implement the Tendermint ABCI callbacks - see https://github.com/tendermint/abci

  3. Run it

See the example app counter.py application under the examples directory here: https://github.com/SoftblocksCo/tm-abci/blob/master/examples/counter.py

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

tm-abci-0.6.2.tar.gz (20.9 kB view hashes)

Uploaded Source

Supported by

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