Course Blockchain Dev Course - Sofia - June 2018

Course Blockchain Dev Course - Sofia - June 2018

Blockchain Dev Course - Sofia - June 2018

04 June 2018 26 May 2018 6 weeks 18 credits
Participate
Time left:
5days 21h 43min 23sec
Blockchain Dev Course - Sofia - June 2018 icon

About the course

Participate
Time left:
5days 21h 43min 23sec

Skills, which you will acquire

  • Deep understanding of blockchain networks and cryptocurrencies
  • Designing and coding simple blockchain networks
  • Understand how to build, sign and send blockchain transactions
  • Developing smart contracts using Ethereum and Solidity
  • Writing Solidity code: contracts, functions, data, events, payments
  • Designing and developing decentralized apps (DApps)
  • Accessing the Ethereum network and invoking smart contracts
  • Using Solidity framework and tools: Truffle and Ganache
  • Understanding and implementing blockchain consensus algorithms like PoW and PoS
  • Understanding cryptography, using crypto libraries and implementing crypto wallets
  • Deep understanding of blockchain networks and cryptocurrencies
    Designing and coding simple blockchain networks
  • Understand how to build, sign and send blockchain transactions
    Developing smart contracts using Ethereum and Solidity
  • Writing Solidity code: contracts, functions, data, events, payments
    Designing and developing decentralized apps (DApps)
  • Accessing the Ethereum network and invoking smart contracts
    Using Solidity framework and tools: Truffle and Ganache
  • Understanding and implementing blockchain consensus algorithms like PoW and PoS
    Understanding cryptography, using crypto libraries and implementing crypto wallets

Topics

  • Information on admission exam

    • The exam will be held on May 26th
    • You will receive an email on May 25 with detailed information
    • Expect more information about the exam HERE

    Lecture resources

    There are no resources for this lecture yet

  • resources

    Lecture resources

  • Blockchain Introduction

    Welcome to the Blockchain Dev Camp 

    • Course scope, trainers, projects, assessment

    Blockchain Technologies – Introduction

    • Blockchain technology concepts
    • Distributed ledger and decentralized consensus
    • Blocks, transactions, wallets, cryptocurrencies, ICO and token sales

    Exercise: Playing with Crypto Wallets

    • Create a Ethereum wallet in MyEtherWallet
    • Get some ETHt from the Ropsten testnet faucet
    • Send ETHt to a colleague and track the transaction execution

    Blockchain Concepts – Blocks, Transactions, Consensus, Double Spending

    • Blockchain internals: blocks, transactions, hashes, chaining blocks, keys and addresses
    • Proof of work consensus, preventing double spending, network splits, the 51% attack
    • Mining the next block, block difficulty
    • Transaction speed and transaction fees

    Exercise: Build Your Own Simple Blockchain

    • Exercises: build a simple blockchain network in Python
    • Install Python, Flask and Postman
    • Building the blockchain: blocks, transactions, chaining blocks
    • Exposing REST API endpoints, implementing the API
    • Implementing p2p communication and a simple consensus algorithm: the longest valid chain wins
    • Interacting with the blockchain network nodes with Postman

    Lecture resources

    There are no resources for this lecture yet

  • Blockchain Cryptography

    Introduction to Cryptography for Developers

    • Overview of cryptography for developers: symmetric and asymmetric encryption, digital signatures, hashes, key derivation
    • Cryptography secure random generators (CSPRNG)
    • Diffie-Hellman Key Exchange (DHKE)
    • Public key cryptography and RSA, key generation, encrypt, decrypt
    • Symmetric key encryption and decryption, block ciphers and AES
    • Hashing, HMAC and key derivation algorithms
    • Elliptic curves, EC parameters and secp256k1, ECDSA, sign, verify
    • Blockchain cryptography: wallets, BIP32, BIP39, BIP44, private key = public key = blockchain address
    • Post-quantum cryptography: quantum-safe signature algorithms
    • Exercises: play with: Hashing, HMAC, Key-derivation, Elliptic curve cryptography, secp256k1

    Popular Crypto Libraries

    • Cryptography in JavaScript: hashes, key derivation, EC keys, signing, signature verification, secp256k1
    • Bouncy Castle for C# (Java): hashes, key derivation, EC keys, signing, signature verification, secp256k1
    • Python crypto libraries: hashes, key derivation, EC keys, signing, signature verification, secp256k1
    • Exercises (using secp256k1 EC cryptography): Generate keys (private, public and address), compress / decompress keys, Create, sign message, Verify signature
    • Play with some Ethereum-based library: generate keys, addresses, sign / verify transactions

    Lecture resources

    There are no resources for this lecture yet

  • Consensus Algorithms

    Decentralization and Consensus Algorithms

    • Decentralized consensus, consensus protocols, double spending, 51% attacks
    • Proof of Work (PoW), Proof of Stake (PoS), Delegated PoS, Practical Byzantine Fault Tolerance (PBFT), Proof of Importance (PoI), Proof of Authority (PoA), Tangle, Hashgraph
    • Blockchain network forks: hard forks and soft forks

    Practical Project: Building a Blockchain Network

    • Designing a blockchain network: Node, Miner, Wallet, Faucet, Blockchain Explorer
    • Designing the Node: blocks, transactions, addresses, signatures, peers, consensus, API
    • Designing the Miner: block candidates, the mining process (proof of work), creating a new block
    • Designing the Wallet: key and address generation, transaction signing, sending transactions
    • Designing the Faucet: signing and sending faucet transactions, spam protection
    • Designing the Blockchain Explorer: visualizing blocks, transactions, addresses and nodes

    Exercise: Sign / Verify a Transaction

    • Writing code to sign + verify a transaction (JSON document) by certain private key, using secp256k1
    • Implementation in JS, Python, C# and Java

    Lecture resources

    There are no resources for this lecture yet

  • Working on the Practical Project

    Designing the Blockchain Node

    • Designing the Node data structures, main functionality and its REST API
    • Practical coding: mock implementation of all the REST endpoints
    • Swagger-based API documentation – https://swagger.io

    Implementing the Blockchain Node

    • Implementing the Node core logic: transactions, blocks, chaining blocks, transaction validation, block validation, chain validation, calculating balances by address, etc
    • Implementing the peer interaction and consensus protocol: the transaction with most effort spent wins
    • Implementing the REST API for the Node public functionality

    Lecture resources

    There are no resources for this lecture yet

  • Mining and Mining Pools

    Introduction to Mining and Mining Pools

    • Introduction to mining and pools
    • The Stratum standard
    • Exercise: implement proof of work mining in a simple JS-based blockchain implementation
    • Exercise: mining Ethereum in a pool (ETHash mining)
    • Exercise: mining Monero in a pool (CryptoNight mining)

    Working on the Practical Project: Implementing a Miner

    • Designing the Miner for the practical project blockchain network: candidate blocks, hashing, mined block
    • Implementing a proof-of-work miner: asking for a candidate block, hashing to find the proof of work, submitting the mined block, checking the mining account balance

    Lecture resources

    There are no resources for this lecture yet

  • Wallets and Wallet APIs

    Wallets and Wallet APIs 

    • Overview of wallets: software wallets, hardware wallets, web-based wallets
    • Multi-signature wallets
    • Hierarchical wallets (HD wallets) and mnemonics, BIP32, BIP39, BIP44
    • Keystores (keyrings) for storing private keys

    Exercise: implement a wallet in JavaScript

    • Generate new random HD wallet by seed words
    • Open existing HD wallet (by JSON file + password)
    • Import a private key into a keystore
    • Derive keys from a wallet, sign data, verify signatures
    • Hint: use the MetaMask wallet libraries: link or Ether.js wallet API
    • Exercise: generate a QR code for wallet address

    Lecture resources

    There are no resources for this lecture yet

  • Transactions and Exchanges

    Transactions

    • Blockchain transaction models: UTXO vs. account balances
    • The UTXO transaction model, used in Bitcoin, Litecoin, NEO, Cardano
    • The account balances transaction model used in Ethereum, Stellar, NEM
    • Exercise: play with the Bitcoin API, send transactions (spend UTXO) in C#
    • Exercise: play with the Ethereum API, send transactions (spend account balances) in C#

    Exchanges (Optional Topic)

    • Introduction to trading and cryptocurrency exchanges
    • Orders, order books, limit orders, margin trading
    • Decentralized trading platforms: Stellar, The Waves Platform, HodlHodl
    • Exercise: buy / sell testnet assets through HodlHodl
    • Exercise: play with a trading APIs, list the exchange prices, list orders, etc.

    Lecture resources

    There are no resources for this lecture yet

  • Working on the Practical Project: Wallet and Faucet

    • Implementing “create new wallet”
    • Implementing “open existing wallet”
    • Implement “get account balance”
    • Implement “create, sign and send transactions”

    Lecture resources

    There are no resources for this lecture yet

  • Offchain Transactions and Lightning Network

    Offchain Transactions, Payment Channels and the Lightning Network (Optional Topic)

    • Off-chain transactions and payment channels
    • Lightning Network – Demo
    • Hashed Time-Locked Contracts (HTLC)
    • Cross-chain transactions and atomic swaps
    • Exercise: using the Bitcoin lightning network (the official app) - link
    • Exercises: playing with the lightning network API (open channels, send payments) in JS

    Lecture resources

    There are no resources for this lecture yet

  • Anonymous Coins

    Anonymity in the Blockchain Networks (Optional Topic)

    • Ring Confidential Transactions (RingCT), CryptoNode and Monero
    • Zero-knowledge proofs, zkSNARKs and ZCash
    • Exercise: Play with the ZCash Testnet + faucet + send transactions
    • Exercise: play with the ZCash console

    Project Defenses

    • Public project presentations and defenses
    • The exact date for the project presentations will be decided during the course
    • Typically, the defense dates are 2 weeks after the end of the dev camp

    Lecture resources

    There are no resources for this lecture yet

  • Team Project Preparation

    from 16.06 to 22.06 

    Lecture resources

    There are no resources for this lecture yet

  • Team Project Defense

    Lecture resources

    There are no resources for this lecture yet

  • Team Project Defense

    Lecture resources

    There are no resources for this lecture yet

  • Introduction to Ethereum

    Ethereum Overview

    • Ethereum Concepts
    • GHOST protocol
    • Using geth to build an Ethereum network or join existing network
    • Running a standalone node, mining, executing commands on the console
    • Connecting to the Ropsten testnet, synchronizing the chain

    Exercise: Creating a Local Ethereum Network

    • Setup a local Ethereum node with geth + Mist
    • Start mining and gain some coins as mining awards
    • Transfer coins between accounts using Mist
    • Join to another node and have fun (the longer chain will replace the shorter)
    • Running a local Ethereum network in class with concurrent miners

    Introduction to DApps and Solidity

    • Smart contracts and DApps: basic concepts
    • Smart contract example: write, compile, deploy and run contracts using Remix, MetaMask and Ropsten
    • Tokens and the ERC20 standard
    • Exercise: create and deploy a simple token

    Exercise: Syncing with the Ropsten Testnet

    • Create a new geth instance (--data-dir)
    • Synchronize with the Ropsten chain

    Lecture resources

    There are no resources for this lecture yet

  • Solidity Basics

    Solidity Basics

    • Overview of Solidity, compilation, bytecode, EVM, gas and gas price, transactions
    • First steps in Solidity: writing contracts, using variables and data types
    • Using functions and constructors, addresses, structs, arrays, maps
    • Data locations, function modifiers, contract inheritance
    • Deploy, run, test and debug Solidity code in Remix IDE using different environments (local EVM, Ropsten, Injected Web3 API through MetaMask, Infura JSON-RPC endpoints)

    Solidity Basics – Exercises

    • Simple storage contract
    • Value incrementor contract
    • Contract holding the previous invoker address
    • Contract holding array of facts
    • Registry of certificates smart contract
    • Struct holding accounts
    • Implementing a simple token
    • More exercises

    Lecture resources

    There are no resources for this lecture yet

  • Solidity Advanced

    Solidity Advanced

    • Functions, function modifiers, visibility, messages, fallback function, function overloading
    • Events and logging, watching events from Web3 API
    • Time and ether units
    • Special variables in Solidity, transaction properties, message properties, block properties
    • Error handling, require, assert, revert and throw
    • Transferring ethers, payable functions, sending ethers
    • Creating contracts via “new”, killing contracts
    • Upgradeable contracts
    • Assembly and opcodes
    • Libraries, importing files
    • The ERC20 and ERC721 token standards
    • Weird parts of Solidity, e.g. Boolean is 256-bit

    Solidity Advanced – Exercises

    • Writing payable contracts, receiving funds, fallback functions
    • Writing contracts emitting events
    • Simple timed auction contract
    • Company shares contract
    • Implementing a fully-functional ERC20 token for crowd-sale
    • More exercises

    Lecture resources

    There are no resources for this lecture yet

  • Truffle and Ganache

    Truffle and Ganache

    • Install and run Ganache and Ganache CLI
    • Exercise: deploy a contract in Ganache using MyEtherWallet

    Truffle and Ganache – Exercises

    • Exercise: install and run Truffle, create new Truffle app, add contract, migrate, deploy and run the contract in Ganache, deploy a contract in the Testnet
    • Create and run unit tests using Truffle

    Practical Project: Building a DApp with Solidity and Web3

    • Introduce the practical projects: DApp
    • Design and implement DApp, based on Solidity and Ethereum, using the Web3 API
    • The DApp should consist of smart contracts, UI interacting with the contracts and optionally a back-end

    Lecture resources

    There are no resources for this lecture yet

  • DApps – Concepts

    DApps Architectures

    • DApps architectures, client-side wallets, MetaMask-based wallet access, server-side interaction with the Ethereum network
    • Multi-signature wallets: demo
    • Exercises: multi-signature wallets

    Decentralized Storage and IPFS

    • Decentralized storage overview: IPFS, Storj, Sia
    • Introduction to IPFS, running a node, uploading files and folders, pinning files and folders, browsing content
    • Exercise: console-based IPFS commands – upload files and folders, browse content
    • Exercise: publishing files and folders in IPFS through the JavaScript API

    Web3 API and MetaMask

    • Example of using Injected Web3 API through MetaMask from client-side JS apps
    • Exercise: sample app with MetaMask and Web3 API

    Lecture resources

    There are no resources for this lecture yet

  • Working on Practical Project - DApp

    Lecture resources

    There are no resources for this lecture yet

  • Server-Side Web3 API

    Web3 API from JavaScript and Infura

    • Installing Web3.js and playing with it
    • Connecting to Ropsten testnet trough Infura, reading data from contracts
    • Invoking remote contracts in the Ropsten testnet
    • Exercise: invoke smart contract from Ropsten testnet using Web3.js

    Using Ethers.js

    • Example of using Ethers.js as simplified Ethereum library
    • Exercise: invoke smart contract from Ropsten testnet using Ethers.js

    Web3 API from C#

    • Introduction to Nethereum
    • Example of smart contract invocation from C#
    • Exercise: invoke smart contract from Ropsten testnet using C#

    Web3 API from Java

    • Introduction to Web3j
    • Example of smart contract invocation from Java
    • Exercise: invoke smart contract from Ropsten testnet using Java

    Web3 API from Python

    • Introduction to Web3.py
    • Example of smart contract invocation from Python
    • Exercise: invoke smart contract from Ropsten testnet using Python

    Using Client-Side Wallets

    • Example how to use a client-side wallet without MetaMask, e.g. the eth-lightwallet library or ethers.js
    • Registration in the app, wallet generation, open existing wallet, signing and sending transactions

    Lecture resources

    There are no resources for this lecture yet

  • Blockchain and Smart Contract Security

    Blockchain Security Concepts

    • Vectors of attack
    • Blockchain network security: Eclipse attack, Sybil attack, replay attack, 51% attack
    • Client-side security: wallets, encryption, two-factor authentication, scam, malware
    • Server-side security: cold wallets, multi-signature wallets
    • Famous blockchain projects hacked: the DAO hack, Parity hacks, Tether token hack, Bitcoin Gold scam, Coincheck exchange hack
    • Exercise: inspect suspicious sites for scam

    Smart Contract Security

    • Vectors of attack
    • Popular attacks: reentrancy attack, ERC20 short attack, the Parity hack
    • Smart contract security tools
    • Smart contract audits
    • Exercise: reentrancy attack over vulnerable contract

    Lecture resources

    There are no resources for this lecture yet

  • Notable Blockchain Projects and Networks

    Notable Blockchain Projects (Optional Topic)

    • Prediction markets: Gnosis, Augur
    • Smart contract networks (alternatives to Ethereum): RSK, NEO, EOS, Cardano
    • Bitshares, Steemit + SteemDB + SteemData
    • Exercises: play with Gnosis
    • Exercises: play with Steemit

    Lecture resources

    There are no resources for this lecture yet

  • Working on the Practical Project: Smart Contracts + DApp

    • Working on the smart contracts for the DApp
    • Working on the DApp user interface (UI) to access the smart contracts: wallet, reading data from the contracts, invoking functionality in the contracts

    Lecture resources

    There are no resources for this lecture yet

  • DApp Project Preparation

    from 07.07 to 13.07 

    Lecture resources

    There are no resources for this lecture yet

  • DApp Project Defense

    Lecture resources

    There are no resources for this lecture yet

  • DApp Project Defense

    Lecture resources

    There are no resources for this lecture yet

*Please report only bugs with the studying materials for the lecture. For other types of bugs use the feedback form.

*
*
*

Course attendees are expected to have:

  • Understanding of JavaScript development (promises, Node.js, npm, basic JavaScript front-end).
  • Object-oriented programming, working with classes and objects (e.g. C#, Java, Python, JavaScript or C++).
  • Experience in Web development and REST APIs (build simple server-side Web apps).

Course candidates should pass an entrance programming exam covering the fundamentals of programming and software technologies: variables, loops, arrays and collections, functions, classes and objects, HTTP and REST.

Lectures will be held in English.

Until when can I sign up and when does the course start?

Enrolment for the course is open until May 24th, 2018.The training begins on June 4th, 2018 and ends with an individual projects defence on 28th - 29th July .

How can I enrol?

To enrol in this course, click HERE and follow the steps to choose a form of training. To be admitted to the course, students must take an online exam on 26th and 27th of May. Anyone who passes the admission exam with excellent result will receive a scholarship which will cover 100% of the course tuition fee: 12,000$.

Those who have successfully completed the course will have the opportunity to:

  • train people around the world as trainers - in Singapore. USA, South Korea, Australia and others.
  • will have the opportunity to join Academy training or software development team and work on leading blockchain industry projects.

When and where will the classes take place?

The classes will take place at the Software University building, every day (from Monday to Friday) from 10:00 to 18:00 in Deep Web

What are the forms of training? 

The course consists of 2 parts - 1st part: 2 weeks training sessions (onsite+online) + 1 week project preparation (online) and project defenses (onsite) 2nd part: 2 weeks training sessions (onsite+online) + 1 week project preparation (online) and project defenses (onsite).

  • Onsite:  in this form you will have the opportunity to attend the classes on the spot, to participate in laboratory exercises in the class, you will have access to all video lectures and course materials. You can also personally contact a lecturer or assistant, when you encounter difficulties.
  • Online: in this form you will have the opportunity to participate in laboratory exercises and you will have access to all video lectures and course materials

*It is advisable to bring your own laptop (Windows / Linux / Mac).

Certificate

What is the exam and will I earn a certificate after the end of the course?

The course will end with a project defense. Those who get a grade of 5.00 or higher  will earn an official certificate of SoftUni.

What's next after the course?

Those who have successfully completed the course will have the opportunity to:

  • train people around the world as trainers - in Singapore. USA, South Korea, Australia and others.
  • will have the opportunity to join Academy training or software development team and work on leading blockchain industry projects.

How much does the course cost? 

Form of trainingIncludes
Onsite

Anyone who passes the admission exam with excellent result will receive a 100% scholarship worth 12,000$ including:

  • Presence of all classes
  • Access to resources and videos from the classes
  • Examination and certification
  • Contact a lecturer or assistant


Online

Anyone who passes the admission exam with excellent result will receive a 100% scholarship worth 12,000$ including:

  • Access to resources and videos from the classes
  • Examination and certification

Course organizer

Academy School of Blockchain

Academy School of Blockchain provides the world's first accredited program for blockchain developers. The curriculum of the academy is designed by the world’s best blockchain minds. The curriculum team is comprised of industry leaders and award-winning educators whose primary role is to create dynamic curricula tailored to meet the evolving needs of the blockchain sector.

Lecturers

psionski avatar
skotashki avatar
Participate
Time left:
5days 21h 43min 23sec
Participate
Time left:
5days 21h 43min 23sec