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 les API GetAccountTransactionHistoryWithFiltersFromRichHistDB, getOrgAccountTransactionHistoryWithFiltersFromRichHistDB et getAllAccountTransactionHistoryWithFiltersFromRichHistDB 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. Il existe plusieurs adresses personnalisées, comme indiqué dans la liste suivante. Pour plus d'informations, reportez-vous à Création de vues de base de données à historique enrichi.
Comptes
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN
Disponible en mode générique et confidentiel.
OrgAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccount
Disponible en mode générique et confidentiel.
AllAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts
Disponible en mode générique. En mode confidentiel, disponible uniquement pour les propriétaires du système.
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 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 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 analyses et les autres noms de vue sont inclus dans le code logiciel. La vue des comptes est ACCOUNTS_VIEW. La vue de collecte de données privée de transaction est TRANSACTION_PDC_VIEW. La vue des transactions de compte est ACCOUNT_TRANSACTION_VIEW.

  9. Propriétaires système (banques centrales) uniquement : modifiez le fichier Participant_orgs_list.yml pour créer des liens de base de données entre la banque centrale et chaque banque participante. Ne modifiez ni ne supprimez ce fichier pour les noeuds bancaires des participants. Si vous sélectionnez le mode confidentiel lors de l'exécution du script, vous êtes invité à saisir le nom utilisateur et le mot de passe du lien de base de données pour chaque organisation participante répertoriée dans le fichier Participant_orgs_list.yml. Contrairement aux noms utilisateur de base de données, les noms utilisateur de lien de base de données sont sensibles à la casse.
    Le fichier Participant_orgs_list.yml est un tableau YAML qui contient les détails de configuration utilisés pour créer des liens de base de données entre la banque centrale et chaque banque participante, au format suivant.
    orgName
    Nom d'instance de l'organisation du participant.
    hostName
    Nom d'hôte ou adresse IP du serveur de base de données cible.
    port
    Port réseau du service de base de données.
    serviceName
    Nom de service de base de données ou identificateur système (SID).
    Le texte suivant est un exemple de fichier Participant_orgs_list.yml.
    - orgName: "Participating_Org1"
      hostName: "dbserver.example.com"
      port: 1521
      serviceName: "ORCLPDB1"
    - orgName: "Participating_Org2"
      hostName: "dbserver2.example.com"
      port: 1522
      serviceName: "ORCLPDB2"
  10. Exécutez le script ORDS à l'aide de la commande suivante.
    npm run start

    Dans le cas confidentiel, l'utilisateur sera invité à sélectionner votre type d'organisation. Si l'utilisateur a choisi les propriétaires du système, le fichier Participant_orgs_list.yml intervient dans l'action. Pour les cas confidentiels, toute la banque du participant doit terminer sa configuration ORDS avant le propriétaire du système. Sinon, cela entraînera un échec.

    Lorsque la commande est exécutée, les invites suivantes s'affichent.
    Enter your DB User Name
    Entrez le nom utilisateur de la base de données d'historique enrichi. Le compte doit disposer des autorisations nécessaires pour créer des vues et des adresses ORDS.
    Enter your DB Password
    Entrez le mot de passe pour la base de données d'historique enrichi.
    Please select a chaincode type
    Sélectionnez CONFIDENTIAL pour les codes chaîne qui utilisent le mode confidentiel. Sinon, sélectionnez WCBDC pour les codes chaîne qui utilisent le mode générique. Utilisez les touches fléchées pour naviguer, puis appuyez sur la touche Entrée pour confirmer votre sélection. Si vous sélectionnez le mode confidentiel, vous êtes invité à sélectionner le type d'organisation : SYSTEM OWNER (qui représente la banque centrale) ou PARTICIPATING ORG (qui représente les banques participantes).

    Remarques :

    En mode confidentiel, toutes les organisations participantes doivent exécuter ce script et terminer la configuration ORDS avant le propriétaire du système. Si vous exécutez d'abord le script pour le propriétaire du système, celui-ci échoue.
    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.
Si vous supprimez le fichier Participant_orgs_list.yml par erreur, exécutez la commande suivante pour régénérer le fichier.
npm run refresh
Si une vue ou un lien de base de données existe déjà dans le système, le script ne le recrée pas. Au lieu de cela, un message similaire au texte suivant est consigné :
createView already exists
Le script passe à l'étape suivante. Cela garantit que les vues, les tables, les liens de base de données et les autres entités de base de données ne sont pas supprimés ou remplacés par le script.
En outre, l'erreur suivante peut s'afficher.
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.