Blockchain Ethereum Fundamentos de arquitetura, desenvolvimento de contratos e aplicações
João KuntzConteúdo
A Blockchain é uma das tecnologias estratégicas adotadas por empresas como vantagens competitivas em preparação para a Web 3.0. Vista por muitos como dominante e inevitável no mercado, seu potencial de uso vai muito além do uso em criptomoedas. Uma rede blockchain é, efetivamente, uma rede distribuída ponto a ponto, descentralizada, segura e que permite a existência de transações entre partes envolvidas. Aqui, a Rede Ethereum ganha destaque: é uma blockchain pública, não permissionada, que permite o desenvolvimento e execução de trechos de código - os smart contracts -, sendo hoje o principal suporte para as aplicações existentes com base nesta tecnologia.
Neste livro, João Kuntz apresenta o funcionamento de uma blockchain, passando por conceitos fundamentais como blocos, transações, criptografia, algoritmos de consenso, mineração e validação, evoluindo para suas implementações na Rede Ethereum, até a geração de contratos, tokens e aplicações descentralizadas de uso geral. Com essa base teórica, você entrará na parte prática do livro, em que conhecerá uma linguagem de programação própria - o Solidity - e a utilizará para desenvolver códigos em blockchain, com seus respectivos testes de qualidade, análises de segurança, armazenamento, e potencial de uso dos dados em analytics.
Sumário
Parte 1 — BLOCKCHAIN COMO TECNOLOGIA
- 1 Introdução
- 1.1 Web 3.0 e a descentralização
- 1.2 Evolução da tecnologia blockchain
- 1.3 Blockchain: percepção e adoção
- 1.4 Blockchain-as-a-service (BaaS)
- 1.5 Afinal, o que é a Rede Ethereum?
- 2 Blockchain para principiantes
- 2.1 Introdução
- 2.2 Bloco de transação e a Árvore Merkle
- 2.3 Criptografia e validação
- 2.4 Protocolos de consenso
- 2.5 Contas, assinaturas e endereços
- 2.6 Transações
- 2.7 Forking em projetos blockchain
- 2.8 Decisões arquiteturais sobre o uso da blockchain
- 3 A Blockchain Ethereum
- 3.1 Introdução
- 3.2 Blocos no Ethereum
- 3.3 Ether
- 3.4 Gas
- 3.5 Transações no Ethereum
- 3.6 Criptografia no Ethereum
- 3.7 Ethash e Casper
- 3.8 Tokens e oracles
- 3.9 A Ethereum Virtual Machine
- 3.10 Ethereum 2.0
- 3.11 O caminho até o Ethereum 2.0
- 4 Anatomia das aplicações Ethereum
- 4.1 Introdução
- 4.2 Smart Contracts
- 4.3 Aplicações descentralizadas (dApps)
- 4.4 Finanças descentralizadas (DeFi)
- 4.5 Tokens Não Fungíveis (NFTs)
- 4.6 Escalabilidade no Ethereum
Parte 2 - DESENVOLVENDO PARA A BLOCKCHAIN ETHEREUM
- 5 Preparando o ambiente de desenvolvimento
- 5.1 Introdução
- 5.2 Node.js
- 5.3 Compilador de pacotes C/C++
- 5.4 Inicializando o projeto via NPM
- 5.5 Chalk
- 5.6 Mocha
- 5.7 Compilador Solidity
- 5.8 Editor de código e plugin Solidity
- 5.9 Web3.js
- 5.10 Ganache
- 5.11 Setup inicial do projeto
- 5.12 Uma alternativa rápida: Remix
- 6 Linguagem de programação Solidity
- 6.1 Introdução
- 6.2 Características do Solidity
- 6.3 Tipos
- 6.4 Variáveis
- 6.5 Tratamento de erros e exceções
- 6.6 Eventos
- 6.7 Funções
- 6.8 Building blocks do Solidity
- 6.9 Documentação do código
- 7 Implementando Smart Contracts e Tokens
- 7.1 Introdução
- 7.2 Guia de estilo e organização do código
- 7.3 Smart Contract - Cadastro de alunos
- 7.4 Testando nosso Smart Contract
- 7.5 Smart Contract - Telefonia celular
- 7.6 Criação de um Token ERC-20
- 7.7 Criação de um Token ERC-721 (NFT)
- 7.8 Otimizando os custos de transação
Parte 3 — SEGURANÇA E ARMAZENAMENTO NA BLOCKCHAIN ETHEREUM
- 8 Segurança na Rede Ethereum
- 8.1 Introdução
- 8.2 Redes de tolerância a Falha Bizantinas
- 8.3 Ataques de 34% e 51%
- 8.4 Ataques de corrida e de Finney
- 8.5 Ataques Eclipse e Sybil
- 8.6 Vulnerabilidades em Smart Contracts
- 8.7 Ataques de reentrância
- 9 Armazenamento e analytics na Rede Ethereum
- 9.1 Introdução
- 9.2 Armazenamento descentralizado
- 9.3 Insights via exploradores de blocos
- 9.4 Consultas GraphQL na blockchain
- 9.5 Conclusão
- 10 Referências
Autor
João Kuntz
Tecnólogo em análise e desenvolvimento de sistemas, possui especialização em Engenharia da Qualidade de Software, MBA em Arquitetura de Software e é mestre em Engenharia Mecânica (controle e automação mecânica), com pesquisas na aplicação de Redes Neurais Artificiais Paraconsistentes. Atua como Arquiteto de Software em projetos internacionais, com uma marcante passagem profissional pelo México, tendo liderado implementações em diferentes países, com ênfase em tecnologias de inovação, na arquitetura de integrações com sistemas e no desenho técnico de sistemas com arquitetura de microsserviços. Grande entusiasta de arquiteturas distribuídas, é também um grande advogado da adoção de tecnologias de descentralização, como a blockchain, como forma de alcançar vantagens competitivas frente à chamada Web 3.0. Atualmente ministra as disciplinas de Arquitetura de Blockchain de Rede Pública e Desenvolvimento de Smart Contracts e Tokenização, no MBA em Desenvolvimento Descentralizado e Distribuído na FIAP.
Dados do produto
- Número de páginas:
- 288
- ISBN:
- 978-85-5519-294-4
- Data publicação:
- 03/2022