This is a very simple proof of concept project which allows to run multiple blockchain Nodes and Clients. The Nodes can accept transactions, add to the blocks and chain the blocks. There is a basic functionality to resolve conflicts, mine and validate the chain. All features are accessible via a simple web interface.
Make sure you have virtualenv
or pipenv
. All required dependencies
are in requirements.txt
.
To load dependencies:
pip install -r requirements.txt
Easiest way to run the whole thing is to do it locally:
-
To run couple of nodes - you can multiply them by e.g. setting various port numbers. E.g.
python blockchain/blockchain.py -p 5001
,python blockchain/blockchain.py -p 5002
, etc. -
To run couple of clients - same trick: e.g.
python blockchain_client/blockchain_client.py -p 8081
,python blockchain_client/blockchain_client.py -p 8082
, etc.
Using UI you can:
- Generate Wallet (public/private key pair)
- Submit new transaction
- View the list of transactions in the blockchain
Using IU you can:
- Mine new block
- Configure other nodes
- Resolve conflicts with known nodes and keep the blockchain up to date