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
.zipdello 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.
- Estrarre il file
.zipdello script ORDS in una directory di lavoro. - Aprire un terminale nella directory
ORDSscript. - Eseguire i comandi seguenti per verificare che la versione di Node.js nel sistema sia supportata.
node --version npm install - Configurare il file
.envsostituendo 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 filetnsnames.ora. Il file.zipdel 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_statee_store_histdi origine. BESU_TOKEN_CONTRACT- Indirizzo contratto proxy token CBDC all'ingrosso distribuito.
MODULE_NAMEeBASE_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.
- Per eseguire lo script, immettere il comando seguente.
npm run start- Immettere il nome utente e la password del database Oracle.
- Seleziona Besu come piattaforma blockchain.
- Selezionare WCBDC come tipo di applicazione.
- Se un'esecuzione precedente era incompleta, esaminare il prompt di rollback prima di scegliere di ripristinare gli oggetti.
- Selezionare Sì per creare gli endpoint REST ORDS.
- Selezionare le viste di analitica solo quando la distribuzione richiede l'output di analitica.
- Selezionare Sì per generare un client OAuth quando è richiesto un nuovo client per questa distribuzione.
- 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 } } - 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
Gli URL degli endpoint utilizzano il formato seguente.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"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" - 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_PREFIXconfigurato 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_PREFIXconfigurato. - Modulo ORDS
- Il modulo configurato viene pubblicato all'indirizzo
BASE_PATHprevisto. - OAuth
- Una richiesta di credenziali client restituisce un token di accesso.
- API
- Una richiesta autenticata valida restituisce HTTP 200. Un elenco
itemsvuoto è 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.
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>';