/MyOwnBlockchain

Trying to build my Own Blockchain following an Udemy Mooc

Primary LanguageJavaScript

MyOwnBlockchain

Trying to build my Own Blockchain following an Udemy Mooc

Here is the summary of what has been accomplished so far :

Block Back-end :

  • Set up the overall blockchain application.

  • Created the basic building block of the blockchain - with blocks themselves!

  • Started a test-driven development approach to the project.

  • Built the genesis block - to get the blockchain going.

  • Added functionality to mine a block - create a new block for the blockchain.

  • Developed the important sha-256 hash function.

  • Applied the hash to mine a block.

Chain Back-end :

  • Created the fundamental blockchain class.

  • Developed functionality to validate the blockchain, to allow for chain replacement.

  • Implemented chain replacement.

  • Investigated stubbing console output in tests to keep the output clean.

Proof-of-work Back-end :

  • Implemented the proof of work system by adding a difficulty and nonce value to each block.

  • Adjusted the difficulty for a block to ensure that blocks are mined at a rate which approaches a set mining rate for the system.

  • Investigated the proof of work system by writing a script which checked how will the dynamic difficulty adjusted the system to approach the mine rate.

API & Network (broadcasting blockchain :

  • Set up an express API to allow for interaction to the backend through HTTP requests.

  • Created a GET request to read the blockchain.

  • Added a POST request to write new blocks to the blockchain.

  • Implemented a real-time messaging network through Redis or PubNub.

  • Added the ability to broadcast chains.

  • Started peers through alternate ports, and broadcasted chains when blocks were mined through the api.

  • Synchronized chains when new peers connected to the network.

  • Optimized the implementation to avoid redundant interaction.