Oracle Database - Visualizza definizioni per CBDC all'ingrosso

È possibile utilizzare il database Rich History per recuperare la cronologia delle transazioni del conto e risolvere i saldi errati in più transazioni che si verificano nello stesso blocco.

È possibile utilizzare le API GetAccountTransactionHistoryWithFiltersFromRichHistDB, getOrgAccountTransactionHistoryWithFiltersFromRichHistDB e getAllAccountTransactionHistoryWithFiltersFromRichHistDB per recuperare la cronologia delle transazioni del conto dal database della cronologia avanzata. Quando si passano i parametri custom_endpoint e bearer_token al metodo, la cronologia delle transazioni conto viene recuperata dal database della cronologia RTF o dal database di stato. Esistono più endpoint personalizzati, come mostrato nell'elenco seguente. Per ulteriori informazioni, vedere Crea viste database Rich History.
Conti
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN
Disponibile in modalità generica e riservata.
OrgAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccount
Disponibile in modalità generica e riservata.
AllAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts
Disponibile in modalità generica. In modalità riservata, disponibile solo per i proprietari del sistema.
Per recuperare la cronologia delle transazioni dal database Rich History, è necessario eseguire Oracle Autonomous Database con Oracle REST Data Services (ORDS) e OAuth abilitati.
  1. Abilitare e configurare il database Rich History.
    Per ulteriori informazioni, vedere Abilita e configura il database della cronologia avanzata in Uso di Oracle Blockchain Platform.
  2. Abilita una cronologia completa sui canali che contengono i dati del codice concatenato che desideri scrivere nel database della cronologia completa. Per ulteriori informazioni, vedere Configurare i canali che scrivono i dati nel database Rich History in Uso di Oracle Blockchain Platform.
  3. Scaricare e installare Node.js versione 18 o successiva.
  4. Nella pagina Asset digitali in Oracle Blockchain Platform, selezionare Applicazione CBDC all'ingrosso.
  5. Fare clic su Scarica il package Definizioni viste database.
  6. Estrarre il file WholesaleCBDCViewsPackage.zip.
  7. Passare alla cartella ORDSscript e installare le dipendenze richieste eseguendo il comando seguente.
    npm install
  8. Modificare il file .env fornito con lo script per configurarlo per l'ambiente in uso.
    Gli endpoint Oracle REST Data Services utilizzano il formato generale riportato di seguito.
    <base_URL>/<user_name>/<resource_link>
    Ambiente/tipo di configurazione Variabili di ambiente/configurazione Descrizione Esempio
    DB Connection CONNECTION_STRING La stringa di connessione per il database.
    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 Nome del codice concatenato da cui recuperare i dettagli della transazione nel database della cronologia RTF. CHAINCODE_NAME="BondMarketplace"
    View Configuration INSTANCE_NAME Nome dell'istanza in cui viene distribuito il codice concatenato. INSTANCE_NAME="BondMarketplace"
    View Configuration CHANNEL_NAME Nome del canale in cui viene distribuito il codice concatenato. CHANNEL_NAME="default"
    ORDS Endpoint Setup MODULE_NAME Nome del modulo ORDS da utilizzare. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. MODULE_NAME="demotest"
    ORDS Endpoint Setup BASE_PATH Percorso di base dell'URL ORDS. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. BASE_PATH="demotest"
    ORDS Endpoint Setup PATTERN Nome del pattern dell'URL ORDS. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. PATTERN="accountTransactionDetails"
    ORDS REST Endpoint ORDS_REST_BASE_URL URL di base dell'endpoint REST ORDS del database. ORDS_REST_BASE_URL="https://g536390e55ee33f4_db_high.adg.ap-sydney-1.example.com"
    Alias Configuration ALIAS_NAME L'alias da utilizzare al posto di un nome utente nell'URL dell'endpoint REST. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. ALIAS_NAME="demotestAlias"
    ORDS Role ROLE_NAME Il ruolo ORDS assegnato all'utente. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. ROLE_NAME="demotest_role"
    ORDS Privilege PRIVILEGE_NAME Il privilegio ORDS assegnato all'utente. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. PRIVILEGE_NAME="demotest_priv"
    ORDS Privilege LABEL Etichetta per il privilegio ORDS. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. LABEL="demotest_label"
    ORDS Privilege DESCRIPTION Descrizione del privilegio ORDS. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. DESCRIPTION="demotest_description"
    OAuth Configuration CLIENT_NAME Nome client da utilizzare per l'autenticazione OAuth con l'endpoint REST ORDS. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. CLIENT_NAME="demotest_client"
    OAuth Configuration OWNER Nome del proprietario da utilizzare per l'autenticazione OAuth con l'endpoint REST ORDS. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. OWNER="demotest"
    OAuth Configuration DESCRIPTION Una descrizione della configurazione OAuth. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. DESCRIPTION="demotest_description"
    OAuth Configuration SUPPORT_EMAIL Indirizzo e-mail di supporto per la configurazione OAuth. Può trattarsi di qualsiasi valore che non sia in conflitto con gli asset esistenti nel database. SUPPORT_EMAIL="test@example.com"

    Analitica e altri nomi delle viste sono inclusi nel codice software. La vista Account è ACCOUNTS_VIEW. La vista di raccolta dati privati della transazione è TRANSACTION_PDC_VIEW. La vista transazione conto è ACCOUNT_TRANSACTION_VIEW.

  9. Solo proprietari di sistema (banche centrali): modificare il file Participant_orgs_list.yml per creare collegamenti al database tra la banca centrale e ciascuna banca partecipante. Non modificare o eliminare questo file per i nodi banca partecipanti. Se si seleziona la modalità riservata durante l'esecuzione dello script, viene richiesto il nome utente e la password del database link per ogni organizzazione partecipante elencata nel file Participant_orgs_list.yml. A differenza dei nomi utente del database, per i nomi utente del database link viene fatta distinzione tra maiuscole e minuscole.
    Il file Participant_orgs_list.yml è un array YAML che contiene i dettagli di configurazione utilizzati per creare database link tra la banca centrale e ogni banca partecipante, nel seguente formato.
    orgName
    Nome dell'istanza dell'organizzazione partecipante.
    hostName
    Il nome host o l'indirizzo IP del database server di destinazione.
    port
    La porta di rete del servizio di database.
    serviceName
    Nome o SID (System Identifier) del servizio di database.
    Il testo seguente è un file Participant_orgs_list.yml di esempio.
    - orgName: "Participating_Org1"
      hostName: "dbserver.example.com"
      port: 1521
      serviceName: "ORCLPDB1"
    - orgName: "Participating_Org2"
      hostName: "dbserver2.example.com"
      port: 1522
      serviceName: "ORCLPDB2"
  10. Eseguire lo script ORDS utilizzando il comando seguente.
    npm run start

    In caso di riservatezza, all'utente verrà richiesto di selezionare il tipo di organizzazione. Se l'utente ha optato per i proprietari del sistema, il file Participant_orgs_list.yml viene eseguito. Per un caso confidenziale, è necessario che tutte le banche partecipanti completino la configurazione ORDS prima del proprietario del sistema, altrimenti si verificherà un errore.

    Quando viene eseguito il comando, vengono visualizzate le seguenti richieste.
    Enter your DB User Name
    Immettere il nome utente per il database della cronologia avanzata. L'account deve disporre delle autorizzazioni necessarie per creare viste e endpoint ORDS.
    Enter your DB Password
    Immettere la password del database della cronologia avanzata.
    Please select a chaincode type
    Selezionare RISERVATO per i codici concatenati che utilizzano la modalità riservata. In caso contrario, selezionare WCBDC per i codici concatenati che utilizzano la modalità generica. Utilizzare i tasti freccia per spostarsi, quindi premere Invio per confermare la selezione. Se si seleziona la modalità riservata, viene richiesto di selezionare il tipo di organizzazione: PROPRIETARIO SISTEMA (che rappresenta la banca centrale) o ORDINE PARTICIPANTE (che rappresenta le banche partecipanti).

    Nota

    In modalità riservata, tutte le organizzazioni partecipanti devono eseguire questo script e completare l'impostazione ORDS prima del proprietario del sistema. Se si esegue prima lo script per il proprietario del sistema, l'esecuzione non riuscirà.
    Do you want to create the View and ORDS Endpoint? (y/n)
    Immettere y per creare la vista e l'endpoint. Immettere n se la vista e l'endpoint sono già stati creati.
    Please select the language of your chaincode? (TS/GO)
    Se è stato immesso y in precedenza, immettere TS per TypeScript o GO per Vai.
    Do you want to generate ORDS Endpoint URL and Bearer Token? (y/n)
    Immettere y per generare le credenziali dell'endpoint. Altrimenti, immettere n.
Se si elimina il file Participant_orgs_list.yml per errore, eseguire il comando seguente per rigenerare il file.
npm run refresh
Se nel sistema esiste già una vista o un database link, lo script non lo ricrea. Viene invece registrato un messaggio simile al testo seguente:
createView already exists
Lo script continua con il passo successivo. Ciò garantisce che le viste, le tabelle, i database link e altre entità di database non vengano eliminati o sovrascritti dallo script.
Inoltre, è possibile che venga visualizzato il seguente errore.
Error: ORA-20049: Cannot alter the URL mapping while the schema is enabled. Try disabling the schema first.
Questo errore si verifica perché lo schema di database è abilitato e pertanto non può essere mappato al diverso alias specificato nel file .env.
Per ovviare a questo comportamento, procedere come segue.
  1. Utilizzare lo stesso nome alias utilizzato in precedenza oppure verificare l'alias dello schema nei servizi REST del database.
  2. Disabilitare lo schema di database ed eseguire di nuovo lo script. Per ulteriori informazioni, vedere Oracle REST Data Services (ORDS): Uso di SQL Developer.