VoidCoin
A blockchain implementation in python
and django
as the backend. It builds largely on the sources linked in the resources section. Theme is by Bootswatch
See it in action http://voidcoin.pythonanywhere.com/
Features
- Multiple wallets per user and saving in a Django database (not recommended in a production system)
- Signed transactions using private key
- Node registration
- User registration (optional). To keep things simple, registration only requires a user to provide an email (not necessarily valid, but format is important) and a unique screen name (for identification)
- Cannot transfer more coin than you have in your wallet
- Anybody can mine a block, but there must be at least 3 pending transactions before block can be mined.
Views
Home
This view shows a list of all blocks on the blockchain. A list of all signed and verified transactions that have not been added to a block are also shown
Wallet Index
This view shows a list of all wallets in the system. The wallets are stored in a Django database with the following fields
alias
Identifier to help a registered user differentiate between their various wallets. Must be unique for user
owner
The registered user who creates the wallet. Field is auto-filled for logged in user
public_key
The wallet address or public key
private_key
The wallet private key. Only the user who owns this wallet can see this key, in their dashboard
balance
The amount of coin balance in the wallet
Transactions Index
List of every single transaction in the blockchain
Nodes index
List of all registered nodes
Account view
View user's account and all the wallets they own
Resources
- Learn Blockchains by Building One
- A Practical Introduction to Blockchain with Python
- Blockchain demo
To do
- Subtract coin from sender. Add coin to receiver
- Limit total coin to amount in COINBASE