Skip to content

vulcanize/purplechain

Repository files navigation

purplechain

Maker Purple paper on Tendermint

Purplechain is a port of Maker Purple that runs on top of Tendermint consensus. It integrates with the Cosmos SDK auth and bank modules by using their equivalents from the Kepler SDK.

This repo provides

  • a Purplechain Cosmos SDK module
  • a Purplechain node binary
  • a docker image for purplechain nodes
  • a tmux script for running a network

Demo

An asciinema recording is available showcasing the devnet. The tmux session shown has one panel for each node (run in its own Docker container), where the middle-right pane is the only non-validator node. The bottom panel initializes the devnet and is used for issuing transactions/queries.

asciicast

Dependencies

Docker

You will need to have Docker installed and configured on your machine if you want to run each node in a separate container.

Nix

The Nix package manager is required for building or working on this project. You can get it from its homepage. All other dependencies (except Docker) are handled by Nix. Note that Nix does not yet work on Windows - you will need either a virtual machine or Windows Subsystem for Linux.

Development

For development purposes, it is possible to simply execute each node in a separate thread listening on localhost ports. Once you have Nix installed, you can run make dev to get a working environment with a hoogle server and an auto-reloading devnet.

You can also run nix-shell to enter a nix shell with dependencies for the project setup in the environment, and then use a more custom workflow.

If you have Docker setup, you can then run make tmux for a "production-like" environment.

For more fine-grained commands, see the Makefile.