Créer la base de données Rich History
Cette rubrique contient des informations permettant d'indiquer une connexion à la base de données Oracle et de choisir les canaux pour créer la base de données riche en historique. Vous utiliserez cette base de données pour créer des rapports d'analyse et des visualisations des activités de votre livre.
Qu'est-ce que la Rich History Database ?
La base de données d'historique enrichi est externe à Oracle Blockchain Platform et contient des données sur les transactions du registre de chaîne de blocs sur les canaux que vous sélectionnez. Cette base de données permet de créer des rapports d'analyse et de visualiser les activités de votre livre.
Par exemple, à l'aide de la base de données riche en historique, vous pouvez créer des analyses pour connaître le solde moyen de tous les clients de votre banque au cours d'un intervalle de temps ou le temps nécessaire à l'expédition de marchandises d'un grossiste à un détaillant.
En interne, Oracle Blockchain Platform utilise la base de données d'historique Hyperledger Fabric pour gérer le registre et vous présenter les informations de transaction du registre dans la console. Seuls les codes chaîne peuvent accéder à cette base de données d'historique et vous ne pouvez pas exposer la base de données d'historique Hyperledger Fabric en tant que source de données pour les requêtes analytiques. La base de données riche en historique utilise une base de données Oracle externe et contient de nombreux détails sur chaque transaction validée sur un canal. Ce niveau de collecte de données fait de la base de données d'historique riche une excellente source de données pour l'analyse. Pour plus d'informations sur les données collectées par la base de données d'historique enrichi, reportez-vous à Tables et colonnes de base de données d'historique enrichi.
Vous pouvez uniquement utiliser une base de données Oracle telle qu'Oracle Autonomous Data Warehouse ou Oracle Database Classic Cloud Service avec Oracle Cloud Infrastructure pour créer votre base de données d'historique enrichi. Utilisez la console Oracle Blockchain Platform pour fournir la chaîne de connexion et les informations d'identification permettant d'accéder à la base de données Oracle et d'y écrire. Les informations d'identification que vous fournissez sont les informations d'identification de la base de données et Oracle Blockchain Platform ne les gère pas. Une fois la connexion créée, vous sélectionnez les canaux contenant les données de livre à inclure dans la base de données d'historique enrichi. Reportez-vous à Activation et configuration de la base de données d'historique enrichi.
Vous pouvez utiliser des tables standard ou des tables de chaîne de blocs pour stocker la base de données riche en historique. Les tables de chaîne de blocs sont des tables d'ajout uniquement inviolables, qui peuvent être utilisées comme registre sécurisé tout en étant disponibles pour les transactions et les requêtes avec d'autres tables. Pour plus d'informations, reportez-vous à Table Oracle Blockchain.
Vous pouvez utiliser n'importe quel outil d'analyse, tel qu'Oracle Analytics Cloud ou Oracle Data Visualization Cloud Service, pour accéder à la base de données d'historique enrichi et créer des rapports d'analyse ou des visualisations de données.
Création de la chaîne de connexion Oracle Database Classic Cloud Service
Vous devez collecter des informations à partir d'Oracle Database Classic Cloud Service déployé sur Oracle Cloud Infrastructure afin de créer la chaîne de connexion requise par la base de données d'historique enrichi. Vous devez également autoriser l'accès à la base de données via le port 1521.
Recherche et enregistrement d'informations sur Oracle Database Classic Cloud Service
Les informations dont vous avez besoin pour créer une connexion à Oracle Database Classic Cloud Service sont disponibles dans la console Oracle Cloud Infrastructure.
-
Dans la console Infrastructure, cliquez sur le menu de navigation dans le coin supérieur gauche, puis sur Database.
-
Localisez la base de données à laquelle se connecter et enregistrez l'adresse IP publique.
-
Cliquez sur le nom de la base de données à laquelle vous souhaitez vous connecter et enregistrez les valeurs dans les champs suivants :
-
Nom de base de données unique
-
Nom de domaine hôte
-
Port
-
-
Recherchez le nom et le mot de passe d'un utilisateur de base de données disposant de droits d'accès en lecture sur cette base de données, puis notez-les. Par exemple, l'utilisateur SYSTEM.
Activation de l'accès à la base de données via le port 1521
Ajoutez une règle entrante permettant à la base de données d'historique enrichi d'accéder à la base de données via le port 1521.
-
Sur la page d'accueil d'Oracle Cloud Infrastructure, cliquez sur l'icône de navigation, puis sous Bases de données, cliquez sur Systèmes de base de données.
-
Cliquez sur la base de données à laquelle vous voulez vous connecter.
-
Cliquez sur le lien Réseau cloud virtuel.
-
Accédez au sous-réseau approprié, puis sous Listes de sécurité, cliquez sur Liste de sécurité par défaut pour <Base de données cible.
La page Security List apparaît.
-
Cliquez sur Modifier toutes les règles.
-
Ajoutez une règle entrante autorisant le trafic entrant à partir du réseau Internet public vers le port 1521 sur ce noeud de base de données, avec les paramètres suivants :
-
CIDR SOURCE : 0.0.0.0/0
-
PROTOCOLE IP : TCP
-
SOURCE PORT RANGE : Tous
-
PLAGE DE PORTS DE DESTINATION : 1521
-
Autoriser : trafic TCP pour les ports : 1521
-
Créer la chaîne de connexion
Après avoir activé l'accès à la base de données Oracle, utilisez les informations collectées pour créer la chaîne de connexion dans la boîte de dialogue Configurer l'historique enrichi.
Créez la chaîne de connexion à l'aide de la syntaxe suivante : <publicIP> :<portNumber>/<database unique name>.<host domain name>
Par exemple, 192.0.2.0 :1521/CustDB_iad1vm.sub05031027070.customervcnwith.oraclevcn.example.com
Assurez-vous que l'utilisateur de base de données dispose des privilèges appropriés
grant select on v_$session to <user>;
grant alter system to <user>;
En outre, si la base de données d'historique enrichi utilise Oracle Autonomous Data Warehouse, l'utilisateur de base de données doit disposer des privilèges suivants :grant unlimited tablespace to <user>;
Si l'utilisateur de base de données ne dispose pas déjà de ces privilèges, ils doivent être accordés par l'administrateur de base de données système.Sans ces privilèges, Oracle Blockchain Platform peut effectuer une réplication vers la base de données, mais il ne peut pas récupérer des situations entraînant une session de base de données endommagée, ce qui empêche l'historique riche de rattraper les transactions récentes pendant une longue période. Sans ces privilèges sur Oracle Autonomous Data Warehouse, aucune donnée d'historique riche n'est enregistrée.
Activer et configurer la base de données Rich History
Utilisez la console pour fournir des informations de connexion à la base de données et sélectionner les canaux avec les données de registre de code chaîne à écrire dans la base de données d'historique enrichi. Par défaut, les canaux ne sont pas activés pour écrire des données dans la base de données d'historique enrichi.
Notez les informations suivantes :
-
Chaque membre du réseau blockchain configure sa propre base de données d'historique riche.
-
Vous devez utiliser une base de données Oracle. Aucun autre type de base de données n'est pris en charge.
-
Chaque canal qui écrit dans la base de données d'historique enrichi doit contenir au moins un noeud homologue.
- Entrez les informations de connexion et d'identification de la base de données Oracle à utiliser pour stocker les informations d'historique enrichi.
- Activer l'historique enrichi sur les canaux contenant les données de code chaîne à écrire dans la base de données d'historique enrichi.
Modifier la connexion à la base de données Rich History
Vous pouvez modifier les informations de connexion de la base de données Rich History.
Configuration des canaux qui écrivent des données dans la base de données Rich History
Vous pouvez activer les canaux pour écrire les données de registre de code chaîne dans la base de données d'historique enrichi, et empêcher les canaux d'écrire des données dans la base de données d'historique enrichi. Vous pouvez également configurer un canal individuel pour utiliser une configuration de base de données d'historique enrichi différente de celle du paramètre global.
Une fois les tables créées dans la base de données pour un canal, la modification de la configuration d'historique enrichi du canal n'a aucun effet, même après avoir cliqué sur Enregistrer, sauf si vous modifiez le nom utilisateur et le mot de passe ou la chaîne de connexion. Si vous modifiez le nom utilisateur et le mot de passe, les tables sont créées dans la même base de données. Si vous modifiez la chaîne de connexion et les informations d'identification, une autre base de données est configurée et des tables sont créées après la prochaine modification de transaction ou de livre appropriée. Vous ne pouvez pas remplacer une base de données riche en historique par des tables standard et vous ne pouvez pas modifier les durées de conservation, sauf si vous modifiez également les informations d'identification ou la chaîne de connexion.
Surveiller le statut de l'historique enrichi
Après avoir configuré la base de données riche en historique, vous pouvez utiliser la console pour surveiller le statut de réplication de l'historique riche.
Limiter l'accès à l'historique enrichi
Vous pouvez utiliser des stratégies de canal et des listes de contrôle d'accès (ACL) pour limiter les organisations qui peuvent configurer la base de données d'historique enrichi et extraire des informations de configuration ou de statut d'historique enrichi.
Tables et colonnes de base de données Rich History
La base de données riche contient trois tables pour chaque canal : historique, état et hauteur la plus récente. Vous allez interroger les tables d'historique et d'état lorsque vous créez des analyses sur les transactions de registre de vos codes chaîne. Si vous avez choisi de sélectionner l'un des détails de transaction lors de l'activation de l'historique enrichi, une table supplémentaire sera créée avec les détails de transaction.
Table d'historique
La table <instanceName><channelName>_hist contient l'historique du livre. Les données de cette table vous indiquent l'ID de code chaîne, la clé utilisée, si la transaction était valide, la valeur affectée à la clé, etc.
Notez que les colonnes value et valueJson sont utilisées de manière mutuellement exclusive. C'est-à-dire lorsqu'une valeur de clé est un json valide, la valeur est définie dans la colonne valueJson. Sinon, la valeur est définie dans la colonne valeur. La colonne valueJson est configurée en tant que colonne json dans la base de données, ce qui signifie que les utilisateurs peuvent interroger cette colonne à l'aide des extensions spécifiques Oracle JSON habituelles.
Si elles sont configurées, les données privées sont également stockées dans cette table. Pour les données privées, l'ID de code chaîne utilise le format suivant : <chaincodeName>$$<collectionName>.
Colonne | Type de données |
---|---|
chaincodeId | VARCHAR2 (256) |
clé | VARCHAR2 (1024) |
txnIsValid | NOMBRE (1) |
value | VARCHAR2 (4000) |
valueJson | CLOB |
blockNo | NUMÉRO NON NULL |
NUMÉRO txnNo | NOT NULL |
txnId | VARCHAR2 (128) |
txnTimestamp | TIMESTAMP |
txnIsDelete | NOMBRE (1) |
Table d'états
La table <instanceName><channelName>_state contient des valeurs de données répliquées à partir de la base de données d'état. Vous allez interroger la table d'état lorsque vous créez des analyses sur l'état du livre.
Notez que les colonnes value et valueJson sont utilisées de manière mutuellement exclusive. C'est-à-dire lorsqu'une valeur de clé est un json valide, la valeur est définie dans la colonne valueJson. Sinon, la valeur est définie dans la colonne valeur. La colonne valueJson est configurée en tant que colonne json dans la base de données, ce qui signifie que les utilisateurs peuvent interroger cette colonne à l'aide des extensions spécifiques Oracle JSON habituelles.
Colonne | Type de données |
---|---|
chaincodeId | VARCHAR2 (256) |
clé | VARCHAR2 (1024) |
value | VARCHAR2 (4000) |
valueJson | CLOB |
blockNo | NUMBER |
txnNo | NUMBER |
Dernier tableau de hauteur
La table <instanceName><channelName>_last est utilisée en interne par Oracle Blockchain Platform pour effectuer le suivi de la hauteur de bloc enregistrée dans la base de données d'historique enrichi. Il détermine l'état actuel de la base de données d'historique riche et si toutes les transactions de code chaîne ont été enregistrées dans la base de données d'historique riche. Vous ne pouvez pas interroger cette base de données à des fins d'analyse.
Table des détails de transaction
La table <instanceName><channelName>_more contient des attributs liés aux transactions validées. Lorsque vous activez la base de données riche en historique, vous pouvez sélectionner les attributs que vous souhaitez enregistrer dans cette table. La table des détails des transactions capture uniquement des informations sur les transactions d'approbateur, et non sur les transactions de configuration ou tout autre type de transaction Hyperledger Fabric.
Colonne | Type de données |
---|---|
ID DE CODE CHAÎNE | VARCHAR2 (256) |
BLOQUER | NUMBER |
TXNNO | NUMBER |
ID de transaction | VARCHAR2(128) |
HORODATAGE DE LA TRANSACTION | TIMESTAMP |
EMETTEUR | VARCHAR2(512) |
SUBMITTERORG | VARCHAR2(512) |
SOUMETTEUR | VARCHAR2(512) |
TYPE DE CODE CHAÎNE | VARCHAR2(32) |
NOM DU CODE DE VALIDATION | VARCHAR2(32) |
SOUTIENS | CLOB |
ENTRÉES | CLOB |
EVÉNEMENTS | CLOB |
RESPONSABLE | NOMBRE(0) |
RESPONSEPAYLOAD | VARCHAR2(1024) |
RWSET | CLOB |
BLOCKCREATORCN | VARCHAR2(512) |
BLOCKCREATORORG | VARCHAR2(512) |
BLOCKCREATOROU | VARCHAR2(512) |
NUMÉRO DE BLOC DE CONFIGURATION | NOMBRE(0) |
CONFIGBLOCKCREATORCN | VARCHAR2(512) |
CONFIGBLOCKCREATORORG | VARCHAR2(512) |
CONFIGBLOCKCREATOROU | VARCHAR2(512) |
Remarques :
- L'organisation (ORG) et l'unité d'organisation (OU) sont pilotées par des certificats d'identité, ce qui implique qu'elles peuvent être affectées à plusieurs valeurs. Elles sont capturées sous forme de liste séparée par des virgules dans les valeurs de la table.
- Pour les identités, le tableau contient uniquement des informations sur la partie "Objet" des certificats, et non sur la partie "Emetteur".
- La colonne
RWSET
contient des opérations sur tous les codes chaîne (dans le même registre) effectuées lors de l'approbation. En tant que tel, vous verrez généralement à la fois les opérations de lecture lscc et les opérations d'espace de noms de code chaîne réelles.