面向批发 CBDC 的 Oracle Database View 定义

您可以使用丰富的历史记录数据库检索账户事务处理历史记录,并在同一块中发生的多个事务处理中解决不正确的余额。

您可以使用 GetAccountTransactionHistoryWithFiltersFromRichHistDB API 从富历史记录数据库提取账户事务处理历史记录。将 custom_endpointbearer_token 参数传递到方法时,将从富历史记录数据库或状态数据库中检索帐户事务处理历史记录。
要从富历史记录数据库检索事务处理历史记录,必须运行启用了 Oracle REST Data Services (ORDS) 和 OAuth 的 Oracle Autonomous Database。
  1. 启用和配置富历史记录数据库。
    有关更多信息,请参阅使用 Oracle Blockchain Platform 中的启用和配置富历史记录数据库
  2. 对包含要写入富历史记录数据库的链代码数据的渠道启用富历史记录。有关更多信息,请参见 Configure the Channels that Write Data to the Rich History Database in Using Oracle Blockchain Platform
  3. 下载并安装 Node.js 版本 18 或更高版本。
  4. Oracle Blockchain PlatformDigital Assets 页面上,选择 Wholesale CBDC Application
  5. 单击下载 Database View Definitions 程序包
  6. 提取 WholesaleCBDCViewsPackage.zip 文件。
  7. 导航到 ORDSscript 文件夹并通过运行以下命令安装所需的相关项。
    npm install
  8. 编辑脚本随附的 .env 文件,以便为您的环境配置该文件。
    Oracle REST Data Services 端点使用以下常规格式。
    <base_URL>/<user_name>/<resource_link>
    环境/配置类型 环境/配置变量 说明 范例
    DB Connection CONNECTION_STRING 数据库的连接字符串。
    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 VIEW_NAME 用于显示账户事务处理详细信息的视图的名称。这可以是与数据库中的现有资产不冲突的任何值。 VIEW_NAME="viewTest"
    View Configuration CHAINCODE_NAME 从富历史记录数据库中提取事务处理详细信息的链代码的名称。 CHAINCODE_NAME="BondMarketplace"
    View Configuration INSTANCE_NAME 部署链代码的实例的名称。 INSTANCE_NAME="BondMarketplace"
    View Configuration CHANNEL_NAME 部署链代码的渠道的名称。 CHANNEL_NAME="default"
    ORDS Endpoint Setup MODULE_NAME 要使用的 ORDS 模块的名称。这可以是与数据库中的现有资产不冲突的任何值。 MODULE_NAME="demotest"
    ORDS Endpoint Setup BASE_PATH ORDS URL 的基本路径。这可以是与数据库中的现有资产不冲突的任何值。 BASE_PATH="demotest"
    ORDS Endpoint Setup PATTERN ORDS URL 的模式名称。这可以是与数据库中的现有资产不冲突的任何值。 PATTERN="accountTransactionDetails"
    ORDS Endpoint Setup ITEMS_PER_PAGE ORDS 查询结果中每页显示的项数。这可以是与数据库中的现有资产不冲突的任何值。 ITEMS_PER_PAGE=120
    ORDS REST Endpoint ORDS_REST_BASE_URL 数据库的 ORDS REST 端点的基本 URL。 ORDS_REST_BASE_URL="https://g536390e55ee33f4_db_high.adg.ap-sydney-1.example.com"
    Alias Configuration ALIAS_NAME 要在 REST 端点 URL 中代替用户名使用的别名。这可以是与数据库中的现有资产不冲突的任何值。 ALIAS_NAME="demotestAlias"
    ORDS Role ROLE_NAME 分配给用户的 ORDS 角色。这可以是与数据库中的现有资产不冲突的任何值。 ROLE_NAME="demotest_role"
    ORDS Privilege PRIVILEGE_NAME 分配给用户的 ORDS 权限。这可以是与数据库中的现有资产不冲突的任何值。 PRIVILEGE_NAME="demotest_priv"
    ORDS Privilege LABEL ORDS 特权的标签。这可以是与数据库中的现有资产不冲突的任何值。 LABEL="demotest_label"
    ORDS Privilege DESCRIPTION ORDS 权限的说明。这可以是与数据库中的现有资产不冲突的任何值。 DESCRIPTION="demotest_description"
    OAuth Configuration CLIENT_NAME 用于对 ORDS REST 端点进行 OAuth 验证的客户端名称。这可以是与数据库中的现有资产不冲突的任何值。 CLIENT_NAME="demotest_client"
    OAuth Configuration OWNER 用于对 ORDS REST 端点进行 OAuth 验证的所有者名称。这可以是与数据库中的现有资产不冲突的任何值。 OWNER="demotest"
    OAuth Configuration DESCRIPTION OAuth 配置的说明。这可以是与数据库中的现有资产不冲突的任何值。 DESCRIPTION="demotest_description"
    OAuth Configuration SUPPORT_EMAIL OAuth 配置的支持电子邮件地址。这可以是与数据库中的现有资产不冲突的任何值。 SUPPORT_EMAIL="test@example.com"

    软件代码中包括分析视图名称。帐户视图为 ACCOUNTS_MOD。事务处理视图为 TRANSACTION_MOD。帐户交易视图为 ACCOUNTS_TRANSACTION_MOD

  9. 使用以下命令运行 ORDS 脚本。
    npm run start --username='<username>' --password='<password>'

    在此示例中,<username><password> 是富历史记录数据库的身份证明,这些数据库必须具有创建视图和 ORDS 端点所需的权限。由于 bash 接口中的限制,用户名和密码必须用单引号 (') 括起来。

    命令运行时,将显示以下提示。
    Do you want to create the View and ORDS Endpoint? (y/n)
    输入 y 以创建视图和端点。如果已创建视图和端点,请输入 n
    Please select the language of your chaincode? (TS/GO)
    如果之前输入了 y ,则为 TypeScript 输入 TS ,为 GO 输入 GO
    Do you want to generate ORDS Endpoint URL and Bearer Token? (y/n)
    输入 y 以生成端点身份证明。否则,输入 n
您可能会看到以下错误。
Error: ORA-20049: Cannot alter the URL mapping while the schema is enabled. Try disabling the schema first.
出现此错误的原因是数据库方案已启用,因此无法映射到 .env 文件中指定的其他别名。
要解决此行为,请完成以下步骤。
  1. 使用之前使用的相同别名,或检查数据库中的 REST 服务是否具有方案别名。
  2. 禁用数据库方案并再次运行脚本。有关更多信息,请参见Oracle REST Data Services (ORDS):Using SQL Developer