Ethereum: Zero to dApp

Learn to Create Ethereum dApp’s

COURSE OVERVIEW

This 2-weeks course is designed for web/app developers who wish to understand how to create and/or integrate Ethereum based apps. The course gives a top down view of all the important aspects in creating such an app and a basic overview to how the Ethereum blockchain works.

ADMISSIONS STANDARDS

Hands on experience in creating web apps JavaScript a plus1-years minimum as a developerStudents are required to bring their own laptops

AT THE END OF THIS COURSE YOU WILL BE ABLE TO

Configure your Ethereum node – testRPC/parity

Create a working environment for deploying and interacting with smart contracts

Write your own tests for smart contracts

Read and write smart contracts written in Solidity

Explain how ERC20/223 tokens works, create your own tokens and offer them to the public with an ICO

Make your own token exchange with Ethereum using multiple different approaches

Deploy Multisig wallets

Create user interface that can work with Ethereum based applications

ACCREDITATION

Accreditation is given to participants who pass with 70% score on all course examinations and successful completion of all of the coding assignments.

Course size: min 7, max 20

The Blockchain Academy reserves the right to cancel the Ethereum: Zero to dApp course at least 72 hours in advance via Email if we have not received seven or more confirmed applications. If the Ethereum: Zero to dApp is canceled by The Blockchain Academy then full refunds will be made. This means that the participant is aware that the event is not guaranteed to take place at the time of reservation.

COURSE MODULES

BASIC CONCEPTS:

Basic concepts and configuring a working environment:The first lessons will cover some basic concepts in blockchains and the many tools it implements. We’ll cover some of the main differences between traditional and blockchain centered architecture and we’ll set our working environment and tools.

The origin of the blockchain and its basic working mechanism

Consensus and the blockchain. How to agree on things

Asymmetric (key) encryption

Transactions and scripts

How the Ethereum VM works. Storage, transactions, OP_CODES etc

Installing and configuring truffle framework

Creating a private blockchain using testRPC and parity

Working with RPC and HTTP requests

Using truffle to deploy smart contracts and run tests

Writing tests for our smart contracts

Using nodeJS as the back of our app

By the end of this module the students will be able to:

Explain the basic working mechanism of blockchain (specifically, the Ethereum blockchain and Virtual Machine).

Configure their own nodeJS, testrpc/parity nodes, and truffle projects.

Write simple tests for smart contracts

INTRODUCTION TO SOLIDITY:

The main language used for creating smart contracts. In this session, we’ll cover some of it’s basic syntax and structure.

The smart contract as an object on the blockchain

Variables, types, arrays, mapping, memory and storage

Inheritance and classes. Interaction between contracts, calls and libraries

Functions, constructors, modifiers and control flow

In-line assembly

Security considerations

By the end of this module the students will be able to:

Write their own smart contracts using Solidity.

Compile and debug their smart contracts

Write useful test cases for their codes

Deploy their smart contracts to the Ethereum network

Interact with deployed smart contracts

EXPLORING SMART CONTRACTS AND ETHEREUM PROTOCOLS:

Now that we know how to write, deploy, test and interact with smart contracts it’s time to see some real example in action. All topics in this section will be covered by learning and mimicking real running protocols.

ERC20 and ERC223 protocols

Token issuance mechanisms

Identity management systems (uport, civic etc.)

Token exchanges

Wallets and multisig

By the end of this module the students will be able to:

Create their own tokens.

Issue tokens to the public as an ICO

Create and interact with identity management system

Exchange tokens in a token exchange smart contract and in offline protocols

Deploy and use their own multisig wallet

FINALIZING YOUR APP:

We know how Ethereum works and how to write smart contracts for it. We’ve also created some sophisticated apps and made sense of contracts already running on the Ethereum blockchain. Now it’s time to create a user interface for our costumers/end users.

Using web3JS library

Connecting your app to an Ethereum node

Architectural considerations – how and when to use the blockchain

Building the proper framework for displaying and receiving information to/from the user