Test du code chaîne à l'aide de Visual Studio Code

Si votre code chaîne est exécuté sur un réseau, vous pouvez tester l'une des méthodes générées. De plus, si vous avez choisi de créer la méthode executeQuery lors du développement de votre code chaîne, vous pouvez exécuter des requêtes SQL riches si votre code chaîne est déployé sur un réseau Oracle Blockchain Platform.

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

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

Blockchain App Builder contient un assistant intégré qui vous aide à appeler ou à interroger votre code chaîne.

  1. Sélectionnez votre projet de code chaîne dans le panneau Codes chaîne. Dans le panneau Détails du code chaîne, sélectionnez Exécuter. Le nom de code chaîne doit déjà être sélectionné. Assurez-vous que l'environnement cible est défini sur Environnement local et que le canal est défini par défaut sur le seul canal disponible.
  2. Dans le champ Fonction, sélectionnez votre méthode dans la liste déroulante. Toutes les méthodes disponibles dans le code chaîne sont répertoriées.
  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 s'ouvre. Entrez les propriétés, cliquez sur Omettre pour toute propriété non obligatoire que vous ne souhaitez 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 panneau Actions de code chaîne, la fenêtre Sortie de fonction affiche la sortie. Cliquez sur le bouton Actions supplémentaires (...) pour afficher cette sortie formatée.

Pour enregistrer la méthode et les paramètres que vous venez d'exécuter, vous pouvez cliquer sur Enregistrer et saisir un nom et une description. Elle sera enregistrée dans votre projet de code chaîne dans le dossier Queries. Pour l'utiliser à 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 panneau Exécuter le code chaîne. La modification doit maintenant être reflétée dans la liste déroulante Fonction.

Remarques :

Si vous ne souhaitez pas utiliser l'assistant pour les tests, vous pouvez également exécuter les outils de ligne de commande Blockchain App Builder dans la fenêtre Terminal de Visual Studio Code. Suivez les instructions fournies ici pour effectuer un test à l'aide de la ligne de commande : Test de votre code 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 code chaîne reposant sur un échafaudage inclut un fichier .ochain.json, qui stocke les métadonnées du code 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 définie sur l'utilisateur admin par défaut du réseau local. Pour modifier l'appelant d'une transaction, modifiez la propriété tokenUser afin qu'elle corresponde à la propriété user_id 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 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.

Test des opérations de cycle de vie sur un réseau Oracle Blockchain Platform distant

Une fois le projet de code chaîne déployé sur le réseau Oracle Blockchain Platform distant, vous pouvez le tester comme décrit dans Test de votre code 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 Oracle Blockchain Platform Cloud ou Enterprise Edition distant. 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 des tests.

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

Vous pouvez tester les projets de code chaîne qui fonctionnent avec des jetons à l'aide de Blockchain App Builder, du proxy REST Oracle Blockchain Platform ou du SDK Hyperledger Fabric.

Blockchain App Builder

Vous pouvez utiliser l'extension Visual Studio Code pour appeler des transactions avec plusieurs utilisateurs afin de tester des codes chaîne de jeton. Pour effectuer un test avec plusieurs utilisateurs, modifiez les paramètres d'autorisation (nom utilisateur et mot de passe) dans l'onglet Environnements, 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.

Proxy REST Oracle Blockchain Platform

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

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

Exécuter des requêtes enrichies SQL Berkeley DB

Si vous avez choisi de créer la méthode executeQuery lors du développement de votre code chaîne, vous pouvez exécuter des requêtes SQL riches si votre code chaîne est déployé sur 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 sera créée dans le contrôleur.

Fichier de spécification :
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 requêtes Berkeley DB SQL enrichies sur le réseau Oracle Blockchain Platform, en veillant à sélectionner l'environnement Oracle Blockchain Platform que vous avez créé en tant qu'environnement cible lors de l'exécution des requêtes.

Par exemple :
  1. Dans le panneau Détails du code chaîne, sélectionnez Exécuter. Le nom de code 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 fonction, sélectionnez executeQuery dans la liste déroulante.
  3. Dans le champ Paramètre de fonction, sélectionnez le bouton Actions supplémentaires (...). Cela ouvrira une fenêtre dans laquelle vous pourrez saisir la chaîne de requête. Entrez les arguments de la requête, puis cliquez sur Enregistrer.
  4. Cliquez sur Requête.
La fenêtre Sortie affiche la requête en cours d'exécution et le résultat.
ochain query executeQuery "SELECT key, valueJson FROM <STATE> WHERE
json_extract(valueJson, '$.rawMaterialAvailable') = 4" 

L'intégralité de la requête SQL est prise dans l'argument, de sorte que vous pouvez apporter des modifications à la requête à la volée.

Générer des commandes CLI à partir de requêtes

Si vous disposez de requêtes enregistrées dans un projet de code chaîne dans Visual Studio Code, vous pouvez générer automatiquement les commandes CLI équivalentes.

Vous devez disposer d'au moins une requête enregistrée dans un projet de code chaîne pour générer des commandes CLI pour Mac OSX, Linux et Microsoft Windows.

  1. Développez le projet dans le panneau Codes chaîne.
  2. Cliquez avec le bouton droit de la souris sur Requêtes.
  3. Cliquez sur Générer des commandes de la CLI.

Deux fichiers texte sont générés et affichés dans la section Requêtes du panneau Codes chaîne : CLIcommandsForLinux.txt et CLIcommandsForWindows.txt. Sélectionnez le nom du fichier pour l'ouvrir et afficher les commandes CLI correspondantes.