批发 CBDC 部署参考
以下信息包括对 ORDS 脚本创建的数据库对象的描述以及故障排除提示。
ORDS 脚本使用配置的 VIEW_PREFIX 参数创建以下操作视图。
<VIEW_PREFIX>_ACCOUNTS_V
<VIEW_PREFIX>_TRANSFER_EVENTS_V
<VIEW_PREFIX>_HOLDS_V
<VIEW_PREFIX>_ACTIVE_ROLES_V
<VIEW_PREFIX>_ACCOUNT_TX_HISTORY_V
<VIEW_PREFIX>_ACCOUNT_HISTORY_V如果选择“Analytics(分析)”,将创建以下分析视图,并限定为部署。
<VIEW_PREFIX>_ACCOUNTS_MOD
<VIEW_PREFIX>_TRANSACTION_MOD
<VIEW_PREFIX>_ACCOUNTS_TRANSACTION_MOD该脚本还使用配置的值创建或配置 ORDS 模块、路由、方案别名、角色、权限、OAuth 客户端和客户端 - 角色关联。
查看目录和查询逻辑
以下视图是所选方案中的普通 Oracle 视图;它们不修改提取器表。
| 查看 | 主资源 | 目的/逻辑 |
|---|---|---|
<VIEW_PREFIX>_ACCOUNTS_V |
_more, _store_state |
基于 createAccount 调用和帐户/令牌状态构建当前帐户目录。它解析账户、用户和组织身份、余额、暂挂余额、状态、每日限额、令牌元数据和创建事务处理元数据。
|
<VIEW_PREFIX>_TRANSFER_EVENTS_V |
_more |
将令牌接收日志规范化为传输事件行。它提取发送者、接收者、金额、函数、块/事务处理元数据以及可选的 ~OBPRPCTX~.value.category 上下文。
|
<VIEW_PREFIX>_HOLDS_V |
_store_hist, _more, _store_state |
重新构建薄荷、燃烧和转移暂挂记录。它提取操作/持有 ID、账户、公证人、金额、到期、令牌、类别、说明和最新生命周期状态。当当前状态行不可解析时,它还会提供回退行。 |
<VIEW_PREFIX>_ACTIVE_ROLES_V |
_more |
应用角色添加/删除历史记录,并返回每个客户和角色的最新有效角色分配。 |
<VIEW_PREFIX>_ACCOUNT_TX_HISTORY_V |
前面的操作视图 | 生成面向账户的交易历史记录行,包括传输双方以及规范化的薄荷/消耗/暂挂生命周期结果。它从 _ACCOUNTS_V 视图扩充起始/终止身份。
|
<VIEW_PREFIX>_ACCOUNT_HISTORY_V |
_more, _ACCOUNTS_V |
从账户合同变化生成账户配置历史记录,包括每日限额修订、时间戳、块号和事务处理 ID。 |
<VIEW_PREFIX>_ACCOUNTS_MOD(可选分析)
|
_ACCOUNTS_V |
在与分析兼容的账户配置中公开账户元数据。 |
<VIEW_PREFIX>_TRANSACTION_MOD(可选分析)
|
_TRANSFER_EVENTS_V, _HOLDS_V, _store_hist |
公开规范化的业务事务处理,包括转移、铸币、消耗、请求、暂挂、释放和产生的余额(如果可用)。 |
<VIEW_PREFIX>_ACCOUNTS_TRANSACTION_MOD(可选分析)
|
_TRANSACTION_MOD, _ACCOUNTS_V |
将来源和目标组织上下文添加到分析事务处理记录。 |
ORDS 路线
所有路由都是 <BASE_PATH>/ 下的 GET 路由,需要 OAuth 持有人令牌。ORDS 返回集合信封;具有 HTTP 200 的空 items 数组表示请求有效,但没有匹配的索引记录。
| 路由 | 使用和响应行为 | 必需输入 | 可选输入和默认行为 |
|---|---|---|---|
getCBDCTransactionById |
返回一个规范化的分类账事务处理详细信息记录。 | token_id 标识 WCBDC 令牌;transaction_id 是要检索的 Besu 事务处理散列/标识符。
|
无。没有匹配的事务处理返回空集合。 |
getCBDCAccountTransactionHistoryWithFilters |
返回由其业务标识标识的帐户的历史记录。 | token_id 标识标记;org_id 标识组织;user_id 标识帐户用户。
|
startTime 和 endTime 限制时间范围;省略表示没有下限/上限时间边界。bookmark 是基于零的偏移;省略表示 0。pageSize 是请求的行数;省略表示使用处理程序默认值。
|
getAllCBDCAccountTransactionHistoryWithFilters |
返回令牌范围的账户事务处理历史记录。 | token_id 标识标记。
|
startTime、endTime、bookmark 和 pageSize 的行为与特定于账户的历史记录路由相同。
|
getCBDCAccountStatusHistory |
返回业务帐户的索引状态历史记录行。 | token_id、org_id 和 user_id 标识帐户。
|
无。没有匹配的账户/历史记录将返回空集合。 |
getApproverActionHistory |
返回 mint/消耗决策和最终转移暂挂操作。将执行 executeHold;拒绝 releaseHold。
|
token_id 将结果限制为标记。
|
caller_account_id 是经理/审批人 wallet 地址。省略它以返回所有操作者的操作;提供它以仅返回该 wallet 的操作。它是一个数据范围筛选器,而不是授权。
|
getTokenHistory |
返回令牌级历史记录和供应相关信息。 | token_id 标识标记。
|
无。 |
getCBDCAccountsByRole |
返回与角色关联的客户。 | role 是要匹配的角色名称。
|
无;结果不按此路由进行标记筛选。 |
getUsersByRole |
返回角色的用户/账户角色分配。 | role 是要匹配的角色名称。
|
无。 |
getOrgAccountsByRole |
返回一个组织中具有角色的客户 | org_id 标识组织;role 是角色名称。
|
无。 |
getAllCBDCAccounts |
返回一个令牌的所有索引帐户。 | token_id 标识标记。
|
无。 |
getAllActiveCBDCAccounts |
返回当前状态为“有效”的索引帐户。 | token_id 标识标记。
|
无。 |
getAllSuspendedCBDCAccounts |
返回其当前状态为挂起的索引帐户。 | token_id 标识标记。
|
无。 |
getAllOrgAccounts |
返回一个组织中的所有索引帐户。 | org_id 标识组织。
|
无;结果不按此路由进行标记筛选。 |
getPendingCBDCIssuance |
仅返回当前暂挂的转移暂挂操作;排除终端、已执行、已拒绝和已释放的操作。 | token_id 标识标记。
|
caller_account_id 是公证人/经理 wallet。为整个待处理队列省略它;提供它以仅返回分配给该 wallet 的暂挂。
|
getPendingCBDCRequest |
仅返回当前待处理的 mint/burn 请求。 | token_id 标识标记;request_type 选择支持的请求类型,例如 mint 或 burn。
|
无。排除已批准或已拒绝的请求。 |
getPendingRequest |
相同待处理请求用例的兼容性路由。 | token_id 和 request_type 具有与 getPendingCBDCRequest 相同的含义 |
无。 |
getCBDCAccountsByUser |
返回一个组织/用户/令牌组合的账户记录。 | token_id、org_id 和 user_id 标识帐户所有者和令牌。
|
无。 |
getCBDCAccountHistory |
返回帐户配置/历史记录修订。 | account_address 是区块链账户/钱包地址。
|
offset 是基于零的行偏移量;在第一页上省略。limit 是最大行数;省略以使用 SQL 处理程序默认值。
|
getCBDCAccountStatus |
返回当前索引帐户状态。 | token_id、org_id 和 user_id 标识帐户。
|
无。 |
getRolesByAccount |
返回已解析帐户的角色。 | token_id 始终是必需的。提供 account_address(区块链账户/钱包地址)或 org_id 和 user_id 业务查找组合。
|
如果提供了 account_address,则它是直接帐户过滤器;否则,路由使用 org_id 和 user_id。如果两个查找均未解析帐户,则响应为空。
|
getAllRegisteredOrgs |
返回由令牌的索引帐户表示的组织。 | token_id 标识标记。
|
无。 |
getCBDCMetadata |
返回索引不可变标记元数据。 | token_id 标识标记。
|
无。 |
getCBDCRetiredQuantity |
返回令牌的报废/消耗数量信息。 | token_id 标识标记。
|
无。 |
分页和时间戳:对于支持 bookmark 和 pageSize 参数的两个历史记录路由,bookmark 参数是基于零的行偏移量,pageSize 参数是驼峰拼写法。省略任一值以使用处理程序默认值。startTime 和 endTime 参数在提供时使用 YYYY-MM-DDTHH:MI:SS+/-HH:MI 格式的 ISO-8601 时间戳文本。
端点清单:确切的路由清单属于为部署打包的脚本版本。运行后,使用 ORDS OpenAPI 目录或生成的端点输出作为客户机应用程序的授权列表。
故障排除
| 消息或条件 | 解决方法 |
|---|---|
NJS-516: no configuration directory set |
使用的 TNS 别名没有可访问的 wallet/configuration 目录。提取 wallet 并配置 Oracle 客户机,以便 tnsnames.ora 文件可用。
|
NJS-511 或 ORA-12506 |
监听程序、端点、服务名称、网络允许列表或 wallet 配置问题。验证与 DBA 的脚本外部的 Oracle 连接。 |
| OAuth 令牌请求返回 404 | 验证 /ords/<ALIAS_NAME>/oauth/token 中的确切别名。别名不一定是 Oracle 用户名。
|
| 端点返回 401 | 获取新令牌并验证 OAuth 客户端是否具有与配置的模块基本路径关联的角色/权限。 |
| 端点返回 404 | 验证主机、别名、基本路径、路由名称以及模块是否已发布。 |
ORDS-25001 |
端点已到达 ORDS,但其 SQL 失败。验证表前缀、合同地址、源数据配置和所需的请求参数。 |
ORA-20049: Cannot alter the URL mapping while the schema is enabled |
所选 ALIAS_NAME 与启用的方案映射冲突。重用方案的现有别名,或者让 ORDS 管理员在再次运行脚本之前完成批准的禁用/重新映射/启用过程。
|
| 视图不包含行 | 确认在实例创建期间选择了正确的多信息历史记录概要信息,表前缀完全正确,合同地址与部署的代理匹配,并且已为事务处理编制索引。 |
| 对象与其他部署冲突 | 使用不同的 VIEW_PREFIX、模块名称、基本路径、角色、权限、OAuth 客户端名称和别名。
|