卸売CBDCサンプル・アプリケーション用のOracle Blockchain Platformの構成
Oracle Blockchain Platformのすべての必要なインスタンスとその前提条件となる製品を作成したら、ユーザーとロールを構成し、参加者組織をファウンダ組織に追加して、リッチ履歴データベースを有効にする必要があります。
Oracle Blockchain PlatformインスタンスへのIDCSグループの構成
組込みのOracle Blockchain Platformロールおよびロールへのユーザーの割当て方法の詳細は、ユーザーおよびアプリケーション・ロールの設定を参照してください
卸売CBDCサンプル・アプリケーション・ロールの詳細は、卸売CBDCアプリケーション・ワークフローを参照してください。
Oracle Blockchain Platformでは、次のアプリケーション・ロール割当てを実装する必要があります。
- システム所有者グループ: 単一のシステム所有者IDCSグループ(すべてのシステム所有者ペルソナを含む)を、システム所有者Oracle Blockchain Platform Digital Assets Editionインスタンスの
REST_CLIENT
アプリケーション・ロールに割り当てます。個々のペルソナ固有のグループをOracle Blockchain Platform Digital Assets Editionインスタンスに直接割り当てないでください。 - 参加者組織グループ: 各参加者組織について、単一の結合参加者組織IDCSグループ(その組織のすべてのペルソナ固有のグループを含む)を、それぞれのOracle Blockchain Platform Digital Assets Editionインスタンスの
REST_CLIENT
アプリケーション・ロールに割り当てます。 - 管理ロール: 関連する管理グループ(
System_Admins
やOrg1_Admins
など)を、それぞれのOracle Blockchain Platform Digital Assets EditionインスタンスのADMIN
アプリケーション・ロールに割り当てます。
この構成により、システム所有者グループと参加組織グループの両方にREST_CLIENT
ロールを介して必要なアクセス権が付与され、管理権限はADMIN
ロールを介して適切に管理されます。
グループをアプリケーション・ロールに割り当てるには、次のステップに従います。
- Oracle Cloud Infrastructureアカウントにサインインします。
- コンソールで、左上隅の「ナビゲーション」メニューをクリックします。
- 「アイデンティティ」で、「ドメイン」を選択します。
- 「ドメイン」ページで、「Oracle Identity Cloud Service」をクリックします。
- Oracle Identity Cloud Serviceのナビゲーション・メニューで、「Oracle Cloud Services」を選択します。グループ・ロールを割り当てるOracle Blockchain Platformインスタンスを見つけます。そのインスタンスの「詳細」ページを開きます。
- 「アプリケーション・ロール」ページに移動して、「リソース」ナビゲータにリストされているOracle Identity Cloud Serviceアプリケーション・ロールを表示します。
- 割り当てるロールを選択し、ロールを展開します。ロールの「詳細」メニューをクリックし、「グループの割当て」を選択します。
- 「グループの割当て」ダイアログで、ロールに割り当てるグループを選択し、「割当て」をクリックします。
ClientId
およびClientSecret
のフェッチ
Oracle Blockchain PlatformのClientID
およびClientSecret
は、Visual Builderによって使用されます。「ビジュアル・ビルダー・バックエンドの構成」の説明に従って、後でビジュアル・ビルダーでこれらのパラメータを更新する必要があります。
次のステップを実行して、Oracle Blockchain PlatformインスタンスのクライアントIDおよびクライアント・シークレットを取得します:
- Oracle Cloud Infrastructureアカウントにサインインします。OAuth設定を管理するための十分な管理権限があることを確認します。
- コンソールで、左上隅の「ナビゲーション」メニューをクリックします。
- 「アイデンティティ」で、「ドメイン」を選択します。
- 「ドメイン」ページで、「Oracle Identity Cloud Service」をクリックします。
- Oracle Identity Cloud Serviceのナビゲーション・メニューで、「Oracle Cloud Services」を選択します。クライアントIDおよびクライアント・シークレットをフェッチするOracle Blockchain Platformインスタンスを見つけます。そのインスタンスの「詳細」ページを開きます。
- インスタンスの詳細ページを開くと、表示されるデフォルトのタブはOAuth「構成」タブになります。このタブには、Oracle Blockchain PlatformインスタンスのOAuth設定に関する重要な情報が含まれています。
「一般情報」セクションには、「クライアントID」および「クライアント・シークレット」のラベルが付いたフィールドがあります。これらの資格証明は、Oracle Blockchain Platformに対するAPIリクエストを認証するために使用されます。
複数組織構成
複数の組織を持つ複雑なOracle Blockchain Platformネットワークを作成する場合は、ファウンダに参加者を追加します。このプロセスの概要は、Oracle Blockchain Platform管理ガイド: OBCS参加者組織のネットワークへの追加に記載されています。
Oracle Blockchain Platformのリッチ履歴データベースの構成
リッチ履歴データベースの構成および使用の詳細は、リッチ履歴データベースの作成を参照してください。
これらのステップを完了する前に、Autonomous Databaseのプロビジョニングの説明に従ってAutonomous Databaseインスタンスを作成し、Oracle Blockchain Platformのリッチ履歴データベースを有効にする必要があります。
汎用モードで、Oracle Blockchain Platformのシステム所有者インスタンス用にOracle Autonomous Databaseの単一インスタンスを構成します。機密モードでは、各参加者組織およびシステム所有者をOracle Autonomous Databaseの個別のインスタンスで構成する必要があります。
- ネットワーク・インスタンスのOracle Blockchain Platformコンソールを開きます。
- 右上隅にある「その他のアクション」メニューをクリックし、「リッチ履歴の構成」を選択します。
- Oracleデータベースにアクセスして書き込むための接続文字列および資格証明を指定して、Oracleデータベース接続を指定します。指定する資格証明はデータベースの資格証明で、Oracle Blockchain Platformでは管理されないことに注意してください。
- 「保存」をクリックして、リッチ履歴データベースを構成します。
登録の作成
ユーザーの登録は、System_Admins
およびOrg_Admins
グループに手動で作成する必要があります。
Oracle Blockchain PlatformのRESTプロキシへの登録は、ユーザーが登録証明書を必要とせずにブロックチェーンと対話するメカニズムを提供し、アプリケーション・アイデンティティをブロックチェーン・メンバーにマップすることでAPIコールを簡素化します。チェーンコードへのコールを開始するには、Oracle Blockchain Platformに登録を確立する必要があります。
卸売CBDCアプリケーションは、アカウントの設定時にユーザーの登録の作成を管理します。ただし、システム管理者ユーザーが初めてログインした場合、登録は存在しません。したがって、このユーザーがアカウントを作成しようとすると、RestProxy
コールは失敗します。したがって、System_Admins
グループの登録を作成する必要があります。
アカウントを設定すると、それぞれの組織に登録が作成されます。たとえば、システム所有者のアカウントが確立されると、対応する登録が生成されます。ただし、システム管理者ページを使用して関係者組織アカウントが作成された場合、それらの組織に対して登録は自動的には作成されません。この卸売CBDCワークフローでは、システム管理者ページで組織管理者アカウントを設定する必要があります。したがって、中央銀行と金融機関の間の個別の組織構造のため、これらの登録が自動的に生成されないため、組織管理者グループの登録を手動で作成する必要があります。
登録の作成方法の詳細は、「RESTプロキシへの登録の追加」を参照してください。
RestproxyId
のフェッチ
RestproxyId
値はVisual Builderによって使用されます。「Visual Builderバックエンドの構成」の説明に従って、後でVisual Builderでこれを更新する必要があります。
Oracle Blockchain PlatformインスタンスのRestProxyId
を取得するには、管理ユーザー・アカウントを使用してOracle Blockchain PlatformコンソールAPIをコールする必要があります。認証は、基本認証またはOAuth 2.0のいずれかを使用して実行できます。
認証方式
OAuth 2.0の場合、必要な認証フローを実装するには、OAuth 2.0 Access Token Based Authenticationのドキュメントを参照してください。
RestProxyId
をフェッチするためのAPIエンドポイント
Oracle Blockchain PlatformコンソールAPIを使用して、次のエンドポイントにリクエストを送信してRestProxyId
を取得します:
GET <oracleblockchainplatform_url>/console/admin/api/v2/nodes
このAPIコールは、インスタンスで構成されたRESTプロキシの詳細を含むレスポンスを返します。
コンソールAPIの詳細は、次のドキュメントを参照してください: ノード・リストの取得。
レスポンスの詳細
レスポンスで、対応するRestProxyId
が見つかるRESTProxies
というラベルのセクションを見つけます。レスポンスの構造には、各RESTプロキシ・ノードに関連付けられた様々な属性が含まれます。
"RESTProxies": [
{
"status": "up",
"extInfo": [],
"displayName": "restproxy",
"RESTProxyId": "48021a2c-e62b-40cd-b7ca-71dda883521d-restproxy",
"url": "https://bank3-oabcs1-hyd.blockchain.ocp.oraclecloud.com:7443/restproxy",
"mspId": "Bank3"
}
]
卸売CBDCサンプル・アプリケーションのチェーンコードのデプロイ
これで、チャネルを作成し、それにサンプル・アプリケーション・チェーンコードをデプロイできるようになりました。
リッチ履歴データベース・ビューの作成
Oracle Blockchain Platformインスタンスのリッチ履歴データベースを作成した後、データベース・ビュー作成スクリプトを実行して、リッチ履歴データベースにビューを作成し、ORDSエンドポイントを生成できます。
clientId
、clientSecret
およびベアラー・トークンなどの重要な資格証明も提供します。
- データベース・ビュー作成スクリプトをダウンロードします。
- Oracle Blockchain Platformコンソールを開きます。
- デジタル・アセット・ページに移動します。
- 左側のサイドバーで、Wholesale CBDCアプリケーションに移動します。
- 「Oracle Database View Definitions for WholesaleCBDC」領域からスクリプトをダウンロードします。
- スクリプトのダウンロード後、スクリプトの実行方法の詳細は、Oracle Databaseの卸売CBDCビュー定義を参照してください。
- スクリプトは、ORDSエンドポイント、クライアントID、クライアント・シークレットおよびベアラー・トークンを返します。
- 汎用モードでは、すべての組織が単一のORDSエンドポイント構成を使用します。このスクリプトは、個々のアカウント、組織レベルのアカウントおよびすべてのアカウントの3つのスコープでアカウントのエンドポイントを返します。
{ ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>', { "ORDSEndpoint": { "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN", "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts", "AllAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts" }, clientId: '<clientId>', clientSecret: '<clientSecret>', bearerToken: { access_token: '<BearerToken>', token_type: 'bearer', expires_in: 3600 } }
- 機密モードでは、システム所有者を含むすべての組織に独自のORDS構成があります。システム所有者のエンドポイントには、すべてのアカウントへのアクセスが含まれます。参加者組織は、自分の組織レベルのアカウントにのみアクセスできます。
システム所有者:
{ ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>', { "ORDSEndpoint": { "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN", "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts", "AllAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNAllAccounts" }, clientId: '<clientId>', clientSecret: '<clientSecret>', bearerToken: { access_token: '<BearerToken>', token_type: 'bearer', expires_in: 3600 } }
参加者組織:{ ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>', { "ORDSEndpoint": { "Accounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERN", "OrgAccounts": "https://<base_URL>ords/ALIAS_NAME/BASE_PATH/PATTERNOrgAccounts" }, clientId: '<clientId>', clientSecret: '<clientSecret>', bearerToken: { access_token: '<BearerToken>', token_type: 'bearer', expires_in: 3600 } }
- 汎用モードでは、すべての組織が単一のORDSエンドポイント構成を使用します。このスクリプトは、個々のアカウント、組織レベルのアカウントおよびすべてのアカウントの3つのスコープでアカウントのエンドポイントを返します。
ORDS_REST_BASE_URL/ords/ALIAS_NAME/BASE_PATH/PATTERN
- ORDS_REST_BASE_URL: ORDSサービスのベースURL。
- ALIAS_NAME: ORDSで構成されたデータベースまたはスキーマの別名。
- BASE_PATH: RESTfulサービスのベース・パス。
- PATTERN: RESTfulサービスの特定のエンドポイント・パターン。
ORDS_REST_BASE_URL/ords/ALIAS_NAME/oauth/token
clientId
clientSecret
- ORDSエンドポイント(
Accounts
エンドポイントのみ。OrgAccounts
およびAllAccounts
エンドポイントは内部的に導出されます) - OAuthベースURL:
ORDS_REST_BASE_URL/ords/<userName|aliasName>