Tutorial do Hyperledger Fabric: Guia de primeiros passos

Bem vindo à Tutorial do Hyperledger Fabric.

Neste tutorial, aprenderemos como criar seu primeiro aplicativo Hyperledger e outras coisas importantes se você for um dos desenvolvedores que investiu profundamente no blockchain e deseja começar com o Hyperledger Fabric.

Qualquer estrutura de nível empresarial requer experiência para funcionar. Se você for um novato, terá que se esforçar muito para consertar pequenas coisas. É por isso que é importante começar cedo e praticar do seu próprio jeito.

Mas por que Tecido Hyperledger e não qualquer outra estrutura corporativa de blockchain?

O motivo é que o Hyperledger Fabric é uma estrutura de blockchain empresarial de primeira linha que oferece excelente tecnologia de razão distribuída com permissão (DLT). Possui alguns recursos excelentes que o tornam a escolha ideal para uma empresa.

Você pode avaliar sua popularidade verificando seus membros, que consistem em CISCO, IBM, Intel, SAP, Accenture e outros.

O que é Hyperledger Fabric?

Hyperledger Fabric é uma estrutura de nível empresarial de código aberto. Ele conta com tecnologia de razão distribuída com permissão para fornecer aplicativos e soluções muito necessários. A Linux Foundation está trabalhando em diversos projetos, e o Hyperledger Fabric é um deles.

Por ser de código aberto, qualquer pessoa pode ingressar no projeto e contribuir com ele. No momento, 35 organizações estão trabalhando juntas para fazer do Hyperledger Fabric a melhor estrutura empresarial que existe.

Basicamente, o Hyperledger Fabric é configurável e modular. Isso significa que as empresas podem trabalhar perfeitamente usando a estrutura. Todos esses recursos desejáveis ​​tornam o Hyperledger Fabric uma ótima escolha! No momento da escrita, você pode experimentar o Hyperledger Fabric v1.4, que vem com novos recursos e funcionalidades.

Funcionalidades do Hyperledger Fabric

O Hyperledger Fabric vem com cinco recursos principais. Eles são os seguintes

  • Gerenciamento de identidade: o gerenciamento de identidade é crucial para qualquer rede com permissão. É por isso que o gerenciamento de identidade é um dos recursos cruciais na estrutura do Hyperledger. Ao fornecer ao administrador a definição do gerenciamento de identidade adequado, as empresas podem garantir que empregam várias camadas de permissão.
  • Processamento eficiente: o Hyperledger Fabric é eficiente. Isso ocorre porque as funções de rede são atribuídas como tipo de nó. A eficiência também é fornecida ao permitir a execução da transação separadamente do compromisso e do pedido.
  • Design modular:O Hyperledger Fabric utiliza design modular, o que significa que é fácil integrar serviços ou outros sistemas a ele. Isso também significa que você pode especificar o algoritmo de consenso, identidade e assim por diante.
  • Privacidade e confidencialidade:O Hyperledger Fabric também oferece confidencialidade e privacidade adequadas, o que é muito importante para as empresas. Eles oferecem canais de dados adequados para que as informações não vazem, e a confidencialidade pode ser mantida a qualquer custo.
  • Funcionalidade Chaincode:O Hyperledger Fabric oferece funcionalidade de chaincode, que permite que a lógica seja chamada apenas quando um tipo específico de transação é chamado.

Outros recursos principais do tecido Hyperledger incluem código de qualidade, código aberto, grande escalabilidade e eficiência e uso em todo o setor.

Tutorial do Hyperledger Fabric

Antes de começar a desenvolver um aplicativo, é melhor entender a arquitetura do sistema do Hyperledger Fabric. Fazendo isso, podemos entender como ele funciona internamente. Esse conhecimento pode ser usado para desenvolver seu primeiro aplicativo Hyperledger Fabric.

Arquitetura do Sistema

No núcleo, temos nós. Os nós se comunicam entre si e formam uma rede. No entanto, existem programas que são executados pela própria blockchain. Eles são chaincode. O chaincode é responsável por manter dados contábeis e de estado, e também cuida da execução da transação.

  O salário do desenvolvedor Blockchain está aumentando!

No Hyperledger Fabric, o chaincode tem mais ênfase à medida que as transações são realizadas nele como operações. As transações, por outro lado, precisam ser validadas por endosso. Apenas transações endossadas podem ser confirmadas.

Transações

As transações no Hyperledger Fabric podem ser de dois tipos:

  • Implantar transações: Este tipo de transação é responsável por criar um novo chaincode com parâmetro como um programa. Uma vez feito isso, diz-se que o chaincode está “instalado” no blockchain.
  • Transações de chamada: as transações de chamada são transações que são executadas com o contexto de implantações de chaincode anteriores.

Estruturas de dados Blockchain

A estrutura de dados básica usada no blockchain é o armazenamento de chave-valor (KVS). As chaves são principalmente nomes e o valor são blobs. Os chaincodes podem manipular a estrutura de dados com a ajuda de duas operações KVS seguintes.

  • por
  • obter

Toda a estrutura de dados é vista como um estado.

Ledger

Ledger é a sequência de mudanças de estado bem-sucedidas e também de tentativas malsucedidas. Eles são ordenados para que possam ser referenciados posteriormente. Além disso, eles são blocos de transações da cadeia de hash ordenados. O livro-razão contém blocos em ordem, que por sua vez contêm uma matriz de transação ordenada.

Nós

Os nós podem ser qualquer entidade de comunicação dentro da rede.

Cliente

Um cliente é alguém que pode agir em nome dos usuários finais.

Par

O par lida com o estado do razão e garante que a rede funcione de maneira otimizada. Os pares podem endossar pares, o que ajuda a endossar uma transação.

Escrevendo seu primeiro aplicativo Hyperledger Fabric

Agora que entendemos a estrutura arquitetônica do Hyperledger Fabric, agora é hora de criar seu primeiro aplicativo. Percorrendo o aplicativo, você poderá entender como os aplicativos Fabric funcionam. Neste tutorial, você aprenderá como usar contratos simples e inteligentes e outros aplicativos dentro da estrutura.

Para tornar nosso desenvolvimento mais fácil, usaremos o SDK do aplicativo para facilitar a referência à chave

funções, incluindo a chamada de contratos inteligentes e outras consultas.

As três etapas principais que você precisa seguir ao desenvolver seu aplicativo Hyperledger fabric incluem o seguinte:

  1. Configure o ambiente de desenvolvimento. O ambiente de desenvolvimento fornece ao seu aplicativo a rede necessária para trabalhar. Isso lhe dará a capacidade de fazer seu contrato inteligente funcionar também.
  2. Aprendendo sobre exemplos de contratos inteligentes. Aqui, você deve examinar o contrato inteligente e entender suas transações. Executaremos consultas simuladas por aplicativos e também atualizaremos o livro-razão usando-o.
  3. Desenvolvendo um aplicativo de amostra: na última etapa, você criará um aplicativo de amostra usando o contrato inteligente.

Construindo a primeira rede

Antes de começarmos com o aplicativo, vamos construir nossa primeira rede. Para começar, precisamos instalar alguns pré-requisitos. Esses pré-requisitos irão garantir que tudo funcione como pretendido.

Confira o guia de instalação de pré-requisitos aqui.

Verifique também o Hyperledger Composer: Build Your Enterprise Blockchain

Você pode querer instalar binários, amostras e imagens do docker. Confira o guia de instalação aqui.

Depois de instalar as amostras, você encontrará as amostras de tecido incluídas. Deve ser incluído no repositório de “amostras de tecido”. No repositório, há a amostra da primeira rede.

  Princípios do Blockchain: Projete sua Blockchain empresarial

Para mover para esse diretório, vá para a pasta com o comando cd conforme abaixo.

amostras de tecido de cd / primeira rede

Para executar o exemplo da primeira rede, você precisa usar o script byfn.sh. O script foi desenvolvido para iniciar o projeto com quatro pares rapidamente. Os quatro pares representam duas organizações diferentes. Ele também iniciará o contêiner, um código de cadeia e transações. O contêiner permitirá que mais pares se conectem à rede.

Gerando artefatos de rede

Agora você pode gerar os certificados e chaves para as entidades de rede. Para fazer isso, você precisa executar o seguinte comando.

.byfn.sh generate

Será solicitada sua confirmação antes do início do processo. Pressione Y para iniciar o preenchimento da rede com as informações necessárias, incluindo ligar os serviços de pedidos, configuração e assim por diante.

Potencializando a rede

Em seguida, precisamos alimentar a rede. Ligar a rede pode ser feito com o comando simples abaixo.

./byfn.sh up

Depois de executar o comando, o framework irá compilar as imagens chaincode Golang. Além disso, os contêineres associados também serão acionados para fornecer aos novos pares uma maneira de ingressar na rede.

Por padrão, você verá o Go em ação. Isso porque Go é o idioma padrão do chaincode. Mas, isso não significa que você não pode usar outras linguagens de programação. Chaincode também oferece suporte a Node.js e Java. Para mudar para um nó, você pode usar o seguinte comando.

.byfn.sh up -l node

Da mesma forma, você pode mudar para Java se você precisar.

.byfn.sh up -l java

Se você deseja usar vários idiomas chaincode, então você precisa usar o serviço de pedidos, incluindo Raft ou Kafka.

./byfn.sh up -o etcdraft

./byfn.sh up -o kafka

Cada vez que você usar o comando, você irá pedir para confirmar mais uma vez antes de o comando ser executado.

Para entender melhor como construir e manter sua primeira rede, confira o tutorial de construção de rede aqui.

Lançando a rede

Agora que você instalou as amostras e passou pela página de pré-requisitos, é hora de lançarmos a rede.

Para simplificar, não usaremos JavaScript. Além disso, você precisa do subdiretório fabcar. Faça um clone local repo de amostra de tecido também.

Para iniciar a rede, você precisa usar o script de shell startFabric.sh. Uma vez iniciada, você obterá uma rede blockchain que possui autoridades de certificação, solicitantes, pares e assim por diante. Conforme o subdiretório fabcar está sendo usado, o contrato inteligente FabCar será automaticamente instalado e iniciado.

O comando para iniciar a rede é o seguinte:

./startFabric.sh javascript

Instalando o aplicativo

Agora é hora de instalar o aplicativo. Mas, antes de fazermos isso, precisamos instalar as dependências.

npm install

O comando acima começará a instalar as dependências importantes que são definidas no package.json

No pacote, as classes importantes que serão iniciadas incluem

  • classe fabric-network → permite transações, identidades, carteiras
  • fabric-ca-client → registrar usuários em suas respectivas autoridades de certificação

Uma vez feito isso, iremos para o diretório fabcar / javascript. Vejamos os arquivos de diretório abaixo:

  • encrollAdmin.js
  • node_modules
  • package.json
  • registerUser.js
  • invoke.js
  • package-lock.json
  • query.js
  • carteira

Comunicando-se com a Autoridade de Certificação

Agora que temos uma rede em execução, vamos aprender como nos comunicar com uma autoridade de certificação.

Solicitação de assinatura de certificado (CSR)

Nossa primeira tarefa é passar por um processo de RSE. Neste processo, o admin contata a autoridade de certificação para gerar o certificado público, privado e X.509. O programa usado para fazer é matricular.js

  Como se tornar um arquiteto Blockchain?

Para inscrever o administrador, use o seguinte comando.

nó matriculaAdmin.js

Todas as informações agora estão armazenadas no carteira diretório.

O mesmo processo deve ser seguido se você deseja registrar outro usuário. Vamos tentar registrar outro usuário – usernew

node reisterUser.js

Isso irá registrar o novo usuário e armazenar suas credenciais na carteira ao lado do administrador.

Consultando o razão

Como a rede blockchain tem uma cópia do razão, você pode consultá-la para encontrar informações. Ledgers são somente leitura e é por isso que apenas consultas de leitura podem ser executadas. Para entender melhor, vamos dar uma olhada na imagem abaixo.

Tutorial de tecido Hyplerledger

Fonte: Hyperledger Fabric Docs

Os valores no livro-razão também permanecem em seu estado mundial. Este é o valor do par de chaves discutido anteriormente no tutorial. Portanto, uma consulta pode revelar dados de chaves. A boa notícia é que você pode utilizar bancos de dados como o CouchDB. Os estados mundiais podem ser configurados para usar bancos de dados relacionais.

Para obter a lista de todos os carros no livro-razão, execute o seguinte comando,

node query.js

Para entender melhor como funciona a consulta, você pode querer abrir query.js arquivo e analise-o. Vamos repassar abaixo.

const {FileSystemWallet, Gateway} = require (‘fabric-network’);

Na linha acima, uma conexão de rede é feita

Em seguida, um gateway é criado para o aplicativo se conectar. É feito usando as linhas abaixo.

gateway const = novo gateway ();

esperar gateway.connect (ccp, {carteira, identidade: ‘usuário1’});

O ccp é usado para identificar a identidade do usuário e informações de carteira relacionadas.

Como a rede Hyperledger Fabric executa vários canais, é importante conectar-se ao canal específico para o aplicativo.

contrato const = network.getContract (‘fabcar’);

Compreendendo o Contrato Inteligente

Para entender melhor o contrato inteligente, vamos examiná-lo. Ele também mostrará as transações feitas por meio dele.

Para acessá-lo, você precisa ir ao subdiretório chaincode / fabcar / javascript / lib. Uma vez lá, abra o fabcar.js em um editor.

Lá você verá o uso da classe Contrato para definir o contrato inteligente. Além disso, haveria transações claras definidas no contrato inteligente, incluindo queryCar, queryAllCars, initLedger, changeCarOwner e createCar.

As transações ficariam assim:

async queryCar (ctx, carNumber) {…}

Vejamos a transação queryCar.

async queryAllCars (ctx) {

const startKey = ‘CAR0’;

const endKey = ‘CAR999’;

const iterator = await ctx.stub.getStateByRange (startKey, endKey);

hyperledger fabric node js tutorial

Fonte: Hyperledger Fabric Docs

Atualizando o livro razão: comprando um carro novo

A última etapa é atualizar o razão com novas informações. Nesse caso, vamos criar um novo carro usando o invoke.js. Você precisa abrir o arquivo e adicionar o seguinte comando a ele.

aguarde o contrato.submitTransaction (‘createCar’, ‘CAR12’, ‘CarBrand’, ’Model’, ‘Color’, ‘Owner’);

No código acima, o aplicativo chama as transações de contrato inteligente createCar. Em troca, ele criará o carro com seus atributos, incluindo CarBrand, Color, Model e Owner.

Agora, execute o seguinte código para colocá-lo no razão

node invoke.js

Isso resultará em uma atualização do razão e você obterá uma saída bem-sucedida.

Conclusão

Isso nos leva ao final do nosso tutorial. No tutorial, nosso objetivo era cobrir apenas a superfície. Se você quiser se aprofundar, confira os documentos oficiais do Hyperledger Fabric, que abordam tudo em detalhes.

Então, você vai usar o Hyperledger Fabric para construir blockchain corporativo? Comente abaixo e deixe-nos saber.