Course Prerequisites:
Familiarity with general programming concepts like data structures, algorithms and networks Understanding of at least one legacy programming stack (e.g. Python, JavaScript, Java or similar) Fundamental knowledge to use command line consoles on any operating system Ability to understand developer concepts like SDKs, APIs, application development tools etc.
Experience with building end to end tiered applications
Modules:
Module 1: Introduction to Blockchain and Smart Contracts
1.1 Origin of Blockchain
1.2 What is Blockchain?
1.3 Consensus Mechanisms
1.4 What are Smart Contracts?
1.5 Bitcoin Blockchains
Module 2: Ethereum Virtual (EVM) and Solidity Basics
2.1 What is an EVM and Ethereum?
2.2 Wallets Introduction and Creation
2.3 Introduction to Remix Editor with Metamask
2.4 Smart Contract Basic Structure
2.5 Variables, If/Else, Strings, Loops, Arrays, Test Tokens
Module 3: Advanced Solidity and Structures
3.1 Libraries, Interfaces, Modifiers
3.2 Structures, Enums, ABI, Calldata, Events, and Transfers
3.3 Contract-to-Contract Calls
3.4 Address and Address Payable
3.5 Receive and Fallback Functions
3.6 Upgradeable Contracts
3.7 Openzepplin Libraries
Module 4: Tokenization and NFTs
4.1 ERC20 Token Creation
4.2 NFT, NFT Minting, IPFS, Security, and Pinata Cloud
Module 5: Development Tools and Techniques
5.1 Truffle, Ganache, and Hardhat
5.2 Metamask Wallet
5.3 Remix Development Environment
5.3 Localnet, and Testnet Deployment
Module 6: DApp Integration and Testing
6.1 Web3.0 Integration with JS
6.2 Wallet Creation and Sending Transactions
Module 7: Introduction to Private Blockchains - Hyperledger Fabric
7.1 Public Vs Private vs. Consortium Blockchain Frameworks
7.2 Introduction to the Hyperledger Fabric
7.3 Hyperledger Projects
Module 8: Deep Dive into the Hyperledger Fabric
8.1 Basic Concepts of HLF
8.2 Docker Introduction
8.3 Commands and Setup
Module 9: Golang Programming for Hyperledger Fabric
9.1 Installation and Path Setup
9.2 VS Code Plugin Setup, Variables, Strings, Conditional Statements, and Loops
9.3 Basics of the Language
Module 10: Chaincode Structure and Error Handling
10.1 Chaincode Explanation using Fabric Samples, Test-network Explanation using Linux Scripting
10.2 Error Handling
10.3 Error Codes and Messages
10.4 Logging Errors
10.5 Handling Panics
Module 11: Custom Chaincode
11.1 Extending the Default Chaincode
11.2 Chaincode Deployment
11.3 REST API Integration with Front End
Module 12: Smart Contract Auditing and Tools Hyperledger Fabconnect, and Firefly
12.1 Why Smart Contract Audits are Necessary
12.2 Introduction to Firefly, Fabconnect, and Blockchain Explorer