Configurare Oracle Blockchain Platform per l'applicazione di esempio CBDC all'ingrosso

Dopo aver creato tutte le istanze richieste di Oracle Blockchain Platform e i relativi prodotti prerequisiti, dovrai configurare gli utenti e i ruoli, aggiungere qualsiasi organizzazione partecipante all'organizzazione fondatrice e abilitare il database della cronologia completa.

Configurare i gruppi IDCS nelle istanze di Oracle Blockchain Platform

Per ulteriori informazioni sui ruoli incorporati di Oracle Blockchain Platform e su come assegnare gli utenti, vedere Impostazione di utenti e ruoli applicazione

Per ulteriori informazioni sui ruoli applicazione campione CBDC all'ingrosso, vedere Workflow applicazione CBDC all'ingrosso.

In Oracle Blockchain Platform è necessario implementare le assegnazioni dei ruoli applicazione riportate di seguito.

  • Gruppi di proprietari di sistema: assegnare il singolo gruppo IDCS proprietario di sistema combinato (contenente tutte le figure dei proprietari di sistema) al ruolo applicazione REST_CLIENT dell'istanza Oracle Blockchain Platform Digital Assets Edition proprietaria del sistema. Non assegnare singoli gruppi specifici di persone direttamente all'istanza di Oracle Blockchain Platform Digital Assets Edition.
  • Gruppi di organizzazioni partecipanti: per ogni organizzazione partecipante, assegnare il singolo gruppo IDCS dell'organizzazione partecipante combinato (contenente tutti i gruppi specifici delle persone per tale organizzazione) al ruolo applicazione REST_CLIENT della rispettiva istanza Digital Assets Edition di Oracle Blockchain Platform.
  • Ruoli amministrativi: assegnare i gruppi amministrativi pertinenti, ad esempio System_Admins e Org1_Admins, al ruolo applicazione ADMIN della rispettiva istanza di Oracle Blockchain Platform Digital Assets Edition.

Questa configurazione garantisce che sia il proprietario del sistema che i gruppi di organizzazioni partecipanti dispongano dell'accesso necessario tramite il ruolo REST_CLIENT, mentre i privilegi amministrativi vengono gestiti in modo appropriato tramite il ruolo ADMIN.

Attenersi alla procedura riportata di seguito per assegnare i gruppi ai ruoli applicazione.

  1. Accedi al tuo account Oracle Cloud Infrastructure.
  2. Nella console fare clic sul menu Navigazione nell'angolo superiore sinistro.
  3. In Identità, selezionare Domini.
  4. Nella pagina Domini fare clic su Oracle Identity Cloud Service.
  5. Nel menu di navigazione di Oracle Identity Cloud Service selezionare Oracle Cloud Services. Individuare l'istanza di Oracle Blockchain Platform per la quale si desidera assegnare ruoli di gruppo. Aprire la pagina Dettagli dell'istanza.
  6. Andare alla pagina Ruoli applicazione per visualizzare i ruoli applicazione di Oracle Identity Cloud Service elencati nel Navigator Risorse.
  7. Selezionare il ruolo che si desidera assegnare ed espandere il ruolo. Fare clic sul menu Altro per il ruolo e selezionare Assegna gruppi.
  8. Nella finestra di dialogo Assegna gruppi, selezionare i gruppi che si desidera assegnare al ruolo e fare clic su Assegna.

Recupera ClientId e ClientSecret

Oracle Blockchain Platform ClientID e ClientSecret verranno utilizzati da Visual Builder. Sarà necessario aggiornare questi parametri in Visual Builder in un secondo momento, come descritto in Configura backend di Visual Builder.

Completare i passi riportati di seguito per recuperare l'ID client e il segreto client per un'istanza di Oracle Blockchain Platform.

  1. Accedi al tuo account Oracle Cloud Infrastructure. Assicurarsi di disporre di privilegi amministrativi sufficienti per gestire le impostazioni OAuth.
  2. Nella console fare clic sul menu Navigazione nell'angolo superiore sinistro.
  3. In Identità, selezionare Domini.
  4. Nella pagina Domini fare clic su Oracle Identity Cloud Service.
  5. Nel menu di navigazione di Oracle Identity Cloud Service selezionare Oracle Cloud Services. Individuare l'istanza di Oracle Blockchain Platform per la quale si desidera recuperare l'ID client e il segreto client. Aprire la pagina Dettagli dell'istanza.
  6. Quando si apre la pagina dei dettagli dell'istanza, la scheda predefinita visualizzata sarà la scheda Configurazione OAuth. Questa scheda contiene informazioni essenziali relative alle impostazioni OAuth per l'istanza di Oracle Blockchain Platform.

    I campi con etichetta ID client e Segreto client sono disponibili nella sezione Informazioni generali. Queste credenziali vengono utilizzate per autenticare le richieste API in Oracle Blockchain Platform.

Configurazione più organizzazioni

Se stai creando una complessa rete Oracle Blockchain Platform con più organizzazioni, aggiungi i partecipanti al fondatore. Una panoramica di questo processo è disponibile nel manuale Oracle Blockchain Platform Admin Guide: Aggiungere le organizzazioni partecipanti a OBCS alla rete.

Configurare il database Rich History per Oracle Blockchain Platform

Per ulteriori informazioni sulla configurazione e l'utilizzo del database Rich History, vedere Creare il database Rich History.

Prima di completare questi passi, è necessario aver creato un'istanza di Autonomous Database come descritto in Provisioning di Autonomous Database per abilitare il database di cronologia avanzata per Oracle Blockchain Platform.

In modalità generica, configurare la singola istanza di Oracle Autonomous Database per l'istanza del proprietario del sistema di Oracle Blockchain Platform. In modalità riservata, è necessario configurare ogni organizzazione partecipante e il proprietario del sistema con istanze separate di Oracle Autonomous Database.

  1. Aprire la console di Oracle Blockchain Platform per l'istanza di rete.
  2. Fare clic sul menu Altre azioni nell'angolo in alto a destra e selezionare Configura cronologia avanzata.
  3. Specificare una connessione al database Oracle fornendo la stringa di connessione e le credenziali per accedere e scrivere nel database Oracle. Tenere presente che le credenziali fornite sono le credenziali del database e che Oracle Blockchain Platform non le gestisce.
  4. Fare clic su Salva per configurare il database Rich History.

Crea iscrizioni

È necessario creare manualmente le iscrizioni per gli utenti nei gruppi System_Admins e Org_Admins.

Le iscrizioni al proxy REST di Oracle Blockchain Platform forniscono un meccanismo per gli utenti di interagire con la blockchain senza richiedere un certificato di iscrizione, semplificando le chiamate API mappando le identità dell'applicazione ai membri della blockchain. Per avviare qualsiasi chiamata al codice concatenato, le iscrizioni devono essere stabilite in Oracle Blockchain Platform.

L'applicazione CBDC all'ingrosso gestisce la creazione di iscrizioni per gli utenti durante l'impostazione dell'account; tuttavia, quando un utente amministratore di sistema esegue il login per la prima volta, non esiste alcuna iscrizione. Di conseguenza, se questo utente tenta di creare un account, la chiamata RestProxy non riuscirà. Pertanto, è essenziale creare un'iscrizione per il gruppo System_Admins.

Quando si impostano i clienti, le iscrizioni vengono create per le rispettive organizzazioni. Ad esempio, quando vengono stabiliti i conti per il proprietario del sistema, verranno generate le iscrizioni corrispondenti. Tuttavia, se un account organizzazione partecipante viene creato tramite la pagina Amministratore di sistema, le iscrizioni non verranno create automaticamente per tali organizzazioni. In questo workflow CBDC all'ingrosso è necessario impostare gli account dell'amministratore dell'organizzazione nella pagina dell'amministratore di sistema. Pertanto, è necessario creare manualmente le iscrizioni per il gruppo di amministratori dell'organizzazione poiché queste iscrizioni non verranno generate automaticamente a causa della struttura organizzativa distinta tra la banca centrale e gli istituti finanziari.

Per informazioni complete su come creare le iscrizioni, vedere Aggiungi iscrizioni a un proxy REST.

Recupera RestproxyId

Il valore RestproxyId verrà utilizzato da Visual Builder. Sarà necessario eseguire l'aggiornamento in Visual Builder in un secondo momento come descritto in Configura backend di Visual Builder.

Per recuperare RestProxyId per un'istanza di Oracle Blockchain Platform, è necessario chiamare le API della console di Oracle Blockchain Platform utilizzando un account utente amministrativo. L'autenticazione può essere eseguita utilizzando l'autenticazione di base o OAuth 2.0.

Metodo di autenticazione

Per OAuth 2.0, fare riferimento alla documentazione disponibile all'indirizzo OAuth 2.0 Access Token Based Authentication per implementare il flusso di autenticazione necessario.

Endpoint API per il recupero di RestProxyId

Utilizzare l'API della console di Oracle Blockchain Platform per ottenere RestProxyId inviando una richiesta all'endpoint seguente:

GET <oracleblockchainplatform_url>/console/admin/api/v2/nodes

Questa chiamata API restituirà una risposta contenente i dettagli sui proxy REST configurati nell'istanza.

Per ulteriori dettagli sull'interfaccia API della console, consultare la documentazione seguente: Ottieni lista di nodi.

Dettagli risposta

Nella risposta, individuare la sezione con l'etichetta RESTProxies, dove si trova il corrispondente RestProxyId. La struttura della risposta includerà vari attributi associati a ciascun nodo proxy REST.

"RESTProxies": [
        {
            "status": "up",
            "extInfo": [],
            "displayName": "restproxy",
            "RESTProxyId": "48021a2c-e62b-40cd-b7ca-71dda883521d-restproxy",
            "url": "https://bank3-oabcs1-hyd.blockchain.ocp.oraclecloud.com:7443/restproxy",
            "mspId": "Bank3"
        }
    ]

Distribuire il codice concatenato per l'applicazione di esempio CBDC all'ingrosso

È ora possibile creare un canale e distribuire il codice concatenato dell'applicazione di esempio.

  1. Creare un canale.
    1. Definisci un nuovo canale con i partecipanti necessari in base alle tue esigenze organizzative.
    2. Durante il processo di creazione del canale, assicurarsi che l'opzione Abilita cronologia avanzata sia selezionata. Questa opzione attiva la funzione Rich History configurata in precedenza.
    3. Solo in modalità riservata: per le raccolte di dati private, immettere un asterisco (*) per consentire l'accesso a tutte le raccolte di dati private.
      Se non si completa questo passo, i dati restituiti dalla raccolta dati privata non saranno accurati.
    4. Solo modalità riservata: ripetere i due passaggi precedenti (abilitando la cronologia avanzata e l'accesso alle raccolte di dati private sul canale creato in precedenza) per tutte le altre organizzazioni partecipanti nella rete.
  2. Distribuire il codice concatenato.
    • Modalità generica: distribuire il codice concatenato CBDC all'ingrosso scaricando il package del codice concatenato CBDC all'ingrosso e distribuendo il file di archivio al suo interno (WholesaleCBDC.zip) nel nuovo canale. Il nome del pacchetto è Wholesale CBDC.
    • Modalità riservata: distribuire il codice concatenato CBDC all'ingrosso riservato scaricando il pacchetto di codici concatenati CBDC all'ingrosso riservato e distribuendo il file di archivio al suo interno (WholesaleCBDC-Confidential.zip) nel nuovo canale. Il nome del package è WholesaleCBDCConfidential.
    Per informazioni dettagliate sulla distribuzione dei codici concatenati, vedere Workflow tipico per la distribuzione dei codici concatenati.
  3. Chiamare l'API init utilizzando la raccolta all'ingrosso CBDC Postman fornita nel pacchetto di codici concatenati CBDC all'ingrosso o la raccolta riservata all'ingrosso CBDC Postman nel pacchetto di codici concatenati CBDC all'ingrosso riservato, a seconda dei casi. Questo passo completa il processo di inizializzazione, assicurando che il codice concatenato sia pronto per l'uso.
  4. Controllare lo stato della replica.
    1. Andare alla scheda Canali.
    2. Individuare il canale e fare clic sul menu Altre azioni sul lato destro della voce di canale.
    3. Selezionare Stato cronologia ricca per visualizzare lo stato della replica.
      • Se lo stato è REPLICATING, i dati del canale vengono replicati attivamente nel rich history database.
      • Se lo stato della replica è USER_DISABLED, completare le azioni riportate di seguito.
        1. Riavviare il peer: riavviare il nodo peer associato al canale.
        2. Avvia una transazione: attiva qualsiasi transazione sul canale per avviare la replica dei dati.
        3. Ricontrollare lo stato della replica per confermare che i dati si stanno replicando nel database Rich History.
Prendere nota del nome del canale e del codice concatenato; sarà necessario configurare Visual Builder con questi per utilizzare l'applicazione di esempio.

Crea viste database Rich History

Dopo aver creato il database della cronologia avanzata per l'istanza di Oracle Blockchain Platform, è possibile eseguire lo script di creazione della vista del database per creare le viste nel database della cronologia avanzata e generare l'endpoint ORDS.

Lo script ORDS (Oracle REST Data Services) è un'applicazione Node.js scritta in TypeScript, progettata per esporre gli endpoint ORDS per il recupero dei dettagli delle transazioni dell'account dal database rich history. Crea un endpoint RESTful che consente agli utenti di recuperare i dati delle transazioni del codice concatenato (sia per i codici concatenati TypeScript che Go) dal database della cronologia avanzata. Fornisce inoltre credenziali essenziali quali l'endpoint ORDS, clientId, clientSecret e il token bearer per autenticare e accedere all'endpoint.
  1. Scaricare lo script di creazione della vista del database.
    1. Aprire la console di Oracle Blockchain Platform.
    2. Andare alla pagina Asset digitali.
    3. Nella barra laterale sinistra, vai all'applicazione Wholesale CBDC.
    4. Scaricare lo script dall'area Definizioni della vista di Oracle Database per WholesaleCBDC.
  2. Dopo aver scaricato lo script, fare riferimento a Oracle Database View Definitions for Wholesale CBDC per i dettagli su come eseguirlo.
  3. Lo script restituisce l'endpoint ORDS, l'ID client, il segreto client e il token bearer.
    • In modalità generica, tutte le organizzazioni utilizzano una singola configurazione endpoint ORDS. Lo script restituisce gli endpoint per i conti in tre ambiti: singoli conti, conti a livello di organizzazione e tutti i conti.
      {
        ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
       {
        "ORDSEndpoint": {
          "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN",
          "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts",
          "AllAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts"
        },
        clientId: '<clientId>',
        clientSecret: '<clientSecret>',
        bearerToken: {
          access_token: '<BearerToken>',
          token_type: 'bearer',
          expires_in: 3600
        }
      }
    • In modalità riservata, ogni organizzazione, incluso il proprietario del sistema, dispone della propria configurazione ORDS. Gli endpoint del proprietario del sistema includono l'accesso a tutti gli account. Le organizzazioni partecipanti hanno accesso solo ai propri account a livello di organizzazione.
      Proprietario del sistema:
      {
        ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
       {
        "ORDSEndpoint": {
          "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN",
          "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts",
          "AllAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts"
        },
        clientId: '<clientId>',
        clientSecret: '<clientSecret>',
        bearerToken: {
          access_token: '<BearerToken>',
          token_type: 'bearer',
          expires_in: 3600
        }
      }
      Organizzazione partecipante:
      {
        ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
       {
        "ORDSEndpoint": {
          "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN",
          "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts"
        },
        clientId: '<clientId>',
        clientSecret: '<clientSecret>',
        bearerToken: {
          access_token: '<BearerToken>',
          token_type: 'bearer',
          expires_in: 3600
        }
      }
L'endpoint ORDS per l'accesso ai servizi RESTful segue questa struttura:
ORDS_REST_BASE_URL/ords/ALIAS_NAME/BASE_PATH/PATTERN
  • ORDS_REST_BASE_URL: l'URL di base del servizio ORDS.
  • ALIAS_NAME: il database o l'alias di schema configurato in ORDS.
  • BASE_PATH: il percorso di base per i servizi RESTful.
  • PATTERN: PATTERN di endpoint specifico per il servizio RESTful.
Per generare un token bearer per l'autenticazione, utilizzare l'endpoint del token OAuth2:
ORDS_REST_BASE_URL/ords/ALIAS_NAME/oauth/token
Per recuperare i dati dal database della cronologia avanzata, è necessario aggiornare i parametri riportati di seguito relativi a ORDS nel backend di Visual Builder. Questa operazione verrà completata in un secondo momento in Configura backend di Visual Builder.
  • clientId
  • clientSecret
  • Endpoint ORDS (solo endpoint Accounts; gli endpoint OrgAccounts e AllAccounts vengono derivati internamente)
  • OAuth URL di base: ORDS_REST_BASE_URL/ords/<userName|aliasName>