批发 CBDC 链码包

Oracle Blockchain Platform Digital Assets Edition 包含用于大规模中央银行数字货币 (CBDC) 场景的示例链代码。

批发 CBDC 链代码包基于 Blockchain App Builder 支持的扩展令牌分类框架标准。该套餐为代表法定货币的代币在金融机构持有并由受监管的金融机构发行和管理的系统实施了方法。示例规范文件生成用于初始化令牌、管理帐户、分配角色以及完成诸如铸造、传输和刻录令牌之类的操作的方法。它还提供公证账户,用于批准铸造和转账,强制遵守账户级别的每日限制,并启用审计程序。链代码可由 Blockchain App Builder 从 TypeScript 或 Go 中的 WholesaleCBDC.yml 规范文件生成。

批发 CBDC 链代码包可从 Oracle Blockchain Platform 控制台下载,并包括以下组件。
  • WholesaleCBDC.zip,包含要部署的打包链代码的归档文件。
  • WholesaleCBDC.yaml,可与区块链应用程序构建器一起使用的规范文件,用于支持 WholesaleCBDC 链代码。
  • WholesaleCBDC_postman_collection.json,一个 Postman 集合,允许您测试链代码中的 API。
  • README.md,用于处理链代码的分步指南。

要获取批发 CBDC 链代码包,请在 Oracle Blockchain Platform 数字资产控制台中单击 Digital Assets 选项卡,然后选择 Wholesale CBDC Application

您可以像其他样品一样尝试批发 CBDC 链代码。您必须是管理员才能安装和部署示例链代码。

  1. 批发中央银行数字货币页上,单击安装
  2. 安装链代码窗口中,指定一个或多个要在其上安装链代码的对等节点,然后单击安装
  3. 单击部署
  4. 部署链代码窗口中,指定将链代码部署到的通道。链代码的初始参数将用于指定令牌管理员。这些值不可编辑。它们默认为登录到控制台的用户的组织 ID 和用户 ID。单击部署
  5. 单击调用
  6. 调用链代码窗口中,指定用于运行事务处理的渠道。在操作列表中,指定要完成的操作。单击执行

规范文件

批发 CBDC 规范文件 (Wholesale_CBDC.yml) 基于扩展的令牌分类框架规范文件。它包含一个 model 属性,用于生成特定于应用程序的链代码。在这种情况下,生成链代码时,model: wcbdc 会为批发 CBDC 应用程序创建其他方法。规范文件中的以下代码片段显示 model 属性。
#
# Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
#

assets:

# Token asset to manage the complete lifecycle of Wholesale CBDC token.

    - name: CBDC # Asset name
      type: token # Asset type
      standard: ttf+   # Token standard
      events: true # Supports event code generation for non-GET methods
      model: wcbdc # Supports creation of additional methods for Wholesale CBDC application

      anatomy:
          type: fungible # Token type 
          unit: fractional # Token unit

      behavior: # Token behaviors
          - divisible:
                decimal: 2 
          - mintable: 
                mint_approval_required: true 
          - transferable 
          - burnable:
                burn_approval_required: true 
          - holdable
          - roles:
                minter_role_name: minter
                burner_role_name: burner
                notary_role_name: notary
                mint_approver_role_name: notary
                burn_approver_role_name: notary