Awesome
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