Creación de la base de datos de historial enriquecido
En este tema se incluye información que le ayudará a especificar una conexión de Oracle Database y a seleccionar canales para crear la base de datos de historial enriquecida. Utilizará esta base de datos para realizar informes de análisis y visualizaciones de las actividades del libro mayor.
¿Qué es la base de datos de historial enriquecido?
La base de datos de historial enriquecida es externa a Oracle Blockchain Platform y contiene datos sobre las transacciones del libro mayor de blockchain en los canales que seleccione. Esta base de datos se utiliza para crear informes de análisis y visualizar las actividades del libro mayor.
Por ejemplo, con la base de datos de historial enriquecida, puede crear análisis para conocer el saldo medio de todos los clientes de su banco durante un intervalo de tiempo, o el tiempo que tardó en enviar la mercancía de un mayorista a un minorista.
Internamente, Oracle Blockchain Platform utiliza la base de datos de historial de Hyperledger Fabric para gestionar el libro mayor y presentar la información de transacciones del libro mayor en la consola. Solo los códigos de cadenas pueden acceder a esta base de datos de historial y no puede exponer la base de datos de historial de Hyperledger Fabric como origen de datos para consultas analíticas. La base de datos de historial enriquecido utiliza una copia externa de Oracle Database y contiene muchos detalles sobre cada transacción confirmada en un canal. Este nivel de recopilación de datos hace que la base de datos de historial enriquecida sea una excelente fuente de datos para el análisis. Para obtener información sobre los datos que recopila la base de datos de historial enriquecido, consulte Tablas y columnas de base de datos de historial enriquecido.
Solo puede utilizar una base de datos como Oracle Autonomous AI Lakehouse u Oracle Base Database Service con Oracle Cloud Infrastructure para crear su base de datos de historial enriquecida. La consola de Oracle Blockchain Platform se utiliza para proporcionar la cadena de conexión y las credenciales para acceder a la base de datos y escribir en ella. Tenga en cuenta que las credenciales que proporcione son las credenciales de la base de datos y Oracle Blockchain Platform no las gestiona. Después de crear la conexión, seleccionará los canales que contienen los datos del libro mayor que desea incluir en la base de datos de historial enriquecido. Consulte Activación y configuración de la base de datos de historial enriquecido.
Puede utilizar tablas estándar o tablas de blockchain para almacenar la base de datos de historial enriquecida. Las tablas de blockchain son tablas de solo adición a prueba de alteraciones, que se pueden utilizar como un libro mayor seguro al tiempo que están disponibles para transacciones y consultas con otras tablas.
Puede utilizar cualquier herramienta de análisis, como Oracle Analytics Cloud u Oracle Data Visualization Cloud Service, para acceder a la base de datos de historial enriquecido y crear informes de análisis o visualizaciones de datos.
Creación de la cadena de conexión de Oracle Base Database Service
Debe recopilar información de Oracle Base Database Service desplegado en Oracle Cloud Infrastructure para crear la cadena de conexión necesaria para la base de datos de historial enriquecida. También debe activar el acceso a la base de datos a través del puerto 1521.
Buscar y registrar información de Oracle Base Database Service
La información que necesita para crear una conexión a Oracle Base Database Service está disponible en la consola de Oracle Cloud Infrastructure.
- En la consola de Infrastructure, seleccione Base de datos en el menú de navegación.
- Busque la base de datos con la que desea conectarse y regale la dirección IP pública.
- Seleccione el nombre de la base de_datos con la que desea conectarse y registre los valores en estos campos:
- Nombre único de la base de datos
- Nombre de dominio de host
- Puerto
- Busque los nombres de usuario y las contraseñas de un usuario con permisos para leer en esta base de datos (por ejemplo, user SYSTEM) y anótelos.
Activación del acceso a base de datos a través del puerto 1521
Agregue una regla de entrada que permita a la bases de datos de historial enriquecido acceder a las bases de datos mediante el puerto 1521.
- En la página de inicio de Oracle Cloud Infrastructure, seleccione el icono de navegación y, a continuación, en Bases de datos, seleccione Sistemas de base de datos.
- Seleccione la base de datos con la que desea conectarse.
- Seleccione el enlace Virtual Cloud Network (Red virtual de nube).
- Navegue a la subred adecuada y, a continuación, en Listas de seguridad, seleccione Lista de seguridad por defecto para <base de datos de destino>.
Aparecerá la página Lista de seguridad.
- Seleccione Editar todas las reglas.
- Agregue una regla a la que desee proporcionar acceso para permitir que cualquier tráfico entrante de Internet pública llegue al puerto 1521 en este nodo, con los siguientes valores:
-
CIDR DE ORIGEN: 0.0.0.0/0
- PROTOCOLO IP: TCP
- SOURCE PORT RANGE: Todo
- RANGO DE PUERTOS DE DESTINO: 1521
- Permite: tráfico TCP para los puertos: 1521
-
Creación de la cadena de conexión
Después de activar el acceso a Oracle Database, utilice la información recopilada anteriormente para crear la cadena de conexión en el cuadro de diálogo Configurar Historial Enriquecido.
Cree la cadena de conexión con la siguiente sintaxis: <publicIP>:<portNumber>/<database unique name>.<host domain name>
La siguiente cadena de conexión es un ejemplo: 192.0.2.0:1521/CustDB_iad1vm.sub05031027070.customervcnwith.oraclevcn.example.com
Comprobar Privilegios de Usuario de Base de Datos
grant select on v_$session to <user>;
grant alter system to <user>;Además, si la base de datos de historial enriquecido utiliza Oracle Autonomous AI Lakehouse, el usuario de la base de datos debe tener el siguiente privilegio:grant unlimited tablespace to <user>;Si el usuario de la base de datos ya no tiene esos privilegios, el administrador de la base de datos del sistema los debe otorgar.Sin estos privilegios, Oracle Blockchain Platform se puede replicar en la base de datos, pero no se puede recuperar de situaciones que provocan una sesión de base de datos dañada, lo que evita que el historial enriquecido se ponga al día con las transacciones recientes durante un período prolongado. Sin estos privilegios en Oracle Autonomous AI Lakehouse, no se guardan datos de historial enriquecidos.
Activación y Configuración de la Base de Datos de Historial Enriquecido
Utilice la consola para proporcionar información de conexión a la base de datos y seleccione los canales con los datos del libro mayor del código de cadenas que desea escribir en la base de datos de historial enriquecido. Por defecto, los canales no están activados para escribir datos en la base de datos de historial enriquecido.
- Cada miembro de la red blockchain configura su propia base de datos de historial enriquecida.
- Debe utilizar Oracle Database. No se soporta ningún otro tipo de base de datos.
- Cada canal que escribe en la base de datos de historial enriquecido debe contener al menos un nodo peer.
- Introduzca la información de conexión y credencial para la instancia de Oracle Database que se va a utilizar para almacenar información de historial enriquecida.
- Active el historial enriquecido en los canales que contienen los datos de código de cadenas que desea escribir en la base de datos de historial enriquecido.
Modificación de la Conexión a la Base de Datos de Historial Enriquecido
Puede cambiar la información de conexión de la base de datos de historial enriquecido.
Configuración de Canales que Escriben Datos en la Base de Datos de Historial Enriquecido
Puede permitir que los canales escriban datos de libro mayor de código de cadenas en la base de datos de historial enriquecido, y puede evitar que los canales escriban datos en la base de datos de historial enriquecido. También puede configurar un canal individual para que utilice una configuración de base de datos de historial enriquecido diferente a la configuración global.
Una vez creadas las tablas en la base de datos para un canal, la modificación de la configuración del historial enriquecido para el canal no tiene ningún efecto, incluso después de hacer clic en Guardar, a menos que cambie el nombre de usuario y la contraseña o la cadena de conexión. Si cambia el nombre de usuario y la contraseña, las tablas se crean en la misma base de datos. Si cambia la cadena de conexión y las credenciales, se configura una base de datos diferente y las tablas se crean después de la siguiente transacción o cambio de libro mayor relevante. No puede cambiar una base de datos de historial enriquecida de tablas estándar a tablas de blockchain, y no puede cambiar los tiempos de retención, a menos que también cambie las credenciales o la cadena de conexión.
Supervisión del estado del historial enriquecido
Después de configurar la base de datos de historial enriquecido, puede utilizar la consola para supervisar el estado de replicación del historial enriquecido.
Limitar el acceso al historial enriquecido
Puede utilizar políticas de canal y listas de control de acceso (ACL) para limitar las organizaciones que pueden configurar la base de datos de historial enriquecido y recuperar información de configuración o estado de historial enriquecido.
Tablas y Columnas de Base de Datos de Historial Enriquecido
La base de datos de historial enriquecido contiene tres tablas para cada canal: historial, estado y altura más reciente. Consultará las tablas de historial y estado al crear análisis sobre las transacciones de contabilidad de los códigos de cadena. Si ha seleccionado seleccionar cualquiera de los detalles de la transacción al activar el historial enriquecido, se creará una tabla adicional con los detalles de la transacción.
Tabla de Historial
La tabla <instanceName><channelName>_hist contiene el historial del libro mayor. Los datos de esta tabla indican el ID de código de cadenas, la clave utilizada, si la transacción era válida, el valor asignado a la clave, etc.
Tenga en cuenta que las columnas value y valueJson se utilizan de forma mutuamente excluyente. Es decir, cuando un valor de clave es json válido, el valor se define en la columna valueJson. De lo contrario, el valor se establece en la columna value. La columna valueJson se configura como una columna json en la base de datos, lo que significa que los usuarios pueden consultar esa columna mediante las extensiones habituales específicas de Oracle JSON.
Si se configura, los datos privados también se almacenan en esta tabla. Para los datos privados, el ID de código de cadena utiliza el siguiente formato: <chaincodeName>$$<collectionName>.
| Columna | Tipo de dato |
|---|---|
| chaincodeId | VARCHAR2 (256) |
| clave | VARCHAR2 (1024) |
| txnIsValid | NÚMERO (1) |
| value | VARCHAR2 (4000) |
| valueJson | CLOB |
| blockNo | NÚMERO NO NULO |
| NÚMERO txnNo | NOT NULL |
| txnId | VARCHAR2 (128) |
| txnTimestamp | TIMESTAMP |
| txnIsDelete | NÚMERO (1) |
Tabla de estados
La tabla de estado <instanceName><channelName> contiene valores de datos replicados desde la base de datos de estado. Consultará la tabla de estados cuando cree análisis sobre el estado del libro mayor.
Tenga en cuenta que las columnas value y valueJson se utilizan de forma mutuamente excluyente. Es decir, cuando un valor de clave es json válido, el valor se define en la columna valueJson. De lo contrario, el valor se establece en la columna value. La columna valueJson se configura como una columna json en la base de datos, lo que significa que los usuarios pueden consultar esa columna mediante las extensiones habituales específicas de Oracle JSON.
| Columna | Tipo de dato |
|---|---|
| chaincodeId | VARCHAR2 (256) |
| clave | VARCHAR2 (1024) |
| value | VARCHAR2 (4000) |
| valueJson | CLOB |
| blockNo | NUMBER |
| txnNo | NUMBER |
Última tabla de altura
La última tabla <instanceName><channelName> la utiliza internamente Oracle Blockchain Platform para realizar un seguimiento de la altura de bloque registrada en la base de datos de historial enriquecida. Determina qué tan actual es la base de datos de historial enriquecido y si todas las transacciones de código de cadena se registraron en la base de datos de historial enriquecido. No puede consultar esta base de datos para análisis.
Tabla Detalles Transacción
La tabla <instanceName><channelName>_more contiene atributos relacionados con las transacciones confirmadas. Al activar la base de datos de historial enriquecido, puede seleccionar cuál de estos atributos desea registrar en esta tabla. La tabla de detalles de transacciones solo captura información sobre transacciones de endosador, no sobre transacciones de configuración ni sobre cualquier otro tipo de transacciones de Hyperledger Fabric.
| Columna | Tipo de dato |
|---|---|
| CÓDIGO DE CADENA | VARCHAR2 (256) |
| NÚMERO DE BLOQUE | NUMBER |
| TXNNO | NUMBER |
| ID de transacción | VARCHAR2(128) |
| REGISTRO DE HORA DE TRANSACCIÓN | TIMESTAMP |
| CONTADOR | VARCHAR2(512) |
| SUBMITTERORG | VARCHAR2(512) |
| PUNTO DE ENVÍO | VARCHAR2(512) |
| TIPO DE CÓDIGO DE CADENA | VARCHAR2(32) |
| NOMBRE DE CÓDIGO DE VALIDACIÓN | VARCHAR2(32) |
| APROBACIONES | CLOB |
| ENTRADAS | CLOB |
| EVENTOS | CLOB |
| ESTADO DE RESPONSABILIDAD | NÚMERO(0) |
| CARGA ÚTIL DE RESPUESTA | VARCHAR2(1024) |
| RWSET | CLOB |
| BLOCKCREATORCN | VARCHAR2(512) |
| BLOCKCREATORORG | VARCHAR2(512) |
| BLOQUEADOR | VARCHAR2(512) |
| NÚMERO DE BLOQUE DE CONFIGURACIÓN | NÚMERO(0) |
| CONFIGBLOCKCREATORCN | VARCHAR2(512) |
| CONFIGBLOCKCREATORORG | VARCHAR2(512) |
| CONFIGBLOCKCREATOROU | VARCHAR2(512) |
Note:
- La organización (ORG) y la unidad de organización (OU) se controlan mediante certificados de identidad, lo que implica que se pueden asignar a varios valores. Se capturan como una lista separada por comas en los valores de la tabla.
- Para las identidades, la tabla incluye información solo sobre la parte "Asunto" de los certificados, no sobre la parte "Emisor".
- La columna
RWSETcontiene operaciones en todos los códigos de cadena (en el mismo libro mayor) realizadas durante el endoso. Como tal, normalmente verá tanto las operaciones de lectura lscc como las operaciones de espacio de nombres de código de cadena reales.