为存款令牌应用程序运行 ORDS 脚本

创建实例并部署应用程序后,可以运行 ORDS 脚本。

您必须满足以下先决条件:
  • Node.js 版本 20.19 或更高版本、22.13 或更高版本,或 23.5 或更高版本。
  • 必须具有可从服务控制台下载的 ORDS 脚本 .zip 文件。

不要将生产秘密置于来源控制中。在批准的密钥管理系统中存储数据库密码、Wallet 文件、OAuth 客户端密钥和持有人令牌。脚本提交的 .env 文件仅为占位符模板。

  1. 将 ORDS 脚本 .zip 文件解压缩到工作目录。
  2. 在 ORDSscript 目录中,打开终端。
  3. 运行以下命令以确认系统上是否支持 Node.js 版本。
    node --version
    npm install
  4. 通过在提供的模板中替换占位符值来配置 .env 文件。不要将数据库密码添加到此文件中;命令行界面以交互方式提示这些密码。
    # Common ORDS configuration
    CONNECTION_STRING="<Oracle connection string or TNS service alias>"
    VIEW_PREFIX="<unique deployment namespace>"
    MODULE_NAME="<unique ORDS module name>"
    BASE_PATH="<unique/ords/base/path/>"
    ITEMS_PER_PAGE="100"
    ORDS_REST_BASE_URL="https://<ords-host>"
    ALIAS_NAME="<REST-enabled schema alias>"
    ROLE_NAME="<unique ORDS role>"
    PRIVILEGE_NAME="<unique ORDS privilege>"
    LABEL="<privilege label>"
    DESCRIPTION="<deployment description>"
    CLIENT_NAME="<OAuth client name>"
    OWNER="<OAuth client owner>"
    SUPPORT_EMAIL="<support email>"
    
    # Besu Deposit Token configuration
    BESU_TABLE_PREFIX="<exact prefix before _more, _store_state and _store_hist>"
    BESU_TOKEN_CONTRACT="0x<deployed Deposit Token token proxy address>"
    BESU_ACCOUNT_CONTRACT="0x<deployed Account proxy address>"
    
    CONNECTION_STRING
    如果 CONNECTION_STRING 参数是 TNS 别名,请提取 wallet 并配置 Oracle 客户机环境,以便可以找到 tnsnames.ora 文件。仅压缩的 wallet .zip 文件不足。
    VIEW_PREFIX
    操作和可选分析视图的唯一名称空间。对共享 Oracle 方案的每个部署使用不同的前缀。
    MODULE_NAME 和 BASE_PATH
    这些参数定义 ORDS 模块标识和 URL 路径。保持部署的特定性和独特性。
    ALIAS_NAME
    在公共 ORDS URL 和令牌 URL 中使用的启用 REST 的 Oracle 方案别名。
    BESU_TABLE_PREFIX
    精确的富历史记录表前缀;它确定源 _more、_store_state 和 _store_hist 表。
    BESU_TOKEN_CONTRACT
    已部署保证金令牌代理合同地址。
    BESU_ACCOUNT_CONTRACT
    已部署账户代理合同地址。
  5. 输入以下命令以运行该脚本。
    npm run start
    1. 输入 Oracle 数据库用户名和密码。
    2. 选择 Besu 作为区块链平台。
    3. 选择存款令牌作为应用程序类型。
    4. 如果以前的运行不完整,请在选择恢复对象之前查看回退提示。
    5. 选择是以创建 ORDS REST 端点。
    6. 仅当部署需要分析输出时才选择分析视图。
    7. 选择是可在此部署需要新客户端时生成 OAuth 客户端。
  6. 如果选择了端点和 OAuth 创建,请将生成的输出保留在批准的密钥存储中。输出包含可调用的端点映射、OAuth 客户端 ID、OAuth 客户端密钥和短暂的 Bearer-token 响应。请勿将客户端密钥或持有人令牌复制到任何不支持已批准密钥处理的源控制系统、文件、wiki 或项目管理软件。以下文本显示了样例输出。
    {
      "ORDSEndpoint": "<generated endpoint URL or endpoint map>",
      "clientId": "<OAuth client ID>",
      "clientSecret": "<OAuth client secret>",
      "bearerToken": {
        "access_token": "<short-lived access token>",
        "token_type": "bearer",
        "expires_in": 3600
      }
    }
  7. 如果选择了 OAuth 客户端生成,请将报告的客户端 ID 和客户端密钥保留在批准的密钥库中,然后使用它们调用端点来验证系统功能。以下文本显示了令牌请求的形式
    curl --request POST \
      "https://<ords-host>/ords/<ALIAS_NAME>/oauth/token" \
      --user "<client-id>:<client-secret>" \
      --header "Content-Type: application/x-www-form-urlencoded" \
      --data "grant_type=client_credentials"
    端点 URL 使用以下格式。
    https://<ords-host>/ords/<ALIAS_NAME>/<BASE_PATH>/<route>
    以下命令显示示例验证测试。
    curl --location \
      "https://<ords-host>/ords/<ALIAS_NAME>/<BASE_PATH>/getAllDepositTokenAccounts?token_id=<TOKEN_ID>" \
      --header "Authorization: Bearer <access-token>" \
      --header "Accept: application/json"
  8. 通过运行以下检查验证脚本是否成功运行。
    Blockchain 平台经理简介
    存在 Oracle AI Database 丰富历史记录概要信息,并且已为该实例选择该概要信息。
    丰富的历史记录表
    配置的 BESU_TABLE_PREFIX 将解析为 _more, _store_state, and _store_hist 表。
    索引数据
    在丰富的历史记录数据中至少显示一个代表存款标记事务处理。
    视图
    所有操作视图都位于配置的 VIEW_PREFIX 下。
    ORDS 模块
    配置的模块在预期的 BASE_PATH 上发布。
    OAuth
    客户机凭证请求将返回访问令牌。
    API
    有效的已验证请求将返回 HTTP 200。当不存在匹配的分类账数据时,可以接受空的 items 列表。
    隔离
    视图、模块、角色、权限、客户机和别名对于共享一个 Oracle 数据库的部署是唯一的。
    以下 SQL 查询可用于验证。
    SELECT view_name
    FROM user_views
    WHERE view_name LIKE UPPER('<VIEW_PREFIX>') || '_%'
    ORDER BY view_name;
    
    SELECT name, uri_prefix, items_per_page, status
    FROM user_ords_modules
    WHERE name = '<MODULE_NAME>';