Introduction to BlockChain Technology with Ethereum

Introduction to BlockChain Technology with Ethereum

Introduction to BlockChain Technology with Ethereum

Intermediate

In this introductory BlockChain course, we offer a bird’s-eye view on the BlockChain technology, starting from the high level walk-through of BitCoin/Ethereum and end at some more technical aspects of manipulating Ethereum data. We will cover the computer science basics on hashing, symmetric/public-private-key encryption, Merkle-Patricia trees, IP address/port number, IPC vs RPC, p2p protocols, working with Ethereum node executables, solidity and smart contract compilation, python data analysis with Ethereum data, and finally discussing Swarm/Whisper/Oraclize/Ethereum Bridge, which allows Ethereum to interact with the outside world.

Course Overview
Intermediate

In this introductory BlockChain course, we offer a bird’s-eye view on the BlockChain technology, starting from the high level walk-through of BitCoin/Ethereum and end at some more technical aspects of manipulating Ethereum data. We will cover the computer science basics on hashing, symmetric/public-private-key encryption, Merkle-Patricia trees, IP address/port number, IPC vs RPC, p2p protocols, working with Ethereum node executables, solidity and smart contract compilation, python data analysis with Ethereum data, and finally discussing Swarm/Whisper/Oraclize/Ethereum Bridge, which allows Ethereum to interact with the outside world.

We're sorry, this class isn't on the schedule at the moment. Please join our waiting list to be notified when it becomes available again.

Date and Time

October Session

Oct 13 - Dec 1, 2018, 10:00am-4:00pm
Day 1: October 13, 2018
Day 2: October 20, 2018
Day 3: October 27, 2018
Day 4: November 3, 2018
Day 5: November 17, 2018
Day 6: December 1, 2018
$2990.00
Add to Cart

Product Description

 


Overview

 

Ethereum has gained growing popularity within the BlockChain world as the forerunner, facilitating the so-called smart contracts. Tech titan like Microsoft, Banking Giant like JP Morgan have endorsed it and have rolled out their own enterprise version Ethereum BlockChain recently. Not to mention that tech startups which enter the BlockChain space often borrow or copy Ethereum’s technology. With many potential business applications on the horizon, and more challenges yet to be resolved, it offers unlimited potential for those who grow with the industry.

In this introductory BlockChain course, we offer a bird’s-eye view on the BlockChain technology, starting from the high level walk-through of BitCoin/Ethereum and end at some more technical aspects of manipulating Ethereum data. We will cover the computer science basics on hashing, symmetric/public-private-key encryption, Merkle-Patricia trees, IP address/port number, IPC vs RPC, p2p protocols, working with Ethereum node executables, solidity and smart contract compilation, python data analysis with Ethereum data, and finally discussing Swarm/Whisper/Oraclize/Ethereum Bridge, which allows Ethereum to interact with the outside world.

The course tries to strike a balance between the conceptual vs technical/hands-on aspects of BlockChain technology. The hand-on lecture code sessions involve working with the geth/parity client executables from the command-line, browser type smart contract compilation IDE and python jupyter notebook, etc.


Details


Who Is This Course For?

 

Those who are technicallyinclinedandenthusiastic to learn the recent development of Ethereum BlockChain.

Prerequisites

 

It will be rather challenging to follow along through the lecture code without a solid foundation on:

  • Python language, and particularly its object-oriented programming aspect (introductory course: https://nycdatascience.com/courses/introductory-python/)
  • simple shell commands, e.g., in Bash (tutorial of the fundamentals: https://learnpythonthehardway.org/book/appendixa.html)

Right now the BlockChain domain is flourishing with the most talented and creative minds among computer scientists, and the progress of the field is fast. The students are expected to be very motivated to absorb these new technologies, but no prior background on BlockChain, in particular, Ethereum, is required


Outcomes

 

  • Gain a deeper understanding on the core concepts of the Ethereum BlockChain:
    • Cryptographic hashing and symmetric/asymmetric data encryption/decryption, signatures with private keys
    • Decentralized p2p discovery protocol and Ethereum nodes
    • Proof of Work block mining vs Proof of Authority block sealing
    • User accounts and smart contract accounts
    • Ethereum virtual machine and its bytecode
    • Gas, transactions, transaction receipts, transaction pool
    • Merkle tree/Merkle proof, Merkle Patricia trie and BlockChain state trie
    • Wallets like Mist/Ethereum wallet, the concept of DApps
    • The functionality of Swarm/Whisper/Oraclize/Ethereum Bridge
  • Know how to send transactions to user/smart contract accounts and investigate logs
  • Know how to set up Ethereum geth/parity clients through command-line, connecting to the public mainnet, or to set up private consortium POA chains
  • Get familiar with the syntax/functionality of the major contract language solidity
  • Know how to compile/test the smart contract and work with Remix compiler IDE
  • Know how to deploy the smart contracts programmatically/with wallet GUI and interact with them through GUI/command-line
  • Master the Ethereum BlockChain data structures through web3
  • Learn how to interact with the BlockChain client through web3, to perform python data analysis, transaction network graph analysis and to monitor the status of the chain
  • Work with Oraclize contract and Ethereum Bridge and understand the mechanism to facilitate the interaction with the outside world

Certificate

Certificates are awarded at the end of the program at the satisfactory completion of the course.

Students are evaluated on a pass/fail basis for their performance on the required homework and final project (where applicable). Students who complete 80% of the homework and attend a minimum of 85% of all classes are eligible for the certificate of completion.


Syllabus

Lecture 1: An Introduction to BlockChain Technology– Part I: The General Introduction

  • BitCoin and Transactions, a historical prospective
  • The Concept of BlockChain
  • The Concept of DeCentralized P2P Network
  • The Idea of Mining
  • The Idea of BitCoin Virtual Machine and the Stack of BlockChain

– Part II: Ethereum As a BitCoin SpinOff

  • Proof of Work, Proof ofStake and Proof of Authority
  • EOA Accounts and Smart Contract Accounts
  • The idea of Gas and Turing Complete Smart Contracts
  • Touch on Solidity and its Compiler
  • Different Ethereum Clients
  • Mist/Ethereum Wallet

– Major Use Cases of Smart Contracts– Lecture Code:

  • Walkthrough Ethereum Block Explorers and Monitor The Recent Activities on the Public BlockChain
  • Demo withGeth Client (Private Testnet with Miners) and Mist Wallet through python Wrapper
  • Creating User Accounts, Transferring EthersBetween Accounts
  • Creating a Wallet Contract and Sending Ethers to the Contract, etc.

 

Lecture 2: Ethereum BlockChain and its Computer Science Foundation– Part I: A Review on Some Features of Python Language

  • Object Oriented Design and Python Decorator
  • JSON Data Format with Use Cases in Ethereum (genesis.json, ABI, etc)
  • ByteString, Hexadecimal Representation and Hash Functions

– Part II: Hashing and Data Encryption

  • Hash Collision and Cryptographic Hash Functions
  • Hashing and Proof of Work
  • Data Encryption and Decryption
    • Symmetric Key Algorithm with Examples
    • Asymmetric Key Algorithm: Public and Private Keys
      • RSA and Elliptic Curve Cryptography
      • The Idea of ‘Signature by the Private Key

– Part III: Computer Networks

  • The Idea of IP Address and Ping
  • TCP and UDP Protocols and the Idea of Port Numbers
  • IPC (InterProcess Communication) vs RPC (Remote Procedure Call)
  • Distributed Computing and Peer to Peer Network
    • Traditional Server Client Network Model
    • P2P Network Model and Network Peer Discovery Protocol
    • Ethereum Node ID as the Public Key Hash

– Part IV: Merkle Tree and Merkle Patricia Tree in Ethereum

  • A Tree as a Data Structure
  • The Idea of Merkle Tree
  • The Idea of Patricia Tree and Merkle Patricia Tree

– Lecture Code: 

  • Hand-On Examples on ByteString, HexString, Hashing, Symmetric and Asymmetric Key algorithms (RSA, ECSDA) with Python
  • A Toy BlockChain Mining Example in Python
  • HandOn with Ping, Netstats, IPConfig/IFConfig, etc
  • Merkle Tree and Merkle Proofing in Python

 

Lecture 3: Working with Ethereum Clients Through Command-Line– Part I: Geth and Parity Clients Basics

  • Guide to Installation of Geth and Parity
  • The Command-Line Options of the Clients
  • Running the Client with A Config File
  • Parity Config File Generator
  • BlockChain Block Data Basics
  • A Survey of Different Ethereum networks and chainID/networkID

– Part II: Connecting Public Ethereum Net (Mainnet) with Geth/Parity

  • The Data-Directory and its Directory Tree Structure
  • P2P Peer Discovery, BootNodes and Peers Location

– Part III: Setting up Private Ethereum Net (POW)

  • Using Puppeth Utility to Generate the Geth Genesis File
  • The Concept of Private Bootnodes and encode URL
  • RPC Ports Adjustment
– Part IV: Setting up Private Consortium POA Ethereum Net

  • The Concept of Proof of Authority
  • Authority Nodes and User Nodes
  • Setting Up Persistent Reserved/Static Nodes

Hand-On Demonstration of Setting Up The Clients in Different Settings

 

Lecture 4: Ethereum Transactions and Smart Contracts– Part I: The Transactions

  • What Constitutes An Ethereum Transaction?
  • A Transaction and the Pending Pool
  • Hardware Wallets and Online Wallets, Exchanges
  • BitCoin Transactions vs Ethereum Transactions
  • UTXO, MultiSig and Multi-Recipient Contracts
  • Ethereum State Machine: Ethereum State Trie, Transaction Receipt Trie, Transaction Trie, etc

– Part II: Smart Contract Basics

  • Ethereum ByteCode and EVM; Gas for Amount of Computation
  • Solidity as a Compiled, Static Typed Language
  • Basic Syntax of Solidity
    • Basic Types vs Reference/Container Types
    • The Address Type
    • Storage vs Memory Type
    • Arrays and Mappings
    • Functions and Their Signatures
    • Access/Visibility Types of Functions
    • Classes in Solidity—Contracts and Their Inheritance
    • The Keywords: Constant, View, Pure and Payable
    • The Fallback Functions and Their Usage
    • Currency/Time Units in Solidity
    • The Global Variables in Solidity
  • Advanced Usages of Solidity
    • Events and Event Logs
    • Abstract Contracts and Interfaces
    • Libraries
    • Modifiers (Decorators)
    • SelfDestruct of A Contract

– Hands-On: Demo with Solidity Compilation with ReMix IDE(with Javascript backend)

  • Demo the Contract Compilation and Contract Method Triggering
  • Walk through Example Solidity Code on Blind Auction, CrowdSale, Delegate Voting, etc
 

Lecture 5: Data Analysis with Ethereum BlockChain Data

– The Workflow of Data Analysis with the Block/Transaction Data

– Part I: An Anatomy on the Block Data Structure

  • A Walkthrough of the Mainnet Block Data Structure

– Part II: Tools Used in the WorkFlow

  • How to Connect with a Live Client Through Various APIs
    • cURL and the Low Level JSON-RPC APIs
    • High Level Web3 Python Wrapper and Its APIs (both IPC and RPC)

– Part III: SQLite, SQL and RDBMS

  • ABrief Introduction on Relational DataBase
  • An Introduction to SQLite

– Part IV: SQLAlchemy and ORM

  • The Concept of Object-Relational Mapper
  • SQLAlchemy and Its ORM Functionality

– Part V: Pandas DataFrame and the GroupBy Operations

  • The Concept of Pandas DataFrame and Its Basic Usage
  • How to Aggregate Data using DataFrame GroupBy

– Part VI: The Concept of Graphs and Network Graphs

  • Graph Theory Basicsand theUsage of networkX Package

Lecture Code:

  • Demo the Usage of Web3, SQLite, SQLAlchemy and Pandas Through Simple Examples
  • Extracting the Transaction Data from a Live Geth Client through Web3 APIs
  • Walk Through the Data Pipeline from Extracting Mainnet Block Data to RMDB, then Converting the TX Data into DataFrames
  • Data Analysis with the Transaction Data and Analysis on Active Accounts’ Network Graphs
 

Lecture 6: Connecting the Ethereum BlockChain to the Outside WorldPart I: Event Logs and Event Listener (Filter)– Part II: Whisper and Swarm

  • The Concept of Whisper P2P Protocol
  • The Concept of Swarm P2P Storage

– Part III: BlockChain Oracles and Bridges

  • The Idea of ‘BlockChain Oracles’ and Oraclize
  • What are BlockChain Bridges and What are they For?

– Lecture Code:

  • Fetching the Account Balances and Transaction Event Log with Web3
  • Inheriting from the Specialized Oraclize Contracts
  • Orcalize Example Code Walk-Through
  • Working with Ethereum Bridge and Parity Bridge

Reviews

There are no reviews yet.

Product Description

 


Overview

 

Ethereum has gained growing popularity within the BlockChain world as the forerunner, facilitating the so-called smart contracts. Tech titan like Microsoft, Banking Giant like JP Morgan have endorsed it and have rolled out their own enterprise version Ethereum BlockChain recently. Not to mention that tech startups which enter the BlockChain space often borrow or copy Ethereum’s technology. With many potential business applications on the horizon, and more challenges yet to be resolved, it offers unlimited potential for those who grow with the industry.

In this introductory BlockChain course, we offer a bird’s-eye view on the BlockChain technology, starting from the high level walk-through of BitCoin/Ethereum and end at some more technical aspects of manipulating Ethereum data. We will cover the computer science basics on hashing, symmetric/public-private-key encryption, Merkle-Patricia trees, IP address/port number, IPC vs RPC, p2p protocols, working with Ethereum node executables, solidity and smart contract compilation, python data analysis with Ethereum data, and finally discussing Swarm/Whisper/Oraclize/Ethereum Bridge, which allows Ethereum to interact with the outside world.

The course tries to strike a balance between the conceptual vs technical/hands-on aspects of BlockChain technology. The hand-on lecture code sessions involve working with the geth/parity client executables from the command-line, browser type smart contract compilation IDE and python jupyter notebook, etc.


Details


Who Is This Course For?

 

Those who are technicallyinclinedandenthusiastic to learn the recent development of Ethereum BlockChain.

Prerequisites

 

It will be rather challenging to follow along through the lecture code without a solid foundation on:

  • Python language, and particularly its object-oriented programming aspect (introductory course: https://nycdatascience.com/courses/introductory-python/)
  • simple shell commands, e.g., in Bash (tutorial of the fundamentals: https://learnpythonthehardway.org/book/appendixa.html)

Right now the BlockChain domain is flourishing with the most talented and creative minds among computer scientists, and the progress of the field is fast. The students are expected to be very motivated to absorb these new technologies, but no prior background on BlockChain, in particular, Ethereum, is required


Outcomes

 

  • Gain a deeper understanding on the core concepts of the Ethereum BlockChain:
    • Cryptographic hashing and symmetric/asymmetric data encryption/decryption, signatures with private keys
    • Decentralized p2p discovery protocol and Ethereum nodes
    • Proof of Work block mining vs Proof of Authority block sealing
    • User accounts and smart contract accounts
    • Ethereum virtual machine and its bytecode
    • Gas, transactions, transaction receipts, transaction pool
    • Merkle tree/Merkle proof, Merkle Patricia trie and BlockChain state trie
    • Wallets like Mist/Ethereum wallet, the concept of DApps
    • The functionality of Swarm/Whisper/Oraclize/Ethereum Bridge
  • Know how to send transactions to user/smart contract accounts and investigate logs
  • Know how to set up Ethereum geth/parity clients through command-line, connecting to the public mainnet, or to set up private consortium POA chains
  • Get familiar with the syntax/functionality of the major contract language solidity
  • Know how to compile/test the smart contract and work with Remix compiler IDE
  • Know how to deploy the smart contracts programmatically/with wallet GUI and interact with them through GUI/command-line
  • Master the Ethereum BlockChain data structures through web3
  • Learn how to interact with the BlockChain client through web3, to perform python data analysis, transaction network graph analysis and to monitor the status of the chain
  • Work with Oraclize contract and Ethereum Bridge and understand the mechanism to facilitate the interaction with the outside world

Certificate

Certificates are awarded at the end of the program at the satisfactory completion of the course.

Students are evaluated on a pass/fail basis for their performance on the required homework and final project (where applicable). Students who complete 80% of the homework and attend a minimum of 85% of all classes are eligible for the certificate of completion.


Syllabus

Lecture 1: An Introduction to BlockChain Technology– Part I: The General Introduction

  • BitCoin and Transactions, a historical prospective
  • The Concept of BlockChain
  • The Concept of DeCentralized P2P Network
  • The Idea of Mining
  • The Idea of BitCoin Virtual Machine and the Stack of BlockChain

– Part II: Ethereum As a BitCoin SpinOff

  • Proof of Work, Proof ofStake and Proof of Authority
  • EOA Accounts and Smart Contract Accounts
  • The idea of Gas and Turing Complete Smart Contracts
  • Touch on Solidity and its Compiler
  • Different Ethereum Clients
  • Mist/Ethereum Wallet

– Major Use Cases of Smart Contracts– Lecture Code:

  • Walkthrough Ethereum Block Explorers and Monitor The Recent Activities on the Public BlockChain
  • Demo withGeth Client (Private Testnet with Miners) and Mist Wallet through python Wrapper
  • Creating User Accounts, Transferring EthersBetween Accounts
  • Creating a Wallet Contract and Sending Ethers to the Contract, etc.

 

Lecture 2: Ethereum BlockChain and its Computer Science Foundation– Part I: A Review on Some Features of Python Language

  • Object Oriented Design and Python Decorator
  • JSON Data Format with Use Cases in Ethereum (genesis.json, ABI, etc)
  • ByteString, Hexadecimal Representation and Hash Functions

– Part II: Hashing and Data Encryption

  • Hash Collision and Cryptographic Hash Functions
  • Hashing and Proof of Work
  • Data Encryption and Decryption
    • Symmetric Key Algorithm with Examples
    • Asymmetric Key Algorithm: Public and Private Keys
      • RSA and Elliptic Curve Cryptography
      • The Idea of ‘Signature by the Private Key

– Part III: Computer Networks

  • The Idea of IP Address and Ping
  • TCP and UDP Protocols and the Idea of Port Numbers
  • IPC (InterProcess Communication) vs RPC (Remote Procedure Call)
  • Distributed Computing and Peer to Peer Network
    • Traditional Server Client Network Model
    • P2P Network Model and Network Peer Discovery Protocol
    • Ethereum Node ID as the Public Key Hash

– Part IV: Merkle Tree and Merkle Patricia Tree in Ethereum

  • A Tree as a Data Structure
  • The Idea of Merkle Tree
  • The Idea of Patricia Tree and Merkle Patricia Tree

– Lecture Code: 

  • Hand-On Examples on ByteString, HexString, Hashing, Symmetric and Asymmetric Key algorithms (RSA, ECSDA) with Python
  • A Toy BlockChain Mining Example in Python
  • HandOn with Ping, Netstats, IPConfig/IFConfig, etc
  • Merkle Tree and Merkle Proofing in Python

 

Lecture 3: Working with Ethereum Clients Through Command-Line– Part I: Geth and Parity Clients Basics

  • Guide to Installation of Geth and Parity
  • The Command-Line Options of the Clients
  • Running the Client with A Config File
  • Parity Config File Generator
  • BlockChain Block Data Basics
  • A Survey of Different Ethereum networks and chainID/networkID

– Part II: Connecting Public Ethereum Net (Mainnet) with Geth/Parity

  • The Data-Directory and its Directory Tree Structure
  • P2P Peer Discovery, BootNodes and Peers Location

– Part III: Setting up Private Ethereum Net (POW)

  • Using Puppeth Utility to Generate the Geth Genesis File
  • The Concept of Private Bootnodes and encode URL
  • RPC Ports Adjustment
– Part IV: Setting up Private Consortium POA Ethereum Net

  • The Concept of Proof of Authority
  • Authority Nodes and User Nodes
  • Setting Up Persistent Reserved/Static Nodes

Hand-On Demonstration of Setting Up The Clients in Different Settings

 

Lecture 4: Ethereum Transactions and Smart Contracts– Part I: The Transactions

  • What Constitutes An Ethereum Transaction?
  • A Transaction and the Pending Pool
  • Hardware Wallets and Online Wallets, Exchanges
  • BitCoin Transactions vs Ethereum Transactions
  • UTXO, MultiSig and Multi-Recipient Contracts
  • Ethereum State Machine: Ethereum State Trie, Transaction Receipt Trie, Transaction Trie, etc

– Part II: Smart Contract Basics

  • Ethereum ByteCode and EVM; Gas for Amount of Computation
  • Solidity as a Compiled, Static Typed Language
  • Basic Syntax of Solidity
    • Basic Types vs Reference/Container Types
    • The Address Type
    • Storage vs Memory Type
    • Arrays and Mappings
    • Functions and Their Signatures
    • Access/Visibility Types of Functions
    • Classes in Solidity—Contracts and Their Inheritance
    • The Keywords: Constant, View, Pure and Payable
    • The Fallback Functions and Their Usage
    • Currency/Time Units in Solidity
    • The Global Variables in Solidity
  • Advanced Usages of Solidity
    • Events and Event Logs
    • Abstract Contracts and Interfaces
    • Libraries
    • Modifiers (Decorators)
    • SelfDestruct of A Contract

– Hands-On: Demo with Solidity Compilation with ReMix IDE(with Javascript backend)

  • Demo the Contract Compilation and Contract Method Triggering
  • Walk through Example Solidity Code on Blind Auction, CrowdSale, Delegate Voting, etc
 

Lecture 5: Data Analysis with Ethereum BlockChain Data

– The Workflow of Data Analysis with the Block/Transaction Data

– Part I: An Anatomy on the Block Data Structure

  • A Walkthrough of the Mainnet Block Data Structure

– Part II: Tools Used in the WorkFlow

  • How to Connect with a Live Client Through Various APIs
    • cURL and the Low Level JSON-RPC APIs
    • High Level Web3 Python Wrapper and Its APIs (both IPC and RPC)

– Part III: SQLite, SQL and RDBMS

  • ABrief Introduction on Relational DataBase
  • An Introduction to SQLite

– Part IV: SQLAlchemy and ORM

  • The Concept of Object-Relational Mapper
  • SQLAlchemy and Its ORM Functionality

– Part V: Pandas DataFrame and the GroupBy Operations

  • The Concept of Pandas DataFrame and Its Basic Usage
  • How to Aggregate Data using DataFrame GroupBy

– Part VI: The Concept of Graphs and Network Graphs

  • Graph Theory Basicsand theUsage of networkX Package

Lecture Code:

  • Demo the Usage of Web3, SQLite, SQLAlchemy and Pandas Through Simple Examples
  • Extracting the Transaction Data from a Live Geth Client through Web3 APIs
  • Walk Through the Data Pipeline from Extracting Mainnet Block Data to RMDB, then Converting the TX Data into DataFrames
  • Data Analysis with the Transaction Data and Analysis on Active Accounts’ Network Graphs
 

Lecture 6: Connecting the Ethereum BlockChain to the Outside WorldPart I: Event Logs and Event Listener (Filter)– Part II: Whisper and Swarm

  • The Concept of Whisper P2P Protocol
  • The Concept of Swarm P2P Storage

– Part III: BlockChain Oracles and Bridges

  • The Idea of ‘BlockChain Oracles’ and Oraclize
  • What are BlockChain Bridges and What are they For?

– Lecture Code:

  • Fetching the Account Balances and Transaction Event Log with Web3
  • Inheriting from the Specialized Oraclize Contracts
  • Orcalize Example Code Walk-Through
  • Working with Ethereum Bridge and Parity Bridge

Reviews

There are no reviews yet.

Date and Time

October Session

Oct 13 - Dec 1, 2018, 10:00am-4:00pm
Day 1: October 13, 2018
Day 2: October 20, 2018
Day 3: October 27, 2018
Day 4: November 3, 2018
Day 5: November 17, 2018
Day 6: December 1, 2018
$2990.00
Add to Cart