Skip to content

AnmolSirola/Blockchain-Development

Repository files navigation

Blockchain-Development-RoadMap

What is blockahin ?

Blockchain is a shared, immutable ledger that facilitates the process of recording transactions and tracking assets in a business network. An asset can be tangible (a house, car, cash, land) or intangible (intellectual property, patents, copyrights, branding). Blockchain is a type of shared database that differs from a typical database in the way that it stores information; blockchains store data in blocks that are then linked together via cryptography. As new data comes in, it is entered into a fresh block. Once the block is filled with data, it is chained onto the previous block, which makes the data chained together in chronological order.

BlockChain_System

Pre-requisite Skills Required to learn Blockchain :-

  1. Programming Language :- Having knowlegde of programming languages like Java, C++ and C etc , will help you learn and understand the programming language used in development of blockchain. If you already know a programming language it will be easier for you to learn new language for blockchain and you will grasp the fundamentals more clearly and fast.

  2. Object-Oriented Programming :- Object-oriented programming (OOPs) is a computer programming model that organizes software design around data, or objects, rather than functions and logic. Oops reduce development time because you can reuse code and develop models based on previous objects, allows u to write clean code and gives an effective problem solving.

  3. Front-End Development:- Web3 is based on web2 only , the front-end part remains the same only the backend changes . We need a front-end to interact the backend of our dapp (decentrailsed application ) or website. So basically we should have knowlegde of html css and javascipt for it .

  4. Framework :- It is not mandatory but it is good to know a framework like React.js, Next.js or Angular.js . As these framework allow us to improve the UI and apprearenace of our website.

cINIFbqqBHP6eJ0PSVZp9TroFeI3-h2b3icf

Web3 TechStack :-

  1. Selecting the Chain you are working on :- There are many blockchains, the two most famous and in demand are Ethereum and Solana. According to many stats ethereum has more market cap and has bigger developer community, so here we will be talking about Solidity only.

  2. Writing Smart Contracts:- We need to know about Solidity to learn ethereum development as it is one of the most important and famous programming language. Smart contracts are simply programs stored on a blockchain that run when predetermined conditions are met. With the help of Solidity we will be able to write smart contracts which is the backend of our program.

  • Openzeppelin - OpenZeppelin is an open-source framework to build secure smart contracts. OpenZeppelin provides a complete suite of security products and audit services to build, manage, and inspect all aspects of software development and operations for decentralized applications. It can be very useful for us in writing contracts and securing them.
  1. Testing and Installing Dependencies:- Before we deploy our smart contracts to the mainnet we need to test them, we can test them with the help of javascript . To be specific we can use javascript test framework like mocha and chai . Also we need knowlegde of node.js which helps in our project as Javascript Backend for Dependencies.

  2. Using Metamask:- MetaMask is a software cryptocurrency wallet used to interact with the Ethereum blockchain. It allows users to access their Ethereum wallet through a browser extension or mobile app, which can then be used to interact with decentralized applications. We will use metamask to link our dapps and websities to testnets and also for getting test ethers.

  3. Contract Framework:- We need an framework for Compiling, Testing and to Deploy our contracts on any IDE. The most two popular contract framework are:-

  • HardHat:- It's a flexible and extensible task runner that helps you manage and automate the recurring tasks inherent to developing smart contracts and dApps.Some of the important highlights of Hardhat include Solidity debugging, error messages for failed transactions, and explicit stack traces. The in-built Hardhat Network and CLI also serve as critical additions to the features of Hardhat.

  • Truffle:- Truffle is one of the oldest development tool ecosystems for Ethereum developers. It serves as a development and testing framework as well as an asset pipeline for blockchain applications by using the Ethereum Virtual Machine. Truffle offers many features for easier and efficient development of dApps, such as contract compilation and management support, an interactive console for facilitating direct contract communication, and network management. The Truffle Suite also includes Ganache, which helps in testing Solidity contracts on a local blockchain network.

  1. JavaScript libraries which enable frontend interacation :- These libraries enable frontend apps to interact with the Ethereum blockchain, including smart contracts. If you're building an app that reads or writes to the blockchain from the client, you'll need to use these libraries.
  • Ether.js:- Ethers.js is a JavaScript library that allows developers to interact with the Ethereum blockchain. The library includes utility functions in JavaScript and TypeScript, and has all the capabilities of an Ethereum wallet. This library is designed to make it easier to write client-side JavaScript based wallets, keeping the private key on the owner’s machine at all times.

  • Web3.js:- The web3.js library is an open source JavaScript library (GNU Lesser General Public License version 3) built by the Ethereum Foundation, and it includes functions to communicate with an Ethereum node via the JavaScript Object Notation - Remote Procedure Call (JSON-RPC) protocol. In other words, it is a JavaScript library that allows a developer to interact with the Ethereum blockchain.

  1. React.js (Javascript Framework for Frontend Dapps)- React (also known as React. js or ReactJS) is a free and open-source front-end JavaScript library for building user interfaces based on UI components. Its aim is to allow developers to easily create fast user interfaces for websites and applications alike. If we want to build some advance project will have to use react in our project . There is other framework Next.js you can also use this framework for your frontend.

  2. Moralis (APIs, Indexing, Boilerplates):-

  • Moralis is a leading web development platform that offers everything that the user needs to create, host, and grow great dApps in one place. It allows you to simply interface with an infinite number of external projects, chains, and technologies.

  • You can create your own back end infrastructure with just one snippet of code that saves both time and money. Moralis provides a modular, adaptable platform that allows you to pick and choose the components you require for your project. It makes your projects easier to start, manage, and enhance, whether you're developing your first blockchain project or if you are a seasoned developer.

Flow Diagram

flowflow

Conclusion

Web3 has the potential to change the world, The developments in the world of web3 have proved how successful web3 will be in the future. Most important of all, the assurance of decentralization, data privacy, and control over digital identities can also serve as crucial advantages for internet users. Soon the concept of decentralizaion will applied to everything from banking to social media , from E- voting to charity all these things may be decentralized in the future.

Reference

Releases

No releases published

Packages