Hyperledger — Introdução ao desenvolvimento com o Hyperledger Composer

Wellington Barbosa
GoBlockchain
Published in
6 min readMar 7, 2018

No post de hoje irei falar um pouco sobre o Hyperledger e como fazemos uma aplicação simples de leilão utilizando o Hyperledger Composer.

Mas afinal o que é o Hyperledger?

Hyperledger é um projeto colaborativo envolvendo várias indústrias, iniciado em dezembro de 2015 pela Linux Foundation, seu objetivo é suportar livros razão distribuídos com base na Blockchain.

Apesar dele ser baseado na tecnologia Blockchain ele possui algumas diferenças em relação as redes blockchain do Bitcoin e do Ethereum.

  • Rede permissionária, onde todo usuário necessita de uma autorização para realizar transações na rede.
  • Não possui mineração, para validar as transações ele possui módulos de consenso.
  • Possui transações confidenciais.

O Hyperledger tem por objetivo atingir as seguintes áreas:

  • Finanças
  • Saúde
  • Supply Chain
  • IOT

Ele possui vários projetos ou tipos de Hyperledger:

Vamos colocar a mão na massa

Nossa aplicação será um leilão de produtos, teremos como participantes o leiloeiro, o vendedor e o comprador. E como assets teremos o leilão e o produto.

A lógica é bem simples, o vendedor criar um produto que será atrelado a um leilão. O leilão receberá lances que assim que ele for fechado validamos o maior lance e fazemos a transferência do dono do produto e atualizamos o saldo da carteira do vendedor e comprador.

Nós iremos utilizar o Hyperledger Fabric que é conhecido como Foundation dos projetos, com ele conseguimos utilizar o Hyperledger Composer que é uma ferramenta para a prototipagem rápida de novos projetos.

E para agilizar ainda mais nosso desenvolvimento vamos utilizar um playground online disponível no servidor da IBM Bluemix.

Vamos criar um projeto do zero, clique no icone com a frase "Deploy a new business network".

Após clicar no icone teremos uma página como esta imagem acima. Preencha os campos como na image, selecione "empty-business-network" e em seguida clique no botão "Deploy".

Voltaremos para uma página como esta acima, com os usuários do nosso Business Network, clique no card para conectarmos na rede como usuário admin que tem previlégio total dentro do sistema.

Na aba "Access Control" é onde fica os arquivos .acl que contem as regras de acesso para cada usuário, neste momento não iremos mexer neste arquivo.

Vamos criar um arquivo .cto que terá a responsabilidade de descrever os nossos Assets (Ex.: Carro, Produto, Certificado e etc), Participants (Ex.: Comprador, Vendedor, Leiloeiro e etc) e Transactions (Ex.: Dar lance, Fechar Leilão e etc). Este arquivo utiliza uma linguagem de modelagem orientada a objetos que é usada para definir o modelo de domínio para a definição do business network.

Copie e cole o código abaixo:

Agora vamos adicionar outro arquivo .js que terá a responsabilidade de definir nossa regra de negócio para nossas transações. Se você está supondo que a linguagem é javascript, você acertou, com um conhecimento básico de javascript conseguimos construir nossas regras de negócio com facilidade que irão ser executadas na transações da nossa rede blockchain.

Copie e cole o código abaixo:

Agora é hora de testar

Vá até a aba "Test", clique em Membro na seção "PARTICIPANTS", depois clique no botão "Create New Participant" :

Crie dois Membros utilizando os dados da imagem abaixo como exemplo:

Agora vamos clicar na seção "ASSETS" e vamos criar um produto pertencente ao Membro "M2" que posteriormente será leiloado. Utilize os dados da imagem abaixo como exemplo:

Agora vamos continuar na seção “ASSETS” e vamos criar um Leilão que irá conter um produto "Fusca-1977" que será leiloado. Utilize os dados da imagem abaixo como exemplo:

Na seção "TRANSACTIONS" podemos visualizar o histórico de todas as nossas movimentações realizadas na rede:

Após termos criados nossos participantes e nossos assets já podemos começar a executar as transações de dar um "Lance", clique no botão "Submit Transaction", irá mostrar uma tela como esta abaixo, preencha a transação conforme na imagem:

Após a transação ter sido executada com sucesso teremos seu dados preenchidos no Leilão com um “Lance” criado pelo Membro/Comprador com identificador M1 e com o valor do lance feito.

Agora vamos finalizar o Leilão, para isso criaremos outra transação "FinalizarLeilao" e iremos informar o Id "Leilao2018" do Leilão que queremos finalizar.

Após a transação ter sido executada com sucesso, voltamos na seção "ASSETS" e clicamos em Produto veremos que o proprietário agora é o Membro com Id "M2" e seu valor agora é o mesmo pelo qual foi vendido.

Ao clicarmos no Leilao, veremos que também seus dados foram atualizados, o estado do leilão agora é FECHADO e o valor final do produto é o mesmo do lance vencedor.

Na seção "PARTICIPANTS" clicamos em Membro visualizamos as atualizações executadas no saldo de cada um dos envolvidos:
- Wellington (M1) tinha inicialmente 10.000 agora ele está com 7.000.
- Barbosa (M2) tinha inicialmente 1.000 agora ele está com 4.000.

Bom é isso pessoal, foi um exemplo bem simples para mostrar a velocidade que conseguimos criar e validar uma idéia construída como Hyperledger Composer e que posteriormente com maiores validações e testes o projeto pode ser implantado na plataforma do Hyperledger Fabric e ir a produção.

Espero ter contribuído um pouco para dar aquele pontapé inicial e criar seu projeto utilizando a tecnologia Blockchain.

Qualquer dúvida por favor deixe um comentário.

--

--