Oracle Database - Voir les définitions pour CBDC de gros

Vous pouvez utiliser la base de données riche historique 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 points d'extrémité personnalisés, comme indiqué dans la liste suivante. Pour plus d'informations, voir Créer des vues de base de données avec historique enrichi.
Comptes
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN
Disponible en mode générique et en mode confidentiel.
OrgAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccount
Disponible en mode générique et en mode confidentiel.
AllAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts
Disponible en mode générique. En mode confidentiel, disponible uniquement pour les responsables du système.
Pour extraire l'historique des transactions de la base de données historique enrichie, 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 historique enrichie.
    Pour plus d'informations, voir Activer et configurer la base de données d'historique enrichi dans Utilisation d'Oracle Blockchain Platform.
  2. Activez l'historique enrichi sur les canaux qui contiennent les données de code de chaîne à écrire dans la base de données de l'historique enrichi. Pour plus d'informations, voir Configurer les 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. Dans la page Biens numériques d'Oracle Blockchain Platform, sélectionnez Application CBDC de gros.
  5. Cliquez sur Télécharger l'ensemble Définitions de vue de base de données.
  6. Extrayez le fichier WholesaleCBDCViewsPackage.zip.
  7. Naviguez jusqu'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 pour le configurer pour votre environnement.
    Les points d'extrémité Oracle REST Data Services utilisent le format général suivant.
    <base_URL>/<user_name>/<resource_link>
    Environnement/Type 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 de chaîne à partir duquel extraire les détails des transactions de la base de données d'historique enrichi. CHAINCODE_NAME="BondMarketplace"
    View Configuration INSTANCE_NAME Nom de l'instance où le code de chaîne est déployé. INSTANCE_NAME="BondMarketplace"
    View Configuration CHANNEL_NAME Nom du canal où le code de chaîne est déployé. CHANNEL_NAME="default"
    ORDS Endpoint Setup MODULE_NAME Nom du module ORDS à utiliser. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de 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 toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. BASE_PATH="demotest"
    ORDS Endpoint Setup PATTERN Nom du modèle de l'URL ORDS. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. PATTERN="accountTransactionDetails"
    ORDS REST Endpoint ORDS_REST_BASE_URL URL de base du point d'extrémité 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 du point d'extrémité REST. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. ALIAS_NAME="demotestAlias"
    ORDS Role ROLE_NAME Rôle ORDS affecté à l'utilisateur. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. ROLE_NAME="demotest_role"
    ORDS Privilege PRIVILEGE_NAME Privilège ORDS affecté à l'utilisateur. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. PRIVILEGE_NAME="demotest_priv"
    ORDS Privilege LABEL Étiquette du privilège ORDS. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. LABEL="demotest_label"
    ORDS Privilege DESCRIPTION Description du privilège ORDS. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. DESCRIPTION="demotest_description"
    OAuth Configuration CLIENT_NAME Nom du client à utiliser pour l'authentification OAuth avec le point d'extrémité REST ORDS. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. CLIENT_NAME="demotest_client"
    OAuth Configuration OWNER Nom du responsable à utiliser pour l'authentification OAuth avec le point d'extrémité REST ORDS. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. OWNER="demotest"
    OAuth Configuration DESCRIPTION Description de la configuration OAuth. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. DESCRIPTION="demotest_description"
    OAuth Configuration SUPPORT_EMAIL Adresse de courriel du soutien pour la configuration OAuth. Il peut s'agir de toute valeur qui n'est pas en conflit avec les ressources existantes de la base de données. SUPPORT_EMAIL="test@example.com"

    Les noms de vue Analytics et autres 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 de transaction de compte est ACCOUNT_TRANSACTION_VIEW.

  9. Propriétaires du 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 pas ou ne supprimez pas ce fichier pour les noeuds de banque des participants. Si vous sélectionnez le mode confidentiel lors de l'exécution du script, vous êtes invité à entrer le nom d'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 d'utilisateur de base de données, les noms d'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, dans le 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 du service de base de données ou identificateur de 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

    En cas de confidentialité, l'utilisateur vous demandera de sélectionner votre type d'organisation. Si l'utilisateur a opté pour les responsables du système, le fichier Participant_orgs_list.yml apparaît dans l'action. Veuillez mentionner pour les cas confidentiels, toutes les banques participantes doivent terminer leur configuration ORDS avant le responsable du système. Sinon, cela entraînera un échec.

    Lorsque la commande s'exécute, les invites suivantes s'affichent.
    Enter your DB User Name
    Entrez le nom d'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 points d'extrémité 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 CONFIDENTIEL pour les codes de chaîne qui utilisent le mode confidentiel. Sinon, sélectionner WCBDC pour les codes de chaîne qui utilisent le mode générique. Utilisez les flèches 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 votre type d'organisation : SYSTEM OWNER (qui représente la banque centrale) ou PARTICIPATING ORG (qui représente les banques participantes).

    Note :

    En mode confidentiel, toutes les organisations participantes doivent exécuter ce script et terminer la configuration ORDS avant le responsable 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 le point d'extrémité. Entrez n si vous avez déjà créé la vue et le point d'extrémité.
    Please select the language of your chaincode? (TS/GO)
    Si vous avez entré 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 données d'identification du point d'extrémité. Sinon, entrez 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 un lien de vue ou 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 enregistré :
createView already exists
Le script se poursuit à l'étape suivante. Cela garantit que les vues, tables, liens de base de données et autres entités de base de données ne sont pas supprimés ou remplacés par le script.
En outre, vous pouvez voir l'erreur suivante.
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 mappé à l'alias différent spécifié dans le fichier .env.
Pour contourner ce comportement, effectuez les étapes suivantes.
  1. Utilisez le même nom d'alias que celui utilisé précédemment ou vérifiez 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 exécutez de nouveau le script. Pour plus d'informations, voir Oracle REST Data Services (ORDS) : Utilisation de SQL Developer.