The blockchain-demo is a single page web application using VueJS, Vuex, and Bootstrap. This app models a basic blockchain such as what can be found on blockchaindemo.io/.
This project models the functionality of a very simple blockchain that does not include transactions. This means a list of blocks, where a block is a set of attributes (timestamp/block-creation time, data, previous/parent hash, nonce) and a hash of this set of attributes.
$ git clone git@github.com:mimico/blockchain-demo.git
$ cd blockchain-demo
$ npm install
$ npm run serve
When the page is loaded, a blockchain is initialized.
A Reset button reinitializes the blockchain with a new genesis block.
A new block properly hashes the user-input data and the parent-hash, and a nonce is generated according to a difficulty level defined in the program.
Ability to change the data field in an existing block exists.
There's a button to remine a block.
A mutation in the data field of a block rehashes the block without modifying the nonce, thereby making its hash invalid (since the hash will likely not have sufficient number of leading zeroes). All subsequent blocks also become invalid as their parent hash no longer corresponds with the parent block.
There is a button to revalidate the block. This button only revalidates a single block, not any of the subsequent blocks. Pressing the button for following blocks will revalidate them.
There is field to enter a difficulty level for the blockchain when pressing the reset button.
Dmytro Kokarovtsev
Tiffany Antopolski