IndiGOLD Blockchain is an implementation of a fully functional blockchain network consisting of nodes, miners, wallet and faucet apps, and a blockchain explorer.
Table of Contents
The IndiGOLD Blockchain application is a class project for the Kingsland University 'Zero to Blockchain' Program. Our application leverages the React frontend library to illustrate the functionality of a complete proof-of-work blockchain network.
Build a proof-of-work blockchain system that includes:
- Nodes
- Miners
- Faucet
- Wallets
- Explorer
Build a blockchain network server and implement a RESTful API for client-server communiation. The frontend shall include:
- Explorer
- Wallet
- Faucet
- Nodes Monitoring
- Mining Dashboard
Workflow: Use GitHub for version control. Each team member shall make a minimum of two pull requests.
Technical requirements:
- Backend: Node.js and JavaScript
- Frontend: React and Vite
- Websockets are used to stream data from the backend and display real-time hash rate values on the frontend.
Workflow requirements:
- A GitHub repository was created.
- Team members were added as collaborators.
- Collaborators cloned the repo & each started a new branch.
- Collaborators on GitHub:
- used Pull Requests, making sure to tag a reviewer for approval.
- worked on branches of Main and merged our work through Pull Requests.
- had other teammates be Reviewers for their Pull Requests.
Visitors are encouraged to go to our GitHub repository to examine the code behind the functionality of the web app.
GitHub Link: https://https://github.com/tarenpang/blockchain
- npm install - in each of the following directories:
- blockchain
- backend
- frontend
- Start the app in the blockchain directory: npm run start
- Competitive mining is not fully implemented. Competitive mining among miner nodes is a stretch goal that has not been fully implemented. The framework has been established to set the number of child processes independently for each node to simulate varying miner processing capacities. However, the way the local host computer allocates resources to running processes may be skewing the mining results. In other words, nodes that have more parallel child processes are not always the fastest to reach the required difficulty. We are in the process of investigating methods for correcting these skewed results.
- Application is not optimized for mobile-first, responsive design.The frontend can be improved to provide a better user experience. In particular, rendered elements can be made to be more responsive on mobile devices. Our team will be looking at ways to implement this on the next iteration of the application.
- Our instructors: Simeon Mandazhiev and Patrick Galloway at Kingsland University for expertly guiding us through the course.
- Administrators: Ma Deezan Gavilla and Rhochelle Kadusale for keeping us on track on the administrative side of things.
The following are known, open issues:
Distributed under the GNU GPLv3 License.
https://www.linkedin.com/in/marcellusbrady/
https://www.linkedin.com/in/joshua-baum-627a0a217/
https://www.linkedin.com/in/taren-pang-5430ab14/
This project would not have been possible without the support and encouragement of the following individuals:
