Interactive blockchain built with Node.js.
The blockchain is a fascinating technology, but it can also be intimidating. At the time I wrote this code, I had consumed a lot of material regarding the blockchain and cryptocurrencies, but I hadn't satisfied my hunger for knowledge (and still haven't). I wanted to create my own blockchain for some of that knowledge to sink in, and I wanted it to be simple. Simplechain is the result of that, and I hope you find it as helpful as it was for me when I created it.
First, clone the repo:
$ git clone https://github.com/olistic/simplechain.git
$ cd simplechainThen, install the dependencies:
$ npm installAnd finally, launch the REPL:
$ npm startVoilà! If you see the SIMPLECHAIN> prompt, it means you're inside the REPL.
Go ahead and try the following commands:
ADDBLOCK <data>: Mines a block with the provided data and adds it to the chain.LISTBLOCKS: Lists all the blocks in the chain.
If you want to tweak the blockchain's difficulty, you can do so via the CLI:
$ npm start -- --difficulty <number>This number represents the amount of zeros the hashes of the blocks in the blockchain need to begin with. A greater number makes it more difficult (more computationally expensive) to mine a block.
- Implement P2P network of nodes where:
- Miner nodes broadcast mined blocks
- User nodes broadcast data to be included in blocks by miners
- Implement peer discovery protocol so nodes can find each other
