This repository contains the network visualizatons which accompany the Cryptoeconomics.study course. The visualizations will be integrated into the coding lessons on Chainshot (repo) and will include interactive visualizations of all of the protocols we build in the course, from a central payment operator up to a Proof of Stake blockchain.
This project is currently in its early development stages and requires major refactoring before building new visualizations. You can watch a demo of what our end vision is for the coding project and view in-depth details of our roadmap here.
Feel free to try out the first network visualization of Sections 2.1 - 2.2 <--sorry this link is broken will fix ASAP - watch a demo here.
Suggestions and contributions are extremely welcome. There is also room for contributors to optimize the code as well as create visualizations for protocols that we don't cover in the course. Check out the open issues and project board and help out! Have something you'd like to add or edit or just have a question? Open an issue! :)
Clone this repo with git clone
.
Run: npm install
and then npm start
.
- Visually distinct "Paypal Node"
- Hub and Spoke network
- View Paypal's state
- Allow Paypal node to Censor and Mint money
- Network Visualization
- message propagation
- Latency controls
- Speed Controls (Rewind, fast forward, etc.)
- Visually distinct double spend message
- Display rejected transactions (invalid nonce txs)
- Add Gamification (e.g. "send an unsuccessful double spend")
- Sidebar w/ a list of propagating messages + when transactions will timeout and whether they have been rejected or accepted by all nodes.
- Hovering over messages will display how many signatures a given transaction has received and from which nodes
- Controls to add and remove nodes from a state of “authority”
- Option to toggle whether or not an authority node is malicious, and then be able to both censor transactions and attempt double spends
- Controls to adjust the % of authority nodes that must sign off on every transaction
- Hovering over a message will show which of the authority nodes signed off on it.
- Option to toggle nodes into miners and back again
- Clearly display the longest chain and which nodes agree on this chain.
- Easily expand a block and explore its contents in a separate view.
- Visually see miners iterating through nonces and checking hashes
- Controls to adjust amount of mining power each miner has
- User can click a button to attempt a double spend attack
- Users can also toggle a miner into a selfish miner.
- Simulation of cost of mining to demonstrate when miners are profitable (and show that they lose money under the attack of selfish mining)
- Visualize when finality is reached
- Implement and attempt nothing at stake attacks (get slashed)
- Users can alter the # of honest nodes
- Implement and attempt long range revision attacks
- Controls to adjust the stake of each node
- Sharding
- Plasma
- Add visualizations of your personal favorite Blockchain protocols or Cryptoeconomic mechanisms!