Skip to content

Abhigyan-Mishra/Simple_chain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✨⛓ Simplechain ⛓✨

CircleCI Status Coverage Status

Interactive blockchain built with Node.js.

demo

Intro

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.

Usage

First, clone the repo:

$ git clone https://github.com/olistic/simplechain.git
$ cd simplechain

Then, install the dependencies:

$ npm install

And finally, launch the REPL:

$ npm start

Voilà! 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.

Advanced Usage

Adjust Difficulty

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.

Next Steps

  • 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

Resources

About

A simple approach towards blockchain using js node

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors