Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with...

23
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

Transcript of Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with...

Page 1: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 2: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 3: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 4: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 5: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 6: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 7: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 8: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 9: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 10: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 11: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 12: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 13: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 14: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 15: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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!

Page 16: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 17: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 18: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 19: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 20: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

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

Page 21: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?

For information on the course, visit:

https://www.simplilearn.com/blockchain-certification-training

Page 22: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?
Page 23: Blockchain Certification Training Course · Introduction A Short History Lesson Interfacing with Ethereum Networks Metamask Setup Ethereum Accounts Receiving Ether What's a Transaction?