Log in Register
Home Search Categories About
Bilel T
read article

Creating a Local JavaScript Blockchain Project

Blockchain

Blockchain technology has gained immense popularity for its decentralized and secure nature. If you're eager to delve into blockchain development using JavaScript, this guide will walk you through the process of creating a local blockchain project. We'll be using Node.js and a library called `crypto-js` for simplicity.

Prerequisites

Before we start, ensure you have the following installed:

1. Node.js: Download and Install Node.js

2. npm (Node Package Manager): Installed automatically with Node.js.

Step 1: Project Setup

Create a new directory for your project and navigate to it in your terminal:

mkdir js_blockchain_project
cd js_blockchain_project

Initialize your project with `npm`:

npm init -y

Step 2: Install Dependencies

Install `crypto-js` to handle cryptographic functions:

npm install crypto-js

Step 3: Create Blockchain Class

Create a file named `blockchain.js` and define the basic structure of your blockchain:

const SHA256 = require('crypto-js/sha256');

class Block {
  constructor(index, timestamp, data, previousHash = '') {

    this.index = index;
    this.timestamp = timestamp;
    this.data = data;
    this.previousHash = previousHash;
    this.hash = this.calculateHash();

  }

  calculateHash() {
    return SHA256(this.index + this.timestamp + JSON.stringify(this.data) + this.previousHash).toString();
  }

}

class Blockchain {

  constructor() {
    this.chain = [this.createGenesisBlock()];
  }

  createGenesisBlock() {
    return new Block(0, '01/01/2023', 'Genesis Block', '0');
  }

  addBlock(newBlock) {
    newBlock.previousHash = this.chain[this.chain.length - 1].hash;
    newBlock.hash = newBlock.calculateHash();
    this.chain.push(newBlock);
  }

}

// Create an instance of the Blockchain
const myBlockchain = new Blockchain();

// Example: Adding a block to the blockchain
const newDataBlock = new Block(1, '02/01/2023', { amount: 10 });

myBlockchain.addBlock(newDataBlock);

console.log(JSON.stringify(myBlockchain, null, 2));

Step 4: Run Your Blockchain

Create an entry point file, e.g., `index.js`, to run your blockchain:

const Blockchain = require('./blockchain');

// Create an instance of the Blockchain
const myBlockchain = new Blockchain();

// Example: Adding a block to the blockchain
const newDataBlock = new Block(1, '02/01/2023', { amount: 10 });

myBlockchain.addBlock(newDataBlock);

console.log(JSON.stringify(myBlockchain, null, 2));

Run your project:

node index.js

You should see your blockchain with the genesis block and the newly added block.

Congratulations! You've just created a simple blockchain project using JavaScript. This is a foundational step that you can build upon by adding features like consensus algorithms, network communication, and more. Happy coding!