Module 1: What is Blockchain?
- Blockchain Basic Principles
- Centralized and Decentralized Ledgers
- Mechanics of Blockchain
- What is a Block?
- How are Blocks Chained Together?
Module 2: How Does Blockchain Works
- Benefits and Drawbacks of Blockchain
- Cryptography
- Public Key Cryptography
- Cryptographic Hashing
- Blockchain Consensus
- Proof of Work Consensus
- Proof of Stake Consensus
- Other Consensus Mechanisms Explained
- Lifecycle of a Public Blockchain Transaction
Module 3: Types of Blockchains
- Public vs Private Blockchains
- Open vs Closed Blockchains
- Open Source Blockchain Projects
- Blockchain Smart Contracts
Module 4: How is Blockchain different from what we have today
- Types of Networks
- Centralized Networks
- Distributed Networks
- Decentralized Networks
- Software vs Firmware
- Blockchain vs Database
Module 5: Introduction to Ethereum
- History of Ethereum
- Blockchain as a Service
- How is Ethereum Used?
- Ether
- ERC-20
- ERC-721
- Smart Contracts
- Tokens and Coins
- Using Gas in Ethereum
Module 6: Introduction to Hyperledger
- What is Hyperledger?
- Why Hyperledger?
- Hyperledger Modules and Platforms
- Hyperledger Fabric
Module 7: Use Cases for Blockchain
- Blockchain Application Architecture
- Integrated Development Environment (IDE)
- User Interaction Layer
- Middle/Interface Layer
- Smart Contracts/Chaincode
Module 8: What does a Blockchain app look like?
- Guiding Design Principles
- Personas (User Types)
- User Stories (Application Interaction)
- Application Functional Requirements
- Application Technical Requirements
- Design Tasks
- Fundamental Design Questions
Module 9: How do I Design a Blockchain application?
- Fundamental Design Concepts
- Calling External Contracts
- Error Handling
- Pull vs Push Payments
- On-Chain Data
- Local Testing Recommendations
- Not Using Agile Development Process
- Technology Design Decisions
- Monolithic vs Modular
- Complexity Models
Module 10: How do I develop a Blockchain application?
- Fundamental Design Concepts
- Calling External Contracts
- Error Handling
- Pull vs Push Payments
- On-Chain Data
- Local Testing Recommendations
- Not Using Agile Development Process
- Technology Design Decisions
- Monolithic vs Modular
- Complexity Models
Module 11: How do I test a Blockchain application?
- Blockchain Testing Approaches
- Unit Testing
- Developer Level Testing
- Configuration & Environment Testing
- Load/Performance Testing
- Volume/Stress Testing
- Regression Testing
- Application Bug Classifications
- User Load Testing