Creare 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 di cronologia è esterno a Oracle Blockchain Platform e contiene dati sulle transazioni del libro contabile della blockchain nei canali selezionati. Utilizzare questo database per creare report di analisi e visualizzazione sulle attività del libro contabile.
Ad esempio, utilizzando il database della cronologia completa, è possibile creare analisi per conoscere il saldo medio di tutti i clienti della banca in un determinato intervallo di tempo o il tempo necessario per spedire merce da un grossista a un rivenditore.
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 si desidera 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 la 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 della 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 su questo nodo del database, con le impostazioni riportate di seguito.
-
CIDR DI ORIGINE: 0.0.0.0/0
- PROTOCOLLO IP: TCP
- GAMMA PORTA 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 database ricco di storia.
- Utilizzare Oracle Database. Nessun altro tipo di database supportato.
- Ogni canale che scrive nel database Rich History 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 la cronologia completa sui canali che contengono i dati del codice concatenato che si desidera scrivere nel database della cronologia completa.
Modificare la connessione al database Rich History
È possibile modificare le informazioni di connessione del database Rich History.
Configurare i canali che scrivono i dati nel database Rich History
È possibile abilitare i canali per scrivere i dati del libro contabile del codice concatenato nel database della cronologia avanzata ed è possibile impedire ai canali di scrivere i dati nel database della cronologia avanzata. È inoltre possibile configurare un singolo canale in modo che utilizzi una configurazione del database Rich History diversa da quella dell'impostazione globale.
Dopo aver creato le tabelle nel database per un canale, la modifica della configurazione della cronologia completa 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 il nome utente e la 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 pertinente della transazione o del libro contabile. Non è possibile modificare un database Rich History 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.
Monitoraggio dello stato della cronologia avanzata
Dopo aver configurato il database Rich History, è possibile utilizzare la console per monitorare lo stato di replica Rich History.
Limita accesso a Rich History
È possibile utilizzare i criteri di canale e le liste di controllo dell'accesso (ACL, Access Control List) per limitare le organizzazioni che possono configurare il database Rich History e recuperare lo stato della cronologia avanzata o le informazioni di configurazione.
Tabelle e colonne del database Rich History
Il database della cronologia completa contiene tre tabelle per ogni canale: cronologia, stato e altezza più recente. Quando si creano analisi sulle transazioni libro contabile dei codici concatenati, verrà eseguita una query sulle tabelle di cronologia e stato. Se si è scelto di selezionare uno qualsiasi dei dettagli della transazione quando si abilita la cronologia avanzata, verrà creata una tabella aggiuntiva con i dettagli della transazione.
Tabella cronologia
La tabella <instanceName><channelName>_storia contiene la cronologia del libro contabile. I dati di questa tabella indicano l'ID 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 ad esclusione reciproca. In altre parole, quando un valore chiave è json valido, il valore viene impostato nella colonna valueJson. In caso contrario, il valore viene impostato nella colonna valore. La colonna valueJson viene impostata come colonna json nel database, il che significa che gli utenti possono eseguire query su tale colonna utilizzando le solite estensioni specifiche di Oracle JSON.
Se configurato, 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 stati
La tabella <instanceName><channelName>_state contiene valori di dati replicati dal database di stato. Quando si crea l'analitica sullo stato del libro contabile, verrà eseguita una query sulla tabella di stato.
Si noti che le colonne valore e valueJson vengono utilizzate ad esclusione reciproca. In altre parole, quando un valore chiave è json valido, il valore viene impostato nella colonna valueJson. In caso contrario, il valore viene impostato nella colonna valore. La colonna valueJson viene impostata come colonna json nel database, il che significa che gli utenti possono eseguire query su tale colonna utilizzando le solite estensioni specifiche di Oracle JSON.
| 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 Rich History. Determina l'attuale database della cronologia completa e se tutte le transazioni con codice concatenato sono state registrate nel database della cronologia completa. Impossibile eseguire query su questo database per l'analitica.
Tabella dettagli transazione
La tabella <instanceName><channelName> contiene attributi correlati alle transazioni sottoposte a commit. Quando si abilita il database Rich History, è possibile selezionare quali di questi attributi si desidera registrare in questa tabella. La tabella dei dettagli delle transazioni acquisisce solo le informazioni sulle transazioni dell'autore approvazione, non le transazioni di configurazione o qualsiasi altro tipo di transazioni Hyperledger Fabric.
| A colonne | Tipo di dati |
|---|---|
| CODICE CONCATENATO | VARCHAR2 (256) |
| BLOCCO | NUMBER |
| Provincia di TXN | NUMBER |
| ID transazione | VARCHAR2(128) |
| INDICATORE ORARIO TRANSAZIONE | TIMESTAMP |
| AUTORE SOTTOMISSIONE | VARCHAR2(512) |
| AUTORE SOTTOMISSIONE | VARCHAR2(512) |
| AUTORE SOTTOMISSIONE | VARCHAR2(512) |
| TIPO DI CODICE CONCATENATO | VARCHAR2(32) |
| NOME CODICE CONVALIDA | VARCHAR2(32) |
| DICHIARAZIONI | CLOB |
| INPUT | CLOB |
| EVENTI | CLOB |
| STATO RESPONSABILE | NUMERO (0) |
| RESPONSEPAYLOAD | VARCHAR2(1024) |
| RWSET | CLOB |
| BLOCCO | VARCHAR2(512) |
| BLOCCO CREATORE | VARCHAR2(512) |
| BLOCCO-CREATORE | 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 sotto forma di 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 dichiarazione a sostegno. Di conseguenza, in genere vengono visualizzate sia le operazioni di lettura lscc che le operazioni effettive dello spazio di nomi del codice concatenato.