Definiciones de vista de Oracle Database para CBDC mayorista

Puede utilizar la base de datos de historial enriquecida para recuperar el historial de transacciones de la cuenta y resolver saldos incorrectos en varias transacciones que se producen en el mismo bloque.

Puede utilizar las API GetAccountTransactionHistoryWithFiltersFromRichHistDB, getOrgAccountTransactionHistoryWithFiltersFromRichHistDB y getAllAccountTransactionHistoryWithFiltersFromRichHistDB para recuperar el historial de transacciones de la cuenta de la base de datos de historial enriquecida. Al transferir los parámetros custom_endpoint y bearer_token al método, el historial de transacciones de cuenta se recupera de la base de datos de historial enriquecido o de la base de datos de estado. Hay varios puntos finales personalizados, como se muestra en la siguiente lista. Para obtener más información, consulte Creación de vistas de base de datos de historial enriquecido.
Cuentas
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN
Disponible en modo genérico y modo confidencial.
OrgAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccount
Disponible en modo genérico y modo confidencial.
AllAccounts
https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts
Disponible en modo genérico. En modo confidencial, disponible solo para los propietarios del sistema.
Para recuperar el historial de transacciones de la base de datos de historial enriquecido, debe ejecutar Oracle Autonomous Database con Oracle REST Data Services (ORDS) y OAuth activados.
  1. Active y configure la base de datos de historial enriquecido.
    Para obtener más información, consulte Activación y configuración de la base de datos de historial enriquecido en Uso de Oracle Blockchain Platform.
  2. 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 enriquecida. Para obtener más información, consulte Configuración de los canales que escriben datos en la base de datos de historial enriquecida en Uso de Oracle Blockchain Platform.
  3. Descargue e instale Node.js versión 18 o posterior.
  4. En la página Activos digitales de Oracle Blockchain Platform, seleccione Aplicación CBDC al por mayor.
  5. Haga clic en Descargar el paquete de definiciones de vista de base de datos.
  6. Extraiga el archivo WholesaleCBDCViewsPackage.zip.
  7. Navegue hasta la carpeta ORDSscript e instale las dependencias necesarias ejecutando el siguiente comando.
    npm install
  8. Edite el archivo .env que se proporciona con el script para configurarlo para su entorno.
    Los puntos finales de Oracle REST Data Services utilizan el siguiente formato general.
    <base_URL>/<user_name>/<resource_link>
    Entorno/Tipo de configuración Variables de entorno/configuración Descripción Ejemplo
    DB Connection CONNECTION_STRING Cadena de conexión para la base de datos.
    CONNECTION_STRING="(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)
    (host=adg.ap-sydney-1.example.com))(connect_data=
    (service_name=g536390e55ee33f4_db_high.adg.example.com))(security=(ssl_server_dn_match=yes)))"
    View Configuration CHAINCODE_NAME Nombre del código de cadenas del que se van a recuperar los detalles de transacción en la base de datos de historial enriquecida. CHAINCODE_NAME="BondMarketplace"
    View Configuration INSTANCE_NAME Nombre de la instancia en la que se despliega el código de cadenas. INSTANCE_NAME="BondMarketplace"
    View Configuration CHANNEL_NAME Nombre del canal en el que se despliega el código de cadenas. CHANNEL_NAME="default"
    ORDS Endpoint Setup MODULE_NAME Nombre del módulo ORDS que se va a utilizar. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. MODULE_NAME="demotest"
    ORDS Endpoint Setup BASE_PATH Ruta de acceso base de la URL de ORDS. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. BASE_PATH="demotest"
    ORDS Endpoint Setup PATTERN Nombre de patrón de la URL de ORDS. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. PATTERN="accountTransactionDetails"
    ORDS REST Endpoint ORDS_REST_BASE_URL URL base del punto final REST de ORDS de la base de datos. ORDS_REST_BASE_URL="https://g536390e55ee33f4_db_high.adg.ap-sydney-1.example.com"
    Alias Configuration ALIAS_NAME Alias que se utilizará en lugar de un nombre de usuario en la URL de punto final de REST. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. ALIAS_NAME="demotestAlias"
    ORDS Role ROLE_NAME El rol ORDS que se asigna al usuario. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. ROLE_NAME="demotest_role"
    ORDS Privilege PRIVILEGE_NAME Privilegio ORDS asignado al usuario. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. PRIVILEGE_NAME="demotest_priv"
    ORDS Privilege LABEL Etiqueta para el privilegio ORDS. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. LABEL="demotest_label"
    ORDS Privilege DESCRIPTION Descripción del privilegio ORDS. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. DESCRIPTION="demotest_description"
    OAuth Configuration CLIENT_NAME Nombre de cliente que se utilizará para la autenticación OAuth con el punto final de REST de ORDS. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. CLIENT_NAME="demotest_client"
    OAuth Configuration OWNER Nombre del propietario que se utilizará para la autenticación OAuth con el punto final de REST de ORDS. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. OWNER="demotest"
    OAuth Configuration DESCRIPTION Descripción de la configuración de OAuth. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. DESCRIPTION="demotest_description"
    OAuth Configuration SUPPORT_EMAIL Dirección de correo electrónico de soporte para la configuración de OAuth. Puede ser cualquier valor que no entre en conflicto con los activos existentes en la base de datos. SUPPORT_EMAIL="test@example.com"

    Los nombres de vista de análisis y otros se incluyen en el código de software. La vista de cuentas es ACCOUNTS_VIEW. La vista de recopilación de datos privados de la transacción es TRANSACTION_PDC_VIEW. La vista de transacción de cuenta es ACCOUNT_TRANSACTION_VIEW.

  9. Sólo propietarios del sistema (bancos centrales): edite el archivo Participant_orgs_list.yml para crear vínculos de base de datos entre el banco central y cada banco participante. No edite ni elimine este archivo para los nodos bancarios del participante. Si selecciona el modo confidencial cuando se ejecuta el script, se le solicitará el nombre de usuario y la contraseña del enlace de base de datos para cada organización participante que se muestra en el archivo Participant_orgs_list.yml. A diferencia de los nombres de usuario de base de datos, los nombres de usuario de enlace de base de datos distinguen entre mayúsculas y minúsculas.
    El archivo Participant_orgs_list.yml es una matriz YAML que contiene los detalles de configuración utilizados para crear vínculos de base de datos entre el banco central y cada banco participante, en el siguiente formato.
    orgName
    Nombre de instancia de la organización participante.
    hostName
    Nombre de host o dirección IP del servidor de la base de datos de destino.
    port
    Puerto de red para el servicio de base de datos.
    serviceName
    Nombre del servicio de base de datos o identificador del sistema (SID).
    El siguiente texto es un archivo Participant_orgs_list.yml de ejemplo.
    - orgName: "Participating_Org1"
      hostName: "dbserver.example.com"
      port: 1521
      serviceName: "ORCLPDB1"
    - orgName: "Participating_Org2"
      hostName: "dbserver2.example.com"
      port: 1522
      serviceName: "ORCLPDB2"
  10. Ejecute el script ORDS con el siguiente comando.
    npm run start

    En caso confidencial, se solicitará al usuario que seleccione el tipo de organización. Si el usuario optó por los propietarios del sistema, aparece el archivo Participant_orgs_list.yml en la acción y, por favor, mencione el caso confidencial, todo el banco participante debe completar su configuración de ORDS antes del propietario del sistema; de lo contrario, se producirá un fallo.

    Cuando se ejecuta el comando, se muestran los siguientes indicadores.
    Enter your DB User Name
    Introduzca el nombre de usuario para la base de datos de historial enriquecido. La cuenta debe tener los permisos necesarios para crear vistas y puntos finales de ORDS.
    Enter your DB Password
    Introduzca la contraseña correspondiente a la base de datos de historial enriquecido.
    Please select a chaincode type
    Seleccione CONFIDENTIAL para los códigos de cadenas que utilizan el modo confidencial. De lo contrario, seleccione WCBDC para los códigos de cadenas que utilizan el modo genérico. Utilice las teclas de flecha para desplazarse y, a continuación, pulse la tecla Intro para confirmar la selección. Si selecciona el modo confidencial, se le pedirá que seleccione el tipo de organización: PROPIETARIO DEL SISTEMA (que representa el banco central) u ORG DE PARTICIPACIÓN (que representa los bancos participantes).

    Note:

    En modo confidencial, todas las organizaciones participantes deben ejecutar este script y completar la configuración de ORDS antes que el propietario del sistema. Si ejecuta primero el script para el propietario del sistema, fallará.
    Do you want to create the View and ORDS Endpoint? (y/n)
    Introduzca y para crear la vista y el punto final. Introduzca n si ya ha creado la vista y el punto final.
    Please select the language of your chaincode? (TS/GO)
    Si ha introducido y anteriormente, introduzca TS para TypeScript o GO para GO.
    Do you want to generate ORDS Endpoint URL and Bearer Token? (y/n)
    Introduzca y para generar las credenciales de punto final. De lo contrario, introduzca n.
Si suprime el archivo Participant_orgs_list.yml por error, ejecute el siguiente comando para volver a generar el archivo.
npm run refresh
Si ya existe un enlace de vista o base de datos en el sistema, el script no lo vuelve a crear. En su lugar, se registra un mensaje similar al siguiente texto:
createView already exists
El script continúa con el siguiente paso. Esto garantiza que las vistas, las tablas, los enlaces de base de datos y otras entidades de base de datos no se supriman ni sobrescriban mediante el script.
Además, es posible que vea el siguiente error.
Error: ORA-20049: Cannot alter the URL mapping while the schema is enabled. Try disabling the schema first.
Este error se produce porque el esquema de base de datos está activado y, por lo tanto, no se puede asignar al alias diferente especificado en el archivo .env.
Para evitar este comportamiento, complete los pasos siguientes.
  1. Utilice el mismo nombre de alias utilizado anteriormente o compruebe los servicios REST de la base de datos para el alias de esquema.
  2. Desactive el esquema de base de datos y vuelva a ejecutar el script. Para obtener más información, consulte Oracle REST Data Services (ORDS): uso de SQL Developer.