Gained skills
In this course you will learn deep technical knowledge about Ethereum. Afterwards you will know
- all the important terminology and concepts
- how the Ethereum Protocol processes transactions in depth
- how to work with geth and how other clients differ from it
- about the different ways to interact with Ethereum
- about the Web3 1.0 and 0.20 libraries
We use Solidity 0.5 for contract development. After the course you will know
- how to write smart contracts with Solidity 0.5
- the control flow primitives & data types of Solidity
- how to use solidity-specific features like revert, require or modifiers
- how to work with events and when to use them
- how to properly send and receive ether in smart contracts
- about the common pitfalls people make
- how to use inheritance for code reuse
- how to write and use contract libraries
- how to interact between contracts
We use the Truffle 5 framework for development and testing. After the course you will know
- how to use Truffle 5 with Ganache for development
- how to deploy to various networks
- how to verify complex contracts on Etherscan
- how to properly tests smart contracts using javascript
- which useful test helpers are out there
- about the current state of solidity-based testing
- how to debug smart contracts
In addition to the language and tools we will also take a look at commonly used patterns in contract development as well as security concerns. After the course you will know
- about different kinds of oracles
- common patterns used for safer contracts
- how to work with off-chain signatures and when this can be useful
- how you can implement commit and reveal schemes
- how you can separate ether balance from your contract logic
- how complex projects like ENS or Raiden structured their contracts
- what state channels are and how they work
- the basics of contract upgradability
- about the major security incidents and how they could have been avoided
- how to work with the contracts from the OpenZeppelin Library
- which standards exists (with a focus on ERC-20 and ERC-721)