Esegue lo script ORDS per l'applicazione CBDC all'ingrosso

Dopo aver creato l'istanza e distribuito l'applicazione, è possibile eseguire lo script ORDS.

È necessario soddisfare i prerequisiti indicati di seguito.
  • Node.js versione 20.19 o successiva, 22.13 o successiva o 23.5 o successiva.
  • È necessario disporre del file .zip dello script ORDS, scaricabile dalla console del servizio.

Non inserire segreti di produzione nel controllo dell'origine. Memorizza password del database, file wallet, segreti client OAuth e token bearer in un sistema di gestione dei segreti approvato. Il file .env di cui è stato eseguito il commit dello script è solo un modello segnaposto.

  1. Estrarre il file .zip dello script ORDS in una directory di lavoro.
  2. Aprire un terminale nella directory ORDSscript.
  3. Eseguire i comandi seguenti per verificare che la versione di Node.js nel sistema sia supportata.
    node --version
    npm install
  4. Configurare il file .env sostituendo i valori segnaposto nel modello fornito. Non aggiungere password di database a questo file; l'interfaccia della riga di comando ne richiede l'esecuzione in modo interattivo.
    # Common ORDS configuration
    CONNECTION_STRING="<Oracle connection string or TNS service alias>"
    VIEW_PREFIX="<unique deployment namespace>"
    MODULE_NAME="<unique ORDS module name>"
    BASE_PATH="<unique/ords/base/path/>"
    ITEMS_PER_PAGE="100"
    ORDS_REST_BASE_URL="https://<ords-host>"
    ALIAS_NAME="<REST-enabled schema alias>"
    ROLE_NAME="<unique ORDS role>"
    PRIVILEGE_NAME="<unique ORDS privilege>"
    LABEL="<privilege label>"
    DESCRIPTION="<deployment description>"
    CLIENT_NAME="<OAuth client name>"
    OWNER="<OAuth client owner>"
    SUPPORT_EMAIL="<support email>"
    
    # Besu WCBDC configuration
    BESU_TABLE_PREFIX="<exact prefix before _more, _store_state and _store_hist>"
    BESU_TOKEN_CONTRACT="0x<deployed WCBDC token proxy address>"
    BESU_ACCOUNT_CONTRACT="0x<deployed Account proxy address>"
    CONNECTION_STRING
    Se il parametro CONNECTION_STRING è un alias TNS, estrarre il wallet e configurare l'ambiente client Oracle in modo che sia possibile trovare il file tnsnames.ora. Il file .zip del wallet compresso da solo non è sufficiente.
    ALIAS_NAME
    Alias dello schema Oracle abilitato per REST utilizzato nell'URL ORDS pubblico e nell'URL del token.
    BESU_ACCOUNT_CONTRACT
    Indirizzo del contratto proxy del conto distribuito.
    BESU_TABLE_PREFIX
    Prefisso della tabella di cronologia RTF esatto; determina le tabelle _more, _store_state e _store_hist di origine.
    BESU_TOKEN_CONTRACT
    Indirizzo contratto proxy token CBDC all'ingrosso distribuito.
    MODULE_NAME e BASE_PATH
    Questi parametri definiscono l'identità e il percorso URL del modulo ORDS. Mantieni specifiche e univoche le implementazioni.
    PATTERN, CHAINCODE_NAME, INSTANCE_NAME, CHANNEL_NAME
    Questi parametri vengono utilizzati solo nella versione Hyperledger Fabric dell'applicazione CBDC all'ingrosso. Non si applicano alla versione Besu.
    VIEW_PREFIX
    Spazio di nomi univoco per le viste analitiche operative e facoltative. Utilizzare un prefisso diverso per ogni distribuzione che condivide uno schema Oracle.
  5. Per eseguire lo script, immettere il comando seguente.
    npm run start
    1. Immettere il nome utente e la password del database Oracle.
    2. Seleziona Besu come piattaforma blockchain.
    3. Selezionare WCBDC come tipo di applicazione.
    4. Se un'esecuzione precedente era incompleta, esaminare il prompt di rollback prima di scegliere di ripristinare gli oggetti.
    5. Selezionare Sì per creare gli endpoint REST ORDS.
    6. Selezionare le viste di analitica solo quando la distribuzione richiede l'output di analitica.
    7. Selezionare Sì per generare un client OAuth quando è richiesto un nuovo client per questa distribuzione.
  6. Se sono stati selezionati l'endpoint e la creazione OAuth, conservare l'output generato in un'area di memorizzazione segreta approvata. L'output contiene la mappa endpoint richiamabile, l'ID client OAuth, il segreto client OAuth e una risposta bearer-token di breve durata. Non copiare il segreto client o il token bearer in alcun sistema di controllo di origine, file, wiki o software di gestione dei progetti che non supporta la gestione dei segreti approvata. Il testo seguente mostra l'output di esempio.
    {
      "ORDSEndpoint": "<generated endpoint URL or endpoint map>",
      "clientId": "<OAuth client ID>",
      "clientSecret": "<OAuth client secret>",
      "bearerToken": {
        "access_token": "<short-lived access token>",
        "token_type": "bearer",
        "expires_in": 3600
      }
    }
  7. Se è stata selezionata la generazione del client OAuth, conservare l'ID client e il segreto client riportati in un'area di memorizzazione segreta approvata e utilizzarli per chiamare un endpoint per verificare la funzione di sistema. Il testo seguente mostra la forma di una richiesta di token
    curl --request POST \
      "https://<ords-host>/ords/<ALIAS_NAME>/oauth/token" \
      --user "<client-id>:<client-secret>" \
      --header "Content-Type: application/x-www-form-urlencoded" \
      --data "grant_type=client_credentials"
    Gli URL degli endpoint utilizzano il formato seguente.
    https://<ords-host>/ords/<ALIAS_NAME>/<BASE_PATH>/<route>
    Il comando seguente mostra un esempio di test di verifica.
    curl --location \
      "https://<ords-host>/ords/<ALIAS_NAME>/<BASE_PATH>/getAllCBDCAccounts?token_id=<TOKEN_ID>" \
      --header "Authorization: Bearer <access-token>" \
      --header "Accept: application/json"
  8. Verificare che lo script sia stato eseguito correttamente eseguendo i seguenti controlli.
    Profilo Blockchain Platform Manager
    Il profilo di cronologia avanzata di Oracle AI Database esiste ed è selezionato per l'istanza.
    Tabelle cronologia avanzate
    Il file BESU_TABLE_PREFIX configurato viene risolto nelle tabelle _more, _store_state, and _store_hist.
    Dati indicizzati
    Almeno una transazione CBDC all'ingrosso rappresentativa è visualizzata nei dati della cronologia avanzata.
    Viste
    Tutte le viste operative esistono in VIEW_PREFIX configurato.
    Modulo ORDS
    Il modulo configurato viene pubblicato all'indirizzo BASE_PATH previsto.
    OAuth
    Una richiesta di credenziali client restituisce un token di accesso.
    API
    Una richiesta autenticata valida restituisce HTTP 200. Un elenco items vuoto è accettabile quando non esistono dati libro contabile corrispondenti.
    Isolamento
    I nomi di viste, modulo, ruolo, privilegio, client e alias sono univoci per le distribuzioni che condividono un database Oracle.
    Le query SQL riportate di seguito sono utili per la convalida.
    SELECT view_name
    FROM user_views
    WHERE view_name LIKE UPPER('<VIEW_PREFIX>') || '_%'
    ORDER BY view_name;
    
    SELECT name, uri_prefix, items_per_page, status
    FROM user_ords_modules
    WHERE name = '<MODULE_NAME>';