Définitions de vue Oracle Database pour Wholesale CBDC

Vous pouvez utiliser la base de données d'historique enrichi pour extraire l'historique des transactions de compte et résoudre les soldes incorrects dans plusieurs transactions qui se produisent dans le même bloc.

Vous pouvez utiliser l'API GetAccountTransactionHistoryWithFiltersFromRichHistDB pour extraire l'historique des transactions de compte de la base de données d'historique enrichi. Lorsque vous transmettez les paramètres custom_endpoint et bearer_token à la méthode, l'historique des transactions de compte est extrait de la base de données d'historique enrichi ou de la base de données d'état.
Pour extraire l'historique des transactions de la base de données d'historique enrichi, vous devez exécuter Oracle Autonomous Database avec Oracle REST Data Services (ORDS) et OAuth activé.
  1. Activer et configurer la base de données riche en historique.
    Pour plus d'informations, reportez-vous à Activation et configuration de la base de données d'historique enrichi dans Utilisation d'Oracle Blockchain Platform.
  2. Activez l'historique enrichi sur les canaux contenant les données de code chaîne à écrire dans la base de données d'historique enrichi. Pour plus d'informations, reportez-vous à Configuration des canaux qui écrivent des données dans la base de données d'historique enrichi dans Utilisation d'Oracle Blockchain Platform.
  3. Téléchargez et installez Node.js version 18 ou ultérieure.
  4. Sur la page Ressources numériques dans Oracle Blockchain Platform, sélectionnez Application CBDC en gros.
  5. Cliquez sur Télécharger le package de définitions de vue de base de données.
  6. Extrayez le fichier WholesaleCBDCViewsPackage.zip.
  7. Accédez au dossier ORDSscript et installez les dépendances requises en exécutant la commande suivante.
    npm install
  8. Modifiez le fichier .env fourni avec le script afin de le configurer pour votre environnement.
    Les adresses Oracle REST Data Services utilisent le format général suivant.
    <base_URL>/<user_name>/<resource_link>
    Type d'environnement/de configuration Variables d'environnement/de configuration Description Exemple
    DB Connection CONNECTION_STRING Chaîne de connexion pour la base de données.
    CONNECTION_STRING="(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)
    (host=adg.ap-sydney-1.example.com))(connect_data=
    (service_name=g536390e55ee33f4_db_high.adg.example.com))(security=(ssl_server_dn_match=yes)))"
    View Configuration VIEW_NAME Nom de la vue permettant d'afficher les détails des transactions de compte. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. VIEW_NAME="viewTest"
    View Configuration CHAINCODE_NAME Nom du code chaîne à partir duquel extraire les détails de transaction de la base de données d'historique enrichi. CHAINCODE_NAME="BondMarketplace"
    View Configuration INSTANCE_NAME Nom de l'instance sur laquelle le code chaîne est déployé. INSTANCE_NAME="BondMarketplace"
    View Configuration CHANNEL_NAME Nom du canal sur lequel le code chaîne est déployé. CHANNEL_NAME="default"
    ORDS Endpoint Setup MODULE_NAME Nom du module ORDS à utiliser. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. MODULE_NAME="demotest"
    ORDS Endpoint Setup BASE_PATH Chemin de base de l'URL ORDS. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. BASE_PATH="demotest"
    ORDS Endpoint Setup PATTERN Nom de modèle de l'URL ORDS. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. PATTERN="accountTransactionDetails"
    ORDS Endpoint Setup ITEMS_PER_PAGE Nombre d'éléments à afficher par page dans les résultats de la requête ORDS. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. ITEMS_PER_PAGE=120
    ORDS REST Endpoint ORDS_REST_BASE_URL URL de base de l'adresse REST ORDS de la base de données. ORDS_REST_BASE_URL="https://g536390e55ee33f4_db_high.adg.ap-sydney-1.example.com"
    Alias Configuration ALIAS_NAME Alias à utiliser à la place d'un nom d'utilisateur dans l'URL d'adresse REST. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. ALIAS_NAME="demotestAlias"
    ORDS Role ROLE_NAME Rôle ORDS affecté à l'utilisateur. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. ROLE_NAME="demotest_role"
    ORDS Privilege PRIVILEGE_NAME Privilège ORDS affecté à l'utilisateur. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. PRIVILEGE_NAME="demotest_priv"
    ORDS Privilege LABEL Libellé du privilège ORDS. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. LABEL="demotest_label"
    ORDS Privilege DESCRIPTION Description du privilège ORDS. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. DESCRIPTION="demotest_description"
    OAuth Configuration CLIENT_NAME Nom du client à utiliser pour l'authentification OAuth avec l'adresse REST ORDS. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. CLIENT_NAME="demotest_client"
    OAuth Configuration OWNER Nom du propriétaire à utiliser pour l'authentification OAuth avec l'adresse REST ORDS. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. OWNER="demotest"
    OAuth Configuration DESCRIPTION Description de la configuration OAuth. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. DESCRIPTION="demotest_description"
    OAuth Configuration SUPPORT_EMAIL Adresse électronique de support pour la configuration OAuth. Il peut s'agir de n'importe quelle valeur qui n'est pas en conflit avec les ressources existantes dans la base de données. SUPPORT_EMAIL="test@example.com"

    Les noms de vue d'analyse sont inclus dans le code logiciel. La vue Comptes est ACCOUNTS_MOD. La vue de transaction est TRANSACTION_MOD. La vue de transaction des comptes est ACCOUNTS_TRANSACTION_MOD.

  9. Exécutez le script ORDS à l'aide de la commande suivante.
    npm run start --username='<username>' --password='<password>'

    Dans cet exemple, <username> et <password> sont les informations d'identification de la base de données d'historique enrichi, qui doivent disposer des droits d'accès nécessaires pour créer la vue et l'adresse ORDS. Le nom utilisateur et le mot de passe doivent être placés entre apostrophes (') en raison de limitations dans l'interface bash.

    Lorsque la commande est exécutée, les invites suivantes s'affichent.
    Do you want to create the View and ORDS Endpoint? (y/n)
    Entrez y pour créer la vue et l'adresse. Entrez n si vous avez déjà créé la vue et l'adresse.
    Please select the language of your chaincode? (TS/GO)
    Si vous avez saisi y précédemment, entrez TS pour TypeScript ou GO pour GO.
    Do you want to generate ORDS Endpoint URL and Bearer Token? (y/n)
    Entrez y pour générer les informations d'identification d'adresse. Sinon, saisissez n.
L'erreur suivante peut apparaître.
Error: ORA-20049: Cannot alter the URL mapping while the schema is enabled. Try disabling the schema first.
Cette erreur se produit car le schéma de base de données est activé et ne peut donc pas être mis en correspondance avec l'alias différent indiqué dans le fichier .env.
Pour contourner ce comportement, procédez comme suit.
  1. Utilisez le même nom d'alias que celui utilisé précédemment ou recherchez l'alias de schéma dans les services REST de la base de données.
  2. Désactivez le schéma de base de données et réexécutez le script. Pour plus d'informations, reportez-vous à Oracle REST Data Services (ORDS) : utilisation de SQL Developer.