Course #:TP2859

Ethereum, Solidity and Smart Contract Development Training

In this intense 30 hour course, you will also learn how to use Truffle (a popular JS framework) to compile Smart Contracts and automate contract testing. Also, you learn how to build and manage a Wallet Service. Lastly, this course is accompanied by many hands-on labs.

Objectives

  • Review architecture and components of Ethereum
  • What are DApps and how they work
  • Cover all topics and syntaxes for doing Solidity programming
  • Create and deploy your first DApp using Ethereum
  • Learn how Web3.js or Ethereum JS API works
  • Setup and use Truffle.JS framework to compile Smart Contracts and automate contract testing
  • Learn how to build and manage a Wallet Service

Prerequisites

Prior knowledge of blockchain technology and cryptography that are covered in our Blockchain Solution Architect course are required prior to taking this course. Good knowledge of JavaScript, Node.JS, and OOP are the other prerequisites of this course.

Duration

Four days

Outline of Ethereum, Solidity and Smart Contract Development Training

Chapter 1- Overview of Blockchain, DApp and Ethereum

  • Overview of blockchain technology
  • Centralized versus decentralized networks
  • Decentralized autonomous organization
  • User identity in DApps
  • User accounts in DApps
  • Internal currency in DApps
  • What are permissioned DApps?
  • Popular DApps
  • Overview of blockchain cryptography
  • Blockchain development platforms
  • What is Ethereum and how it works
  • Ethereum versus Hyperledger
  • Hyperledger Burrow & Ethereum

Chapter 2- Overview of Ethereum Components

  • Ethereum accounts
  • Transactions
  • Consensus
  • Timestamp
  • Nonce
  • Block time
  • Forking
  • Genesis block
  • Ether denominations
  • Gas
  • Peer discovery
  • Whisper and Swarm
  • Geth
  • Ethereum Wallet
  • Mist

Chapter 3- Introduction to Smart Contracts

  • A Simple Smart Contract
  • Blockchain Basics
  • The Ethereum Virtual Machine

Chapter 4- Installing the Solidity Compiler

  • Versioning
  • Remix
  • npm / Node.js
  • Docker
  • Binary Packages
  • Building from Source
  • CMake options
  • The version string in depth

Chapter 5- Solidity in Depth

  • Layout of a Solidity Source File
  • Structure of a Contract
  • Types
  • Units and Globally Available Variables
  • Expressions and Control Structures
  • Contracts
  • Solidity Assembly
  • Miscellaneous
  • Solidity v0.5.0 Breaking Changes

Chapter 6- Using the Compiler in Solidity

  • Using the Command line Compiler
  • Setting the EVM version to target
  • Compiler Input and Output JSON Description

Chapter 7- Contract Metadata

  • Encoding of the Metadata Hash in the Bytecode
  • Usage for Automatic Interface Generation and NatSpec
  • Usage for Source Code Verification

Chapter 8- Contract ABI Specification

  • Basic Design
  • Function Selector
  • Argument Encoding
  • Types
  • Design Criteria for the Encoding
  • Formal Specification of the Encoding
  • Function Selector and Argument Encoding
  • Examples
  • Use of Dynamic Types
  • Events
  • JSON
  • Strict Encoding Mode
  • Non-standard Packed Mode

Chapter 9- Introduction to Web3.js

  • Initiating of Web3
  • Web3.modules
  • Options
  • Default components
  • defaultBlock
  • defaultAccount
  • defaultGasPrice
  • defaultGas
  • Transaction components
  • transactionBlockTimeout
  • transactionConfirmationBlocks
  • transactionPollingTimeout
  • transactionSigner
  • Provider components
  • setProvider
  • providers
  • givenProvider
  • currentProvider
  • BatchRequest
  • Version

Chapter 10- Get Started with Truffle.JS

  • Installation
  • Creating a Project
  • Compiling Contracts
  • Running Migrations
  • Interacting with Your Contracts
  • Truffle with MetaMask
  • Package Management via EthPM
  • Package Management via NP
  • Debugging Your Contracts

Chapter 11- Solidity Hands-on Labs

  • Develop a complex voting application
  • Build voting contract part- Lab 1
  • Build blind auction part- Lab 2
  • Create safe remote purchase part- Lab 3
  • Develop micropayment channel part- Lab 4

Chapter 12- Creating a Wallet Service

  • Online versus offline wallets
  • hooked-web3-provider and ethereumjs-tx libraries
  • Overview of hierarchical deterministic wallet
  • Introduction to key derivation functions
  • Overview of LightWallet
  • Building a wallet service
We regularly offer classes in these and other cities. Atlanta, Austin, Baltimore, Calgary, Chicago, Cleveland, Dallas, Denver, Detroit, Houston, Jacksonville, Miami, Montreal, New York City, Orlando, Ottawa, Philadelphia, Phoenix, Pittsburgh, Seattle, Toronto, Vancouver, Washington DC.