Experiment with blockchain from scratch using golang
Used BoltDB as it's easy to install with go application.
(code: PLN-STAGES)
- ✅ Setup basic structure and adding new blocks.
- ✅ Store blockchain in a DB.
- ✅ Implement PoW.
- ✅ Mining process.
- ✅ Block validation.
- ✅ Implement addresses and transactions.
- ✅ Address generation(withtin the app for now).
Basic version for now. Wallets should be implemented.
- Addresses are saved in a db(for now).
- Private keys are encrypted before stoting.
- ✅ Basic transactions setup.
- ✅ Signing transactions.
- ✅ Address generation(withtin the app for now).
Basic version for now. Wallets should be implemented.
- ✅ Transaction verification.(In the mining process for now)
- ✅ Signature verification.
- ✅ UTXO validation.
- ✅ Balance validation.
- ✅ Block hash using Merkle tree.
Implement wallets and transfer address generation into wallets.- ✅ Create transaction pool for UTXOs(Mempool).
Update NewBlock() to get UTXOs from pool.- ✅ Implement a Miner.
- A simple one for now. After mining is completed and data is valid it broadcast TX ids through a channel and listener will remove those from mempool.
- Test coverage
- Implement Merkle proof and verification
- Node system.
- Broadcasting.
- Handle concurrency? (code: PNL-CONCURRENCY)