卸売CBDCサンプル・アプリケーション用のOracle Blockchain Platformの構成

Oracle Blockchain Platformのすべての必要なインスタンスとその前提条件となる製品を作成したら、ユーザーとロールを構成し、参加者組織をファウンダ組織に追加して、リッチ履歴データベースを有効にする必要があります。

Oracle Blockchain PlatformインスタンスへのIDCSグループの構成

組込みのOracle Blockchain Platformロールおよびロールへのユーザーの割当て方法の詳細は、ユーザーおよびアプリケーション・ロールの設定を参照してください

卸売CBDCサンプル・アプリケーション・ロールの詳細は、卸売CBDCアプリケーション・ワークフローを参照してください。

Oracle Blockchain Platformでは、次のアプリケーション・ロール割当てを実装する必要があります。

  • 中央銀行(CB)グループ: CentralBank Oracle Blockchain PlatformインスタンスのREST_CLIENTアプリケーション・ロールにすべての中央銀行グループを割り当てます。
  • 金融機関(FI)グループ: すべての金融機関グループを、それぞれの組織のREST_CLIENTアプリケーション・ロールに割り当てます。
  • 管理ロール: 関連する管理グループ(CB_CBDC_ADMINFI_CBDC_ADMINSなど)を、それぞれの組織のADMINアプリケーション・ロールに割り当てます。

この構成により、中央銀行と金融機関の両方のグループがREST_CLIENTロールを介して必要なアクセス権を持つようになり、管理権限はADMINロールを介して適切に管理されます。

グループをアプリケーション・ロールに割り当てるには、次のステップに従います。

  1. Oracle Cloud Infrastructureアカウントにサインインします。
  2. コンソールで、左上隅の「ナビゲーション」メニューをクリックします。
  3. 「アイデンティティ」で、「ドメイン」を選択します。
  4. 「ドメイン」ページで、「Oracle Identity Cloud Service」をクリックします。
  5. Oracle Identity Cloud Serviceのナビゲーション・メニューで、「Oracle Cloud Services」を選択します。グループ・ロールを割り当てるOracle Blockchain Platformインスタンスを見つけます。そのインスタンスの「詳細」ページを開きます。
  6. 「アプリケーション・ロール」タブに移動して、「リソース」ナビゲータにリストされているOracle Identity Cloud Serviceアプリケーション・ロールを表示します。
  7. 割り当てるロールを選択し、ロールを展開します。ロールの「詳細」メニューをクリックし、「グループの割当て」を選択します。
  8. 「グループの割当て」ダイアログで、ロールに割り当てるグループを選択し、「割当て」をクリックします。

ClientIdおよびClientSecretのフェッチ

Oracle Blockchain PlatformのClientIDClientSecretは、Visual Builderによって利用されます。「Visual Builderバックエンドの構成」の説明に従って、後でVisual Builderでこれらのパラメータを更新する必要があります。

Oracle Blockchain PlatformインスタンスのクライアントIDおよびクライアント・シークレットを取得するには:

  1. Oracle Cloud Infrastructureアカウントにサインインします。OAuth設定を管理するための十分な管理権限があることを確認します。
  2. コンソールで、左上隅の「ナビゲーション」メニューをクリックします。
  3. 「アイデンティティ」で、「ドメイン」を選択します。
  4. 「ドメイン」ページで、「Oracle Identity Cloud Service」をクリックします。
  5. Oracle Identity Cloud Serviceのナビゲーション・メニューで、「Oracle Cloud Services」を選択します。クライアントIDおよびクライアント・シークレットをフェッチするOracle Blockchain Platformインスタンスを見つけます。そのインスタンスの「詳細」ページを開きます。
  6. インスタンスの詳細ページを開くと、表示されるデフォルトのタブは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 Blochain Platformのリッチ履歴データベースを有効にしておく必要があります。

  1. ネットワーク・インスタンスのOracle Blockchain Platformコンソールを開きます。
  2. 右上隅にある「他のアクション」メニューをクリックし、「リッチ履歴の構成」を選択します。
  3. Oracleデータベースにアクセスして書き込むための接続文字列および資格証明を指定して、Oracleデータベース接続を指定します。指定する資格証明はデータベースの資格証明で、Oracle Blockchain Platformでは管理されないことに注意してください。
  4. 「保存」をクリックして、リッチ履歴データベースを構成します。

登録の作成

CB_CBDC_ADMINSおよびFI_CBDC_ADMINSグループにユーザーの登録を手動で作成する必要があります。

Oracle Blockchain PlatformのRESTプロキシへの登録は、ユーザーが登録証明書を必要とせずにブロックチェーンと対話するためのメカニズムを提供し、アプリケーション・アイデンティティをブロックチェーン・メンバーにマップすることでAPIコールを簡素化します。チェーンコードのコールを開始するには、Oracle Blockchain Platform内で登録を確立する必要があります。

卸売CBDCアプリケーションは、アカウントの設定中にユーザーの登録の作成を管理します。ただし、CBDC管理ユーザーが初めてログインすると、登録は存在しません。したがって、このユーザーがアカウントを作成しようとすると、RestProxyコールは失敗します。したがって、CBDC ADMINグループの登録を作成することが不可欠です。

アカウントを設定すると、各組織に対して登録が作成されます。たとえば、中央銀行(CB)の口座が確立されると、対応する登録が生成されます。ただし、CBDC管理ページで金融機関(FI)口座が作成された場合、それらの金融機関に対する登録は自動的には作成されません。この卸売CBDCワークフローでは、CB管理ページでFI管理アカウントを設定する必要があります。したがって、中央銀行と金融機関の間の組織構造が異なるため、これらの登録は自動的に生成されないため、ユーザーはFI管理グループの登録を手動で作成する必要があります。

登録の作成方法の詳細は、「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 <obp_url>/console/admin/api/v2/nodes

このAPIコールは、インスタンスで構成されたRESTプロキシの詳細を含むレスポンスを返します。

コンソールAPIの詳細は、次のドキュメントを参照してください: ノード・リストの取得

レスポンスの詳細

レスポンスで、対応するRestProxyIdが見つかるRESTProxiesというラベルのセクションを見つけます。レスポンスの構造には、各RESTプロキシ・ノードに関連付けられた様々な属性が含まれます。

"RESTProxies": [
        {
            "status": "up",
            "extInfo": [],
            "displayName": "restproxy",
            "RESTProxyId": "48021a2c-e62b-40bd-b7ca-71dda883521d-restproxy",
            "url": "https://fibank3-oabcs1-hyd.blockchain.ocp.oraclecloud.com:7443/restproxy",
            "mspId": "FIBank3"
        }
    ]

卸売CBDCサンプル・アプリケーションのチェーンコードのデプロイ

これで、チャネルを作成し、それにサンプル・アプリケーション・チェーンコードをデプロイできるようになりました。

  1. チャネルを作成します。
    1. 組織の要件に従って、必要な参加者と新しいチャネルを定義します。
    2. チャネル作成プロセス中に、「リッチ履歴の有効化」が選択されていることを確認します。このオプションは、以前に構成されたリッチ履歴機能をアクティブ化します。
  2. チェーンコードをデプロイします。
    卸売CBDCチェーンコード・パッケージで提供されている卸売CBDCチェーンコードを、新しく作成されたチャネルにデプロイします。チェーンコードのデプロイ方法の詳細は、チェーンコードをデプロイするための一般的なワークフローを参照してください。
  3. 卸売CBDCチェーンコード・パッケージで提供されている卸売CBDC Postmanコレクションを使用して、init APIを起動します。このステップでは、初期化プロセスを完了し、チェーンコードを使用する準備ができていることを確認します。
    Wholesale CBDC Chaincode Packageを参照してください。
  4. レプリケーションのステータスを確認します。
    1. 「チャネル」タブに移動します。
    2. チャネルを探して、チャネル・エントリの右側にある「その他のアクション」メニューをクリックします。
    3. 「リッチ履歴ステータス」を選択して、レプリケーション・ステータスを表示します。
      • ステータスがREPLICATINGの場合、チャネル・データがリッチ履歴データベースにアクティブにレプリケートされていることを示します。
      • レプリケーション・ステータスがUSER_DISABLEDの場合は、次のアクションを実行します。
        1. ピアを再起動します。チャネルに関連付けられているピア・ノードを再起動します。
        2. トランザクションの起動: チャネル上のトランザクションをトリガーしてデータ・レプリケーションを開始します。
        3. レプリケーション・ステータスを再確認して、データがリッチ履歴データベースにレプリケートされていることを確認します。
チャネル名とチェーンコード名をメモします。サンプル・アプリケーションを操作するには、これらを使用してVisual Builderを構成する必要があります。

リッチ履歴データベース・ビューの作成

Oracle Blockchain Platformインスタンスのリッチ履歴データベースを作成した後、データベース・ビュー作成スクリプトを実行してリッチ履歴データベースにビューを作成し、ORDSエンドポイントを生成できます。

Oracle REST Data Services (ORDS)スクリプトは、TypeScriptで記述されたNode.jsアプリケーションであり、リッチ履歴データベースからアカウント・トランザクションの詳細を取得するためのORDSエンドポイントを公開するように設計されています。リッチ履歴データベースからチェーンコード・トランザクション・データ(TypeScriptおよびGoチェーンコードの両方)をフェッチできるRESTfulエンドポイントが作成されます。さらに、ORDSエンドポイント、clientIdclientSecret、Bearerトークンなどの必須資格証明を提供して、エンドポイントを認証してアクセスします。
  1. データベース・ビュー作成スクリプトをダウンロードします。
    1. Oracle Blockchain Platformコンソールを開きます。
    2. 「デジタル・アセット」タブに移動します。
    3. 左側のサイドバーで、Wholesale CBDCアプリケーションに移動します。
    4. 「Oracle Database View Definitions for WholesaleCBDC」領域からスクリプトをダウンロードします。
  2. スクリプトのダウンロード後、実行方法の詳細は、Oracle Databaseの卸売CBDCの定義の表示を参照してください。
    スクリプトを実行すると、卸売CBDCチェーンコードがTypeScriptに書き込まれるため、言語としてTypeScript (TS)を選択するという質問が表示されます。
  3. スクリプトは、ORDSエンドポイント、クライアントIDおよびクライアント・シークレットを返します。
    {
      ORDSEndpoint: 'https://<base_URL>ords/<user_name|alias>/<resource_link>',
      clientId: '<clientId>',
      clientSecret: '<clientSecret>',
      bearerToken: {
        access_token: '<BearerToken>',
        token_type: 'bearer',
        expires_in: 3600
      }
    }
RESTfulサービスにアクセスするためのORDSエンドポイントは、次の構造に従います。
ORDS_REST_BASE_URL/ords/ALIAS_NAME/BASE_PATH/PATTERN
  • ORDS_REST_BASE_URL: ORDSサービスのベースURL。
  • ALIAS_NAME: ORDSで構成されたデータベースまたはスキーマの別名。
  • BASE_PATH: RESTfulサービスのベース・パス。
  • PATTERN: RESTfulサービスの特定のエンドポイント・パターン。
認証用のベアラー・トークンを生成するには、OAuth2トークン・エンドポイントを使用します:
ORDS_REST_BASE_URL/ords/ALIAS_NAME/oauth/token
リッチ履歴データベースからデータを取得するには、Visual BuilderのバックエンドでORDSに関連する次のパラメータを更新する必要があります。これは、後でVisual Builderバックエンドの構成で完了します。
  • clientId
  • clientSecret
  • ORDSエンドポイント
  • OAuthベースURL: ORDS_REST_BASE_URL/ords/<userName|aliasName>