Rodando um smart contract na rede blockchain

3 min de leitura
Patrocinado
Imagem de: Rodando um smart contract na rede blockchain
Avatar do autor

Equipe TecMundo

@tec_mundo

Por Horea Porutiu 

Resumo 

Considerando que a Hyperledger Fabric possui várias implementações de serviço de pedidos (incluindo Solo, Kafka e Raft), você, desenvolvedor, deve entender as vantagens e desvantagens de cada implementação antes de optar por um design. Como o novo padrão para redes blockchain de produção, o algoritmo de consenso Raft é uma implementação de serviço de pedidos tolerante a falhas, que é mais fácil de configurar e gerenciar do que o Kafka. Mais importante, o Raft permite que diferentes organizações contribuam com nós para o serviço de pedidos, permitindo uma arquitetura de rede mais descentralizada. 

Descrição 

Dado que existem muitas maneiras possíveis para que os nós em uma rede blockchain possam chegar a um acordo (ou consenso), e esse acordo é essencial para uma rede de computação distribuída, não é surpresa que o debate sobre o algoritmo de consenso mais eficiente seja frequentemente aquecido, e até religioso. No centro dos algoritmos de consenso está a necessidade de resolver uma questão difícil de computação, popular e distribuída: como nós (computadores) podemos concordar em um resultado (chegar a um consenso) entre um grupo de computadores quando sabemos que os computadores não são confiáveis? Embora não haja uma maneira perfeita de resolver este problema, o padrão, de fato, desde 1989, tem sido o algoritmo Paxos. O problema com o Paxos é que pode levar anos para os alunos de doutorado o dominarem. Mesmo os mais brilhantes engenheiros que tentam implementar esse algoritmo na prática têm dificuldades para entender e, assim, implementar sua solução. 

Aí entra o Raft. Projetado como um algoritmo de consenso alternativo para o Paxos, o Raft é muito mais fácil de entender e agora é utilizado em alguns dos projetos de software mais bem-sucedidos, como o Docker. Desde o lançamento do Hyperledger Fabric, o consenso foi projetado como plugável, e você, desenvolvedor, pode escolher qual tipo de consenso seus nós de pedido usarão. O Raft permite uma configuração muito mais fácil do que o Kafka, uma abordagem mais descentralizada, já que várias organizações podem contribuir com nós para o serviço de pedidos e maior tolerância a falhas de colisão do que o Solo, o qual possui um único nó de pedido. Este padrão de código ajuda você a entender como construir e implantar um contrato inteligente em uma rede Hyperledger Fabric executando o Raft e permite que você teste a tolerância da rede parando e iniciando alguns nós de pedido. 

Quando você completar este padrão de código, você entenderá: 

  • Como funciona o algoritmo Raft; 
  • Como construir e executar um serviço de encomenda de Raft com várias organizações em Hyperledger Fabric; 
  • Como enviar transações e executar uma rede blockchain utilizando um serviço de pedidos do Raft; 
  • Como testar a tolerância a falhas do serviço de pedidos excluindo (travando) um dos nós de pedido.

Fluxo

Fluxo de blockchainFluxo de blockchain

  • 1. O operador de blockchain gera materiais criptográficos, como chaves públicas e privadas, para as organizações que gerenciarão os peers de nós; 
  • 2. O operador blockchain traz a rede, incluindo cinco nós de pedido e executando o Raft, instala o contrato inteligente nos peers e consulta a rede para garantir que o contrato esteja funcionando corretamente;
  • 3. O operador blockchain instala dependências para o aplicativo Fabcar web, incluindo dependências do lado do servidor e do lado do cliente;
  • 4. O operador blockchain cria uma identidade criptográfica para o cliente, que envia transações através da Interface do usuário Fabcar e armazena essa identidade em uma carteira;
  • 5. O usuário interage com o aplicativo Fabcar Angular web para atualizar o estado blockchain, e os nós de pedido baseados no Raft utilizam a eleição de líder para decidir qual nó assumirá a liderança em blocos de escrita;
  • 6. O usuário inspeciona os registros de serviço de pedidos para garantir que o algoritmo de consenso do Raft esteja funcionando como esperado. 

Instruções 

Encontre os passos detalhados para este padrão no arquivo README. Os passos mostram como: 

  • 1. Clonar o repo; 
  • 2. Limpar suas imagens do Docker; 
  • 3. Gerar material criptográfico;
  • 4. Instalar as dependências do aplicativo Fabcar web;
  • 5. Criar uma identidade criptográfica;
  • 6. Iniciar o aplicativo Fabcar web;
  • 7. Testar a rede — colidir os nós de pedido.

...

Quer ler mais conteúdo especializado de programação? Conheça a IBM Blue Profile e tenha acesso a matérias exclusivas, novas jornadas de conhecimento e testes personalizados. Confira agora mesmo, consiga as badges e dê um upgrade na sua carreira!

Rodando um smart contract na rede blockchain