Créer la base de données d'historique enrichi
Cette rubrique contient des informations pour vous aider à spécifier une connexion à une base de données Oracle et à choisir des canaux pour créer la base de données historique enrichie. Vous utiliserez cette base de données pour produire 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 historique enrichie est externe à Oracle Blockchain Platform et contient des données sur les transactions du livre 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 des visualisations sur les activités de votre livre.
Par exemple, à l'aide de la riche base de données historiques, vous pouvez créer des analyses pour connaître le solde moyen de tous les clients de votre banque au cours d'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 historique Hyperledger Fabric pour gérer le livre et vous présenter les informations de transaction de livre dans la console. Seuls les codes de chaîne peuvent accéder à cette base de données d'historique et vous ne pouvez pas exposer la base de données historique Hyperledger Fabric en tant que source de données pour les interrogations analytiques. La base de données riche 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 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 historique enrichie, voir Tables et colonnes de base de données historiques riches.
Vous pouvez uniquement utiliser une base de données Oracle telle qu'Oracle Autonomous Data Warehouse ou Oracle Database version classique Cloud Service avec Oracle Cloud Infrastructure pour créer votre base de données historique enrichie. Vous utilisez la console Oracle Blockchain Platform pour fournir la chaîne de connexion et les données d'identification permettant d'accéder à la base de données Oracle et d'y écrire. Notez que les données d'identification que vous fournissez sont celles de la base de données et qu'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 que vous souhaitez inclure dans la base de données riche d'historique. Voir Activer et configurer 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 historique enrichie. Les tables de chaîne de blocs sont des tables à ajouts inviolables, qui peuvent être utilisées comme livre sécurisé tout en étant disponibles pour les transactions et les interrogations avec d'autres tables. Pour plus d'informations, voir Table Oracle Blockchain.
Vous pouvez utiliser n'importe quel outil d'analyse, comme Oracle Analytics Cloud ou Oracle Data Visualization Cloud Service, pour accéder à la base de données historique enrichie et créer des rapports d'analyse ou des visualisations de données.
Créer la chaîne de connexion à Oracle Database version classique pour 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 historique enrichie. Vous devez également activer l'accès à la base de données au moyen du port 1521.
Rechercher et enregistrer des informations sur Oracle Database Classic Cloud Service
Les informations dont vous avez besoin pour créer une connexion au service Oracle Database version classique Cloud Service sont disponibles dans la console Oracle Cloud Infrastructure.
-
Dans la console d'infrastructure, cliquez sur le menu de navigation dans l'angle 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 voulez vous connecter et enregistrez les valeurs dans les champs suivants :
-
Nom unique de la base de données
-
Nom du domaine hôte
-
Port
-
-
Recherchez le nom d'utilisateur et le mot de passe d'un utilisateur de base de données disposant des autorisations de lecture dans cette base de données, et notez-les. Par exemple, l'utilisateur SYSTEM.
Activer l'accès à la base de données au moyen du port 1521
Ajoutez une règle de trafic entrant qui permet à la base de données historique enrichie d'accéder à la base de données au moyen du port 1521.
-
Dans 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 du réseau en nuage virtuel.
-
Naviguez jusqu'au sous-réseau approprié, puis sous Listes de sécurité, cliquez sur Liste de sécurité par défaut pour la base de données cible>.
La page Security List (Liste de sécurité) s'affiche.
-
Cliquez sur Modifier toutes règles.
-
Ajoutez une règle pour permettre au trafic entrant provenant du réseau Internet public d'atteindre 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
-
Intervalle de ports sources : Tous
-
INTERVALLE 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 que vous avez collectées pour créer la chaîne de connexion dans la boîte de dialogue Configurer l'historique enrichi.
Construisez 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
S'assurer que l'utilisateur de base de données dispose des privilèges corrects
grant select on v_$session to <user>;
grant alter system to <user>;
De plus, si la base de données historique enrichie utilise Oracle Autonomous Data Warehouse, l'utilisateur de la 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 dans la base de données, mais ne peut pas effectuer une récupération en cas de situation entraînant une session de base de données endommagée, ce qui empêche l'historique riche de rattraper les transactions récentes sur une période prolongée. Sans ces privilèges sur Oracle Autonomous Data Warehouse, aucune donnée historique enrichie n'est enregistrée.
Activer et configurer la base de données d'historique enrichi
Utilisez la console pour fournir des informations de connexion à la base de données et sélectionner les canaux avec les données de livre de code de chaîne à écrire dans la base de données 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 la chaîne de blocs configure sa propre base de données 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 pair.
- Entrez les informations de connexion et de données d'identification pour la base de données Oracle que vous voulez utiliser pour stocker des informations historiques enrichies.
- Activez l'historique enrichi sur les canaux qui contiennent les données de code de chaîne à écrire dans la base de données historique enrichie.
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 permettre aux canaux d'écrire les données du livre de code de chaîne dans la base de données historique enrichie et vous pouvez empêcher les canaux d'écrire des données dans la base de données historique enrichie. Vous pouvez également configurer un canal individuel pour qu'il utilise une configuration de base de données riche 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 pour le canal n'a aucun effet, même après avoir cliqué sur Enregistrer, sauf si vous modifiez le nom d'utilisateur et le mot de passe ou la chaîne de connexion. Si vous modifiez le nom d'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 données d'identification, une base de données différente est configurée et des tables sont créées après la prochaine modification de transaction ou de livre pertinente. Vous ne pouvez pas modifier une base de données historique enrichie de tables standard en tables de chaîne de blocs et vous ne pouvez pas modifier les temps de conservation, sauf si vous modifiez également les données d'identification ou la chaîne de connexion.
Surveiller le statut de l'historique enrichi
Après avoir configuré la base de données historique enrichie, vous pouvez utiliser la console pour surveiller le statut de réplication de l'historique enrichi.
Limiter l'accès à l'historique enrichi
Vous pouvez utiliser des politiques de canal et des listes de contrôle d'accès (LCA) pour limiter les organisations qui peuvent configurer la base de données riche historique et extraire le statut riche historique ou les informations de configuration.
Tables et colonnes de base de données historiques enrichies
La base de données riche contient trois tables pour chaque canal : historique, état et hauteur la plus récente. Vous interrogez les tables d'historique et d'état lorsque vous créez des analyses sur les transactions de livre de vos codes de chaîne. Si vous avez choisi de sélectionner l'un des détails de la transaction lors de l'activation de l'historique enrichi, une table supplémentaire sera créée avec les détails de la transaction.
Table d'historique
La table <instanceName><channelName>_hist contient l'historique du livre. Les données de ce tableau indiquent l'ID code de 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 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 habituelles propres à Oracle JSON.
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 chaîne de code utilise le format suivant : <chaincodeName>$$<collectionName>.
Colonne | Type de données |
---|---|
chaincodeId | VARCHAR2 (256) |
clé | VARCHAR2 (1024) |
txnIsValid | NOMBRE (1) |
valeur | VARCHAR2 (4000) |
valueJson | CLOB |
blockNo | NUMÉRO NON NUL |
NUMÉRO txnNo | NON NUL |
txnId | VARCHAR2 (128) |
txnTimestamp | TIMESTAMP |
txnIsDelete | NOMBRE (1) |
Table d'état
La table <instanceName><channelName>_state contient des valeurs de données répliquées à partir de la base de données d'état. Vous interrogez 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 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 habituelles propres à Oracle JSON.
Colonne | Type de données |
---|---|
chaincodeId | VARCHAR2 (256) |
key | VARCHAR2 (1024) |
valeur | VARCHAR2 (4000) |
valueJson | CLOB |
blockNo | NUMBER |
txnNo | NUMBER |
Table de hauteur la plus récente
La table <instanceName><channelName>_last est utilisée à l'interne par Oracle Blockchain Platform pour suivre la hauteur des blocs enregistrée dans la base de données historique enrichie. Elle détermine la mise à jour de la base de données historique enrichie et si toutes les transactions de code de chaîne ont été enregistrées dans la base de données historique enrichie. Vous ne pouvez pas interroger cette base de données pour des analyses.
Table des détails sur la transaction
La table <instanceName><channelName>_more contient des attributs liés aux transactions validées. Lors de l'activation de la base de données riche historique, vous pouvez sélectionner les attributs que vous souhaitez enregistrer dans cette table. La table des détails de la transaction saisit uniquement des informations sur les transactions de l'endosseur, et non sur les transactions de configuration ou sur tout autre type de transaction Hyperledger Fabric.
Colonne | Type de données |
---|---|
ID CHAÎNE DE CODE | VARCHAR2 (256) |
N° BLOC | NUMBER |
TXNNO | NUMBER |
ID transaction | VARCHAR2(128) |
HORODATAGE DE TRANSACTION | TIMESTAMP |
NUMÉRO DE RESPONSABLE DE LA SOUMISSION | VARCHAR2(512) |
ORGANISATION DE SOUMISSION | VARCHAR2(512) |
SOUMISSIONNAIRE | VARCHAR2(512) |
TYPE DE CHAÎNE | VARCHAR2(32) |
NOM DE CODE DE VALIDATION | VARCHAR2(32) |
PARRAINAGES | CLOB |
ENTRÉES | CLOB |
ÉVÉNEMENTS | CLOB |
RESPONSESTATUS | NUMÉRO(0) |
DONNÉES UTILES DE LA RÉPONSE | VARCHAR2(1024) |
RECHERCHE | CLOB |
CRÉATEUR DE BLOCS | VARCHAR2(512) |
CRÉATEUR DE BLOC | VARCHAR2(512) |
CRÉATEUR DE BLOC | VARCHAR2(512) |
NUMÉRO DE BLOC DE CONFIGURATION | NUMÉRO(0) |
CONFIGBLOCKCREATORCN | VARCHAR2(512) |
CONFIGBLOCKCREATORORG | VARCHAR2(512) |
CONFIGBLOCKCREATOROU | VARCHAR2(512) |
Note :
- L'organisation (ORG) et l'unité organisationnelle (OU) sont pilotées par des certificats d'identité, ce qui implique qu'ils peuvent être affectés à plusieurs valeurs. Elles sont capturées sous la forme d'une liste séparée par des virgules dans les valeurs de la table.
- Pour les identités, le tableau inclut uniquement des informations sur la partie "Objet" des certificats, et non sur la partie "Émetteur".
- La colonne
RWSET
contient les opérations sur tous les codes de chaîne (dans le même livre) effectués lors de l'endossement. Ainsi, les opérations de lecture LSCC et les opérations réelles d'espace de noms de code de chaîne s'affichent.