Blockchain Ethereum Exam and Smart Contract Basics Blockchain Ethereum Certification
-
What is Blockchain Ethereum Course and how does it work?
-
Centralized vs. Decentralized vs. Distributed
-
Blockchain vs. Databases
-
Bitcoin vs Ethereum
-
What are Smart Contracts?
-
How are Smart Contracts used?
Smart Contract Programming Basics
-
Advantages and Drawbacks of Smart Contracts
-
Layer 1 vs. Layer 2
-
High-Level Language vs. Low-Level
-
Languages in Comparison Solidity, Vyper, others
-
Smart Contracts with Solidity
-
The Layout of a Solidity File
-
LAB TASKS (Lab 1)
-
Types of Variables in Solidity
-
Function/Variable Visibility
-
Smart Contract Constructors
-
Setter- and Getter-Functions
Understanding Decentralized Information and Web3
-
Blockchain Access structures and Architectures
-
Remote Blockchain Nodes vs. Local Blockchain Nodes
-
Blockchain Access vs. centralized RESTful API
-
Understanding Web3.js API
-
Understanding Transactions and Consensus
-
Private Keys, Public Keys and Signatures
-
Understanding privacy on pubic Blockchains
-
Understanding the architecture of KeyStore’s such as MetaMask or MIST
-
LAB TASKS (Lab 2 – Ropsten Test-Ether and MetaMask)
-
Installing and Configuring MetaMask
-
Obtaining Ropsten (or Testnet) Ether
-
Tracing Ether through Block-Explorers
-
Understanding Infura
Basics of Ethereum and the EVM
-
Ethereum Denominations
-
Understanding EVM and the ABI Interface
-
Calls vs. Transactions
-
Concurrency and Events
-
Use cases of Events
-
LAB TASKS (Lab 3 Web3JS Operations + Lab 4 Events)
-
Install and Use Ganache
-
Work with Web3.js
-
Work with Infura
-
Define Events
-
Listen and React to Events
Solidity Advanced: Modifiers, Mappings, Structs and Inheritance
-
Understanding Functions, Mappings and Structs
-
When to use Modifiers
-
Libraries vs. Inheritance
-
LAB TASKS (Lab 5 Modifiers, 6 Mappings and Structs, Lab 7 Inheritance)
-
Understand and use Modifiers
-
Add Mappings and Structs
-
Use Inheritance to increase auditability
Understanding Deployment and Costs Blockchain Ethereum Certification
-
Understand Development and Deployment Cycles
-
Understanding Solidity Compilation and Deployment
-
Gas and Gas-Costs
-
Upgradeability and Data Migration Techniques
-
Understand the moving Parts: Compiler, Blockchain, API, KeyStore
-
LAB TASKS (Lab 8 Deployment, Lab 9 Tie it together)
-
Changing from strings to bytes (save gas)
-
Deploy using Ropsten Test-Ether
-
Understand the difference when using a real Blockchain
-
Use a fully functioning distributed Application
Mining, Proof of Work vs. Proof of Authority
-
What is Mining in PoW?
-
How blocks are generated
-
PoW vs. PoA (vs. PoS)
-
Understanding Go-Ethereum or Ganache/TestRPC for local development
-
Understanding Private Blockchains vs. Public Blockchains
-
-
LAB TASKS (Lab 10 Mining)
-
Installing and using Ganache
-
Installing and using Go-Ethereum
-
Connecting to Ganache/Go-Ethereum from Remix and Web3.js
-
Interact with the Blockchain from HTML/JS
Current Problems, Solutions, Outlook, Serenity Blockchain Ethereum Certification
-
Ethereum Now and Ethereum Future
-
Where we are at with Ethereum
-
Where Ethereum is heading to
-
Serenity
-
PoS + PoW to PoS
-
Sharding
-
Recommended Newsletters/Groups
Working in Teams, Testing and Versioning
-
Understanding what Truffle is
-
Comparison to Embark
-
How Manage Code for Teams
-
Understanding Migrations
-
Understanding Unit-Testing with Truffle
-
LAB TASKS (Lab 11 Truffle setup, Lab 12 Truffle Unit Testing)
-
Download and Setup Truffle
-
Adapt the standard Truffle-Project
-
Write A Unit Test
IPFS and distributed File-Storage
-
What is IPFS
-
Comparison between IPFS, FileCoin, Swarm, Sia, Storj
-
LAB TASK (Lab 13 – IPFS)
-
Install and work with IPFS
-
Upload and retrieve a fully decentralized file
Bonus Section: Compilation
-
LAB TASK (Lab 14 – Compilation)
-
Compile a Solidity File with a command-line compiler
Labs:
Lab 0 – Understanding Components
-
In this Lab we discuss the components used, where to get them and how to install them.
Lab 1 – Variables
-
In this Lab you will get to know Remix and run simple Smart Contracts
Lab 2 – Ropsten and MetaMask
-
In Lab you will get Ether from the Ropsten or Rinkeby Testnet and trace the Ethers on their way to the browser-plugin MetaMask.
Lab 3 – Web3.JS Operations
-
During this Lab you will understand what Web3.JS is and how it is used to retrieve Information.
Lab 4 – Events
-
Here you will learn a classic use-case for events to overcome concurrent workflow issues
Lab 5 – Modifiers
-
In this Lab we will work with modifiers
Lab 6 – Mappings and Structs
-
Mappings and Structs are powerful data-structures which you will learn in this Lab
Lab 5 – Modifiers
-
In this Lab we will work with modifiers
Lab 7 – Inheritance
-
When using Solidity it’s good to keep things clear and small to be able to audit it. In this Lab we discuss Inheritance
Lab 8 – Gas-Costs and Deployment
-
In this Lab you will learn how to optimize the smart contract, deploy the contract and what to pay attention to in practice.
Lab 9 – Final DApp, Tie it Together
-
We put all the components together and work with the final distributed Application.
Lab 10 – Mining
-
During this lab you will see the difference of mining in a proof of authority consensus network and a proof or work network.
Lab 11 – Truffle Setup
-
This Lab will teach how Truffle can be used to work in teams and with code locally. We will install and adapt the truffle default workflow.
Lab 12 – Truffle Unit Tests
-
In this Lab we will do one of the most important steps during Contract Development: Create Unit-Tests for our Smart Contract
Lab 13 – IPFS
-
During this Lab you will create a fully decentralized file-storage which will store files on IPFS and pointers on Ethereum
Bonus Lab – Solidity Compilation
-
In this Lab you will learn how to manually compile a solidity file with the command line solidity compiler