- Oracle Blockchain Platformデジタル・アセット・エディション
- 卸売中央銀行デジタル通貨アプリケーション
- 卸売CBDCのOracle Databaseビュー定義
卸売CBDCのOracle Databaseビュー定義
リッチ履歴データベースを使用して、勘定科目トランザクション履歴を取得し、同じブロックで発生する複数のトランザクションの不正な残高を解決できます。
GetAccountTransactionHistoryWithFiltersFromRichHistDB
APIを使用して、リッチ履歴データベースからアカウント・トランザクション履歴をフェッチできます。custom_endpoint
およびbearer_token
パラメータをメソッドに渡すと、リッチ履歴データベースまたは状態データベースからアカウント・トランザクション履歴が取得されます。
リッチ履歴データベースからトランザクション履歴を取得するには、Oracle REST Data Services (ORDS)およびOAuthを有効にしてOracle Autonomous Databaseを実行する必要があります。
- リッチ履歴データベースを有効化および構成します。詳細は、Oracle Blockchain Platformの使用のリッチ履歴データベースの有効化および構成を参照してください。
- リッチ履歴データベースに書き込むチェーンコード・データを含むチャネルのリッチ履歴を有効にします。詳細は、Oracle Blockchain Platformの使用のリッチ履歴データベースへのデータの書込みチャネルの構成を参照してください。
- Node.jsバージョン18以降をダウンロードしてインストールします。
- Oracle Blockchain Platformの「デジタル・アセット」ページで、「Wholesale CBDC Application」を選択します。
- 「データベース・ビュー定義パッケージのダウンロード」をクリックします。
WholesaleCBDCViewsPackage.zip
ファイルを抽出します。- 次のコマンドを実行して、
ORDSscript
フォルダに移動し、必要な依存関係をインストールします。npm install
- スクリプトに付属の
.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
です。 - 次のコマンドを使用して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
ファイルで指定されている別の別名にマップできないために発生します。
この動作を回避するには、次のステップを実行します。
- 以前に使用したものと同じ別名を使用するか、データベース内のRESTサービスでスキーマ別名を確認します。
- データベース・スキーマを無効にして、スクリプトを再度実行します。詳細は、Oracle REST Data Services (ORDS): SQL Developerの使用を参照してください。