Build blockchain applications in Python for Tendermint
Supports ABCI v0.15.0 and latest Tendermint (0.26.0)
Requires Python >= 3.6.5
pip install tm-abci
OR python setup.py install
ONLY needed for developing this code base, not to create apps. If you just want to create apps, goto Getting Started
- Update all .proto files (protobuf dir)
- Install protoc
- Install go
- Install gogo protobuf via go
- Run make gogo
Or using Docker container:
- Update all .proto files (protobuf dir)
- Build image:
sudo docker build -t abcidev .
- Run container:
sudo docker run -it abcidev sh
- Inside container run:
make gogo
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).
- Build tm-bench and move to tm-abci directory (you can get it here)
- Change testing config in tm-bench command section of docker-compose.yml
- Run
sudo docker-compose -f docker-compose.yml up -d
- Wait about minute (or more/less if you changed default) and run
sudo docker-compose -f docker-compose.yml logs --tail 50 tm-bench
- Extend the BaseApplication class
- Implement the Tendermint ABCI callbacks - see https://github.com/tendermint/abci
- 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