Corda Enterpriseリリースノート

Corda Enterprise 4.7のリリース概要

今回のリリースでは、数々の新機能と機能強化が導入されているほか、以前のリリースに存在した既知の問題が解決されます。

これまでのリリースでAPIの後方互換性を約束したのと同様に、Corda 4.7でも同じ保証がされています。

Corda 3.0以上で有効なStateやCordappはCorda 4.7でもお使いいただけます。

Corda Enterprise 4.7における主な新機能と機能強化は以下の通りです:

新機能と機能強化

アーカイブサービス

アーカイブサービスは、Node運用者がアウトプットStateを伴わないTransactionの台帳データをアーカイブできるようにする新しいツールです。これによってディスクスペースを節約し、Nodeデータベースへの負荷を削減できます。

アーカイブサービスの機能には以下があります:

  • Cordaコマンドラインインターフェース(CLI)コマンドを使ったアーカイブサービスの利用これによって、アーカイブが必要なジョブをすばやく確認し、必要なくなったデータをvaultから削除し、vaultの中身のスナップショットをインポート、エクスポート、復元できるようになります。
  • アプリケーションエンティティ―マネージャーを使うと、CorDappsが台帳外のデータベースにアクセスできるようになります。
  • アーカイブサービスをCollaborative Recovery CorDappsと統合すると、壊滅的なシナリオが発生してもデータの復元がスムーズに実行できます。

詳細については アーカイブサービスの説明をご覧ください。

改善されたNotaryのバックプレッシャーメカニズム

Notaryがトラフィックを扱う方法を最適化するために、Notaryのバックプレッシャーメカニズム( バックプレッシャーメカニズムとも呼ばれます)を更新し、Notaryへの署名リクエストが突然増えた場合のNotaryのパフォーマンスを改善しました。この変更によって、Notaryがタイムアウトする可能性に関する予見精度が向上します。

つまり、「トラフィックの重い状態」でも 高精度かつクイックに動作可能なバックプレッシャーメカニズムを実現したことになります。これによってNodeのリトライが削減され、パフォーマンスが最適化され、Node運用者にとってより良いエンドユーザーエクスペリエンスを提供できます。

Node管理とフロー管理用の新しい管理コンソール

Corda Enterprise 4.7には2種類の新しい管理コンソールが搭載されています:

  • Flow管理コンソールでは、ノードで実行されているflowの状態を確認でき、flowに対していくつかの処理を行えます。詳細については、 Flow管理コンソールをご覧ください。
  • ノード管理コンソールでは、ノードについての情報を確認でき、いくつかの処理を行えます。詳細については、 ノード管理コンソールをご覧ください。

どちらのコンソールも、CENM Gatewayサービスの一部として動作します。

証明書ローテーション

Corda Enterprise 4.7では、ノード鍵(Legal Identity)とその証明書をローテーションする機能を導入しています。これによって、 Corda Enterprise Network ManagerのNetwork Map上において、新しい証明書を使ってNode(Notary Nodeを含む)を再登録できるようになります。本機能の詳細については、 R3サポートまでお問い合わせください。

その他の変更と改善

  • Azure ADを使ったシングルサインオンAzure ADとCorda Authサービスで 簡単な設定を行うだけで、CordaサービスとAzure AD間でシングルサインオン(SSO)設定を運用できるようになりました。
  • HSM統合サポートCorda Enterpriseでは、サポートされていないHSMとCorda Enterpriseインスタンスのユーザーによる統合をサポートするようになりました。今回のリリースには、例として使えるJava実装のサンプルと、展開前に実装をテストできるテストスイートが含まれています。HSM統合の書き方ガイドについては HSMに関する項をご覧ください。
  • HSMにConfidential Identity鍵を保存する機能Corda Enterpriseは、nCipher、FuturexとAzure Key VaultのHSMにおけるConfidential Identityに関する鍵の保管をサポートするようになりました。nCipherとAzure Key VaultのHSMではConfidential Identity鍵のネイティブでの利用をサポートし、FuturexのHSMではキーラップモードをサポートします。これらのHSMにおけるConfidential Identity鍵保管の設定については、 HSMに関する項をご覧ください。
  • HSM APICorda Enterprise 4.7では、外部のツール開発者がCorda EnterpriseのHSMサポートを拡張するために使える独自のAPIを有するHSMライブラリーが導入されています。
  • ネットワークへの初期登録(initial-registration)時に、Nodeはidentity-private-keyのエイリアス作成を行うようになりました。詳細については、 Nodeのフォルダ構成の項をご覧ください。これまでは、cordaclientcacordaclienttlsのエイリアスだけがinitial-registration中に作成され、identity-private-keyは初回のNode実行時に必要に応じて生成されていました。そのため、Corda Enterprise 4.7では、nodekeystore.jksの内容は通常のNode実行中に変更されません(証明書ディレクトリを事前に設定したキー保管で埋められるdevMode = trueを除きます)。
  • NotaryのbatchTimeoutMs 設定オプションを調整することでパフォーマンス向上を得られる可能性について解説を追加しました。ただし、デフォルト設定は変更されていません。

プラットフォームバージョン変更

Corda 4.7のプラットフォームバージョンは8から9に引き上げられています。

プラットフォームバージョンの詳細については、 バージョニングをご覧ください。

修正された問題

  • Accountsを使う際に、Transactionを開始したPartyが受領側のPartyに対して復元を希望する場合に LedgerSyncが差異を出力しない Collaborative Recoveryの問題を修正しました。
  • Flowに含まれるメタデータである終了時刻と開始時刻の間で、異なるタイムゾーンを設定できる問題を修正しました。
  • ホット/コールドのNodeフェイルオーバーの場合に、カウンターパーティからのメッセージの受領を待っている間に継続的なフローが新しいホットNodeやカウンターパーティのNodeで滞る場合がある問題を修正しました。
  • NodeがStateの検索を行う際にいくつかの列挙型をデシリアライズできないためにCorda 4.6 RPCクライアントがCorda 4.7のNodeに対してNodeFlowStatusRpcOps::getFlowStatusを実行できない問題を修正しました。
  • 入力Stateが10以上あった場合に、StateRef<hash>:aとして正しくエンコードされるものの、想定される整数入力によって間違ってデコードされるJPA Notaryの問題を修正しました。
  • Floatが同じBridgeからの2つの接続の試行を同時に処理し、結果としてバインディングの例外が発生する問題を修正しました。

既知の問題

  • Nodeの状態のクエリを行う際にいくつかの列挙型をデシリアライズできないために、Corda 4.6 RPCクライアントはCorda 4.7のNodeに対してNodeFlowStatusRpcOps::getFlowsMatchingを実行できません。
  • 場合によっては、RPCクライアントがNodeとの接続に失敗することがあります。このエラーはスペックの低いマシンを使っている場合に発生しやすいです。
  • HA UtilitiesツールがLegal IdentitiesやTLS鍵を念頭に実装されているため、freshIdentitiesConfigurationについての情報を記録しません。
  • HA Utilitiesツールは、NATIVEモードを使っている場合、マスター鍵が不要だと記載したメッセージを記録しません。こうしたメッセージは、initial-registrationコマンドを使ってNodeを登録している場合に、Nodeログにのみ記録されます。
  • NATIVEモードでのConfidential Identityにはマスター鍵が不要のため鍵は生成されていないにもかかわらず、NATIVEモードでのHSMのConfidential Identityを使ったNode登録中に、HA Utilitiesツールのログに「Confidential Identityのキーラップを作成しました」という間違ったログエントリーが含まれます。
  • 入力や参照のないTransactionは、出力Stateについて異なるNotaryを有することがあります。その結果、Transactionを発行しているNodeが、そのNotaryとのTransactionのノータリゼーションを行うことなく、出力Stateに任意のNotaryを設定することがあります。
  • Azure KeyVaultのサポートについて、Cordaはまだ、古くなったAzure Java SDKバージョン(1.2.1)に依存しています。これによって、Node運用者がshadedJarを自身で構築する必要が生じる場合があります。
  • 新しいフロー管理コンソールにおいて、ページのリロード後に、フィルターが適用されていた時と同じ結果を表示せず、列のフィルタリング/ソートが間違ってリセットされることがあります。
  • 新しいフロー管理コンソールとNode管理コンソールにおいて、ユーザーの名前が短すぎると「パスワードの変更」/「ログアウト」のドロップダウンメニューがすべて見えない場合があります。
  • 新しいフロー管理コンソールにおいて、「フローのクエリ」ページ上のカレンダー内の「フローの開始から/まで」のフィールドは2回クリックしないと開けません。
  • Collaborative Recovery1.1(または1.0)のイニシエーターは、Collaborative Recovery1.2のレスポンダーによってアーカイブされたTransactionを復元しようとした場合に失敗することがあります。
  • (今回のリリースで導入された)証明書ローテーションを実行するとき、previousIdentityKeyAliasesのリストにない古い鍵によって署名されたStateを使おうとするとフローにエラーが発生して失敗することがあります。
  • Health Check Toolは常に、現在のディレクトリではなくCorda Nodeのディレクトリに報告書を保存しようとします。Corda Nodeのディレクトリへの書き込み権限がないNode運用者にとって問題となる可能性があります。
  • Corda HSM Technology Compatibility Kit (TCK)テストのコンソールヘルプと Corda shell CLIのヘルプで、フォーマットが一貫していないところがあります。
  • samples:attachment-demo:deployNodesを実行する際、serviceLegalNameではなくmyLegalNameをノータリゼーションに使うため、runSenderのタスクが添付の送信に失敗します。
  • カスタムIOU CorDappを移行するためにrun-migration-scripts --core-schemas --app-schemasを実行する際、MS SQLデータベースで動作していると移行スクリプトが失敗します。H2、PostgreSQLとOracleのデータベースに対しては、移行が問題なく動作します。
  • 場合によって、カウンターパーティがダウンしている場合やフローが遮断された場合でもNodeがカウンターパーティへの再接続を試み続けることがあります。