Cosmos Cash is a research project that aims to develop a protocol that provides features typical of electronic money, adopting the blockchain technology as underlying infrastructure, and thus leading to a digital asset to be applied within the payment industry.
Please read the full report for more information.
This repository hosts a Cosmos Cash proof-of-concept application built on Cosmos SDK that stores data in a key/value store and is secured using a Proof Of Authority consensus algorithm.
The goal of the application is to re-define how an electric money institution works by leveraging the Cosmos SDK and Tendermint.
- Clone the repository
git clone git@github.com:allinbits/cosmos-cash-poc.git
- Install the binaries (poad, poacli)
cd cosmos-cash-poc
make install
- Ensure binaries are available and for testing purposes set the keyring to be test
poad -h
poacli -h
poacli config keyring-backend test
- Initialize the genesis file ($HOME/.poad/config/genesis.json)
poad init --chain-id=cash cash
- Create a key for the first validator
poacli keys add validator
- Add the validator that was created in the step 2 as the first validator and assign them 1000000000
cash
coins
poad add-genesis-account $(poacli keys show validator -a) 1000000000cash,1000000000stake
- Generate a initial
CreateValidator
transaction to allow other applications in the network to sync when they join
poad gentx --name validator --keyring-backend test
- Put the previously generated transaction in the correct location to allow the application to start correctly
poad collect-gentxs
- Start the applicaton 🎉
poad start
- Run commands outlined in the Makefile
cat Makefile | grep create-
- Build the dockerfile
docker build -t 388991194029.dkr.ecr.us-east-1.amazonaws.com/allinbits-dev/cosmos-cash-poa .
- Run the localnet
make localnet-start
- Set up the consensus
make localnet-consensus
- Create issuer data
make localnet-distribute-tokens
- Create user data
make localnet-users
- Go to the
vue
folder
cd vue
- Start the web server
yarn serve
- Check the website in the browser