/Web3.0-Roadmap

Blockchain Development curriculum, code snippets and best of practice learnt on the course of transitioning from Web2.0

Primary LanguageSolidity

Web3.0-Roadmap

Personal documentation of Blockchain Development curriculum, code snippets and best of practice learnt on the course of transitioning from Web2.0

Pre-requisite:

  • HTML/CSS
  • Javascript
  • Node JS
  • React
  • Visual Studio Code

Blockchain Development Learning Roadmap

  • Bitcoin white paper
  • Consensus Algorithm/Mechanism
    • Proof of Work
    • Proof of State
    • Proof of Existence
    • Proof of Authority
    • Proof of Burn
    • Byzantine Fault Tolerance
    • Practical Byzantine Fault Tolerance
    • Proof of Reserve
    • Proof of Competence
    • Proof of Capacity
    • Proof of Resource
    • Proof of Activity
    • Proof of Importance

Tools

  • Remix IDE
  • Metamask

Languages

  • Solidity
  • Vyper
  • Rust
  • Golang
  • Javascript

Libraries

  • Truffle
  • Ganache
  • Web3.js
  • Web3.py

Introduction to Ethereum

  • Ethereum Yellow paper
  • Formation of Ethereum: The Journey
  • Philosophy of Ethereum

Ethereum Fundamentals

  • Ethereum World Computer
  • Ethereum Virtual Machine (EVM)
  • Ethereum World State
  • Gas & Ether
  • Accounts
  • Block
  • Ethereum Transaction
  • Account Balance Model
  • Ethereum Transaction Life Cycle

DApps & Smart Contracts

  • Understanding Decentralized Application (DApp)
  • Introduction to DApp
  • DApp Application Stack
  • What is Web3 ?

Introduction to Smart Contracts

  • What is a Smart Contract ?
  • Need and Use of Smart Contract
  • Writing First Smart Contract
  • Running First Smart Contract

Remix IDE

  • Remix IDE File Explorer & Code Editor
  • Remix IDE Compiler Tab
  • Remix IDE Deploy & Run Transactions Tab
  • Remix IDE Offline Mode

Introduction to Solidity

a. Solidity Smart Contract Language

  • Components of a Contract

b. Basic Data Types

  • Integers
  • String
  • Address
  • Enums
  • Booleans
  • Fixed-size Byte Arrays
  • Fixed Point Numbers

c. Solidity Variables

  • Introduction Solidity Variables
  • Visibility/Access Modifiers

d. Functions in Solidity

  • Introduction to Functions in Solidity
  • Visibility/Access Specifiers
  • Mutability
  • Function Modifier

e. Control Structures

  • Introduction to Control Structures
  • If Statement
  • For loop
  • While loop
  • Do-while loop
  • Loop Control

f. Arrays and Structs

  • Arrays
  • Structs
  • Data Location

g. Mapping

  • Introduction to Mapping
  • Iterable Mappings

Interacting with Ethereum Network

a. Introduction

  • Introduction to Ethereum Network
  • Ethereum Clients
  • Ethereum Node Simulation

b. Ethereum Private Node

  • Ethereum Network Settings
  • Installing Go-Ethereum Client
  • Running an Ethereum Node
  • Starting Mining
  • Transferring Ether
  • Dev Node

c. MetaMask Light Client

  • Introduction to MetaMask
  • Setting up MetaMask
  • Test Ether & Faucet
  • Geth and MetaMask
  • Remix IDE and MetaMask
  • Etherscan - The Block Explorer

d. Ganache

  • Ganache CLI
  • Ganache GUI
  • Ganache and Remix
  • Ganache and MetaMask

DApp Development

a. Introduction

  • Introduction to DApp Development
  • What is Web3Js
  • Playing with Web3Js
  • Smart Contract Deployment

b. Contract

  • Writing Smart Contract
  • Run an Ethereum node
  • Compile and Deploy the Contract

c. Interface

  • Steps and Architecture
  • User Interface Design
  • Client-side code for communicating with MetaMask
  • Run the Application