Tester le code de chaîne à l'aide de Visual Studio Code

Si votre code de chaîne s'exécute sur un réseau, vous pouvez tester l'une des méthodes générées. De plus, si vous choisissez de créer la méthode executeQuery lors du développement de votre code de chaîne, vous pouvez exécuter des interrogations SQL enrichies si votre code de chaîne est déployé dans un réseau Oracle Blockchain Platform.

Tester votre code de chaîne sur un réseau Hyperledger Fabric local

Une fois le projet de code de chaîne exécuté sur un réseau local, vous pouvez le tester.

Le générateur d'applications de chaîne de blocs contient un assistant intégré pour vous aider à appeler ou à interroger votre code de chaîne.

  1. Sélectionnez le projet de chaîne de blocs dans le volet Code de chaîne. Dans le volet Détails de la chaîne, sélectionnez Exécuter. Le nom du code de chaîne doit déjà être sélectionné. Assurez-vous que l'environnement cible est réglé à Environnement local et que le canal sera par défaut le seul canal disponible.
  2. Dans le champ Fonction, sélectionnez votre méthode dans la liste déroulante. Chaque méthode disponible dans le code de chaîne est listée.
  3. Dans le champ Paramètre de fonction, sélectionnez le bouton Actions supplémentaires (...). Une fenêtre contenant les propriétés disponibles pour la méthode sélectionnée sera lancée. Entrez les propriétés, cliquez sur Omettre pour toute propriété non obligatoire que vous ne voulez pas soumettre lorsque vous appelez votre méthode, puis cliquez sur Enregistrer.
  4. Cliquez sur Appeler.

La fenêtre de la console Sortie indique que la fonction a été appelée. Sinon, dans le volet Actions de code de chaîne, la fenêtre Sortie de la fonction affiche la sortie. Cliquez sur le bouton Actions supplémentaires (...) pour voir cette sortie formatée.

Si vous voulez enregistrer la méthode et les paramètres que vous venez d'exécuter, vous pouvez cliquer sur Enregistrer et entrer un nom et une description pour celle-ci. Il sera enregistré dans le projet de code de chaîne dans le dossier Queries. Pour l'utiliser de nouveau, cliquez dessus avec le bouton droit de la souris et sélectionnez Ouvrir.

Si vous apportez des modifications au fichier de contrôleur qui modifieraient les méthodes, sélectionnez l'icône Recharger en haut du volet Exécuter le code de chaîne. La modification doit maintenant être prise en compte dans la liste déroulante Fonction.

Note :

Si vous ne voulez pas utiliser l'assistant pour les tests, vous pouvez également exécuter les outils de ligne de commande du générateur d'applications de chaîne de blocs dans la fenêtre Terminal de Visual Studio Code. Suivez les instructions fournies ici pour effectuer le test à l'aide de la ligne de commande : Tester votre code de chaîne sur un réseau Hyperledger Fabric local.

Test local de plusieurs utilisateurs de jetons

Pour tester localement un projet de jeton avec plusieurs utilisateurs, vous pouvez utiliser la propriété tokenUser pour modifier l'appelant de chaque transaction. Chaque projet de chaîne de code échafaudé comprend un fichier .ochain.json, qui stocke les métadonnées du code de chaîne. Vous modifiez l'appelant en mettant à jour la valeur du champ tokenUser dans le fichier .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"
}

Lorsqu'un projet est échafaudé, la propriété tokenUser est réglée à l'utilisateur admin par défaut du réseau local. Pour modifier l'appelant d'une transaction, modifiez la propriété tokenUser pour qu'elle corresponde à la propriété user_id qui a été définie lors de la création du compte lors de l'appel de la méthode createAccount (TypeScript) ou CreateAccount (Go).

Installation et déploiement automatiques après la mise à jour

Chaque fois que vous mettez à jour et enregistrez votre code de chaîne, les modifications sont compilées, installées et déployées automatiquement. Il n'est pas nécessaire de supprimer ou de réactiver le réseau local. Tous les projets seront automatiquement compilés et déployés à chaque modification.

Tester les opérations de cycle de vie sur un réseau Oracle Blockchain Platform distant

Une fois le projet de chaîne de blocs déployé avec succès sur votre réseau Oracle Blockchain Platform distant, vous pouvez le tester comme décrit sous Tester votre code de chaîne sur un réseau Hyperledger Fabric local.

Vous pouvez utiliser les mêmes commandes d'appel et d'interrogation pour effectuer toutes les transactions de méthode sur un réseau distant Oracle Blockchain Platform Cloud ou Enterprise Edition; tout ce qui est pris en charge sur le réseau local est également pris en charge sur le réseau distant. Sélectionnez l'instance Oracle Blockchain Platform comme environnement cible lors de l'exécution de vos tests.

Test de projets de jeton sur un réseau Oracle Blockchain Platform distant

Vous pouvez tester des projets de chaîne de blocs qui fonctionnent avec des jetons à l'aide du générateur d'applications de chaîne de blocs, du mandataire REST d'Oracle Blockchain Platform ou de la trousse SDK Hyperledger Fabric.

Générateur d'application de chaîne de blocs

Vous pouvez utiliser l'extension Visual Studio Code pour appeler des transactions avec plusieurs utilisateurs afin de tester les codes de chaîne de jeton. Pour effectuer un test avec plusieurs utilisateurs, modifiez les paramètres d'autorisation (nom d'utilisateur et mot de passe) dans l'onglet Environnement, puis enregistrez l'environnement. Lors de l'appel de transactions, sélectionnez le même environnement dans la liste déroulante, puis exécutez la transaction.

Mandataire REST d'Oracle Blockchain Platform

Vous pouvez utiliser le mandataire REST dans Oracle Blockchain Platform pour exécuter votre code de chaîne de jeton sur un réseau Oracle Blockchain Platform distant. Utiliser un client mandataire REST, tel que le client REST Postman, pour tester votre projet de code de chaîne.

Pour tester plusieurs utilisateurs, modifiez les paramètres d'autorisation (nom d'utilisateur et mot de passe) dans votre client REST ou connectez-vous à une autre instance d'Oracle Blockchain Platform.

Exécuter des interrogations enrichies Berkeley DB SQL

Si vous choisissez de créer la méthode executeQuery lors du développement de votre code de chaîne, vous pouvez exécuter des interrogations SQL enrichies si votre code de chaîne est déployé dans un réseau Oracle Blockchain Platform.

Si vous avez utilisé executeQuery dans la section customMethods du fichier de spécification, une méthode executeQuery correspondante est créée dans le contrôleur.

Fichier de spécifications :
customMethods:
    - executeQuery
    - "fetchRawMaterial(supplierid: string, rawMaterialSupply: number)"
    - "getRawMaterialFromSupplier(manufacturerId: string, supplierld: string, rawMaterialSupply: number)"
    - "createProducts(manufacturerId: string, rawMaterialConsumed: number, productsCreated: number)"
    - "sendProductsToDistribution()"
Fichier de contrôleur :
**
*
* 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;
}

Vous pouvez appeler cette méthode pour exécuter des interrogations SQL enrichies Berkeley DB sur le réseau Oracle Blockchain Platform, en vous assurant de sélectionner l'environnement Oracle Blockchain Platform que vous avez créé en tant qu'environnement cible lors de l'exécution des interrogations.

Exemple :
  1. Dans le volet Détails de la chaîne, sélectionnez Exécuter. Le nom du code de chaîne, l'environnement cible et le canal doivent déjà être préremplis à partir de l'étape de déploiement.
  2. Dans le champ Nom de la fonction, sélectionnez executeQuery dans la liste déroulante.
  3. Dans le champ Paramètre de fonction, sélectionnez le bouton Actions supplémentaires (...). Cette opération lance une fenêtre dans laquelle vous pouvez entrer la chaîne d'interrogation. Entrez les arguments de votre interrogation, puis cliquez sur Enregistrer.
  4. Cliquez sur Interrogation.
La fenêtre Sortie affiche l'interrogation en cours d'exécution et le résultat.
ochain query executeQuery "SELECT key, valueJson FROM <STATE> WHERE
json_extract(valueJson, '$.rawMaterialAvailable') = 4" 

L'ensemble de l'interrogation SQL est pris dans l'argument, de sorte que vous pouvez apporter des modifications à votre interrogation à la volée.

Générer des commandes d'interface de ligne de commande à partir d'interrogations

Si vous avez enregistré des interrogations dans un projet de code de chaîne dans Visual Studio Code, vous pouvez générer automatiquement des commandes d'interface de ligne de commande équivalentes.

Vous devez avoir au moins une interrogation enregistrée dans un projet de chaîne de blocs pour générer des commandes d'interface de ligne de commande pour Mac OSX, Linux et Microsoft Windows.

  1. Développez le projet dans le volet Code de chaîne.
  2. Cliquez avec le bouton droit dans Interrogations.
  3. Cliquez sur Générer des commandes d'interface de ligne de commande.

Deux fichiers texte sont générés et affichés dans la section Interrogations du volet Code de chaîne : CLIcommandsForLinux.txt et CLIcommandsForWindows.txt. Sélectionnez le nom du fichier à ouvrir et affichez les commandes d'interface de ligne de commande correspondantes.