为存款令牌应用程序运行 ORDS 脚本
创建实例并部署应用程序后,可以运行 ORDS 脚本。
您必须满足以下先决条件:
- Node.js 版本 20.19 或更高版本、22.13 或更高版本,或 23.5 或更高版本。
- 必须具有可从服务控制台下载的 ORDS 脚本
.zip文件。
不要将生产秘密置于来源控制中。在批准的密钥管理系统中存储数据库密码、Wallet 文件、OAuth 客户端密钥和持有人令牌。脚本提交的 .env 文件仅为占位符模板。
- 将 ORDS 脚本
.zip文件解压缩到工作目录。 - 在
ORDSscript目录中,打开终端。 - 运行以下命令以确认系统上是否支持 Node.js 版本。
node --version npm install - 通过在提供的模板中替换占位符值来配置
.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- 已部署账户代理合同地址。
- 输入以下命令以运行该脚本。
npm run start- 输入 Oracle 数据库用户名和密码。
- 选择 Besu 作为区块链平台。
- 选择存款令牌作为应用程序类型。
- 如果以前的运行不完整,请在选择恢复对象之前查看回退提示。
- 选择是以创建 ORDS REST 端点。
- 仅当部署需要分析输出时才选择分析视图。
- 选择是可在此部署需要新客户端时生成 OAuth 客户端。
- 如果选择了端点和 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 } } - 如果选择了 OAuth 客户端生成,请将报告的客户端 ID 和客户端密钥保留在批准的密钥库中,然后使用它们调用端点来验证系统功能。以下文本显示了令牌请求的形式
端点 URL 使用以下格式。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"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" - 通过运行以下检查验证脚本是否成功运行。
- Blockchain 平台经理简介
- 存在 Oracle AI Database 丰富历史记录概要信息,并且已为该实例选择该概要信息。
- 丰富的历史记录表
- 配置的
BESU_TABLE_PREFIX将解析为_more, _store_state, and _store_hist表。 - 索引数据
- 在丰富的历史记录数据中至少显示一个代表存款标记事务处理。
- 视图
- 所有操作视图都位于配置的
VIEW_PREFIX下。 - ORDS 模块
- 配置的模块在预期的
BASE_PATH上发布。 - OAuth
- 客户机凭证请求将返回访问令牌。
- API
- 有效的已验证请求将返回 HTTP 200。当不存在匹配的分类账数据时,可以接受空的
items列表。 - 隔离
- 视图、模块、角色、权限、客户机和别名对于共享一个 Oracle 数据库的部署是唯一的。
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>';