Rich History-Datenbank erstellen
Dieses Thema enthält Informationen, mit denen Sie eine Oracle Database-Verbindung angeben und Kanäle zum Erstellen der Rich-History-Datenbank auswählen können. Mit dieser Datenbank können Sie Analyseberichte und Visualisierungen der Aktivitäten Ihres Buchs erstellen.
Was ist die Rich History Database?
Die umfangreiche Historiendatenbank ist extern für Oracle Blockchain Platform und enthält Daten zu den Transaktionen des Blockchain-Ledgers auf den ausgewählten Kanälen. Mit dieser Datenbank können Sie Analyseberichte und Visualisierungen zu den Aktivitäten Ihres Buchs erstellen.
Beispiel: Mit der umfangreichen Historiendatenbank können Sie Analysen erstellen, um den Durchschnittssaldo aller Kunden in Ihrer Bank über einen bestimmten Zeitraum zu ermitteln, oder wie lange es dauerte, bis Waren von einem Großhändler an einen Einzelhändler versendet wurden.
Intern verwendet Oracle Blockchain Platform die Hyperledger Fabric-Historiendatenbank, um das Buch zu verwalten und Ledger-Transaktionsinformationen in der Konsole anzuzeigen. Nur die Chaincodes können auf diese Historiendatenbank zugreifen, und Sie können die Hyperledger Fabric-Historiendatenbank nicht als Datenquelle für analytische Abfragen bereitstellen. Die umfangreiche Historiendatenbank verwendet eine externe Kopie von Oracle Database und enthält viele Details zu jeder Transaktion, die in einem Kanal festgeschrieben wird. Diese Ebene der Datenerfassung macht die umfangreiche Historiendatenbank zu einer hervorragenden Datenquelle für Analysen. Informationen zu den Daten, die von der Rich-History-Datenbank erfasst werden, finden Sie unter Datenbanktabellen und -spalten mit hoher Historie.
Sie können nur eine Datenbank wie Oracle Autonomous AI Lakehouse oder Oracle Base Database Service mit Oracle Cloud Infrastructure verwenden, um Ihre umfangreiche Historiendatenbank zu erstellen. Mit der Oracle Blockchain Platform-Konsole geben Sie die Verbindungszeichenfolge und Zugangsdaten für den Zugriff auf die Datenbank und das Schreiben in die Datenbank an. Beachten Sie, dass die von Ihnen angegebenen Zugangsdaten die Zugangsdaten der Datenbank sind und Oracle Blockchain Platform sie nicht verwaltet. Nachdem Sie die Verbindung erstellt haben, wählen Sie die Kanäle aus, die die Ledger-Daten enthalten, die Sie in die Rich-History-Datenbank aufnehmen möchten. Siehe Rich History-Datenbank aktivieren und konfigurieren.
Sie können Standardtabellen oder Blockchain-Tabellen verwenden, um die umfangreiche Historiendatenbank zu speichern. Blockchain-Tabellen sind manipulationssichere Nur-Anhänge-Tabellen, die als sicheres Ledger verwendet werden können und gleichzeitig für Transaktionen und Abfragen mit anderen Tabellen verfügbar sind.
Mit jedem Analysetool, wie Oracle Analytics Cloud oder Oracle Data Visualization Cloud Service, können Sie auf die umfangreiche Historiendatenbank zugreifen und Analyseberichte oder Datenvisualisierungen erstellen.
Oracle Base Database Service-Verbindungszeichenfolge erstellen
Sie müssen Informationen aus dem Oracle Base Database Service erfassen, der auf Oracle Cloud Infrastructure bereitgestellt ist, um die Verbindungszeichenfolge zu erstellen, die von der Rich-History-Datenbank benötigt wird. Außerdem müssen Sie den Zugriff auf die Datenbank über Port 1521 aktivieren.
Oracle Base Database Service-Informationen suchen und aufzeichnen
Die Informationen, die Sie zum Erstellen einer Verbindung zu Oracle Base Database Service benötigen, sind in der Oracle Cloud Infrastructure-Konsole verfügbar.
- Wählen Sie in der Infrastructure-Konsole im Navigationsmenü die Option Datenbank aus.
- Suchen Sie die Datenbank, mit der Sie sich verbinden möchten, und notieren Sie die öffentliche IP-Adresse.
- Wählen Sie den Namen der Datenbank aus, zu der Sie eine Verbindung herstellen möchten, und zeichnen Sie die Werte in den folgenden Feldern auf:
- Eindeutiger Datenbankname
- Hostdomainname
- Port
- Suchen Sie einen Benutzernamen und ein Kennwort eines Datenbankbenutzers (z.B. Benutzer SYSTEM) mit Berechtigungen zum Lesen aus dieser Datenbank, und notieren Sie sich diese.
Datenbankzugriff über Port 1521 aktivieren
Fügen Sie eine Ingress-Regel hinzu, mit der die Rich History-Datenbank über Port 1521 auf die Datenbank zugreifen kann.
- Wählen Sie auf der Oracle Cloud Infrastructure-Homepage das Navigationssymbol, und wählen Sie unter Datenbanken die Option DB-Systeme aus.
- Wählen Sie die Datenbank aus, bei der Sie eine Verbindung herstellen möchten.
- Wählen Sie den Link Virtuelles Cloud-Netzwerk aus.
- Navigieren Sie zum entsprechenden Subnetz, und wählen Sie unter Sicherheitslisten die Option Standardsicherheitsliste für <Zieldatenbank> aus.
Daraufhin wird die Seite "Sicherheitsliste" angezeigt.
- Wählen Sie Alle Regeln bearbeiten aus.
- Fügen Sie eine Ingress-Regel hinzu, damit der eingehende Traffic vom öffentlichen Internet den Port 1521 auf diesem Datenbankknoten erreichen kann. Dabei gelten die folgenden Einstellungen:
-
QUELL-CIDR: 0.0.0.0/0
- IP-Protokoll: TCP
- SOURCEportbereich: Alle
- Zielportbereich: 1521
- Lässt Folgendes zu:: TCP-Traffic für Ports: 1521
-
Verbindungszeichenfolge erstellen
Nachdem Sie den Zugriff auf Oracle Database aktiviert haben, verwenden Sie die zuvor erfassten Informationen, um die Verbindungszeichenfolge im Dialogfeld Rich-Historie konfigurieren zu erstellen.
Erstellen Sie die Verbindungszeichenfolge mit der folgenden Syntax: <publicIP>:<portNumber>/<database unique name>.<host domain name>
Die folgende Verbindungszeichenfolge ist ein Beispiel: 192.0.2.0:1521/CustDB_iad1vm.sub05031027070.customervcnwith.oraclevcn.example.com
Datenbankbenutzerberechtigungen prüfen
grant select on v_$session to <user>;
grant alter system to <user>;Wenn die Rich-History-Datenbank Oracle Autonomous AI Lakehouse verwendet, muss der Datenbankbenutzer außerdem über die folgende Berechtigung verfügen:grant unlimited tablespace to <user>;Wenn der Datenbankbenutzer diese Berechtigungen nicht bereits besitzt, muss er vom Systemdatenbankadministrator erteilt werden.Ohne diese Berechtigungen kann Oracle Blockchain Platform in die Datenbank replizieren, kann jedoch keine Wiederherstellung in Situationen durchführen, die zu einer beschädigten Datenbanksession führen. Dadurch wird verhindert, dass die umfangreiche Historie die letzten Transaktionen über einen längeren Zeitraum nachholt. Ohne diese Berechtigungen für Oracle Autonomous AI Lakehouse werden keine umfangreichen Historiendaten gespeichert.
Rich History-Datenbank aktivieren und konfigurieren
Verwenden Sie die Konsole, um Informationen zur Datenbankverbindung bereitzustellen und die Kanäle mit den Chaincode-Ledger-Daten auszuwählen, die Sie in die Rich-History-Datenbank schreiben möchten. Standardmäßig sind Kanäle nicht zum Schreiben von Daten in die Rich-History-Datenbank aktiviert.
- Jedes Blockchain-Netzwerkmitglied konfiguriert seine eigene Rich History-Datenbank.
- Sie müssen Oracle Database verwenden. Es werden keine anderen Datenbanktypen unterstützt.
- Jeder Kanal, der in die Rich History-Datenbank schreibt, muss mindestens einen Peer-Knoten enthalten.
- Geben Sie Verbindungs- und Zugangsdateninformationen für die Oracle Database-Instanz ein, mit denen umfangreiche Historiendaten gespeichert werden.
- Aktivieren Sie die Rich History auf den Kanälen, die Chaincode-Daten enthalten, die Sie in die Rich History-Datenbank schreiben möchten.
Verbindung zur Rich History-Datenbank ändern
Sie können die Verbindungsinformationen der Rich History-Datenbank ändern.
Kanäle konfigurieren, die Daten in die Rich History-Datenbank schreiben
Sie können Channels ermöglichen, Chaincode-Ledger-Daten in die Rich-History-Datenbank zu schreiben, und Sie können verhindern, dass Kanäle Daten in die Rich-History-Datenbank schreiben. Sie können auch einen einzelnen Kanal so konfigurieren, dass eine andere Rich History-Datenbankkonfiguration als die globale Einstellung verwendet wird.
Nachdem Tabellen in der Datenbank für einen Kanal erstellt wurden, hat die Änderung der Rich History-Konfiguration für den Kanal auch nach dem Klicken auf Speichern keine Auswirkungen, es sei denn, Sie ändern den Benutzernamen und das Kennwort oder die Verbindungszeichenfolge. Wenn Sie den Benutzernamen und das Kennwort ändern, werden Tabellen in derselben Datenbank erstellt. Wenn Sie die Verbindungszeichenfolge und die Zugangsdaten ändern, wird eine andere Datenbank konfiguriert, und Tabellen werden nach der nächsten relevanten Transaktion oder Buchänderung erstellt. Sie können eine Rich History-Datenbank nicht von Standardtabellen in Blockchain-Tabellen ändern, und Sie können die Aufbewahrungszeiten nur ändern, wenn Sie auch die Zugangsdaten oder die Verbindungszeichenfolge ändern.
Rich History-Status überwachen
Nach der Konfiguration der Rich History-Datenbank können Sie mit der Konsole den Rich History-Replikationsstatus überwachen.
Zugriff auf Rich History beschränken
Sie können Kanal-Policys und Access Control-Listen (ACLs) verwenden, um die Organisationen einzuschränken, die Rich History-Datenbanken konfigurieren und Rich History-Status- oder Konfigurationsinformationen abrufen können.
Rich History-Datenbanktabellen und -Spalten
Die Rich History-Datenbank enthält drei Tabellen für jeden Kanal: Historie, Status und neueste Höhe. Sie fragen die Historien- und Statustabellen ab, wenn Sie Analysen zu den Buchtransaktionen Ihrer Chaincodes erstellen. Wenn Sie beim Aktivieren der Rich History eine der Transaktionsdetails ausgewählt haben, wird eine zusätzliche Tabelle mit den Transaktionsdetails erstellt.
Historientabelle
Die Tabelle <instanceName><channelName>_hist enthält die Ledger-Historie. Die Daten in dieser Tabelle geben die Chaincode-ID, den verwendeten Schlüssel, den Wert, falls die Transaktion gültig war, den dem Schlüssel zugewiesenen Wert usw. an.
Beachten Sie, dass die Spalten Wert und valueJson sich gegenseitig ausschließen. Wenn ein Schlüsselwert json gültig ist, wird der Wert in die Spalte valueJson gesetzt. Andernfalls wird der Wert in der Spalte Wert festgelegt. Die Spalte valueJson ist als Json-Spalte in der Datenbank eingerichtet. Das bedeutet, dass Benutzer diese Spalte mit den üblichen Oracle JSON-spezifischen Erweiterungen abfragen können.
Bei entsprechender Konfiguration werden auch private Daten in dieser Tabelle gespeichert. Für private Daten verwendet die Chaincode-ID das folgende Format: <chaincodeName>$$<collectionName>.
| Spalte | Datentyp |
|---|---|
| chaincodeId | VARCHAR2 (256) |
| Schlüssel | VARCHAR2 (1024) |
| txnIsValid | ANZAHL (1) |
| Wert | VARCHAR2 (4000) |
| valueJson | CLOB |
| blockNo | NUMMER NICHT NULL |
| txnNo-NUMMER | NOT NULL |
| txnId | VARCHAR2 (128) |
| txnTimestamp | TIMESTAMP |
| txnIsDelete | ANZAHL (1) |
Tabelle
Die Tabelle <instanceName><channelName>_state enthält Datenwerte, die aus der Statusdatenbank repliziert wurden. Sie fragen die Statustabelle ab, wenn Sie Analysen zum Status des Buchs erstellen.
Beachten Sie, dass die Spalten Wert und valueJson sich gegenseitig ausschließen. Wenn ein Schlüsselwert json gültig ist, wird der Wert in die Spalte valueJson gesetzt. Andernfalls wird der Wert in der Spalte Wert festgelegt. Die Spalte valueJson ist als Json-Spalte in der Datenbank eingerichtet. Das bedeutet, dass Benutzer diese Spalte mit den üblichen Oracle JSON-spezifischen Erweiterungen abfragen können.
| Spalte | Datentyp |
|---|---|
| chaincodeId | VARCHAR2 (256) |
| Schlüssel | VARCHAR2 (1024) |
| Wert | VARCHAR2 (4000) |
| valueJson | CLOB |
| blockNo | NUMBER |
| txnNo | NUMBER |
Letzte Höhe - Tabelle
Die Tabelle <instanceName><channelName>_last wird intern von Oracle Blockchain Platform verwendet, um die in der Rich History-Datenbank aufgezeichnete Blockhöhe zu verfolgen. Es bestimmt, wie aktuell die Rich History-Datenbank ist und ob alle Chaincode-Transaktionen in der Rich History-Datenbank aufgezeichnet wurden. Sie können diese Datenbank nicht für Analysen abfragen.
Transaktionsdetails - Tabelle
Die Tabelle <instanceName><channelName>_more enthält Attribute für festgeschriebene Transaktionen. Wenn Sie die Rich History-Datenbank aktivieren, können Sie auswählen, welche dieser Attribute Sie in dieser Tabelle aufzeichnen möchten. In der Tabelle mit den Transaktionsdetails werden nur Informationen zu Endorsertransaktionen erfasst - nicht zu Konfigurationstransaktionen oder zu anderen Hyperledger Fabric-Transaktionen.
| Spalte | Datentyp |
|---|---|
| KETTENCODE-ID | VARCHAR2 (256) |
| BLOCKNR. | NUMBER |
| TXNNO | NUMBER |
| TXNID | VARCHAR2(128) |
| TRANSAKTIONSZEITSTEMPEL | TIMESTAMP |
| WEITERLEITENDER | VARCHAR2(512) |
| WEITERLEITUNGSORG | VARCHAR2(512) |
| WEITERLEITENDER | VARCHAR2(512) |
| KETTENCODETYP | VARCHAR2(32) |
| VALIDIERUNGSCODENAME | VARCHAR2(32) |
| BESTÄTIGUNGEN | CLOB |
| EINGABE | CLOB |
| EREIGNISSE | CLOB |
| REAKTIONSSTATUS | ANZAHL(0) |
| RESPONSEPAYLOAD | VARCHAR2(1024) |
| RWSET | CLOB |
| BLOCKERSTELLER | VARCHAR2(512) |
| BLOCKCREATORORG | VARCHAR2(512) |
| BLOCKCREATOROU | VARCHAR2(512) |
| KONFIGURATIONSBLOCKNUMMER | ANZAHL(0) |
| CONFIGBLOCKCREATORCN | VARCHAR2(512) |
| CONFIGBLOCKCREATORORG | VARCHAR2(512) |
| CONFIGBLOCKCREATOROU | VARCHAR2(512) |
Hinweis:
- Organisation (ORG) und Organisationseinheit (OU) werden durch Identitätszertifikate gesteuert. Dies bedeutet, dass sie mehreren Werten zugewiesen werden können. Sie werden als kommagetrennte Liste in den Tabellenwerten erfasst.
- Bei Identitäten enthält die Tabelle nur Informationen über den "Betreff"-Teil der Zertifikate, nicht den "Emittenten".
- Die Spalte
RWSETenthält Vorgänge für alle Chaincodes (in demselben Buch), die während der Freigabe ausgeführt werden. Daher werden in der Regel sowohl lscc-Lesevorgänge als auch die eigentlichen Chaincode-Namespace-Vorgänge angezeigt.