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á deve estar selecionado. Certifique-se de que o ambiente de destino esteja definido como Ambiente Local e o canal assumirá como padrão o único canal disponível.
- No campo Função, selecione seu método na lista drop-down. Todos os métodos disponíveis no chaincode são listados.
- No campo Parâmetro da Função, selecione o botão Mais Ações (…). Isso iniciará uma janela com as 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 deseja submeter ao chamar seu método e 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 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, clique em Salvar e informe um nome e uma descrição para ele. Ele será salvo no seu 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 alterariam os métodos, selecione o ícone Recarregar na parte superior do painel Execução de Código de Cadeia. A alteração deve agora 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 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 desmontar ou abrir a rede local novamente. Todos os projetos serão compilados e implantados automaticamente em cada alteração.
Testando Operações de 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 o que for 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 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 do seu 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, garantindo que você 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á devem ter sido pré-preenchidos na etapa de implantação.
- No campo Nome da Função, selecione
executeQueryna lista drop-down. - 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.
- 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 Mac OSX e 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.