Three-Day Ethereum Developer Course

Johannesburg: 16 – 18 July 2019
On demand: Groups of 8 or more

Demand for blockchain developers is increasing at a rapid rate as enterprises and startups are looking to achieve efficiencies and create new business models enabled by Decentralised Applications (DApps) and smart contracts.

This 3-day course is designed for developers, architects and IT Managers wanting to learn and apply blockchain technology to solve real-world business problems and effectively develop secure, full stack DApps on the Ethereum blockchain. It explores blockchain concepts, languages, tools, and frameworks used for the development of these apps and smart contracts.

This course aims to take you from zero knowledge on developing decentralised apps, to becoming an active early adopter who can develop an Ethereum based blockchain application.

 

SPECIAL OFFER! Enrol 2 or more people and 3rd person is FREE!

Requirements:

  • Experience developing real-world applications in any programming language
  • Understand Java syntax, Javascript or C++
  • Have basic knowledge of HTML, CSS as well as NPM Package manager, Node.JS, Git, Bash Shell (Linux/MacOS) and React
  • Each attendee is required to have their own laptop
More Information
  • Price: R10,500.00 (excl. VAT) per person
  • This is a 3-day course from 09:00am – 16:00pm each day
  • Refreshments and a light lunch will be provided
  • Each attendee will receive a Certificate of Completion at the end of the course

7 + 12 =

Module 1: What is Ethereum?

  • A brief history
  • How does Ethereum differ from Bitcoin
  • Ethereum design and philosophy
  • Ether-what is it and why is it needed

Module 2: The Ethereum Virtual Machine (EVM)

  • Smart Contracts
  • Gas-paying for computations
  • A simple smart contract in action
  • Running contracts on the Ethereum Virtual Machine

Module 3: Ethereum Applications

  • Tokens/ICO’s
  • Decentralised applications
  • Decentralised Autonomous Organisations (DAO’s)

Module 4: Securing the Ethereum Blockchain

  • Mining/Nodes
  • Proof of Work vs. Proof of Stake
  • Other methods of securing blockchains

Module 5: Ethereum Past, Present and Future

  • How is Ethereum different from when it launched?
  • Ethereum Enterprise Alliance (EEA)
  • The DAO, DAO hack and resulting chain fork
  • An introduction to a few popular and innovative smart contracts
  • Scaling issues and the plan to scale Ethereum
  • Competition: other smart contracts platforms
  • Plans for the future

Module 6: Introduction to Ethereum Development

  • What is a smart contract?
  • What can you do with smart contracts?
  • What can you not do with smart contracts?
    • Hard limitations
    • Practical limitations
  • Smart contracts vs. Distributed Applications
  • Interacting with smart contracts
  • Practical: Run a smart contract
  • Using DApps
    • Metamask
    • Practical: Install Metamask extension and
      run a Dapp

Module 7: Tools and Frameworks

  • Metamask
  • Remix online IDE
  • Truffle
  • Ganache
  • OpenZepellin
  • Web3.js
  • Solidity IDE’s

Module 8: Setting up the Development Environment

  • Practical: Set up basic development environment

Module 9: Introduction to Solidity Development

  • Introducing Solidity
  • Date types and structures
  • The structure of a smart contract
  • Contract lifecycle
  • Example: A basic smart contract
  • Testing with Remix
  • Deploying the contract
  • Monitor the deployment with Etherscan
  • Call the contract
  • Kill/Un-deploy a contract
  • Practical: Create/test/deploy/call/kill a contract

Module 10: Advanced Smart Contracts

  • Using the Truffle framework
  • Securing contracts
    • Common exploits
    • Common contract security patterns
    • Zeppelin SafeMath library
  • Advanced data structures
    • Arrays
    • Maps and structs
  • Deploying your own testnet with Ganache
  • Testing with Mocha

Module 11: Building Ethereum Distributed Application Apps

  • Using the Truffle framework
  • Introducing Web3.js
  • Rendering contract data
  • Using a form to get user input
  • Using static assets
  • Interfacing with distributed file system
    • IPFS
    • Swarm
  • Decentralised P2P communication
    • Whisper/Orbit
    • Sending/receiving messages
  • Oracles
    • Types of Oracles
    • Some useful existing Oracles
    • Interfacing with Oracles

Module 12: Advanced and Multi Page Front-ends

  • Layouts, buttons and CSS
  • Routing
  • Validation and error handling
  • Spinners

Module 13: Enterprise Scale DApps Infrastructure and Architecture

  • Architecting Ethereum projects
  • Solium – standardising style and security practices
  • Dapps DevOps
  • Unit testing
  • Regression testing
  • Automating the development pipeline
  • Monitoring a live DApp