Créer la base de données Rich History
Cette rubrique contient des informations pour vous aider à spécifier une connexion à Oracle Database et à sélectionner des canaux pour créer la base de données avec historique enrichi. 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 base de données d'histoire riche?
La base de données avec historique enrichi 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 base de données riche en histoire, vous pouvez créer des analyses pour connaître le solde moyen de tous les clients de votre banque sur un intervalle de temps donné 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 livre et vous présenter les informations de transaction du 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 d'historique Hyperledger Fabric en tant que source de données pour les interrogations analytiques. La base de données riche en historique utilise une copie externe d'Oracle Database 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, voir Tables et colonnes de base de données d'historique enrichi.
Vous ne pouvez utiliser une base de données telle qu'Oracle Autonomous AI Lakehouse ou Oracle Base Database Service avec Oracle Cloud Infrastructure que pour créer votre base de données avec un historique complet. Vous utilisez la console Oracle Blockchain Platform pour fournir la chaîne de connexion et les données d'identification pour accéder à la base de données et l'é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 contenant les données de livre à inclure dans la base de données d'historique enrichi. 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 enrichi. Les tables de chaîne de blocs sont des tables d'ajout infalsifiables, qui peuvent être utilisées en tant que livre sécurisé tout en étant disponibles pour les transactions et les interrogations avec d'autres tables.
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 complet et créer des rapports d'analyse ou des visualisations de données.
Créer la chaîne de connexion au service Oracle Base Database Service
Vous devez collecter des informations à partir du service de base de données de base Oracle Base Database 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 activer l'accès à la base de données au moyen du port 1521.
Rechercher et enregistrer les informations sur le service Oracle Base Database Service
Les informations dont vous avez besoin pour créer une connexion au service Oracle Base Database Service sont disponibles dans la console Oracle Cloud Infrastructure.
- Dans la console Infrastructure, sélectionnez Base de données dans le menu de navigation.
- Localisez la base de données à laquelle vous voulez vous connecter et enregistrez l'adresse IP publique.
- Sélectionnez le nom de la base de données à laquelle vous souhaitez 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 un nom d'utilisateur et un mot de passe d'utilisateur de base de données (par exemple, utilisateur SYSTEM) disposant des autorisations de lecture dans cette base de données, puis notez-les.
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 d'historique complet d'accéder à la base de données au moyen du port 1521.
- Dans la page d'accueil d'Oracle Cloud Infrastructure, sélectionnez l'icône de navigation, puis, sous Bases de données, sélectionnez Systèmes de base de données.
- Sélectionnez la base de données à laquelle vous souhaitez vous connecter.
- Sélectionnez le lien Réseau en nuage virtuel.
- Naviguez jusqu'au sous-réseau approprié, puis sous Listes de sécurité, sélectionnez Liste de sécurité par défaut pour <Base de données cible>.
La page Security List s'affiche.
- Sélectionnez Modifier toutes les règles.
- Ajoutez une règle permettant 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 à Oracle Database, utilisez les informations que vous avez collectées précédemment 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>
La chaîne de connexion suivante est un exemple : 192.0.2.0:1521/CustDB_iad1vm.sub05031027070.customervcnwith.oraclevcn.example.com
Vérifier les privilèges d'utilisateur de base de données
grant select on v_$session to <user>;
grant alter system to <user>;De plus, si la base de données à historique enrichi utilise Oracle Autonomous AI Lakehouse, 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 vers la base de données, mais elle ne peut pas effectuer de récupération à partir de situations entraînant une session de base de données endommagée, ce qui empêche l'historique complet de rattraper les transactions récentes pendant une période prolongée. Sans ces privilèges sur Oracle Autonomous AI Lakehouse, aucune donnée d'historique enrichi n'est enregistrée.
Activer et configurer la base de données d'historique enrichi
Utiliser la console pour fournir les informations de connexion à la base de données et sélectionner les canaux avec les données du livre de chaîne à écrire dans la base de données à 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.
- Chaque membre du réseau de la chaîne de blocs configure sa propre base de données à histoire riche.
- Vous devez utiliser Oracle Database. 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 l'instance d'Oracle Database à utiliser pour stocker des informations d'historique enrichies.
- Activer l'historique enrichi sur les canaux qui contiennent les données de code de 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 permettre aux canaux d'écrire des données de livre de chaîne dans la base de données d'historique enrichi et vous pouvez 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 qu'il utilise une configuration de base de données riche en historique différente de la configuration globale.
Une fois les tables créées dans la base de données pour un canal, la modification de la configuration de l'historique complet 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 autre base de données est configurée et des tables sont créées après la prochaine modification de transaction ou de livre pertinente. Vous ne pouvez pas remplacer une base de données avec historique enrichi de tables standard par des 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 avec historique enrichi, vous pouvez utiliser la console pour surveiller le statut de réplication avec 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 d'historique complet et extraire le statut d'historique complet ou des informations de configuration.
Tables et colonnes de base de données d'historique enrichi
La base de données riche en historique contient trois tables pour chaque canal : historique, état et hauteur la plus récente. Vous interrogerez 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 transaction lors de l'activation de l'historique complet, une table supplémentaire sera créée avec les détails de transaction.
Historique
La table <instanceName><channelName>_hist contient l'historique du livre. Les données de ce tableau vous 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 lorsqu'une valeur de clé est un json valide que 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 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 code de chaîne 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 | NOMBRE NON NUL |
| NUMÉRO txnNo | NON NUL |
| txnId | VARCHAR2 (128) |
| txnTimestamp | TIMESTAMP |
| txnIsDelete | NOMBRE (1) |
État
La table d'états <instanceName><channelName> contient des valeurs de données répliquées à partir de la base de données d'états. Vous interrogez la table d'é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 lorsqu'une valeur de clé est un json valide que 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 Oracle JSON habituelles.
| Colonne | Type de données |
|---|---|
| chaincodeId | VARCHAR2 (256) |
| key | VARCHAR2 (1024) |
| valeur | VARCHAR2 (4000) |
| valueJson | CLOB |
| blockNo | NUMBER |
| txnNo | NUMBER |
Dernière table de hauteur
La dernière table <instanceName><channelName> est utilisée à l'interne par Oracle Blockchain Platform pour suivre la hauteur des blocs enregistrés dans la base de données d'historique enrichi. Il détermine l'actualisation de la base de données d'historique complet et si toutes les transactions de code de chaîne ont été enregistrées dans la base de données d'historique complet. 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 d'historique complet, vous pouvez sélectionner les attributs que vous souhaitez enregistrer dans cette table. La table des détails des transactions saisit uniquement les informations sur les transactions d'endossement, pas les transactions de configuration ni tout autre type de transaction Hyperledger Fabric.
| Colonne | Type de données |
|---|---|
| CODE DE CHAÎNE | VARCHAR2 (256) |
| NUMÉRO DE BLOC | NUMBER |
| TXNNO | NUMBER |
| TXNID; | VARCHAR2(128) |
| HORODATAGE DE TRANSACTION | TIMESTAMP |
| NOM DU DÉCLARANT | VARCHAR2(512) |
| ORGANISATION DÉCLARANTE | VARCHAR2(512) |
| SOUMISSIONNAIRE | VARCHAR2(512) |
| TYPE DE CHAÎNE | VARCHAR2(32) |
| NOM DU CODE DE VALIDATION | VARCHAR2(32) |
| PARRAINAGES | CLOB |
| ENTRÉES | CLOB |
| ÉVÉNEMENTS | CLOB |
| STATUT DU RESPONSABLE | NOMBRE(0) |
| DONNÉES UTILES DE RÉPONSE | 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) |
Note :
- 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 saisies 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
RWSETcontient les opérations sur tous les codes de chaîne (dans le même livre) effectuées lors de l'endossement. Ainsi, vous verrez généralement à la fois les opérations de lecture lscc et les opérations d'espace de noms de code de chaîne réelles.