Rich History-Datenbank erstellen
Dieses Thema enthält Informationen, mit denen Sie eine Oracle-Datenbankverbindung angeben und Kanäle zum Erstellen der Rich History-Datenbank auswählen können. Mit dieser Datenbank erstellen Sie Analyseberichte und Visualisierungen der Aktivitäten Ihres Buchs.
Was ist die Rich History Database?
Die Rich History-Datenbank ist extern zu Oracle Blockchain Platform und enthält Daten zu den Transaktionen des Blockchain-Ledgers in den ausgewählten Kanälen. Mit dieser Datenbank erstellen Sie Analyseberichte und Visualisierungen zu den Aktivitäten Ihres Buchs.
Beispiel: Mit der Rich History-Datenbank können Sie Analysen erstellen, um den durchschnittlichen Saldo aller Kunden in Ihrer Bank in einem bestimmten Zeitintervall zu ermitteln, oder wie lange es dauerte, Waren von einem Großhändler an einen Einzelhändler zu versenden.
Intern verwendet Oracle Blockchain Platform die Historiendatenbank von Hyperledger Fabric, um das Hauptbuch zu verwalten und Ihnen Ledger-Transaktionsinformationen in der Konsole zu präsentieren. Nur die Chaincodes können auf diese Historiendatenbank zugreifen. Sie können die Hyperledger Fabric-Historiendatenbank nicht als Datenquelle für analytische Abfragen angeben. Die Rich History-Datenbank verwendet eine externe Oracle-Datenbank und enthält viele Details zu jeder Transaktion, die in einem Kanal festgeschrieben wird. Diese Ebene der Datenerfassung macht die Rich History-Datenbank 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 der Rich History.
Sie können nur eine Oracle-Datenbank wie Oracle Autonomous Data Warehouse oder Oracle Database Classic Cloud Service mit Oracle Cloud Infrastructure verwenden, um Ihre Datenbank mit umfangreicher Historie zu erstellen. Mit der Oracle Blockchain Platform-Konsole können Sie die Verbindungszeichenfolge und Zugangsdaten für den Zugriff auf die Oracle-Datenbank und für das Schreiben in diese angeben. 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 Rich History-Datenbank zu speichern. Blockchain-Tabellen sind manipulationssichere Tabellen, die als sicheres Hauptbuch verwendet werden können und gleichzeitig für Transaktionen und Abfragen mit anderen Tabellen verfügbar sind. Weitere Informationen finden Sie in der Oracle Blockchain-Tabelle.
Mit einem beliebigen Analysetool, wie Oracle Analytics Cloud oder Oracle Data Visualization Cloud Service, können Sie auf die Rich History-Datenbank zugreifen und Analyseberichte oder Datenvisualisierungen erstellen.
Oracle Database Classic Cloud Service-Verbindungszeichenfolge erstellen
Sie müssen Informationen aus dem Oracle Database Classic Cloud Service erfassen, der auf Oracle Cloud Infrastructure bereitgestellt ist, um die Verbindungszeichenfolge zu erstellen, die für die Rich History-Datenbank erforderlich ist. Sie müssen auch den Zugriff auf die Datenbank über Port 1521 aktivieren.
Oracle Database Classic Cloud Service-Informationen suchen und aufzeichnen
Die Informationen, die Sie zum Erstellen einer Verbindung zu Oracle Database Classic Cloud Service benötigen, sind in der Oracle Cloud Infrastructure-Konsole verfügbar.
-
Klicken Sie in der Infrastructure-Konsole oben links auf das Navigationsmenü, und klicken Sie dann auf Datenbank.
-
Suchen Sie die Datenbank, mit der Sie sich verbinden möchten, und notieren Sie die öffentliche IP-Adresse.
-
Klicken Sie auf den Namen der Datenbank, zu der Sie eine Verbindung herstellen möchten, und notieren Sie die Werte in den folgenden Feldern:
-
Eindeutiger Datenbankname
-
Hostdomainname
-
Port
-
-
Suchen Sie einen Benutzernamen und ein Kennwort eines Datenbankbenutzers mit Leseberechtigung für diese Datenbank, und notieren Sie diese. Beispiel: Benutzer SYSTEM.
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.
-
Klicken Sie auf der Oracle Cloud Infrastructure-Homepage auf das Navigationssymbol, und klicken Sie dann unter Datenbanken auf DB-Systeme.
-
Klicken Sie auf die Datenbank, mit der Sie sich verbinden möchten.
-
Klicken Sie auf den Link Virtuelles Cloud-Netzwerk.
-
Navigieren Sie zum entsprechenden Subnetz, und klicken Sie unter Sicherheitslisten auf Standardsicherheitsliste für <Zieldatenbank>.
Daraufhin wird die Seite "Sicherheitsliste" angezeigt.
-
Klicken Sie auf Alle Regeln bearbeiten.
-
Fügen Sie eine Ingress-Regel hinzu, damit eingehender Traffic vom öffentlichen Internet den Port 1521 auf diesem Datenbankknoten erreichen kann. Beachten Sie die folgenden Einstellungen:
-
SOURCE 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 die Oracle-Datenbank aktiviert haben, verwenden Sie die gesammelten 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>
Beispiel: 192.0.2.0:1521/CustDB_iad1vm.sub05031027070.customervcnwith.oraclevcn.example.com
Stellen Sie sicher, dass der Datenbankbenutzer die richtigen Berechtigungen hat
grant select on v_$session to <user>;
grant alter system to <user>;
Wenn die Rich History-Datenbank Oracle Autonomous Data Warehouse verwendet, muss der Datenbankbenutzer außerdem über die folgende Berechtigung verfügen:grant unlimited tablespace to <user>;
Wenn der Datenbankbenutzer diese Berechtigungen noch nicht hat, muss er vom Systemdatenbankadministrator erteilt werden.Ohne diese Berechtigungen kann Oracle Blockchain Platform in der Datenbank replizieren, kann aber nicht nach Situationen wiederhergestellt werden, die zu einer beschädigten Datenbanksession führen. Dadurch wird verhindert, dass die umfangreiche Historie über einen längeren Zeitraum mit den letzten Transaktionen aufholt. Ohne diese Berechtigungen in Oracle Autonomous Data Warehouse werden keine Rich History-Daten gespeichert.
Rich History-Datenbank aktivieren und konfigurieren
Geben Sie in der Konsole Informationen zur Datenbankverbindung an, und wählen Sie die Kanäle mit den Chaincode-Ledger-Daten aus, 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.
Beachten Sie die folgenden Informationen:
-
Jedes Blockchain-Netzwerkmitglied konfiguriert seine eigene Rich History-Datenbank.
-
Sie müssen eine Oracle-Datenbank 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-Datenbank ein, die Sie zum Speichern von Rich History-Informationen verwenden möchten.
- Aktivieren Sie die umfassende Historie in den Kanälen, die Chaincodedaten 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 Kanälen 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 keine Auswirkungen, selbst nachdem Sie auf Speichern geklickt haben, 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 nach der nächsten relevanten Transaktion oder Ledger-Änderung werden Tabellen erstellt. Sie können eine Rich History-Datenbank nicht von Standardtabellen in Blockchain-Tabellen ändern. Sie können die Aufbewahrungszeiten nur ändern, wenn Sie auch die Zugangsdaten oder die Verbindungszeichenfolge ändern.
Rich History-Status überwachen
Nachdem Sie die Rich History-Datenbank konfiguriert haben, können Sie mit der Konsole den Status der Rich History-Replikation überwachen.
Zugriff auf Rich History beschränken
Mit Kanal-Policys und Access-Control-Listen (ACLs) können Sie die Organisationen einschränken, die eine Rich-History-Datenbank 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 Hauptbuchtransaktionen Ihrer Chaincodes erstellen. Wenn Sie bei der Aktivierung der Rich-Historie eine der Transaktionsdetails auswählen möchten, wird eine zusätzliche Tabelle mit den Transaktionsdetails erstellt.
Historiktabelle
Die Tabelle <instanceName><channelName>_hist enthält die Ledger-Historie. Die Daten in dieser Tabelle geben die Chaincode-ID, den verwendeten Schlüssel, die Gültigkeit der Transaktion, den dem Schlüssel zugewiesenen Wert usw. an.
Beachten Sie, dass sich die Spalten Wert und valueJson gegenseitig ausschließen. Wenn ein Schlüsselwert 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. Bei privaten Daten verwendet die Chaincode-ID das folgende Format: <chaincodeName>$$<collectionName>.
Spalte | Datentyp |
---|---|
chaincodeId | VARCHAR2 (256) |
Schlüssel | VARCHAR2 (1024) |
txnIsValid | ZAHL (1) |
Wert | VARCHAR2 (4000) |
valueJson | CLOB |
blockNo | NUMMER NICHT NULL |
txnNo-NUMMER | NOT NULL |
txnId | VARCHAR2 (128) |
txnTimestamp | TIMESTAMP |
txnIsDelete | ZAHL (1) |
Statustabelle
Die Tabelle <instanceName><channelName>_state enthält Datenwerte, die aus der Statusdatenbank repliziert werden. Sie fragen die Statustabelle ab, wenn Sie Analysen zum Status des Buchs erstellen.
Beachten Sie, dass sich die Spalten Wert und valueJson gegenseitig ausschließen. Wenn ein Schlüsselwert 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 |
Tabelle "Letzte Höhe"
Die Tabelle <instanceName><channelName>_last wird von Oracle Blockchain Platform intern verwendet, um die in der Rich History-Datenbank aufgezeichnete Blockhöhe zu verfolgen. Sie 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.
Tabelle "Transaktionsdetails"
Die Tabelle <instanceName><channelName>_more enthält Attribute für festgeschriebene Transaktionen. Wenn Sie die Rich-History-Datenbank aktivieren, können Sie wählen, welches dieser Attribute in dieser Tabelle aufgezeichnet werden soll. In der Tabelle mit den Transaktionsdetails werden nur Informationen über Transaktionen des Bestätigers erfasst, nicht über Konfigurationstransaktionen oder andere Hyperledger Fabric-Transaktionen.
Spalte | Datentyp |
---|---|
KETTENCODE-ID | VARCHAR2 (256) |
BLOCKNR. | NUMBER |
TXNNO | NUMBER |
TXNID | VARCHAR2(128) |
ZEITSTEMPEL | TIMESTAMP |
WEITERLEITENDE TECHNIK | VARCHAR2(512) |
WEITERLEITEN | VARCHAR2(512) |
WEITERLEITENDE | VARCHAR2(512) |
KETTENCODETYP | VARCHAR2(32) |
VALIDIERUNGSCODENAME | VARCHAR2(32) |
BESTÄTIGUNGEN | CLOB |
EINGABE | CLOB |
EREIGNISSE | CLOB |
RESPONSESTATUS | ANZAHL (0) |
RESPONSEPAYLOAD | VARCHAR2(1024) |
RWSET | CLOB |
BLOCKCREATORCN | 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 von Identitätszertifikaten gesteuert. Dies bedeutet, dass sie mehreren Werten zugewiesen werden können. Sie werden als kommagetrennte Liste in den Werten der Tabelle erfasst.
- Bei Identitäten enthält die Tabelle nur Informationen über den Teil "Betreff" der Zertifikate, nicht den "Aussteller".
- Die Spalte
RWSET
enthält Vorgänge für alle Chaincodes (im selben Ledger), 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.