-
Setting up a development environment
- Operating system (Linux, MacOsX, Windows)
- Ethereu Nodes
- Git & Git clients
- Editors and IDEs
-
Review of Blockchain Technologies
- Blockchain Context
- Distributed ledgers & DLT platforms
- Consensus Mechanisms
- Transactions and Blocks
- Mining and staking
- Network Peer Dsicovery and messaging
-
Blockchain Basics
- Cryptography & merkle trees
- Blockchain structure
- Smart contracts
- Blockchain nodes
- Forks
-
Ethereum Primitives
- History
- White Paper & Yellow Paper
- Blocks
- EVM - Ethereum Virtual machine
- Elliptic curve cryptography
- MainNet and Testnet
- Etherscan
- Ethereum 2.0
-
Development Frameworks
- Truffle
- Setting up Truffle
- Hardhat
- Setting uo HardHat
- Brownie
- Setting up Brownie
-
Solidity Fundamentals
- Basic Layout and structure of a smart contract
- Data types and variables
- Functions
- Storage and memory
- Reading Smart contracts
- Smart contract Application Binary Interface (ABI)
- Events and Logs
- Factory contracts
-
Writing Smart Contracts
- Basic Smart contracts
- Intercontract execution
- Inheritance
- Libraries and the Ethereum Package manager
- Smart Contract System Design
- Examples I: Proof of Existence, Simple Bank, Supply Chains
- Examples II: Voting, tokens
-
Token standards
-
Solidity Smart contract libraries and Design Patterns
-
Ethereum and the End user
- web3.0 Introduction
- Web3.0 packages: ether.js / Web3.js / web3.py
- Web3.js to a contracts
- metamask
- Integrating with react
-
Templates for Creating Dapps
-
Testing and Debugging
Further afield:
- Decentralised Finance
- Decentralised Autonomous Organisations
- Interplanetary FileSystem
- The Graph
- Oracles
By Following the Companion, learners will be able to show evidence of:
'''
- Describe Blockchain primitives and basics and give examples for their usage.
- Prepare and demonstrate setting up a development environment for Ethereum.
- Compose basic Smart contracts and their tests and deploy them in a test environment.
- Produce an evaluation of common security issues in smart contracts.
- Build, Deploy and showcase a decentralised application on Ethereum. '''
- Indicative Workload: Minimum 10 hours per week, with at least 4 hours per week hands-on practice.
- Recommended Workload: 20 hours per week, with 10 hours per week devoted to hands-on practice.