預入トークン・アプリケーションのORDSスクリプトの実行

インスタンスを作成してアプリケーションをデプロイした後、ORDSスクリプトを実行できます。

次の前提条件を満たしている必要があります。
  • Node.jsバージョン20.19以降、22.13以降、または23.5以降。
  • ORDSスクリプトの.zipファイルが必要です。このファイルは、サービス・コンソールからダウンロードできます。

ソース・コントロールに本番シークレットを配置しないでください。承認されたシークレット管理システムに、データベース・パスワード、ウォレット・ファイル、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別名の場合は、ウォレットを抽出してOracleクライアント環境を構成し、tnsnames.oraファイルを検出できるようにします。圧縮ウォレット.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クライアント・シークレットおよび短命のベアラー・トークン・レスポンスが含まれます。承認されたシークレット処理をサポートしていないソース・コントロール・システム、ファイル、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 Platform Managerプロファイル
    Oracle AI Databaseリッチ履歴プロファイルが存在し、インスタンスに対して選択されています。
    リッチ履歴表
    構成されたBESU_TABLE_PREFIXは、_more, _store_state, and _store_hist表に解決されます。
    索引付けされたデータ
    リッチ履歴データには、少なくとも1つの代表保証金トークン・トランザクションが表示されます。
    ビュー
    すべての操作ビューは、構成されたVIEW_PREFIXの下に存在します。
    ORDSモジュール
    構成されたモジュールは、予期されるBASE_PATHに公開されます。
    OAuth
    クライアント資格証明リクエストはアクセス・トークンを返します。
    API
    有効な認証済リクエストはHTTP 200を返します。一致する元帳データが存在しない場合は、空のitemsリストを使用できます。
    分離
    ビュー、モジュール、ロール、権限、クライアントおよび別名は、1つの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>';