Build a To-do List Web Application Powered by Blockchain
Last Updated : 24 Apr, 2023
Here, we are going to build a to-do list application that will save the data in the blockchain. The blockchain part of this application can also be understood as a database. First, we'll create a smart contract and subsequently the web application itself. We'll use Bloc as the application name but first, let's look at the components.
Components in Bloc Application
- Ganache- A local Ethereum blockchain.
- Web3 JS- For the application to be able to communicate to the blockchain.
- Bootstrap- For the application's front end.
- Solidity- For compilation smart contract.
- JQuery- For DOM manipulation.
What is a Smart Contract?
To be able to communicate with blockchain we'll need to write a smart contract. A smart contract can also use understood as a backend script that contacts the blockchain. The smart contract will allow us to store our to-do list tasks in the blockchain.
To write and develop the smart contract we will use the REMIX IDE.
Note: Make sure you are using the Http site instead of HTTPS. The HTTP site will allow us to deploy our smart contract in our local blockchain.
Click on the plus icon to create a bloc.sol file.
Create bloc.sol file The smart contract first line must declare the SPDX-License-Identifier and solidity version to compile our smart contract to do that we'll write the following:
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 <0.9.0;
To tell the compiler about our smart contract we'll define a contract block. A contract like a class in OOPs which contains all the fields and methods:
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 <0.9.0; contract Bloc{ }
To store the task we need to do the following:
1. Create a struct for your task: Struct allows for creating a user-defined datatype. It will have a string as a task and a boolean to tell whether the task is completed or not.
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 <0.9.0; contract Bloc{ struct Task{ string task; bool isDone; } }
2. Create a mapping to store our task array with an associated user address: Mapping is like a Hash Table here we are creating an address as a key and the value will be an array of task struct. Set this mapping as private for the access modifier. The address is a data type in solidity which stress the account address.
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 <0.9.0; contract Bloc{ struct Task{ string task; bool isDone; } mapping (address => Task[]) private Users; }
Methods to manipulate our task in the contract:
1. Create Task: This method will create a task.
- The addTask method takes in a string as an argument.
- calldata set the data location for the string argument.
- external makes the method available when called through web3js.
- msg.sender gives us the address of the user calling the method.
- The push method to add the task to the mapping.
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 <0.9.0; /// @title A contract for demonstrate how to build a to-do list application /// @notice For now, this contract just show how to add the task contract Bloc{ struct Task{ string task; bool isDone; } mapping (address => Task[]) private Users; function addTask(string calldata _task) external{ Users[msg.sender].push(Task({ task:_task, isDone:false })); } }
2. Read Task: This method helps to read the value in the task.
- To return Task struct from getTask method we need to add line 2.
- The getTask method takes in the task index and gives the task.
- memory is the data location for Task to be returned.
- view tells that the function doesn't modifier state of the blockchain.
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 <0.9.0; /// @title A contract for demonstrate how to build a to-do list application /// @notice For now, this contract just show how to get the task contract Bloc{ struct Task{ string task; bool isDone; } mapping (address => Task[]) private Users; function addTask(string calldata _task) external{ Users[msg.sender].push(Task({ task:_task, isDone:false })); } function getTask(uint _taskIndex) external view returns (Task memory){ Task storage task = Users[msg.sender][_taskIndex]; return task; } }
3. Update Task: This method will update the values in the Task.
- This method sets the task to be checked or unchecked.
- The updateStatus method will take task index and the status to update.
- By the taskIndex we will be able to access the task struct so we'll set the isDone to the status passed.
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 <0.9.0; /// @title A contract for demonstrate how to build a to-do list application /// @notice For now, this contract just show how to update the task contract Bloc{ struct Task{ string task; bool isDone; } mapping (address => Task[]) private Users; function addTask(string calldata _task) external{ Users[msg.sender].push(Task({ task:_task, isDone:false })); } function getTask(uint _taskIndex) external view returns (Task memory){ Task storage task = Users[msg.sender][_taskIndex]; return task; } function updateStatus(uint256 _taskIndex,bool _status) external{ Users[msg.sender][_taskIndex].isDone = _status; } }
4. Delete Task: deleteTask method will take the task index and then delete the element from the array just like in C.
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 <0.9.0; /// @title A contract for demonstrate how to build a to-do list application /// @notice For now, this contract just show how to delete the task contract Bloc{ struct Task{ string task; bool isDone; } mapping (address => Task[]) private Users; function addTask(string calldata _task) external{ Users[msg.sender].push(Task({ task:_task, isDone:false })); } function getTask(uint _taskIndex) external view returns (Task memory){ Task storage task = Users[msg.sender][_taskIndex]; return task; } function updateStatus(uint256 _taskIndex,bool _status) external{ Users[msg.sender][_taskIndex].isDone = _status; } function deleteTask(uint256 _taskIndex) external{ delete Users[msg.sender][_taskIndex]; } }
5. Get Task Count: The count of tasks can be retrieved as the task array length.
And the complete solidity program after adding all the above methods to deal with a task looks like this:
Solidity // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0 <0.9.0; /// @title A contract for demonstrate how to build a to-do list application /// @notice For now, this contract just show how to add/delete/get/update/count the task contract Bloc{ // Defining a structure to // store a task struct Task { string task; bool isDone; } mapping (address => Task[]) private Users; // Defining function to add a task function addTask(string calldata _task) external { Users[msg.sender].push(Task({ task:_task, isDone:false })); } // Defining a function to get details of a task function getTask(uint _taskIndex) external view returns (Task memory) { Task storage task = Users[msg.sender][_taskIndex]; return task; } // Defining a function to update status of a task function updateStatus(uint256 _taskIndex,bool _status) external { Users[msg.sender][_taskIndex].isDone = _status; } // Defining a function to delete a task function deleteTask(uint256 _taskIndex) external { delete Users[msg.sender][_taskIndex]; } // Defining a function to get task count. function getTaskCount() external view returns (uint256) { return Users[msg.sender].length; } }
Click on the Compile button under the Solidity left navigation bar option after that Click on Deploy and Run Transaction in their deploy and inside the deployed contract you can find all the methods.

- With this, we are done creating a basic smart contract. This smart contract we will be using in the next article to communicate with a web application. Now, we'll create a web application that can communicate with the smart contract that we have created above.
- Before we start building the web application we'll need the Ethereum blockchain which will have the smart contract and the data of our application. We are going to use Ganache to go ahead download and install it.
- After installation, open Ganache and click on quick start Ethereum after that note the address labeled under RPC Server (should be something like this http://127.0.0.1:7545).
Now building the web application
HTML <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> <!-- App CSS--> <style> .card-container { width: 300px; height: 500px; background: #2699FB; border: 1px solid #2699FB; border-radius: 10px; opacity: 1; margin-right: auto; margin-left: auto; border-left: 0; } .icon-circle { background: white; border-radius: 200px; height: 70px; font-weight: bold; width: 70px; display: table; margin-top: 12px; margin-left: 31px; } .bloc { margin-top: 12px; margin-left: 28px; } .task-count { margin-top: 7px; margin-left: 31px; } .task-card { width: 300px; height: 325px; border: 1px solid #FFFFFF; background: #FFFFFF; border-radius: 25px 25px 10px 10px; opacity: 1; position: relative; } .fab { background: #2699FB; border-radius: 200px; height: 40px; width: 40px; font-weight: bold; border: 0; position: absolute; right: 0; bottom: 0; margin-right: 27px; margin-bottom: 31px; } .add-task-container { top: 150px; width: 300px; height: 187px; background: #FFFFFF; border-radius: 25px 25px 0px 0px; opacity: 1; position: absolute; } .task-done { color: gray; text-decoration: line-through; } </style> <title>Bloc</title> </head> <body style="background: #BCE0FD"> <div class="card-container my-5 border-left-0"> <div class="icon-circle"> <img class="px-2 py-2" src="https://github.com/gupta-shrinath/Bloc/raw/gupta-shrinath/images/add-list.png" alt="icon"> </div> <h2 class="bloc text-white"><strong>BLOC</strong></h1> <p id="taskCount" class="task-count text-white">0 Task</p> <div class="task-card"> <!-- Floating Action Button --> <button id="fab" class="fab float-right" data-toggle="modal" data-target="#add-task-container"> <img class="m-auto" src="https://github.com/gupta-shrinath/Bloc/raw/gupta-shrinath/images/plus.png" alt="" height="16" width="16"> </button> <!-- #Floating Action Button --> <!-- Task List--> <ul id="list" class="list-group mt-3"> </ul> <!-- #Task List--> <!-- Add Task Modal --> <div id="add-task-container" class="modal add-task-container" data-backdrop="static"> <div class="container"> <div class="col mx-2"> <h5 class="text-primary text-center mt-4">New Task</h5> <input id="new-task" class="mt-3" type="text"> <button type="button" data-dismiss="modal" class="btn btn-primary btn-block mt-3" onclick="addTask(document.getElementById('new-task').value);">Add Task</button> </div> </div> </div> <!-- #Add Task Modal --> </div> </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script> <!-- App and related files JS--> <script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script> <script src="js/config.js"></script> <script src="js/getAccount.js"></script> <script src="js/app.js"></script> </body> </html>
The webpage will look like this-
blocgetAccount.js
JavaScript // Connect to Ganache Make sure you enter the address you noted earlier here // web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:7545')); // getAccount() will get the first account from ganache and will set it as defaultAccount for our contract operations //// async function getAccount() { let accounts = await web3.eth.getAccounts(); web3.eth.defaultAccount = accounts[0]; console.log(web3.eth.defaultAccount + ' account detected'); return web3.eth.defaultAccount; }
config.js
- Go to Remix IDE and make sure you have the bloc.sol from the previous tutorial (Make sure to sure HTTP site, not https).
- Go to the solidity compiler located in the left panel and click on compile bloc.sol. Down you'll find a button with copy icon and text as ABI click on it. Paste it in js/config.js line 1.
let contractABI = COPIED TEXT; The copied text will be enclosed in [].
- Go to deploy and run transactions under environment select Web3 Provider.
- Enter the address you copied from Ganache and paste it click on OK.
- Now a deploy button will be visible click on it.
- Down you'll find Deployed Contracts label now there will a copy icon button click on it.
- And paste in js/config.js line 2.
let contractAddress = 'COPIED text'; The copied text might look like this 0xF3017acEDd45526aC6153FBBCfcA8096173D245a. The contractABI helps the web3js with our smart contract The contractAddress tells the web3js about where on blockchain is our smart contract
app.js
JavaScript $(document).ready(createTaskList()); // Auto focus on input of add task modal // $('#add-task-container').on('shown.bs.modal', function () { $('#new-task').trigger('focus'); }); /** * createTaskList() set the contract object and gets the number * of tasks of the user and then calls addTaskToList() to add * them to HTML one after the other after all task are added to * HTML then calls updateTaskCount() * @author Gupta Shrinath <https://github.com/gupta-shrinath> */ async function createTaskList() { // Get account from the Ganache EVM // try { await getAccount(); // Set contract and set gas // contract = new web3.eth.Contract(contractABI, contractAddress); try { numberOfTask = await contract.methods.getTaskCount().call({ from: web3.eth.defaultAccount }); /* The actual number of task may differ because when an task is removed the task element is removed and the index value now has nothing. */ console.log('Number of Tasks are ' + numberOfTask); // If there are task present // if (numberOfTask != 0) { // Fetch one task after the other until no task remain // console.log('Start fetching task ...'); let taskIterator = 0; while (taskIterator < numberOfTask) { try { let task = await contract.methods.getTask(taskIterator).call({ from: web3.eth.defaultAccount }); if (task[0] != '') { // addTaskToList add this task as children to the ul tag // addTaskToList(taskIterator, task[0], task[1]); } else { console.log('The index ' + taskIterator + ' is empty'); } } catch { console.log('Failed to get Task ' + taskIterator); } taskIterator++; } // Update the task count in HTML // updateTasksCount(); } } catch { console.log('Failed to get task count from blockchain'); } } catch { console.log('Failed to get the account'); } } /** * addTaskToList() takes the task attributes and adds them to * the HTML * @author Gupta Shrinath <https://github.com/gupta-shrinath> * @param {number} id * @param {string} name * @param {boolean} status */ function addTaskToList(id, name, status) { console.log('addTaskToList(): Add Task ' + (id) + ' ' + [name, status]); /* Get the id of ul element so to be able to add children to it */ let list = document.getElementById('list'); /* Create a li element and add the class required to make look good and set the id of it */ let item = document.createElement('li'); item.classList.add('list-group-item', 'border-0', 'd-flex', 'justify-content-between', 'align-items-center'); item.id = 'item-' + id; // Create a text to add it to the li element// let task = document.createTextNode(name); /* Create a checkbox and set its id and checked value to add it to the li element */ var checkbox = document.createElement("INPUT"); checkbox.setAttribute("type", "checkbox"); checkbox.setAttribute("id", "item-" + id + "-checkbox"); checkbox.checked = status; /* if status is true then add task-done class to li element so that the text gets a linethrough */ if (status) { item.classList.add("task-done"); } // Add the li element to ul element // list.appendChild(item); /* Set a ondblclick event to able to remove the item when double clicked on it */ item.ondblclick = function () { removeTask(item.id); } // Append the text of task // item.appendChild(task); // Append the checkbox for task // item.appendChild(checkbox); // Add onclick to the checkbox // checkbox.onclick = function () { changeTaskStatus(checkbox.id, id); }; } /** * removeTask() remove the task from blockchain and then from * the HTML using JQuery * Note: The taskIndex is the li element id {item-taskIndex} * @author Gupta Shrinath <https://github.com/gupta-shrinath> * @param {string} taskIndex */ async function removeTask(taskIndex) { console.log("removeTask(): Remove Task " + taskIndex); // Create the selector for the Task // let taskSelector = '#' + taskIndex; // Make taskIndex to have only task index number taskIndex = taskIndex.replace('item-', ''); try { await contract.methods.deleteTask(taskIndex).send({ from: web3.eth.defaultAccount }); console.log('Remove Task ' + taskIndex + ' from the blockchain'); // Remove the task from the HTML // $(taskSelector).remove(); // Update the task count in HTML// updateTasksCount(); } catch { console.log('Issue occurred while removing task item-' + taskIndex); } } /** * changeTaskStatus() change the status of task in blockchain and * then in the HTML * Note: The id is the checkbox id {item-taskIndex-checkbox} * @author Gupta Shrinath <https://github.com/gupta-shrinath> * @param {string} id * @param {number} taskIndex */ async function changeTaskStatus(id, taskIndex) { // Get checkbox element // let checkbox = document.getElementById(id); // Get the id of the li element // let textId = id.replace('-checkbox', ''); // Get the li element // let text = document.getElementById(textId); try { await contract.methods.updateStatus(taskIndex, checkbox.checked).send({ from: web3.eth.defaultAccount }); console.log('changeTaskStatus(): Change status of task ' + textId + ' to ' + checkbox.checked); if (checkbox.checked) { text.classList.add("task-done"); } else { text.classList.remove("task-done"); } } catch (error) { console.log('Failed to change Status of task ' + textId + ' in blockchain'); } } /** * updateTaskCount() update the number of task in HTML by counting * the number of item in the ul element * @author Gupta Shrinath <https://github.com/gupta-shrinath> */ function updateTasksCount() { // Get the element of ul tag // let list = document.getElementById('list'); // Get the count of the ul element // let taskCount = list.childElementCount; console.log('updateTaskCount(): The number of task are ' + taskCount); // Set the count to the taskCount id element // let count = document.getElementById('taskCount'); count.innerText = taskCount + " Task"; } /** * addTask() add the task to the HTML via adddTasktoList() and then * add it to blockchain and update the count via updateTaskCount() * @author Gupta Shrinath <https://github.com/gupta-shrinath> * @param {string} name */ async function addTask(name) { // Get the form element containing the new task // let form = document.getElementById('add-task-form'); // Check if the input is valid and then add it// if (form.checkValidity()) { console.log('Get the number of task from blockchain'); // Set blank value for text in the addtask modal // document.getElementById('new-task').value = ''; // Remove the mentioned class because it might be // present if a task was added before form.classList.remove('was-validated'); // Get the number of task from blockchain // contract.methods.getTaskCount().call({ from: web3.eth.defaultAccount }).then(numberOfTask => { // Add the task to the HTML // addTaskToList(numberOfTask, name, false); // Update the task count in HTML// updateTasksCount(); }, err => { console.log('Failed to get the number of task in blockchain ' + err); }); try { await contract.methods.addTask(name).send({ from: web3.eth.defaultAccount }); console.log('Add task ' + name + ' to blockchain'); } catch { console.log('Failed to add task to EVM'); } } else { form.addEventListener('submit', function (event) { // Stop all events // event.preventDefault(); event.stopPropagation(); // Add the mentioned class to able to display // error to user form.classList.add('was-validated'); // Set blank value for text in the addtask modal // document.getElementById('new-task').value = ''; }, false); } }
Now the application is fully working.

Similar Reads
Blockchain Tutorial Blockchain technology in simple words is a digital database where information or data is stored in blocks that are linked together to form a chain. This Blockchain Tutorial covers all basic to advanced topics of blockchain like cryptography, Blockchain Algorithms, Blockchain Architecture, Blockchain
6 min read
Introduction to Blockchain Technology
Introduction to Blockchain technology | Set 1Blockchain could be a data structure that could be a growing list of information blocks. The knowledge blocks area unit coupled along, such recent blocks can't be removed or altered. Blockchain is the backbone Technology of the Digital CryptoCurrency BitCoin. What is Blockchain? The blockchain is a
10 min read
History of BlockchainBlockchain can be defined as the Chain of Blocks that contain some specific Information. Thus, a Blockchain is a ledger i.e file that constantly grows and keeps the record of all transactions permanently. This process takes place in a secure, chronological (Chronological means every transaction happ
5 min read
Features of BlockchainHere In this article, we will discuss the features of blockchain technology and how they make it a revolutionary and highly desirable platform for various applications. A blockchain is a chain of blocks that contains information. Most people think that Blockchain is Bitcoin and vice-versa. But itâs
7 min read
Important Blockchain terminologiesIn this article, we will get acquainted with some on the most commonly used and hence, important to know terminologies in the blockchain area. As blockchain is a booming technology with active research being conducted on, this article can help you to understand and take part in conversations around
6 min read
Different Version of BlockChainBlockChain is buzzword in today's technology. Thus, a BlockChain is defined as the digital record of transaction which is stored in the Chain of Blocks.Each time a block is completed by storing Information, the next new block is created to store further information. BlockChain is a secure technology
5 min read
Types of BlockchainBlockchain technology has evolved into a versatile tool with various applications across industries. Understanding the different types of blockchain is essential for selecting the right solution for specific needs. Broadly categorized into public, private, consortium, and hybrid blockchains, each ty
10 min read
Public BlockchainPublic blockchains are decentralized networks that allow anyone to participate, read, and write data without needing permission from a central authority. They operate on an open-source framework, ensuring transparency and security through cryptographic principles. Transactions on public blockchains
7 min read
An Introduction to Private BlockchainPrivate blockchains are a specialized form of blockchain technology for use within a specific organization or consortium. Unlike public blockchains, which are open to anyone and offer full transparency, private blockchains operate on a permission basis, allowing only authorized participants to acces
9 min read
Hybrid BlockchainThe Blockchain is a decentralized distributed database that is shared among computer network nodes. Blockchain can be used in four different ways: Public, Private, Consortium, and Hybrid. The Hybrid blockchain is a revolutionary type of blockchain that is a mix of both worlds, both private and publi
7 min read
What is Consortium Blockchain?A consortium blockchain is a group of multiple financial institutions where each financial institution has its private blockchain. In this blockchain, a pre-selected set of nodes are allowed to control the consensus process. What is Consortium Blockchain?Consortium blockchains are managed and run by
9 min read
Top Applications of Blockchain in the Real WorldThe last time this world changed a lot was with the invention of the Internet! Can you imagine ever living without the ever-present Google or all the other social media sites like Facebook, YouTube, etc? It sounds impossible. Well, this time the world might change again because of the applications o
8 min read
Advantages and Disadvantages of BlockchainBlockchain technology is a revolutionary digital ledger system that allows for secure, transparent, and decentralized transactions. It underpins cryptocurrencies like Bitcoin and has potential applications across various sectors, including finance, healthcare, and supply chain management. The advant
5 min read
Benefits of Blockchain TechnologyBlockchain technology offers a range of transformative benefits that can revolutionize various industries. By providing enhanced security, improved transparency, and increased efficiency, blockchain enables secure and trustworthy transactions without the need for intermediaries. Its decentralized na
4 min read
How does the Blockchain Work?A blockchain is a distributed database that stores information electronically in a digital format and is shared among the nodes of a computer network. A typical difference between a blockchain and a database is how data is structured. A blockchain is a shared, immutable ledger as the name suggests s
8 min read
What is P2P (Peer-to-Peer Process)?The P2P process deals with a network structure where any participant in the network known as a node acts as both a client and a server. This means that, rather than relying on a basis server to supply resources or services, everybody from the network of nodes can trade resources and services with on
9 min read
What is Decentralization? Definition, Working, Need, BenefitsDecentralization is known as the distribution of functions among several units. It is an interconnected system where no single entity has complete authority. It is the architecture in which the workloads, both hardware, and software, are distributed among several workstations. The functions are dist
5 min read
Components of Blockchain NetworkBlockchain networks have various interdependent components that work together to ensure secure, transparent, and efficient data transactions. Key elements include nodes, which validate and relay transactions; a decentralized ledger that records all activity; and consensus mechanisms that maintain th
6 min read
Centralized vs. Decentralized vs. Distributed SystemsUnderstanding the architecture of systems is crucial for designing efficient and effective solutions. Centralized, decentralized, and distributed systems each offer unique advantages and challenges. Centralized systems rely on a single point of control, providing simplicity but risking a single poin
8 min read
Difference between Public and Private blockchain1. What is Public Blockchain ? Public blockchains are open networks that allow anyone to participate in the network i.e. public blockchain is permissionless. In this type of blockchain anyone can join the network and read, write, or participate within the blockchain. A public blockchain is decentral
5 min read
Cryptography Tutorial Cryptography is a technique of securing communication by converting plain text into unintelligible ciphertext. It involves various algorithms and protocols to ensure data confidentiality, integrity, authentication, and non-repudiation. The two primary types of cryptography are symmetric key cryptogr
7 min read
Consensus Algorithms
Consensus Algorithms in BlockchainPrerequisites: Introduction to Blockchain technology | Set 1, Set 2 We know that Blockchain is a distributed decentralized network that provides immutability, privacy, security, and transparency. There is no central authority present to validate and verify the transactions, yet every transaction in
5 min read
Blockchain - Proof of Work (PoW)Proof of Work consensus is the mechanism of choice for the majority of cryptocurrencies currently in circulation. The algorithm is used to verify the transaction and create a new block in the blockchain. The idea for Proof of Work(PoW) was first published in 1993 by Cynthia Dwork and Moni Naor and w
6 min read
Proof of Burn (PoB) Consensus Algorithm in BlockchainThe Proof of Burn (PoB) consensus algorithm is a unique blockchain mechanism that allows participants to validate transactions by "burning" or permanently destroying a portion of their cryptocurrency. This process, which involves sending coins to an unspendable address, demonstrates a commitment to
6 min read
Proof of Stake (PoS) in BlockchainProof of Stake (PoS) is a type of algorithm which aims to achieve distributed consensus in a Blockchain. This way to achieve consensus was first suggested by Quantum Mechanic here and later Sunny King and his peer wrote a paper on it. This led to Proof-of-Stake (PoS) based Peercoin. A stake is value
5 min read
Byzantine Generals Problem in BlockchainThe article focuses on discussing the following topics of Byzantine Generals Problem in Blockchain: What is Byzantine General's Problem?Money and Byzantine General's ProblemHow Bitcoin Solves the Byzantine General's Problem?Byzantine Fault Tolerance (BFT)Byzantine General's Problem in a Distributed
8 min read
Cryptographic Consensus Mechanisms in BlockchainA consensus mechanism is an algorithm that is used to achieve agreement, trust, and security across a decentralized computer network. These protocols help to make sure that all the nodes are synchronized with each other and agree on transactions, which are legitimate and are added to the blockchain.
13 min read
Delegated Proof Of Stake (DPoS)Delegated Proof Of Stake (DPoS) is a consensus algorithm which is an advancement of the fundamental concepts of Proof Of Stake. Delegated Proof of Stake (DPoS) consensus algorithm was developed by Daniel Larimer, founder of BitShares, Steemit and EOS in 2014. In Proof of Stake consensus system, each
5 min read
practical Byzantine Fault Tolerance(pBFT)Practical Byzantine Fault Tolerance is a consensus algorithm introduced in the late 90s by Barbara Liskov and Miguel Castro. pBFT was designed to work efficiently in asynchronous(no upper bound on when the response to the request will be received) systems. It is optimized for low overhead time. Its
6 min read
Blockchain Architecture
Blockchain StructureBlockchain technology often heralded as a revolutionary advancement, fundamentally transforms how data is stored, managed, and verified across distributed networks. At its core, a blockchain is a decentralized digital ledger that maintains a continuous and immutable record of transactions across a n
15+ min read
Candidate block in BlockchainAs we are aware that blockchain is decentralized network which is focused mainly on transparency, Blockchain is list of growing records titled as blocks. Please refer this article, if you are beginner in blockchain domain. Role of Miners in Blockchain : Whenever transaction is made on bitcoin networ
2 min read
Actors Involved in Blockchain SolutionBlockchain is a booming technology that is used as distributed ledgers for cryptocurrency. Blockchain is a ledger that continuously grows by keeping a record of all the transactions in order, secure, and in an immutable way. Each transaction is treated as a block that is connected to a previous tran
3 min read
Blockchain Transaction LifecycleThe blockchain transaction lifecycle refers to the series of stages a transaction goes through from its creation to its final confirmation on the blockchain. It begins with the initiation of the transaction, where details are entered and signed by the sender. The transaction is then propagated throu
5 min read
Blockchain ForksPrerequisites - Blockchain Technology Introduction, How Blockchain technology works, Introduction to Blockchain The decentralized nature of public blockchains (for example, Bitcoin and Ethereum) means that participants on the network must be able to come to an agreement as to the shared state of th
9 min read
Blockchain and Block HeaderBlockchain is a database, or broadly distributed database, used mainly for concurrent transactions and one of the most popular implementations of blockchain is Bitcoin. Blockchain has several blocks, also called nodes, and all the blocks are managed with the help of the block header. Constituents of
3 min read
Blockchain Incentives to MinersBlockchain incentives to miners are essential mechanisms that motivate individuals to participate in the network by validating transactions and securing the blockchain. These incentives primarily come in the form of coinbase rewards and transaction fees, which compensate miners for their computation
5 min read
Core Component of BlockchainBlockchain : In 1991, the term blockchain was coined. Blockchain's founder was an anonymous person who goes by the pseudonym Satoshi Naka Moto. For the first time in 2009, the blockchain was implemented in accordance with bitcoin and bitcoin is a crypto valuta. Due to its open-source nature, Blockch
3 min read
Blockchain Protocols and Their WorkingBlockchain protocols are the foundational rules that govern how data is recorded, shared, and secured on a blockchain network. They dictate how transactions are validated, how consensus is achieved, and how nodes communicate. This article discusses Blockchain Protocols in detail.Table of ContentWhat
8 min read
What is Blockchain Authentication?Blockchain authentication is a secure method of verifying the identity of users and devices in a digital environment using blockchain technology. Unlike traditional authentication systems, which often rely on centralized databases and passwords, blockchain authentication leverages decentralized netw
7 min read
Blockchain and Cryptocurrency
What is Cryptocurrency?A cryptocurrency is not a type of currency that can be used in the real world. It can be used to perform transactions only in the digital world. So in order to buy/sell using a cryptocurrency, it has to be converted from a digital form to some existing currency that is used in the real world. For ex
12 min read
Advantages and Disadvantages of Cryptocurrency in 2020Prerequisite - Cryptocurrency With the industrialization and involvement of technology, digital currencies are gaining an upper hand over others. One such currency is bitcoins. Many of us are familiar with this well-known terminology. The only confusing thing is Cryptocurrency. What are its pros and
6 min read
How are Cryptocurrencies Created?A cryptocurrency is a digital currency, which uses cryptography for secure transactions. It is designed to act as a medium of exchange on a computer network without relying on a central authority such as a government or a bank to manage it. Since cryptocurrencies have no central issuing or regulator
9 min read
What is a Cryptographic Token?A cryptographic token is a digital unit that has a value and does not have its own native blockchain. Blockchain technology has huge potential to build a secure future internet system and also be able to solve big business problems. A blockchain is a digital, decentralized public ledger that has the
7 min read
What is Cryptoeconomics?Cryptoeconomics is the study of how economic incentives and cryptographic techniques are used to create secure and decentralized systems, primarily in blockchain technology. It combines principles from economics, game theory, and cryptography to design networks that encourage honest behavior and mai
10 min read
What is an Initial Coin Offering (ICO)?An Initial Coin Offering (ICO) is a fresh way for businesses to generate funds using cryptocurrency. It is a way to launch a new coin by selling it to investors during a large period. For example, Coinbase is a crypto/fiat-based company that has recently launched its IPO(Initial Public Offering) i.e
11 min read
Generalized Proof-of-Stake Mining in CryptocurrenciesGeneralized Proof-of-Stake (GPoS) is a concept in cryptocurrency mining that builds upon the traditional Proof-of-Stake (PoS) mechanism. While PoS allows users to validate transactions and create new blocks based on the number of coins they hold, GPoS expands on this idea to include a broader range
8 min read
Blockchain - Electronic CasheCash is known as Electronic Cash which is a digital currency technique from which transactions can be achieved anywhere through the internet. It is an easier form of payment, it is based on the principles of blockchain technology (Digital Signatures) among the Peer-to-Peer network. All transactions
4 min read
What is Blockchain Wallet?A blockchain wallet is a software that enables sending and receiving cryptocurrencies such as Bitcoin, Ethereum, etc. It stores the record of transactions and also public and private keys which are used to perform transactions. A public key is similar to an account number. If A wants to send some mo
10 min read
Smart Contracts and Decentralized Applications (DApps)
What is Ethereum: Working, Types, FeaturesEthereum is like a decentralized computing network. It allows developers to create and run applications on its blockchain using smart contracts.Blockchain technology gained public notice with the advent of Bitcoin in 2009. Bitcoin is a cryptocurrency that runs on blockchain technology and is by far,
8 min read
Components of Ethereum NetworkThe components of the Ethereum network form the foundation of its decentralized platform, enabling the creation and execution of smart contracts and decentralized applications (dApps). Key elements include Ethereum nodes, the Ethereum Virtual Machine (EVM), and the consensus mechanism that ensures t
6 min read
Difference Between Bitcoin and EthereumBitcoin is a digital currency that can be transferred on a peer-to-peer (P2P) network without the need for any central authority. It was invented by a person or group of people with the name Satoshi Nakamoto in 2008. All the transactions are stored in an immutable distributed ledger. Bitcoin is crea
4 min read
What are Ethereum Accounts?Ethereum accounts are essential elements of the Ethereum blockchain, serving as digital identities for users and smart contracts. Two main types of Ethereum Accounts are Externally Owned Accounts (EOAs) and Contract Accounts. This article focuses on discussing Ethereum Accounts in detail.Table of Co
10 min read
What are Nodes and Clients in Ethereum?In Ethereum, nodes and clients are fundamental to the network's operation. Nodes are individual computers or servers participating in the Ethereum network by maintaining a copy of the blockchain and following the networkâs rules. Clients are software applications that nodes run to interact with the
13 min read
What is Ethereum Virtual Machine and How it Works?The Ethereum Virtual Machine (EVM) is a crucial component of the Ethereum blockchain that enables the execution of smart contracts and decentralized applications (DApps). When developers write smart contracts in languages like Solidity, the EVM processes these contracts, managing state changes and e
12 min read
Ethereum - Gas and FeesEthereum Gas is a section that calculates the quantity of calculation action that it takes to perform specific functions. Every function that carries position in Ethereum like transactions and smart contracts etc. performance needs some part of gas. It is essential to the blockchain P2P network beca
8 min read
How to Simply Deploy a Smart Contract on Ethereum?Smart contracts are blocks of code that reside on the blockchain. It is like an Ethereum account but there is a critical difference between an external account and a smart contract. Unlike a smart contract, an external account can connect to multiple Ethereum networks (Goerli testnet, mainnet, etc.)
7 min read
"Hello World" Smart Contract in Remix-IDEWhat do you mean by Smart Contract? Smart contracts are self-executing contracts. The term was coined by Nick in 1994. Smart contracts are very different from traditional software programs. They are immutable once deployed on the blockchain. It was because of Ethereum the term smart contract became
4 min read
What are Decentralized Apps (dApps) in BlockchainDecentralized apps are digital applications or programs that are based on Blockchain and fundamentally different from normal applications. Unlike normal applications that run on centralized servers that belong to the company that owns them, dApps run on a decentralized peer-to-peer (P2P) network tha
7 min read
Pros, Cons, and Examples of dAppDapps are decentralized applications that might feel like regular apps. Behind the scene, it has some special qualities that are discussed in the article. Introduction to dAppDecentralized applications can be accessible to a wide audience and provide a diverse set of functions from business services
5 min read
DAO(Decentralized Autonomous Organization) in BlockchainDAO stands for Decentralized Autonomous Organization. The concept of a DAO was first proposed by Bit Shares, Steemit, and EOS (Block. one) founder Dan Larimer in the year 2015, and was further refined in the year 2016 by Ethereumâs Vitalik Buterin. A decentralized autonomous organization is decentra
9 min read
Blockchain Security
Blockchain Applications
Applications of Blockchain in Data ManagementAs our reliance on data grows, effective management becomes more important than ever. Traditional systems can struggle with issues like security, data integrity, and sharing information across platforms. Blockchain technology offers a promising solution by providing a secure, transparent, and decent
5 min read
Benefits and Applications of Blockchain in Cloud ComputingThe various features of Blockchain like decentralization, transparency and security have made it a very important and revolutionary technology for the present generation of several industrial usages. One of those fields is the Cloud of Things which is created by the interlinking of cloud computing a
10 min read
Integration of Artificial Intelligence and BlockChainArtificial Intelligence and Blockchain are proving to be quite a powerful combination, improving virtually every industry in which they're implemented. These technologies can be combined to upgrade everything from food supply chain logistics and healthcare record sharing to media royalties and finan
8 min read
How Blockchain Can Change the Future of BankingWhat is the most important thing for humans? Well, nobody knows for sure but money is definitely one of those! And thatâs the reason that the banking sector is one of the most important sectors in the world. This sector includes different institutions such as banks, finance companies, investment fir
6 min read
Blockchain - Into the FutureAccounting, transactions, contracts, and records play a pivotal and defining role in our societal system. They protect assets, and organizational boundaries and uphold the promises between institutions, governments, and corporations. Despite their importance, these have failed to digitize in ways ot
6 min read
Blockchain in GenomicsBlockchain technology is making waves in various industries, and genomics is no exception. By providing a secure and transparent way to manage and share genomic data, blockchain addresses critical challenges such as data privacy, security, and integrity. This integration promises to enhance collabor
9 min read
Integration of Blockchain and AIAI and blockchain are proving to be quite a powerful combination, improving virtually every industry in which theyâre implemented. Blockchain and artificial intelligence are combining to upgrade everything from food supply chain logistics and healthcare record sharing to media royalties and financia
8 min read
Use Cases of BlockChain in different fieldsBlockchain : Blockchain is a system of recording data that makes it troublesome or not possible to vary, hack, or cheat the system. Blockchain is truly a digital ledger of duplicated transactions and distributed across the total network of laptop systems on the blockchain. Every block among the chai
2 min read
Role of Blockchain in Sustainable DevelopmentThe Blockchain is a decentralized database, which means authority is not associated with one person; it will be shared among the people. Hence, changing and modifying the data is nearly impossible in the blockchain database. That's why it's the most trustworthy. It came in the 1990s when the researc
9 min read
Applications and Uses of BlockchainA blockchain is actually a digital ledger of transactions that is copied and distributed across the network of computer systems. Each of the blocks generated after every transaction holds various information about the transaction and gets itself updated in every participant's ledger which once writt
9 min read
Benefits of Blockchain in HealthcareA blockchain is a chain of blocks linked together using hashing technique. Each block consists of some timestamped records of information such as financial, healthcare, confidential data, etc. The Blockchain network is managed by a group of users on a decentralized network. All the information is av
6 min read
Decentralized Voting System using BlockchainBlockchain is a technology that is rapidly gaining momentum in era of industry 4.0. With high security and transparency provisions, it is being widely used in supply chain management systems, healthcare, payments, business, IoT, voting systems, etc. Why do we need it? Current voting systems like bal
4 min read
Blockchain Implementation
Create simple Blockchain using PythonBlockchain is a time-stamped decentralized series of fixed records that contains data of any size and it is controlled by a large network of computers that are scattered around the globe and not owned by a single organization. Every block is secured and connected with each other using hashing techno
8 min read
Implementation of Blockchain in JavaBlockchain is the backbone Technology of Digital CryptoCurrency BitCoin. A Blockchain is a list of records called blocks that are linked together using linked lists and use the cryptographic technique.Each block contains its own digital fingerprint called Hash, the hash of the previous block, a tim
5 min read
Build a To-do List Web Application Powered by BlockchainHere, we are going to build a to-do list application that will save the data in the blockchain. The blockchain part of this application can also be understood as a database. First, we'll create a smart contract and subsequently the web application itself. We'll use Bloc as the application name but f
15 min read
Flutter and Blockchain - Hello World DappFlutter and Blockchain This tutorial will take you through the process of building your first mobile dapp - Hello World Dapp! This tutorial is meant for those with a basic knowledge of Ethereum and smart contracts, who have some knowledge of the Flutter framework but are new to mobile dapps. In this
9 min read
Blockchain Gaming : Part 1 (Introduction)Blockchain Gaming. Itâs a world of itâs own. Itâs âReady Player Oneâ incorporated into gaming. Before reading this article, it is recommended to read: Introduction to Blockchain to get well versed with the concept of blockchain. Part-1: Transparency, Proven Rarity and True Ownership Transparency: Wh
4 min read
How to use GANACHE Truffle Suite to Deploy a Smart Contract in Solidity (Blockchain)?There are various processes involved in deploying a smart contract using Ganache and Truffle Suite: 1. Install Ganache first. Ganache is a personal blockchain for Ethereum development. You must first download and install it. It is available for download from https://www.trufflesuite.com/ganache, the
4 min read
How to use MetaMask to Deploy a Smart contract in Solidity (Blockchain)?Smart contracts are self-executing contracts. They were first proposed by Nick Szabo in the 90s. They are set of rules and protocols which two parties agree upon and have to follow. One of the main features is that they are immutable once deployed on the blockchain. It is widely used in the Ethereum
3 min read
Build a Authentication Using BlockchainNormally authentication is seen using databases like MYSQL, Firebase, MongoDB, etc. One of the biggest drawbacks is the chance of the data getting corrupted. The data can be modified by anyone who is in control of the database itself.To overcome the above problem here a web app authentication using
9 min read