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.

--

--

--

Blockchain Developer and Educator

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Why I refrained from minting my work as NFT’s and created my own protocol instead.

DeFi Features

PeakView Analysis: PunkScapes Volume 2

#thiisart #embankment #londonstyle #london_only #london

SECURITY CONCERNS WITH BITCOIN AND OTHER CRYPTOCURRENCIES:

The Stars Align for Celestial and CryptoBlades Kingdoms

How to Learn Cryptocurrency in One Day

An Overview of the NFT Fractionalization Landscape

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
Abhilash Sreedharan

Abhilash Sreedharan

Blockchain Developer and Educator

More from Medium

How to Storm the Tech World by Using Tron DApp Development Services?

How to Install and Run the Crypto-Telegram Bot

Telegram message fetching Bitcoins price and metrics

JoSend: sending crypto as easy as sending messages

Minting on Polygon mainnet