Créer la base de données d'historique enrichi
Cette rubrique contient des informations qui vous aident à indiquer une connexion à la base de données Oracle et à choisir les canaux de création de la base de données d'historique enrichi. 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. Vous utilisez cette base de données pour créer des rapports d'analyse et une visualisation des activités de votre livre.
Par exemple, à l'aide de la base de données riche d'historique, vous pouvez créer des analyses pour connaître le solde moyen de tous les clients de votre banque sur un certain intervalle de temps, ou le temps nécessaire pour expédier des 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 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 riche en historique 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 à 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 de l'é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. Après avoir créé la connexion, vous sélectionnez les canaux qui contiennent 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 d'historique enrichie. Les tables de chaîne de blocs sont des tables d'ajouts 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 pour 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.
Rechercher et enregistrer les informations sur Oracle Database Classic Cloud Service
Les informations nécessaires 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 Base de données.
-
Localisez la base de données à laquelle vous voulez vous 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, et notez-les. Par exemple, l'utilisateur SYSTEM.
Autorisation 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 souhaitez 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 <Target Database>.
La page Security List (Liste de sécurité) 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
-
Autorise : 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
Vérification 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 à historique enrichi utilise Oracle Autonomous Data Warehouse, l'utilisateur de base de données doit disposer du privilège suivant :grant unlimited tablespace to <user>;
Si l'utilisateur de la base de données ne dispose pas déjà de ces privilèges, ils doivent être accordés par l'administrateur de la 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 effectuer de récupération suite à des situations entraînant une session de base de données endommagée, ce qui empêche l'historique enrichi 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 enrichie n'est enregistrée.
Activer et configurer la base de données d'historique enrichi
Utiliser 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 enrichie. 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 de chaîne de blocs configure sa propre base de données d'historique enrichie.
-
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 enrichies.
- Activez 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 d'historique enrichi
Vous pouvez modifier les informations de connexion de la base de données d'historique enrichi.
Configurer les canaux qui écrivent des données dans la base de données d'historique enrichi
Vous pouvez activer les canaux pour écrire des données de registre de code chaîne dans la base de données d'historique enrichie, et empêcher les canaux d'écrire des données dans la base de données d'historique enrichie. 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 de l'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 d'utilisateur et le mot de passe, des 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 modification suivante de la transaction ou du livre concerné. Vous ne pouvez pas remplacer une base de données d'historique enrichie 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 d'historique enrichi, vous pouvez utiliser la console pour surveiller le statut de la réplication d'historique enrichi.
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 d'historique enrichi
La base de données riche d'historique contient trois tables pour chaque canal : historique, état et dernière hauteur. Vous interrogerez les tables d'historique et d'état lors de la création d'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 registre. Les données de ce tableau indiquent l'ID de code chaîne et 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 value. 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 propres à Oracle JSON habituelles.
Si elle est configurée, 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 |
txnNo NUMÉRO | NOT NULL |
txnId | VARCHAR2 (128) |
txnTimestamp | TIMESTAMP |
txnIsDelete | NOMBRE (1) |
Table des états
La table <instanceName><channelName>_state contient les valeurs de données répliquées à partir de la base de données d'état. Vous allez interroger la table des états 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 value. 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 propres à Oracle JSON habituelles.
Colonne | Type de données |
---|---|
chaincodeId | VARCHAR2 (256) |
clé | VARCHAR2 (1024) |
value | VARCHAR2 (4000) |
valueJson | CLOB |
blockNo | NUMBER |
txnNo | NUMBER |
Table de la dernière hauteur
La dernière table <instanceName><channelName>_last est utilisée en interne par Oracle Blockchain Platform pour suivre la hauteur de bloc enregistrée dans la base de données d'historique enrichi. Elle détermine l'état en cours de la base de données d'historique enrichie et si toutes les transactions de code chaîne ont été enregistrées dans cette base. Vous ne pouvez pas interroger cette base de données pour obtenir des analyses.
Tableau Détails de la transaction
La table <instanceName><channelName>_more contient des attributs liés aux transactions validées. Lorsque vous activez la base de données d'historique enrichi, vous pouvez sélectionner les attributs à enregistrer dans cette table. La table des détails des transactions capture uniquement des informations sur les transactions de l'approbateur, et non des transactions de configuration ou tout autre type de transactions Hyperledger Fabric.
Colonne | Type de données |
---|---|
ID DE CODE CHAÎNE | VARCHAR2 (256) |
NUMÉRO DE BLOC | NUMBER |
Numéro de transaction | NUMBER |
ID de transaction | VARCHAR2(128) |
HORODATAGE DE LA TRANSACTION | TIMESTAMP |
EMETTEUR | VARCHAR2(512) |
ORGANISATION DU DEMANDEUR | VARCHAR2(512) |
SOUMISSIONNAIRE | VARCHAR2(512) |
TYPE DE CHAÎNE | VARCHAR2(32) |
NOM DU CODE DE VALIDATION | VARCHAR2(32) |
SOUTIENS | CLOB |
ENTRÉES | CLOB |
EVÉNEMENTS | CLOB |
STATUT DU RESPONSABLE | NOMBRE(0) |
RESPONSEPAYLOAD | VARCHAR2(1024) |
RWSET | CLOB |
CRÉATEURS DE BLOCS | VARCHAR2(512) |
ACCUEIL > 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é organisationnelle (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, la table inclut uniquement des informations sur la partie "Objet" des certificats, et non sur la partie "Emetteur".
- La colonne
RWSET
contient les opérations effectuées sur tous les codes chaîne (dans le même registre) lors de l'approbation. Ainsi, vous verrez généralement à la fois les opérations de lecture lscc et les opérations réelles d'espace de noms de code chaîne.