Conheça a estrutura do curso, a metodologia de aprendizagem e o roteiro dos 8 módulos. Prepare-se para construir uma blockchain em Golang, explorando conceitos, implementação prática e evolução do projeto.
Estudo prático da arquitetura básica de uma blockchain utilizando a linguagem Go (Golang), com introdução à modelagem de sistemas distribuídos. Implementação de estruturas fundamentais, mecanismos de hash, prova de trabalho e persistência.
• Setup inicial do ambiente em Golang
• Estrutura de blocos (struct Block)
• Funções de hash e criação de blocos
• Bloco gênesis e encadeamento de blocos
• Introdução a sistemas distribuídos
• Implementação da Prova de Trabalho (Proof of Work)
• Nonce, validação e execução do algoritmo PoW
• Serialização e deserialização de dados
• Persistência e atualização do banco de dados
• Iteradores de blockchain
• Interface de linha de comando (CLI)
Implementação do modelo de transações inspirado em UTXO, incluindo fluxo real de processamento de transações em uma blockchain.
• Estrutura e criação de transações
• Implementação da transação Coinbase
• Identificação e hash de transações
• Modelo UTXO (Unspent Transaction Outputs)
• Busca e validação de saídas não gastas
• Criação de novas transações
• Introdução à Mempool
• Fluxo de transações: mempool → mineração → bloco
• Integração das transações ao bloco
Desenvolvimento de carteiras digitais com foco em segurança criptográfica e autenticação de transações.
• Geração de pares de chaves criptográficas
• Hash de chave pública
• Checksum e codificação Base58
• Criação e validação de endereços
• Assinatura digital de transações (ECDSA)
• Verificação de assinaturas
• Integração com modelo UTXO
• Prevenção de double spending
• Persistência e gerenciamento de carteiras
Construção da camada distribuída da blockchain, permitindo comunicação entre múltiplos nós.
• Arquitetura peer-to-peer (P2P)
• Comunicação entre nós (TCP/HTTP)
• Descoberta de peers
• Propagação de transações
• Propagação de blocos
• Sincronização da blockchain
• Download e validação de blocos remotos
Aplicação de concorrência para simular comportamento real de redes distribuídas.
• Goroutines e execução concorrente
• Comunicação com channels
• Controle de concorrência (sync.Mutex, WaitGroup)
• Prevenção de race conditions
• Mineração concorrente
• Processamento paralelo de transações
Implementação das regras que garantem consistência e segurança da rede blockchain.
• Regras de validação de blocos e transações
• Validação completa da cadeia
• Longest chain rule
• Forks (temporários e permanentes)
• Resolução de conflitos
• Consistência eventual
Execução prática de múltiplos nós simulando um ambiente real de blockchain.
• Execução de múltiplos nós locais
• Sincronização entre nós
• Testes de propagação de blocos
• Testes de propagação de transações
• Simulação de falhas de rede
• Simulação de forks
Validação prática do comportamento da blockchain sob diferentes cenários.
• Simulação de falhas de rede
• Latência e atrasos na propagação
• Criação de forks intencionais
• Análise de consistência
• Testes de robustez do sistema
Entenda por que construir sua própria blockchain, conheça casos de uso reais, faça um tour pelo código final do projeto GoChain e acompanhe uma demonstração End-to-End da rede.