Teste seu Chaincode usando o Visual Studio Code
Se o seu chaincode estiver sendo executado 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 seu chaincode, poderá executar consultas rich SQL se seu chaincode for implantado em uma rede do Oracle Blockchain Platform.
Teste seu Chaincode em uma rede local do Hyperledger Fabric
Depois que seu projeto chaincode estiver em execução 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.
- Selecione seu projeto chaincode no painel Chaincodes. No painel Detalhes do Código de Cadeia, selecione Executar. O nome do chaincode já está selecionado. Certifique-se de que o ambiente de destino esteja definido como Ambiente Local, de modo que o canal defina como padrão o único canal disponível.
- No campo Função, selecione um método na lista suspensa. Todos os métodos disponíveis no chaincode são listados.
- No campo Parâm. da Função, clique no botão Mais Ações. Esta ação inicia uma janela mostrando as propriedades disponíveis para o método selecionado. Informe as propriedades e clique em Omitir para qualquer propriedade não obrigatória que você não queira submeter quando chamar o método. Clique em Salvar.
- Clique em Chamar.
A janela da console Saída mostrará que a função foi chamada. Como alternativa, no painel Ações de Código de Cadeia, a janela Saída de Função mostra a saída. Clique em Mais Ações para ver essa saída formatada.
Para salvar o método e os parâmetros que você acabou de executar, clique em Salvar e informe um nome e uma descrição. A função é salva no projeto chaincode na pasta Queries
. Para usá-lo novamente, clique com o botão direito do mouse e selecione Abrir.
Se você fizer alterações no arquivo do controlador que alteram os métodos, selecione o ícone Recarregar na parte superior do painel Execução de Código de Cadeia. A alteração será refletida na lista drop-down 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. Para obter mais informações sobre como testar na linha de comando, consulte Testar 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 e Implantação Automáticas 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 derrubar ou trazer a rede local novamente. Todos os projetos serão compilados e implantados automaticamente para cada alteração.
Testando Operações de Ciclo de Vida em uma Rede Remota do Oracle Blockchain Platform
Depois que seu projeto chaincode tiver sido implantado com sucesso na sua rede remota do Oracle Blockchain Platform, você poderá testá-lo.
Você testa o chaincode em execução em uma rede remota do Oracle Blockchain Platform semelhante ao teste em uma rede local, conforme descrito em Testar Seu Chaincode em uma Rede Local do Hyperledger Fabric.
Você pode usar os mesmos comandos para concluir todas as transações de método em uma rede remota do Oracle Blockchain Platform Cloud ou Enterprise Edition; tudo o que for suportado na rede local também será 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 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 drop-down e execute a transação.
Proxy REST do Oracle Blockchain Platform
Você pode usar o proxy REST no Oracle Blockchain Platform para executar seu código de cadeia de token em uma rede remota do Oracle Blockchain Platform. Use qualquer cliente Proxy REST, como Cliente REST Postman, para testar seu projeto chaincode.
Para testar vários usuários, altere os parâmetros de autorização (nome de usuário e senha) no seu cliente REST ou conecte-se a outra instância do Oracle Blockchain Platform.
Executar Berkeley DB SQL Rich Queries
Se você optar por criar o método executeQuery
durante o desenvolvimento de chaincode, poderá executar consultas rich SQL se seu chaincode for implantado em uma rede do Oracle Blockchain Platform.
Se você tiver usado o executeQuery
na seção customMethods
do arquivo de especificação, um método executeQuery
correspondente será criado no controlador.
customMethods:
- executeQuery
- "fetchRawMaterial(supplierid: string, rawMaterialSupply: number)"
- "getRawMaterialFromSupplier(manufacturerId: string, supplierld: string, rawMaterialSupply: number)"
- "createProducts(manufacturerId: string, rawMaterialConsumed: number, productsCreated: number)"
- "sendProductsToDistribution()"
**
*
* 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 avançadas do Berkeley DB SQL na rede do Oracle Blockchain Platform. Selecione o ambiente do Oracle Blockchain Platform que você criou como seu ambiente de destino ao executar as consultas.
- No painel Detalhes do Código de Cadeia, selecione Executar. O nome do chaincode, o ambiente de destino e o canal já estão especificados na etapa de implantação.
- No campo Nome da Função, selecione
executeQuery
na lista drop-down. - No campo Parâm. da Função, clique em Mais Ações. Isso abre uma janela na qual é possível inserir a string de consulta. Informe os argumentos da sua consulta e clique em Salvar.
- Clique em Consulta.
ochain query executeQuery "SELECT key, valueJson FROM <STATE> WHERE
json_extract(valueJson, '$.rawMaterialAvailable') = 4"
A consulta SQL inteira é usada no argumento para que você possa fazer alterações na consulta rapidamente.
Gerar Comandos CLI de Consultas
Se você tiver salvado consultas em um projeto chaincode no Visual Studio Code, poderá gerar automaticamente os comandos CLI equivalentes.
Você deve ter pelo menos uma consulta salva em um projeto chaincode para gerar comandos CLI para macOS, Linux e para Microsoft Windows.
- Expanda o projeto no painel Códigos de Cadeia.
- Clique com o botão direito do mouse em Consultas.
- Clique em Gerar Comandos da CLI.
Dois arquivos de texto são gerados e exibidos na seção Consultas do painel Códigos de Cadeia: CLIcommandsForLinux.txt
e CLIcommandsForWindows.txt
. Selecione o nome para abrir o arquivo e mostre os comandos de CLI correspondentes.