Testar seu Chaincode Usando o Visual Studio Code

Se o seu chaincode estiver em execução em uma rede, você poderá testar qualquer um dos métodos gerados. Além disso, se você optar por criar o método executeQuery durante o desenvolvimento do chaincode, poderá executar consultas ricas em SQL se o chaincode for implantado em uma rede do Oracle Blockchain Platform.

Teste seu Chaincode em uma Rede Local Hyperledger Fabric

Depois que seu projeto de chaincode estiver sendo executado em uma rede local, você poderá testá-lo.

O Blockchain App Builder contém um assistente integrado para ajudá-lo a chamar ou consultar seu chaincode.

  1. Selecione seu projeto de chaincode no painel Chaincodes. No painel Detalhes do Codigo, selecione Executar. O nome do chaincode já deve estar selecionado. Certifique-se de que o ambiente de destino esteja definido como Ambiente Local e que o canal será padronizado para o único canal disponível.
  2. No campo Função, selecione seu método na lista suspensa. Todos os métodos disponíveis no chaincode são listados.
  3. No campo Parâmetro da Função, selecione o botão Mais Ações (...). Isso iniciará uma janela com propriedades disponíveis para o método selecionado. Informe as propriedades, clique em Omitir para qualquer propriedade não obrigatória que você não queira submeter ao chamar seu método e clique em Salvar.
  4. Clique em Chamar.

A janela da console de Saída mostrará que a função foi chamada. Como alternativa, no painel Ações de Codificação, a janela Saída da Função exibe a saída. Clique no botão Mais Ações (...) para ver essa saída formatada.

Se quiser salvar o método e os parâmetros que acabou de executar, você poderá clicar em Salvar e informar um nome e uma descrição para ele. Ele será salvo no seu projeto de chaincode na pasta Queries. Para usá-lo novamente, clique nele com o botão direito do mouse e selecione Abrir.

Se você fizer alterações no arquivo do controlador que alterariam os métodos, selecione o ícone Recarregar na parte superior do painel Execução de Codificação. A alteração agora deve ser refletida na lista suspensa Função.

Observação:

Se você não quiser usar o assistente para teste, também poderá executar as ferramentas de linha de comando do Blockchain App Builder na janela Terminal do Visual Studio Code. Siga as instruções fornecidas aqui para testar com a linha de comando: Teste seu Chaincode em uma Rede Local do Hyperledger Fabric.

Testando Vários Usuários de Token Localmente

Para testar um projeto de token com vários usuários localmente, você pode usar a propriedade tokenUser para alterar o chamador de cada transação. Cada projeto de chaincode scaffolded inclui um arquivo .ochain.json, que armazena metadados do chaincode. Você altera o chamador atualizando o valor do campo tokenUser no arquivo .ochain.json.

{
  "name": "digiCurrCC",
  "description": "Chaincode package for digiCurrCC",
  "chaincodeName": "digiCurrCC",
  "chaincodeType": "node",
  "configFileLocation": "/Users/user1/token.yml",
  "appBuilderVersion": "21.2.3",
  "nodeVersion": "v12.18.1",
  "tokenUser": "admin"
}

Quando um projeto é scaffolded, a propriedade tokenUser é definida como o usuário admin padrão da rede local. Para alterar o chamador de uma transação, altere a propriedade tokenUser para corresponder à propriedade user_id que foi definida quando a conta foi criada quando o método createAccount (TypeScript) ou CreateAccount (Go) foi chamado.

Instalação Automática e Implantação Após Atualização

Sempre que você atualizar e salvar seu chaincode, as alterações serão compiladas, instaladas e implantadas automaticamente. Não há necessidade de desmontar ou trazer a rede local novamente. Todos os projetos serão compilados e implantados automaticamente em cada alteração.

Testando Operações do Ciclo de Vida em uma Rede Remota do Oracle Blockchain Platform

Depois que seu projeto de chaincode tiver sido implantado com sucesso em sua rede remota do Oracle Blockchain Platform, você poderá testá-lo conforme descrito em Testar seu Chaincode em uma Rede Local do Hyperledger Fabric.

Você pode usar os mesmos comandos de chamada e consulta para executar todas as transações de método em uma rede remota do Oracle Blockchain Platform Cloud ou Enterprise Edition; tudo suportado na rede local também é suportado na rede remota. Selecione a instância do Oracle Blockchain Platform como seu ambiente de destino ao executar seus testes.

Testando Projetos de Token em uma Rede Remota do Oracle Blockchain Platform

Você pode testar projetos de chaincode que funcionam com tokens usando o Blockchain App Builder, o proxy REST do Oracle Blockchain Platform ou o SDK do Hyperledger Fabric.

Construtor de Aplicativos Blockchain

Você pode usar a extensão do Visual Studio Code para chamar transações com vários usuários para testar códigos de cadeia de token. Para testar com vários usuários, altere os parâmetros de autorização (nome de usuário e senha) na guia Ambientes e salve o ambiente. Ao chamar transações, selecione o mesmo ambiente na lista suspensa e execute a transação.

Proxy REST do Oracle Blockchain Platform

Você pode usar o proxy REST no Oracle Blockchain Platform para executar seu chaincode de token em uma rede remota do Oracle Blockchain Platform. Use qualquer cliente Proxy REST, como Cliente REST Postman, para testar seu projeto de chaincode.

Para testar vários usuários, altere os parâmetros de autorização (nome de usuário e senha) em seu cliente REST ou conecte-se a outra instância do Oracle Blockchain Platform.

Executar Consultas Rich SQL do BD Berkeley

Se você optar por criar o método executeQuery durante o desenvolvimento do chaincode, poderá executar consultas ricas em SQL se o chaincode for implantado em uma rede do Oracle Blockchain Platform.

Se você tiver usado executeQuery na seção customMethods do arquivo de especificação, um método executeQuery correspondente será criado no controlador.

Arquivo de especificação:
customMethods:
    - executeQuery
    - "fetchRawMaterial(supplierid: string, rawMaterialSupply: number)"
    - "getRawMaterialFromSupplier(manufacturerId: string, supplierld: string, rawMaterialSupply: number)"
    - "createProducts(manufacturerId: string, rawMaterialConsumed: number, productsCreated: number)"
    - "sendProductsToDistribution()"
Arquivo de controle:
**
*
* BDB sql rich queries can be executed in OBP CS/EE.
* This method can be invoked only when connected to remote OBP CS/EE network.
*
*/
@Validator(yup.string())
public async executeQuery(query: string) {
    const result = await OchainController.query(query); 
    return result;
}

Você pode chamar esse método para executar consultas ricas em SQL de BD Berkeley na rede do Oracle Blockchain Platform, garantindo que você selecione o ambiente do Oracle Blockchain Platform que criou como seu ambiente de destino ao executar as consultas.

Exemplo:
  1. No painel Detalhes do Codigo, selecione Executar. O nome do chaincode, o ambiente de destino e o canal já devem ser preenchidos previamente na etapa de implantação.
  2. No campo Nome da Função, selecione executeQuery na lista suspensa.
  3. No campo Parâmetro da Função, selecione o botão Mais Ações (...). Isso iniciará uma janela na qual você poderá informar a string de consulta. Informe os argumentos para sua consulta e clique em Salvar.
  4. Clique em Consultar.
A janela Saída e mostrará a consulta que está sendo executada e o resultado.
ochain query executeQuery "SELECT key, valueJson FROM <STATE> WHERE
json_extract(valueJson, '$.rawMaterialAvailable') = 4" 

Como toda a consulta SQL é feita no argumento, você pode fazer alterações rapidamente na consulta.

Gerar Comandos CLI de Consultas

Se você tiver salvo consultas em um projeto de chaincode no Visual Studio Code, poderá gerar automaticamente os comandos da CLI equivalentes.

Você deve ter pelo menos uma consulta salva em um projeto de chaincode para gerar comandos CLI para Mac OSX e Linux e para Microsoft Windows.

  1. Expanda o projeto no painel Chaincodes.
  2. Clique com o botão direito do mouse em Consultas.
  3. Clique em Gerar Comandos da CLI.

Dois arquivos de texto são gerados e exibidos na seção Consultas do painel Chaincodes: CLIcommandsForLinux.txt e CLIcommandsForWindows.txt. Selecione o nome do arquivo para abrir o arquivo e mostrar os comandos da CLI correspondentes.