About this course
Course Overview
Learn the components of Ethereum and how to setup an Ethereum public network. This course will introduce you to Solidity and how to build a basic app and develop smart contracts through extensive hands-on labs. You’ll also review web3 and the Truffle framework before linking everything together by building a full web project with Ethereum.
This course has been meticulously put together and is taught by world-class subject matter experts. Our experts will walk you through deep dive topics including the steps to integrate/develop an application with Ethereum. There are use cases, proof of concepts, as well as interactive hands-on labs.
Target Audience
This course is designed for experienced programmers and developers who want a comprehensive deep dive in writing smart contracts and building applications that interact with them.
Course Objectives
What you will learn in this course:
- Blockchain basics and the types of Blockchain's
- The major components of the Ethereum Blockchain
- The Ethereum programing language, Solidity
- Smart contracts
- Development of DApp v1.1
Course Content
What is Blockchain and Smart Contracts?
- What is Blockchain and how does it work?
- Bitcoin vs Ethereum
- Smart contract
- How you can use smart contracts?
- Advantages of smart contracts
- Solidity
- Lab
- Types of variables in Solidity
- Public and private code
- Public variables and functions
- Private variables and functions
- Internal functions
- External functions
- Smart contract constructors
- Constant variables
- Setting variables
- Lab challenge
Smart Contracts with web3.js
- Lab
- Installing and running the Ethereum TestRPC
- Installing web3.js
- Changing the environment in Remix
- Creating the UI
- Using web3.js to connect and interact with the smart contract
- Solution
- Lab challenge
Smart Contract events with web3.js
- AIM
- Lab
- The current contract
- Defining the smart contract event
- Updating the UI
- Lab challenge
Functions, Mapping, and Structs
- Theory
- Functions
- Mapping
- Structs
- Lab
- The smart contract
- Creating a modifier
- Using the modifier
- Web3 UI’s modifier handling
- Lab
- Creating a struct
- Creating the mapping
- Map addition
- Get from the mapping
- The full contract
- Count from map
- Lab challenge
Inheritance and Deployment
- Theory
- Object-oriented programming
- Inheritance
- Lab
- Current contract
- Creating a base contract
- Changing from strings to bytes
- Continuing the project
- Installing MetaMask
- Deploy contract to the Ropsten testnet network
- Lab
- Update the HTML form
- Update the JavaScript
- Using the App
- Lab challenge
Embark Framework and it’s Deployment
- Blockchain (Ethereum)
- Decentralized storage (IPFS)
- Decentralized communication
- Web technologies
- Lab
- Installing Embark framework
- Hello World with Embark framework
- First contract deployment with Embark framework
Solidity Smart Contracts Testing
- Theory
- What is software testing?
- Lab
- Lab challenge
Contracts Management with Factories
- Theory
- Factory
- Lab
- Lab challenge
IPFS Files Hosting
- Theory
- IPFS
- File hosting
- Lab
- Get your hosting server
- Install IPFS on the server
- Lab challenge
End-to-end Development of DApp
- AIM
- Lab
- Setup the project
- Program the smart contract
- Create the front-end of the application
- Deploy the App with IPFS
- Lab challenge
Course Prerequisites
This course is highly technical and requires students to be comfortable with coding. To prepare for the class you must:
- Provide your own computer (Mac/PC/Linux) (labs are hosted in a virtual environment)
- Basic programming skills of C/C++ or JavaScript