Visão Geral
Este curso foi desenvolvido para aqueles que buscam uma profunda compreensão e experiência de desenvolvimento com a plataforma Ethereum Blockchain. Você obterá uma visão geral do Ethereum, contratos inteligentes e a linguagem de desenvolvimento, Solidity. Você escreverá contratos inteligentes e criará aplicativos que interagem com eles.
O conjunto de recursos adaptáveis da Ethereum, que permite projetar aplicativos descentralizados para inúmeras aplicações, será discutido. Você participará de sessões práticas de laboratório de programação para poder desenvolver e aprimorar suas habilidades no desenvolvimento do Ethereum.
Aproximadamente 50% da aula será em laboratório. Isso fornece experiência prática, o que aprimora seu conhecimento e o conjunto de habilidades existentes.
O que é Ethereum?
- Ethereum é uma plataforma global de código aberto para aplicativos descentralizados.
- No Ethereum, você pode escrever um código que controla o valor digital, seja executado exatamente como programado e esteja acessível em qualquer lugar do mundo.
Conteúdo Programatico
BLOCKCHAIN AND SMART CONTRACT BASICS
- What is Blockchain and how does it work?
- Centralized vs. Decentralized vs. Distributed
- Blockchain vs. Databases
- Bitcoin vs Ethereum
- What are Smart Contracts?
- How are Smart Contracts used?
SMART CONTRACT PROGRAMMING BASICS
- Advantages and Drawbacks of Smart Contracts
- Layer 1 vs. Layer 2
- High-Level Language vs. Low-Level
- Languages in Comparison Solidity, Vyper, others
- Smart Contracts with Solidity
- The Layout of a Solidity File
- LAB TASKS (Lab 1)
- Types of Variables in Solidity
- Function/Variable Visibility
- Smart Contract Constructors
- Setter- and Getter-Functions
UNDERSTANDING DECENTRALIZED INFORMATION AND WEB3
- Blockchain Access structures and Architectures
- Remote Blockchain Nodes vs. Local Blockchain Nodes
- Blockchain Access vs. centralized RESTful API
- Understanding Web3.js API
- Understanding Transactions and Consensus
- Private Keys, Public Keys and Signatures
- Understanding privacy on pubic Blockchains
- Understanding the architecture of KeyStore’s such as MetaMask or MIST
- LAB TASKS (Lab 2 – Ropsten Test-Ether and MetaMask)
- Installing and Configuring MetaMask
- Obtaining Ropsten (or Testnet) Ether
- Tracing Ether through Block-Explorers
- Understanding Infura
BASICS OF ETHEREUM AND THE EVM
- Ethereum Denominations
- Understanding EVM and the ABI Interface
- Calls vs. Transactions
- Concurrency and Events
- Use cases of Events
- LAB TASKS (Lab 3 Web3JS Operations + Lab 4 Events)
- Install and Use Ganache
- Work with Web3.js
- Work with Infura
- Define Events
- Listen and React tEvents
SOLIDITY ADVANCED: MODIFIERS, MAPPINGS, STRUCTS AND INHERITANCE
- Understanding Functions, Mappings and Structs
- When tuse Modifiers
- Libraries vs. Inheritance
- LAB TASKS (Lab 5 Modifiers, 6 Mappings and Structs, Lab 7 Inheritance)
- Understand and use Modifiers
- Add Mappings and Structs
- Use Inheritance tincrease auditability
UNDERSTANDING DEPLOYMENT AND COSTS
- Understand Development and Deployment Cycles
- Understanding Solidity Compilation and Deployment
- Gas and Gas-Costs
- Upgradeability and Data Migration Techniques
- Understand the moving Parts: Compiler, Blockchain, API, KeyStore
- LAB TASKS (Lab 8 Deployment, Lab 9 Tie it together)
- Changing from strings tbytes (save gas)
- Deploy using Ropsten Test-Ether
- Understand the difference when using a real Blockchain
- Use a fully functioning distributed Application
MINING, PROOF OF WORK VS. PROOF OF AUTHORITY
- What is Mining in PoW?
- How blocks are generated
- PoW vs. PoA (vs. PoS)
- Understanding Go-Ethereum or Ganache/TestRPC for local development
- Understanding Private Blockchains vs. Public Blockchains
- LAB TASKS (Lab 10 Mining)
- Installing and using Ganache
- Installing and using Go-Ethereum
- Connecting tGanache/Go-Ethereum from Remix and Web3.js
- Interact with the Blockchain from HTML/JS
CURRENT PROBLEMS, SOLUTIONS, OUTLOOK, SERENITY
- Ethereum Now and Ethereum Future
- Where we are at with Ethereum
- Homestead
- PoW
- Where Ethereum is heading to
- Serenity
- PoS + PoW tPoS
- Sharding
- Recommended Newsletters/Groups
WORKING IN TEAMS, TESTING AND VERSIONING
- Understanding what Truffle is
- Comparison tEmbark
- How Manage Code for Teams
- Understanding Migrations
- Understanding Unit-Testing with Truffle
- LAB TASKS (Lab 11 Truffle setup, Lab 12 Truffle Unit Testing)
- Download and Setup Truffle
- Adapt the standard Truffle-Project
- Write A Unit Test
IPFS AND DISTRIBUTED FILE-STORAGE
- What is IPFS
- Comparison between IPFS, FileCoin, Swarm, Sia, Storj
- LAB TASK (Lab 13 – IPFS)
- Install and work with IPFS
- Upload and retrieve a fully decentralized file
BONUS SECTION: COMPILATION
- LAB TASK (Lab 14 – Compilation)
- Compile a Solidity File with a command-line compiler