Built with nextjs + socketio and inspired by this example
Learn the chain is a simple web app that aims to teach others about blockchain. It achieves this by demonstrating high level blockchain concepts using a simple web graphic. We attempted to convey the following points:
-
Decentralized ledger A user can create a room that hosts a tree visible to anyone that joins the room. This tree utilizes websockets to simulate a decentralized ledger.
-
Hashing Each node in the tree has it's own unique hash. Each following node in the tree has a previous hash attribute that points to the previous node. The chain becomes immutable through the use of these linked hashes.
-
Mining Every person that joins the room contributes to the chain. The more people in the room, the faster the mining process proceeds.
Potential Future Features:
- PoW There is currently no proof of work system. Definitely an option for the future.
- Trading Would be nice/cool to see others able to trade with each other in addition to the current mining system
- Privacy How do we demonstrate private vs public keys
- Defensibility Perhaps including a "hacking" button to demonstrate how the chain prevents one individual from mining considerably more resources than the rest
Install it and run:
$ npm install
$ [PORT=XXXX] node server.js