This project creates a Blockchain miner that does all the following:
- Receives transactions from user or remote node.
- Sends transactions to a remote node.
- Manages incoming remote node messages using a Queue.
- Generates a Merkle Tree and an eventual Merkle Root as part of transaction processing.
- Creates Blockchain Blocks using Proof of Work algorithm.
The project will involve the following:
- Socket programming
- Queue
- Multithreading
- Hashing: SHA-256
- Merkle Trees
- Blockchain Proof of Work
This app doesn’t save the blocks into a blockchain, but the central functionality of my code will be able to be plugged in directly into a larger Blockchain application that fully manages a Blockchain, connects to multiple networked nodes, and allows us to trade items on the network.
Note: This is one of my class projects, and some of the codes are provided by my Professor which allows students to have the same foundations to deploy the blockchain service.