Crea il database Rich History
Questo argomento contiene informazioni utili per specificare una connessione a Oracle Database e scegliere i canali per creare il database della cronologia avanzata. Utilizzerai questo database per creare report di analisi e visualizzazioni delle attività del libro contabile.
Cos'è il Rich History Database?
Il ricco database cronologico è esterno a Oracle Blockchain Platform e contiene dati sulle transazioni del libro contabile blockchain nei canali selezionati. Utilizzare questo database per creare report di analisi e visualizzazione sulle attività del libro contabile.
Ad esempio, utilizzando il ricco database della cronologia, è possibile creare analytics per apprendere il saldo medio di tutti i clienti della banca in un determinato intervallo di tempo o il tempo necessario per spedire la merce da un grossista a un retailer.
Internamente, Oracle Blockchain Platform utilizza il database della cronologia di Hyperledger Fabric per gestire il libro contabile e presentare le informazioni sulle transazioni del libro contabile nella console. Solo i codici concatenati possono accedere a questo database della cronologia e non è possibile esporre il database della cronologia di Hyperledger Fabric come origine dati per le query analitiche. Il rich history database utilizza una copia esterna di Oracle Database e contiene molti dettagli su ogni transazione di cui è stato eseguito il commit su un canale. Questo livello di raccolta dei dati rende il ricco database di cronologia un'ottima fonte di dati per gli analytics. Per informazioni sui dati raccolti dal database della cronologia avanzata, vedere Tabelle e colonne del database della cronologia ricca.
Puoi utilizzare solo un database come Oracle Autonomous AI Lakehouse o Oracle Base Database Service con Oracle Cloud Infrastructure per creare il tuo ricco database di cronologia. Utilizzare la console di Oracle Blockchain Platform per fornire la stringa di connessione e le credenziali per accedere e scrivere nel database. Si noti che le credenziali fornite sono le credenziali del database e Oracle Blockchain Platform non le gestisce. Dopo aver creato la connessione, verranno selezionati i canali che contengono i dati del libro contabile che si desidera includere nel database della cronologia avanzata. Vedere Abilitazione e configurazione del database Rich History.
È possibile utilizzare tabelle standard o tabelle blockchain per memorizzare il database della cronologia avanzata. Le tabelle blockchain sono tabelle di sola aggiunta a prova di manomissione, che possono essere utilizzate come libro contabile sicuro e allo stesso tempo disponibili per transazioni e query con altre tabelle.
È possibile utilizzare qualsiasi strumento di analitica, ad esempio Oracle Analytics Cloud o Oracle Data Visualization Cloud Service, per accedere al database della cronologia avanzata e creare report di analitica o visualizzazioni dati.
Creare la stringa di connessione di Oracle Base Database Service
È necessario raccogliere informazioni da Oracle Base Database Service distribuito su Oracle Cloud Infrastructure per creare la stringa di connessione richiesta dal database rich history. È inoltre necessario abilitare l'accesso al database tramite la porta 1521.
Trovare e registrare informazioni su Oracle Base Database Service
Le informazioni necessarie per creare una connessione a Oracle Base Database Service sono disponibili nella console di Oracle Cloud Infrastructure.
- Nella console dell'infrastruttura, selezionare Database dal menu di navigazione.
- Individuare il database a cui connettersi e registrare l'indirizzo IP pubblico.
- Selezionare il nome del database a cui connettersi e registrare i valori nei campi riportati di seguito.
- Nome univoco del database
- Nome dominio host
- Porta
- Individuare un nome utente e una password di un utente di database (ad esempio, utente SYSTEM) con le autorizzazioni per leggere da questo database e prendere nota di questi elementi.
Abilitare l'accesso al database tramite la porta 1521
Aggiungere una regola di entrata che consenta al database rich history di accedere al database tramite il porta 1521.
- Nella home page di Oracle Cloud Infrastructure selezionare l'icona di navigazione, quindi in Database selezionare Sistemi DB.
- Selezionare il database al quale si desidera connettersi.
- Selezionare il collegamento Virtual Cloud Network.
- Passare alla subnet appropriata, quindi in Elenchi sicurezza selezionare Elenco di sicurezza predefinito per <Database di destinazione>.
Viene visualizzata la pagina Lista di sicurezza.
- Selezionare Modifica tutte le regole.
- Aggiungere una regola di entrata per consentire a qualsiasi traffico in entrata dalla rete Internet pubblica di raggiungere la porta 1521 in questo nodo del database, con le impostazioni seguenti:
-
CID ORIGINE: 0.0.0.0/0
- PROTOCOLLO IP: TCP
- INTERVALLO DI PORTE DI ORIGINE: Tutto
- INTERVALLO DI PORTE DI DESTINAZIONE: 1521
- Consente: TCP per le porte: 1521
-
Creare la stringa di connessione
Dopo aver abilitato l'accesso a Oracle Database, utilizzare le informazioni raccolte in precedenza per creare la stringa di connessione nella finestra di dialogo Configura cronologia avanzata.
Costruisce la stringa di connessione utilizzando la sintassi seguente: <publicIP>:<portNumber>/<database unique name>.<host domain name>
La stringa di connessione seguente è un esempio: 192.0.2.0:1521/CustDB_iad1vm.sub05031027070.customervcnwith.oraclevcn.example.com
Controlla privilegi utente database
grant select on v_$session to <user>;
grant alter system to <user>;Inoltre, se il database della cronologia avanzata utilizza Oracle Autonomous AI Lakehouse, l'utente del database deve disporre del privilegio seguente:grant unlimited tablespace to <user>;Se l'utente del database non dispone già di tali privilegi, questi devono essere concessi dall'amministratore del database di sistema.Senza questi privilegi, Oracle Blockchain Platform può replicarsi nel database, ma non può recuperare da situazioni che portano a una sessione di database danneggiata, il che impedisce alla cronologia avanzata di recuperare le transazioni recenti per un periodo prolungato. Senza questi privilegi su Oracle Autonomous AI Lakehouse, non vengono salvati dati di cronologia avanzata.
Abilitare e configurare il database Rich History
Utilizzare la console per fornire informazioni sulla connessione al database e selezionare i canali con i dati del libro contabile del codice concatenato che si desidera scrivere nel database della cronologia completo. Per impostazione predefinita, i canali non sono abilitati per scrivere i dati nel database della cronologia avanzata.
- Ogni membro della rete blockchain configura il proprio ricco database di cronologia.
- Utilizzare Oracle Database. Nessun altro tipo di database supportato.
- Ogni canale che scrive nel database della cronologia avanzata deve contenere almeno un nodo peer.
- Immettere le informazioni di connessione e le credenziali per l'istanza di Oracle Database da utilizzare per memorizzare le informazioni della cronologia avanzata.
- Abilita rich history sui canali che contengono i dati chaincode che si desidera scrivere nel database rich history.
Modificare la connessione al database Rich History
È possibile modificare le informazioni di connessione del database della cronologia avanzata.
Configurare i canali che scrivono i dati nel database Rich History
Puoi consentire ai canali di scrivere i dati del libro contabile del codice concatenato nel ricco database della cronologia e puoi impedire ai canali di scrivere dati nel ricco database della cronologia. È inoltre possibile configurare un singolo canale in modo che utilizzi una configurazione del database della cronologia avanzata diversa dall'impostazione globale.
Dopo la creazione delle tabelle nel database per un canale, la modifica della configurazione della cronologia avanzata per il canale non ha alcun effetto, anche dopo aver fatto clic su Salva, a meno che non si modifichino il nome utente e la password o la stringa di connessione. Se si modificano nome utente e password, le tabelle vengono create nello stesso database. Se si modificano la stringa di connessione e le credenziali, viene configurato un database diverso e le tabelle vengono create dopo la successiva modifica della transazione o del libro contabile pertinente. Non è possibile modificare un database di cronologia avanzata da tabelle standard a tabelle blockchain e non è possibile modificare i tempi di conservazione, a meno che non si modifichino anche le credenziali o la stringa di connessione.
Monitorare lo stato Rich History
Dopo aver configurato il database rich history, è possibile utilizzare la console per monitorare lo stato di replica rich history.
Limita accesso a cronologia RTF
È possibile utilizzare i criteri canale e le liste di controllo dell'accesso (ACL, Access Control List) per limitare le organizzazioni in grado di configurare il database della cronologia avanzata e recuperare lo stato della cronologia avanzata o le informazioni di configurazione.
Tabelle e colonne del database Rich History
Il database della cronologia avanzata contiene tre tabelle per ogni canale: cronologia, stato e altezza più recente. Durante la creazione dell'analitica sulle transazioni del libro contabile dei codici concatenati, verranno eseguite query sulle tabelle della cronologia e dello stato. Se si è scelto di selezionare uno dei dettagli della transazione quando si abilita la cronologia avanzata, verrà creata un'ulteriore tabella con i dettagli della transazione.
Tabella cronologia
La tabella <instanceName><channelName>_hist contiene la cronologia del libro contabile. I dati in questa tabella indicano l'ID del codice concatenato, la chiave utilizzata, se la transazione era valida, il valore assegnato alla chiave e così via.
Si noti che le colonne valore e valueJson vengono utilizzate in modo che si escludano a vicenda. Quando un valore chiave è json valido, il valore viene impostato nella colonna valueJson. In caso contrario, il valore viene impostato nella colonna value. La colonna valueJson è impostata come colonna json nel database, il che significa che gli utenti possono eseguire query su tale colonna utilizzando le solite estensioni specifiche JSON di Oracle.
Se configurati, in questa tabella vengono memorizzati anche i dati privati. Per i dati privati, l'ID codice concatenato utilizza il seguente formato: <chaincodeName>$$<collectionName>.
| A colonne | Tipo di dati |
|---|---|
| chaincodeId | VARCHAR2 (256) |
| chiave | VARCHAR2 (1024) |
| txnIsValid | NUMERO (1) |
| value | VARCHAR2 (4000) |
| valueJson | CLOB |
| blockNo | NUMERO NON NULLO |
| NUMERO txnNo | NOT NULL |
| txnId | VARCHAR2 (128) |
| txnTimestamp | TIMESTAMP |
| txnIsDelete | NUMERO (1) |
Tabella stato
La tabella di stato <instanceName><channelName> contiene valori di dati replicati dal database di stato. Verrà eseguita una query sulla tabella dello stato quando si creano analisi sullo stato del libro contabile.
Si noti che le colonne valore e valueJson vengono utilizzate in modo che si escludano a vicenda. Quando un valore chiave è json valido, il valore viene impostato nella colonna valueJson. In caso contrario, il valore viene impostato nella colonna value. La colonna valueJson è impostata come colonna json nel database, il che significa che gli utenti possono eseguire query su tale colonna utilizzando le solite estensioni specifiche JSON di Oracle.
| A colonne | Tipo di dati |
|---|---|
| chaincodeId | VARCHAR2 (256) |
| chiave | VARCHAR2 (1024) |
| value | VARCHAR2 (4000) |
| valueJson | CLOB |
| blockNo | NUMBER |
| txnNo | NUMBER |
Tabella altezza più recente
L'ultima tabella <instanceName><channelName> viene utilizzata internamente da Oracle Blockchain Platform per tenere traccia dell'altezza del blocco registrata nel database della cronologia avanzata. Determina l'attualità del database della cronologia avanzata e se tutte le transazioni del codice concatenato sono state registrate nel database della cronologia avanzata. Impossibile eseguire query su questo database per l'analitica.
Tabella dettagli transazione
La tabella <instanceName><channelName>_more contiene attributi correlati alle transazioni di cui è stato eseguito il commit. Quando si abilita il database della cronologia RTF, è possibile selezionare gli attributi da registrare in questa tabella. La tabella dei dettagli delle transazioni acquisisce solo informazioni sulle transazioni del responsabile approvazioni, non le transazioni di configurazione o qualsiasi altro tipo di transazioni Hyperledger Fabric.
| A colonne | Tipo di dati |
|---|---|
| CODICE CATENA | VARCHAR2 (256) |
| BLOCCO | NUMBER |
| NESSUNO | NUMBER |
| ID transazione | VARCHAR2(128) |
| INDICATORE DATA/ORA | TIMESTAMP |
| SOTTOMETTI | VARCHAR2(512) |
| AUTORE SOTTOMISSIONE | VARCHAR2(512) |
| SOTTOMETTI | VARCHAR2(512) |
| CODICE CONCATENATO | VARCHAR2(32) |
| NOME CODICE CONVALIDA | VARCHAR2(32) |
| DICHIARAZIONI | CLOB |
| INPUT | CLOB |
| EVENTI | CLOB |
| STATO RISPOSTA | NUMERO (0) |
| RESPONSEPAYLOAD | VARCHAR2(1024) |
| RWSET | CLOB |
| BLOCCO | VARCHAR2(512) |
| BLOCKCREATORORG | VARCHAR2(512) |
| BLOCCO | VARCHAR2(512) |
| NUMERO BLOCCO CONFIGURAZIONE | NUMERO (0) |
| CONFIGBLOCKCREATORCN | VARCHAR2(512) |
| CONFIGBLOCKCREATORORG | VARCHAR2(512) |
| CONFIGBLOCKCREATOROU | VARCHAR2(512) |
Nota
- L'organizzazione (ORG) e l'unità organizzativa (OU) sono guidate da certificati di identità, il che implica che possono essere assegnati a più valori. Vengono acquisiti come elenco separato da virgole nei valori della tabella.
- Per le identità, la tabella include solo informazioni sulla parte "Oggetto" dei certificati, non quella "Emittente".
- La colonna
RWSETcontiene operazioni su tutti i codici concatenati (nello stesso libro contabile) eseguiti durante la girata. Come tale, in genere vedrai sia le operazioni di lettura lscc che le operazioni effettive dello spazio di nomi del codice concatenato.