Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with...
Transcript of Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with...
Blockchain Certification Training Course
Course Agenda
Lesson 0: Blockchain
What is Blockchain
Blockchain Technology Mechanisms & Networks
Blockchain Origins
Blockchain Objectives
Blockchain Users And Adoption
Blockchain Challenges
Transactions And Blocks
P2P Systems
Keys As Identity
Digital Signatures
Hashes As Addresses
Hash Pointers And Data Structures
Blockchain Transactions
Blockchain Block Structure
Mining Explained
Lesson 1: Bitcoin
What is Bitcoin
The Bitcoin Network
The Bitcoin Mining Process
Mining Developments
Bitcoin Wallets
Decentralization And Hard Forks
Alternative Blockchains/Altchains
Ethereum Consensus Mechanisms
How Smart Contracts Work
Difference Between Private Consortium And Public Networks
Ethereum Virtual Machine (EVM)
Merkle Tree
Double-Spend Problem
New Developments In Blockchain
Ethereum’s Ecosystem And Dapps
Blockchain And Digital Currency
Transactional Blocks
Impact Of Blockchain Technology On Cryptocurrency
Cryptography
Lesson 2: Ethereum
What is Ethereum?
Introduction
A Short History Lesson
Interfacing with Ethereum Networks
Metamask Setup
Ethereum Accounts
Receiving Ether
What's a Transaction?
Smart Contracts
Our First Contract
Contract Structure
Function Declarations
Testing with Remix
Redeploying Contracts
Behind the Scenes of Deployment
More on Running Functions Than You Want to Know
Wei vs Ether
Gas and Transactions
Mnemonic Phrases
Getting More Ether
Lesson 3: Solidity Programming for Ethereum
Solidity - Language of Smart Contracts
Installing Solidity & Ethereum Wallet
Basics of Solidity by Example: Subcoin Smart Contract
Layout of a Solidity Source File & Structure of Smart Contracts
General Value Types (Int, Real, String, Bytes, Arrays, Mapping, Enum, address)
Ether Units, Time Units
Lesson 4: Ethereum coding for Blockchain environment
Globally Available Variables & Functions
Operators: Arithmetic, Logical & Bitwise Operators
Control Structure (if-else, for, while, Do-While)
Scoping and Declarations
Input Parameters and Output Parameters
Function Calls & Return Types
Function Modifiers
Fallback Function
Abstract Contract
Creating Contracts via "new" Operator
Inheriting Smart Contracts
Importing Smart Contracts & Compiling Contracts
Events & Logging
Exceptions
Don't Skip! Node JS Versioning
Lesson 5: Contract Deployment for Blockchain Environment
Boilerplate Requirements
Project File Walkthrough
Syntax Highlighters
Compiling Solidity
The Compile Script
Testing Architecture
Running Windows?
Installing Modules
Web3 Versioning
Web3 Providers
Testing with Mocha
Mocha Structure
Fetching Accounts from Ganache
Refactor to Async/Await
Deployment with Web3
Deployed Inbox Overview
Asserting Deployment
Web3 Version Fix
Verifying the Initial Message
Testing Message Updates
Deployment with Infura
Infura Signup
Wallet Provider Setup
Deployment to Rinkeby
Observing Deployment on Etherscan
Deployed Contracts in Remix
Complete Example: Crowd Funding Smart Contract
Complete Example: Voting Ballot Smart Contract
Lesson 6: Advanced Smart Contracts
The Lottery Contract
Lottery Design
Basic Solidity Types
Starting the Lottery Contract
The Message Global Variable
Overview of Arrays
Overview of Mappings and Structs
Big Solidity Gotcha
Entering the Lottery
Validation with Require Statements
The Remix Debugger
Pseudo Random Number Generator
Selecting a Winner
Sending Ether from Contracts
Resetting Contract State
Requiring Managers
Function Modifiers
Returning Players Array
Contract Review
Lesson 7: Ethereum Test Environment Setup
Test Project Updates
Test Helper Review
Asserting Deployment
Entering the Lottery
Asserting Multiple Players
Try-Catch Assertions
Testing Function Modifiers
End to End Test
Building Interactive Front-Ends
Lesson 8: Ethereum Application Architecture
Application Overview
Getting Started with Create-React-App
Multiple Web3 Instances
Web3 Setup
Deploying the Lottery Contract
Local Contract Instances
Rendering Contract Data
Instance Properties
Accessing More Properties
The 'Enter' Form
Form Setup
Entering the Lottery
Picking a Winner
Project Review
Lesson 9: Real World Ethereum Projects
Solving Real Problems with Contracts
Fixing Kickstarter's Issues
Campaign Contract Design
Campaign Constructor
Contributing to the Campaign
A Quick Test
The Request Struct
More on Function Modifiers
Creating Struct Instances
Instance Creation Syntax
Storage and Memory
More on Storage vs Memory
Voting System Requirements
The Wrong Voting System
Issues with Arrays
Mappings vs Arrays
Basics of Mappings
Refactoring to Mappings
Refactoring Request Stucts
More on Struct Initialization
Approving a Request
Testing Request Approvals
Finalizing a Request
Last Remix Test
Thinking about Deployment
Solution to Deployment
Adding a Campaign Factory
Testing the Factory
Lesson 10: Creating Project Infrastructure for Ethereum
Project Setup
Directory Structure
A Better Compile Script
Single Run Compilation
More on Compile
Test File Setup
Creating Campaign Instances
Testing Warmup
Accessing Mappings
Requiring Minimum Contributions
Array Getters
One End to End Test
Deployment
Refactoring Deployment
Advanced Multi-Page Front-Ends
App Mockups
CRA vs Next
Next's Pages Architecture
Basics of Next Routing
Root Routes
CampaignFactory Instance
Getting a Test Campaign
Fetching Deployed Campaigns
Why Next.js?
Server vs Client Web3 Instances
GetInitialProps Function
Semantic UI React
Card Group Setup
Rendering Card Groups
Adding CSS
Adding a Button
The Need for a Layout
The Layout Component
Assembling a Header
Constraining Content Width
Two Column Layout
Nested Routing
Final CSS Fix
Form Creation
Input Change Handlers
Form Submittal
Testing Submittal
Form Error Handling
Button Spinners
Routing Issues
Next Routes Setup
Automatic Navigation
Header Navigation
Routing to Campaigns
Restarting the Server
Route Mappings
Lesson 11: Ethereum Campaigns
Planning CampaignShow
Redeploying CampaignFactory
CampaignShow's GetInitialProps
Accessing a Campaign
Summary Translation Layer
Custom Card Groups
One Card Per Property
The Contribute Form
Grid Layouts
Form State
Communicating the Campaign Address
Making a Contribution
Refreshing Contract Data
Spinners and Error Handlers
Listing Requests
Grids vs Columns
More Routing!
Request Creation Form
Creating a Request
Form Polish
Creating a Request
Requests One by One
Fancy Javascript
Small Typo!
Rendering a Table
Request Row Component
Request Row Content
Approvers Count Cell
Approving a Request
Finalizing Requests
Testing Finalization
Row Status Styling
Finishing Requests Index
Lesson 12: Introduction to Hyperledger
What is Hyperledger?
Distributed Ledger Technology & its Challenges
Hyperledger & Distributed Ledger Technology
Lesson 13: Introduction to Hyperledger Fabric using Composer
Hyperledger Fabric & Composer Concepts
Hyperledger Fabric : A DLT for Business Applications
Hyperledger Fabric : DLT for Business
Assets, Chaincode & Ledger
Assets, Chaincode and Transactions
Permissioned Network, Members & Membership Service Provider
Permissioned Network, Member & Membership Services
Nodes and Channels
Hyperledger Fabric Composer Overview
Pre-Requisites for Fabric development
Frequently Asked Questions | Common Issues
Development Machine Specifications & IDE
Composer Dev Tools Installation
Exercise: Validate the Composer Development Environment
Install Docker or Docker Toolkit
Install CURL and Cygwin (Windows only)
Lesson 14: Setting up the Hyperledger Fabric Developer Environment Tools
Linux/Ubuntu & AWS: Setup of Fabric Development on Local & Cloud VM
Mac OS: Setup of Fabric Development Environment
Windows : Fabric development environment setup
How to use the Dev Tools
Development Environment Topology
Fabric Under the Hood (Concepts & Terminology)
Ledger Implementation
Dev Environment Walkthrough: Peer & CouchDB setup
Ledger Implementation
Peers Nodes : Anchors and Endorsers
Anchor Peers & Endorsing Peers
Clients Node: Endorsement Policies
Client Peer & Endorsing Policies
Orderer Nodes
Membership Service Provider & Certification Authority
Dev Environment Walkthrough: Orderer and CA Server
Chaincode Development
Lesson 15: Hyperledger Composer tools for application development
Linux/Ubuntu & AWS: Setup of Fabric Development on Local & Cloud VM
Mac OS: Setup of Fabric Development Environment
Windows : Fabric development environment setup
How to use the Dev Tools
Development Environment Topology
Fabric Under the Hood (Concepts & Terminology)
Ledger Implementation
Dev Environment Walkthrough: Peer & CouchDB setup
Ledger Implementation
Peers Nodes : Anchors and Endorsers
Anchor Peers & Endorsing Peers
Clients Node: Endorsement Policies
Client Peer & Endorsing Policies
Orderer Nodes
Membership Service Provider & Certification Authority
Dev Environment Walkthrough: Orderer and CA Server
Chaincode Development
Lesson 16: Front end application development using Hyperledger composer
Developing Front End Applications for Network Applications
Application Design Patterns
Application Architecture Patterns
Securing the REST server with Authentication Strategy
Walkthrough: Applying OAuth2.0 Authentication Strategy to REST Server
Working of Multi User Enabled REST Server
Walkthrough - REST Server Multi User mode
Create the Design Blueprint for the Fabric Application UI
For information on the course, visit:
https://www.simplilearn.com/blockchain-certification-training