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 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 Ihnen in der Konsole Transaktionsinformationen für das Buch 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 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 Datenerfassungsebene 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 Tabellen und Spalten der Rich History-Datenbank.
Sie können eine Oracle-Datenbank wie Oracle Autonomous Data Warehouse oder Oracle Database Classic Cloud Service nur 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 Oracle-Datenbank und für das Schreiben in die Datenbank an. Die angegebenen Zugangsdaten sind die Zugangsdaten der Datenbank, und Oracle Blockchain Platform verwaltet sie nicht. 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 Anhangstabellen, die als sicheres Ledger verwendet werden können und gleichzeitig für Transaktionen und Abfragen mit anderen Tabellen verfügbar sind. Weitere Informationen finden Sie in Oracle Blockchain-Tabelle.
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 Database Classic Cloud Service-Verbindungszeichenfolge erstellen
Sie müssen Informationen aus dem in Oracle Cloud Infrastructure bereitgestellten Oracle Database Classic Cloud Service erfassen, 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.
Informationen zu Oracle Database Classic Cloud Service suchen und aufzeichnen
Die Informationen, die Sie benötigen, um eine Verbindung zur Oracle Database Classic Cloud Service zu erstellen, 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 zeichnen Sie die Werte in den folgenden Feldern auf:
-
Eindeutiger Datenbankname
-
Hostdomainname
-
Port
-
-
Suchen Sie einen Benutzernamen und ein Kennwort für einen Datenbankbenutzer mit Leseberechtigung für diese Datenbank, und notieren Sie diese Informationen. Beispiel: Der 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 dann unter Datenbanken auf DB-Systeme.
-
Klicken Sie auf die Datenbank, zu der Sie eine Verbindung herstellen 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 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 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 außerdem Oracle Autonomous Data Warehouse verwendet, muss der Datenbankbenutzer ü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 der Datenbank replizieren, kann jedoch nicht wiederhergestellt werden, wenn es zu einer beschädigten Datenbanksession kommt. Dadurch wird verhindert, dass die Rich History die letzten Transaktionen über einen längeren Zeitraum aufholt. Ohne diese Berechtigungen für Oracle Autonomous Data Warehouse werden keine umfangreichen Historiendaten gespeichert.
Rich History-Datenbank aktivieren und konfigurieren
Verwenden Sie die Konsole, um Informationen zur Datenbankverbindung bereitzustellen, und wählen Sie die Kanäle mit den Chaincode-Ledgerdaten aus, die Sie in die Rich History-Datenbank schreiben möchten. Standardmäßig sind Kanäle nicht aktiviert, um Daten in die Rich History-Datenbank zu schreiben.
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 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
RWSET
enthä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.