卸売CBDCのOracle Databaseビュー定義

リッチ履歴データベースを使用して、勘定科目トランザクション履歴を取得し、同じブロックで発生する複数のトランザクションの不正な残高を解決できます。

GetAccountTransactionHistoryWithFiltersFromRichHistDB APIを使用して、リッチ履歴データベースからアカウント・トランザクション履歴をフェッチできます。custom_endpointおよびbearer_tokenパラメータをメソッドに渡すと、リッチ履歴データベースまたは状態データベースからアカウント・トランザクション履歴が取得されます。
リッチ履歴データベースからトランザクション履歴を取得するには、Oracle REST Data Services (ORDS)およびOAuthを有効にしてOracle Autonomous Databaseを実行する必要があります。
  1. リッチ履歴データベースを有効化および構成します。
    詳細は、Oracle Blockchain Platformの使用リッチ履歴データベースの有効化および構成を参照してください。
  2. リッチ履歴データベースに書き込むチェーンコード・データを含むチャネルのリッチ履歴を有効にします。詳細は、Oracle Blockchain Platformの使用リッチ履歴データベースへのデータの書込みチャネルの構成を参照してください。
  3. Node.jsバージョン18以降をダウンロードしてインストールします。
  4. Oracle Blockchain Platform「デジタル・アセット」ページで、「Wholesale CBDC Application」を選択します。
  5. 「データベース・ビュー定義パッケージのダウンロード」をクリックします。
  6. WholesaleCBDCViewsPackage.zipファイルを抽出します。
  7. 次のコマンドを実行して、ORDSscriptフォルダに移動し、必要な依存関係をインストールします。
    npm install
  8. スクリプトに付属の.envファイルを編集して、環境に合せて構成します。
    Oracle REST Data Servicesエンドポイントでは、次の一般的な形式が使用されます。
    <base_URL>/<user_name>/<resource_link>
    環境/構成タイプ 環境/構成変数 説明
    DB Connection CONNECTION_STRING データベースの接続文字列。
    CONNECTION_STRING="(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)
    (host=adg.ap-sydney-1.example.com))(connect_data=
    (service_name=g536390e55ee33f4_db_high.adg.example.com))(security=(ssl_server_dn_match=yes)))"
    View Configuration VIEW_NAME 勘定科目トランザクション詳細を表示するためのビューの名前。これは、データベース内の既存のアセットと競合しない任意の値にできます。 VIEW_NAME="viewTest"
    View Configuration CHAINCODE_NAME リッチ履歴データベースからトランザクション詳細をフェッチするチェーンコードの名前。 CHAINCODE_NAME="BondMarketplace"
    View Configuration INSTANCE_NAME チェーンコードがデプロイされるインスタンスの名前。 INSTANCE_NAME="BondMarketplace"
    View Configuration CHANNEL_NAME チェーンコードがデプロイされるチャネルの名前。 CHANNEL_NAME="default"
    ORDS Endpoint Setup MODULE_NAME 使用するORDSモジュールの名前。これは、データベース内の既存のアセットと競合しない任意の値にできます。 MODULE_NAME="demotest"
    ORDS Endpoint Setup BASE_PATH ORDS URLのベース・パス。これは、データベース内の既存のアセットと競合しない任意の値にできます。 BASE_PATH="demotest"
    ORDS Endpoint Setup PATTERN ORDS URLのパターン名。これは、データベース内の既存のアセットと競合しない任意の値にできます。 PATTERN="accountTransactionDetails"
    ORDS Endpoint Setup ITEMS_PER_PAGE ORDS問合せ結果のページごとに表示するアイテムの数。これは、データベース内の既存のアセットと競合しない任意の値にできます。 ITEMS_PER_PAGE=120
    ORDS REST Endpoint ORDS_REST_BASE_URL データベースのORDS RESTエンドポイントのベースURL。 ORDS_REST_BASE_URL="https://g536390e55ee33f4_db_high.adg.ap-sydney-1.example.com"
    Alias Configuration ALIAS_NAME RESTエンドポイントURLでユーザー名のかわりに使用する別名。これは、データベース内の既存のアセットと競合しない任意の値にできます。 ALIAS_NAME="demotestAlias"
    ORDS Role ROLE_NAME ユーザーに割り当てられているORDSロール。これは、データベース内の既存のアセットと競合しない任意の値にできます。 ROLE_NAME="demotest_role"
    ORDS Privilege PRIVILEGE_NAME ユーザーに割り当てられているORDS権限。これは、データベース内の既存のアセットと競合しない任意の値にできます。 PRIVILEGE_NAME="demotest_priv"
    ORDS Privilege LABEL ORDS権限のラベル。これは、データベース内の既存のアセットと競合しない任意の値にできます。 LABEL="demotest_label"
    ORDS Privilege DESCRIPTION ORDS権限の説明。これは、データベース内の既存のアセットと競合しない任意の値にできます。 DESCRIPTION="demotest_description"
    OAuth Configuration CLIENT_NAME ORDS RESTエンドポイントでのOAuth認証に使用するクライアント名。これは、データベース内の既存のアセットと競合しない任意の値にできます。 CLIENT_NAME="demotest_client"
    OAuth Configuration OWNER ORDS RESTエンドポイントでのOAuth認証に使用する所有者名。これは、データベース内の既存のアセットと競合しない任意の値にできます。 OWNER="demotest"
    OAuth Configuration DESCRIPTION OAuth構成の説明。これは、データベース内の既存のアセットと競合しない任意の値にできます。 DESCRIPTION="demotest_description"
    OAuth Configuration SUPPORT_EMAIL OAuth構成のサポート電子メール・アドレス。これは、データベース内の既存のアセットと競合しない任意の値にできます。 SUPPORT_EMAIL="test@example.com"

    分析ビュー名はソフトウェアコードに含まれています。アカウント・ビューはACCOUNTS_MODです。トランザクション・ビューはTRANSACTION_MODです。勘定科目トランザクション・ビューはACCOUNTS_TRANSACTION_MODです。

  9. 次のコマンドを使用してORDSスクリプトを実行します。
    npm run start --username='<username>' --password='<password>'

    この例では、<username>および<password>はリッチ履歴データベースの資格証明で、ビューおよびORDSエンドポイントの作成に必要な権限が必要です。bashインタフェースの制限のため、ユーザー名とパスワードは一重引用符(')で囲む必要があります。

    コマンドを実行すると、次のプロンプトが表示されます。
    Do you want to create the View and ORDS Endpoint? (y/n)
    ビューおよびエンドポイントを作成するには、yと入力します。ビューとエンドポイントをすでに作成している場合は、nと入力します。
    Please select the language of your chaincode? (TS/GO)
    以前にyを入力した場合は、TypeScriptにTSと入力するか、GOにGOと入力します。
    Do you want to generate ORDS Endpoint URL and Bearer Token? (y/n)
    yを入力して、エンドポイント資格証明を生成します。そうでない場合は、nを入力します。
次のエラーが発生することがあります。
Error: ORA-20049: Cannot alter the URL mapping while the schema is enabled. Try disabling the schema first.
このエラーは、データベース・スキーマが有効であるため、.envファイルで指定されている別の別名にマップできないために発生します。
この動作を回避するには、次のステップを実行します。
  1. 以前に使用したものと同じ別名を使用するか、データベース内のRESTサービスでスキーマ別名を確認します。
  2. データベース・スキーマを無効にして、スクリプトを再度実行します。詳細は、Oracle REST Data Services (ORDS): SQL Developerの使用を参照してください。