Build A Simple Blockchain In Node.js

What is Blockchain?

The technology that underpins digital currencies like Bitcoin and Ethereum is known as blockchain.It’s a cutting-edge distributed public ledger system that keeps track of a constantly increasing list of records, known as blocks, that are securely linked using cryptography.

How to create a block?

Now that we’ve covered the basics of blockchain technology and how it works, let’s look at how we can use the principles to create a block.
Blocks, as previously mentioned, are what connect each other to create a blockchain.

Let’s get our hands dirty

Here is the code for the Block class:

Block Class

As you can see in the code above, I created the Block class and added the constructor() method to it — Then, to initialize its properties, I assigned the following parameters to the constructor method.

  1. index : It’s a unique number that tracks the position of every block in the entire blockchain.

2. timestamp :It keeps a record of the time of occurrence of each completed transaction.

3. data : It provides data about the completed transactions, such as the sender details, recipient’s details, and quantity transacted.

4. precedingHash :It points to the hash of the previous block in the blockchain.

Calculating Hash

calculate hash

Full Block class code

Block class full code

How to create a Blockchain?

As previously mentioned, blockchain technology is built on the idea of all blocks being linked together.So, let’s build a Blockchain class that will be in charge of the entire chain’s operations.

The Blockchain class can manage the blockchain’s operations by providing helper methods for tasks like generating new blocks and adding them to the chain etc.

Blockchain class
  1. GenesisBlock()

The genesis block on a blockchain is the first block ever produced on the network.
When a block is linked to the rest of the chain, it should refer to the block before it.

2. getLatestBlock()

Obtaining the most recent block in the blockchain helps to ensure that the current block’s hash corresponds to the previous block’s hash, preserving the chain’s credibility.

3. addNewBlock()

To add a new block to the chain, I used the addNewBlock() process.
In fact, due to the numerous checks in place, adding a new block to a blockchain is not that easy.Nonetheless, it’s sufficient to show how a blockchain operates with this simple cryptocurrency.

Testing The Blockchain

Output

Test output

How To Verify The Blockchain Integrity

The checkChainValidity() method would use if statements to check if each block’s hash has been tampered with.It will loop through the entire blockchain, starting with the first generated block, and verify its validity.
The genesis block will not be tested because it is hard coded.

The method will check to see if the hashes of two consecutive blocks point to each other.It returns true if the blockchain’s credibility has not been compromised; otherwise, it returns false if there are any irregularities.

check chain validity

Proof Of Work

Proof of work, as previously mentioned, is a term used to increase the complexity of mining or adding new blocks to the blockchain.

Wrapping Up

Output

conclusion

Nonetheless, I hope that this tutorial has provided you with some fundamental knowledge to help you get started in the exciting world of Blockchain.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store