Building Blockchain-Based Decentralized Applications using Ethereum

Blockchain

One of the hottest technologies of late is no doubt Blockchain. But what is a blockchain? A blockchain is a digital transaction of records that's arranged in chunks of data called blocks. These blocks then link with one another through a cryptographic validation known as a hashing function. Linked together, these blocks form an unbroken chain — a blockchain. A blockchain is programmed to record not just financial transactions but virtually everything of value. Another name for blockchain is distributed ledger.

So how is blockchain useful to businesses and developers? In this course, you will learn the fundamentals of Blockchain and how it works. You will have a solid understanding of blockchain technology by building one yourself using the Python programming language. Once you have a good foundation in how blockchain works, you will use a specific implementation - the Ethereum network. The Ethereum network supports an execution environment known as Smart Contracts, where developers can use them to store digital currencies or assets on the blockchain. You will see some real life use of Smart Contracts, as well as learn how to create tokens, something that is getting a lot of investors' attention lately. At the end of this workshop, you will be on your way to your first ICO.

Topics

  • Introduction to Cryptocurrencies
    • Why we need cryptocurrencies
    • Trust issues
  • Technologies behind cryptocurrencies
    • What is a blockchain?
    • Attributes of a blockchain
    • Miners and nodes
    • Decentralization
    • Bitcoin and Ethereum
    • Fuel for the Ethereum network - Ether
    • Understanding blockchain by building your own using Python
  • Getting Started with Ethereum
    • Using geth - CLI for running Ethereum node
      • Joining the networks – mainnet vs testnet(s)
      • Performing Mining
      • Creating your own private Ethereum network
      • Creating nodes
      • Creating accounts
      • Performing mining and sending Ether to another node
  • Smart Contracts and Decentralized Applications (DApp)
    • Use cases for Smart Contracts
    • EVM and Gas
    • How to implement Smart Contracts
      • Learning Solidity - a Smart Contract programming language
      • Compiling Smart Contracts
        • Using the solc compiler
        • Using the Remix IDE
    • Deploying Smart Contracts
      • Using ganache/testrpc - simulating an Ethereum network
      • Using truffle to deploy smart contracts projects
      • Using Metamask - a lightweight Ethereum client
    • Using Smart Contracts
      • Invoking a smart contract
      • Sending ether to contracts
      • Killing smart contracts
  • Creating Tokens
    • What are tokens?
    • Developing Token Smart Contracts
    • Deploying Token Smart Contracts
    • Selling tokens through crowdsourcing
    • Getting ready for ICO
    • Accepting tokens in Smart Contracts
  • Business case
    • Case Studies

Prerequisites

  • Basic programming experience
  • Understanding of basic object-oriented programming concepts

Computer setup

You need to bring your own Mac / Windows laptop to this course, with the following software:

  • Chrome browser
  • Node.js
  • Python 3

Additional software to be installed during class.

Tid

09:00-16:15