Framework para rastreamento de geolocalização de espécimes de fauna e flora utiliznado tecnologia de livro-razão distribuído (Distributed Ledger Technology).
- Visual Studio Code (versão ^1.55.0);
- Extensão IBM Blockchain Platform para o Visual Studio Code [1] (versão 1.0.40);
- Dokcer versão v.17.06.2-ce ou superior;
- Node v10 (v10.15.3 ou superior) ou v12 (v12.13.1 ou superior) e npm v6.x ou superior.
-
Abrir a extensão IBM Blockchain Platform no editor Visual Studio Code;
-
Clicar sobre o botão Adicionar Ambiente (Add Environment), situado no canto superior direito da aba Fabric Environments;
-
Selecionar a primeira opção - Criar uma nova a partir de modelo (Create new from template);
-
Selecionar a segunda opção - 2 Org template (2 CAs, 2 peers, 1 channel);
-
Digite um nome para o ambiente (guarde este, pois deverá ser usado futuramente);
Se ainda não existe um pacote do contrato inteligente gerado, proceder da seguinte forma:
-
Abra o Visual Studio Code da pasta *Chaincode;
-
Clicar sobre o botão More Actions, no canto superior da aba Smart Contracts;
-
Clicar sobre o botão Package Open Project na caixa de diálogo que surgirá.
Obs.: Para o correto funcionamento do processo, deve-se gerar o pacote com uma versão ainda não existente na aba Smart Contracts, caso contrário, resultará em erro. Tal parâmetro é definido no arquivo package.json, situado na raiz do projeto.
Assegure que a extensão esteja conectada ao ambiente TwoOrgEnv. Caso não esteja, faça-o segundo seguinte instrução:
- Clique sobre o nome do ambiente TwoOrgEnv na aba Fabric Environments. Isso solicitará a conexão da extensão ao ambiente automaticamente.
Com o ambiente conectado:
-
Clique sobre o botão + Install;
-
Selecione os peers nos quais será instalado o contrato inteligente (no caso, todos os peers da rede);
-
Selecione o pacote do contrato inteligente gerado na seção anterior.
Na aba Fabric Environments:
-
Clique sobre o botão + Instantiate, situado dentro da guia Instantiated, para instanciar um novo contrato inteligente;
-
Caso já exista um contrato inteligente instanciado com o mesmo nome, clique sobre o já instanciado com o botão direito (dentro da guia Instantiated) e em Upgrade Smart Contract, que aparecerá numa caixa de diálogo;
-
Selecione o pacote gerado na etapa Encapsulamento do contrato inteligente;
-
No caso deste projeto, não foram programados métodos para serem acionados no momento da instanciação do contrato inteligente. Portanto, deixe em branco e aperte Enter;
-
Na caixa de diálogo que surgir, selecione Yes (nela, a extensão pergunta se será utilizado um arquivo de configuração para coleções privadas);
-
Selecioned como política de endosso Default (single endorser, any org), a padrão oferecida pela extensão.
- No diretório Backend, crie um arquivo denominado env.js utilizando como modelo env_template.js. Ele contém os atributos;
- envName: nome do ambiente Fabric inicializado. No caso deste tutorial, TwoOrgEnv;
- orgName: nome de uma organização da rede. Neste tutorial, foram criadas Org1 e Org2;
- identityName: identidade presente na carteira da organização anteriormente configurada. Neste exemplo, por padrão, as duas organizações possuem as identidades admin e OrgXAdmin;
- ccName: nome do contrato inteligente, definido no arquivo package.json do diretório Chaincode. Neste tutorial, por padrão, o nome escolhido é amazon-tracing.
- channelName: canal no qual foi instanciado o contrato inteligente. Neste exemplo, foi utilizado mychannel.
- Através do terminal, entre no diretório Backend;
- Execute o comando npm run start.
Obs.: Os nomes dos parâmetros utilizados no exemplo podem ser modificados segundo a preferência do usuário.
Após a iniciação do servidor REST, execute o script read_data.py para inserir registros dos datasets (situados no diretório Datasets) na rede Fabric. É possível alterar o arquivo fonte dos registros na linha 13 do script, dentro do argumento do método read_csv(). Além disso, pode-se controlar a quantidade de registros inseridos na linha 18 do mesmo.
Para a realização da avalição de performance da rede Fabric, entre no diretório Chaincode/caliper_workspace e siga as instruções de [2]
- Altere os dados de entrada como dataset no arquivo default_settings.txt.
- Todos os datasets avaliados estão no diretório data (bufalo_evaluation_otimized_, lobo_cinza_evaluation_otimized_, sabia_evaluation_otimized_ e tangara_evaluation_otimized_).
- Execute o arquivo binário one.bat.
- Após a execução da simulação, na pasta reports serão gerados os relatórios como de Entrega de Pacotes ou Estado da Mensagem.
[1] IBM Blockchain Platform Extension for VS Code. Disponível em: https://marketplace.visualstudio.com/items?itemName=IBMBlockchain.ibm-blockchain-platform.
[2] Performance testing smart contracts developed within VS Code using Hyperledger Caliper. Disponível em: https://developer.ibm.com/technologies/blockchain/tutorials/blockchain-performance-testing-smart-contracts-vscode-caliper/.