Corda 4.3 リリース

YuIku
Corda japan
Published in
9 min readNov 15, 2019

____________________________________________________
<お知らせ>
SBI R3 Japanブログは、MediumからSBI R3 Japanのポータルサイトに引っ越ししました。引っ越し先で、mediumの過去記事も閲覧可能です。今までとは異なる新しいコンテンツも発信してまいりますので、お気に入り登録をぜひお願いします!

____________________________________________________

Cordaの新しいバージョンである4.3がリリースされました。今回、1ノードで複数のユーザーを管理できるアカウントという仕組みが追加されました。リリースノートの全文訳を掲載いたします。

リリースノート序文

Corda4.3リリースノートへようこそ。このドキュメントを注意深く読み、このリリースでどんな新機能があり、それらがどう役に立つかについて理解してください。以前のリリースと同じように、Corda4.3のリリースにおいても後方互換性を保証します。Corda3.0における有効なステートやアプリは特別な変更なしにCorda4.3で使うことができます。Corda4.0の素晴らしい機能群 の上にCorda4.1は構成されました。そして今日、Corda4.1の上にさらなる素晴らしい機能を加えてCorda4.3をリリースいたします。Corda4.3は400を超える修正とドキュメントのアップデートがあり、Cordaで開発を行う方々により優れた環境を提供します。

できるだけ早いCorda4.1からCorda4.3へのアップグレードをお勧めします。

Corda 4.3 開発に関する変更点

アカウント機能(口座、Accounts)の導入

Corda 4.3から、アカウント(口座、Accounts)という考え方を導入しました。台帳は論理的に複数に分割され、それぞれが一つのアカウント(account)を表現します。

主なメリットは以下の通りです。

  • Nodeオペレータは、複数の主体を一つのノードに入れられるので、トータル運用コスト低減に寄与します。
  • Nodeオペレータは、台帳データをアカウントごとに(論理的に)分割できます。
  • 多くの場合、NodeオーナーやNodeオペレータは、他のビジネス主体のために現金管理/資産管理/契約管理等のサービスを提供できます。
  • Cordaネットワークに直接参加させるべきではない(もしくは参加する意思のない)ユーザをCordaネットワークに参加させる事ができます。

この新しい機能により、様々なユースケースにおいて、カストディアン(信託受託者)の役割を担うホストを構成できます。詳しい情報は、アカウントに関するドキュメントをご覧ください。

新しいコンフィデンシャルアイデンテティ(Confidential Identities、匿名ID機能)の導入

コンフィデンシャルアイデンティティの中身が刷新されました。NodeはX500証明書を使用しません。又、コンフィデンシャルトランザクション(Confidential Transaction、匿名化トランザクション)への署名のために使われる鍵ペアは、従来ノード(Node)のリーガルアイデンティとX509の認証連鎖機能で論理的に接続されていましたが、今回からナンスチャレンジ(nonce challenge)方式に変更されました。これにより、公開鍵を生成するたびに、認証チェーンをシリアライズして各ノードへ送付する必要がなくなりました。又、コンフィデンシャルアイデンテティ自体をトランザクションなしで有する事が可能になりました。

クライアントからのRPC接続改善

CordaRPCCLientライブラリーはRPC接続の自動再接続に対応しました。具体的には、次のような機能拡張がなされています。

  • ノードへのRPC接続が破壊された場合、自動的に再接続します。
  • オブザーバブル(observables)についても再構成します。
  • 全てのオペレーションについて自動リトライなされます。但し、適切なFlowHandlerを受け取る前にオペレーションが無された場合には自動リトライされず、ColudNotStartFlowException 例外がスローされます。

我々は、今回の改善により、RPCクライアントの接続性に自信をいますが、アプリケーション側の開発において、RPC接続の失敗が発生する事を考慮して構築する事を忘れないでください。詳しくはこちらをご覧ください。

トランザクション記録における柔軟性の強化

Corda4.3では、ノードは3つの異なる可視性レベルでトランザクションを記録することができます。

・トランザクションに含まれるステート(State)のうち、自ノードに関連するステートのみを記録する(デフォルト)
・トランザクションに含まれるすべてのステートを記録する(例えばトランザクションを監視するのに使うことができます)
・トランザクションに含まれるステートを一切保存しない(例えばトランザクションを解析する際に使います)

今まで、ノードが特定のトランザクションの可視性レベルを最初に記録してしまうと、その後もその可視性レベルでトランザクションを記録しなければならないという制限がありました。Corda4.3ではオブザーバーノードの能力を強化しました。オブザーバーノードは低い可視性レベルで記録したトランザクションを自ノードに再記録することができるようになります。オブザーバーノードの詳細については、こちらをご覧ください。

Corda 4.3 運用に関する変更点

RPCアクセス許可の柔軟性の向上

RPCアクセス権にワイルドカードを使用できるようになりました
例えば、com.example.* は com.example.foo.ExampleFlow とcom.example.bar.BogusFlowの両方を表すことができます。

セキュリティアップグレード

Corda Webサーバの変更、脆弱な依存関係のアップデート、X509拡張キーの使用法の変更、添付ファイルのホワイトリストの拡張など、いくつかのセキュリティのアップグレードが行われています。

  • X509拡張キーの使用法の変更:
    Cordaの電子証明書では以前、X509拡張キーの使用法を「anyExtendedKeyUsage」 と定義していましたが、これは広義すぎました。現在は必要なキーの使い方のみが含まれています。たとえば、Corda TLS証明書の場合、必要な拡張キー使用法は 「 Client Authentication」 と 「 Server Authentication」 だけです。
  • Corda Webサーバーをテストモジュールに移動:
    Corda Webサーバーは非推奨であり、本番環境での使用には適していません。Corda 4.3では、test-serverという名前に変更され、テストモジュールに移動されました。
  • Attachemntのホワイトリスト機能の拡張:
    ノードにインストールされていないコントラクト(Contract)を参照するトランザクションを処理する際、そのコントラクトが信頼できる当事者によって署名されている場合は自動的に受け入れるよう変更されました。
  • 脆弱な依存関係のアップデート:
    Jolokia 1.2から1.6 .0は、クロスサイトリクエストフォージェリ( cross-site-request-forgery)に対する脆弱性がみられたので、Jolokia 1.6 .1にアップデートを行いました.

非推奨項目

「Corda Finance library」は廃止(非推奨)となり、「Corda Tokens SDK」へとアップグレードされています。「Finance Library」は、まだ削除されてはいませんが、開発や更新は行われていません。R3では、「Corda Finance library」から「Corda Tokens SDK」への移行することを強く推奨しています。もし詳しい情報を知りたい方や、「Corda Tokens SDK」を使いたい方は、こちらのGitHubリポジトリをご確認ください。

Corda4.3への移行後には、古いAPIを使用して登録されたコンフィデンシャルアイデンテティ(Confidential Identity)は新しいテーブルに反映されません。ただし、APIは古いConfidential Identityテーブルと新しいConfidential Identityテーブルの両方で機能します。このため、同じ環境で新旧両方のConfidential Identity を使用することはお勧めしません。 古いConfidential Identityは、今後のバージョンアップにて廃止される予定です。

バグ修正

全部で173個のバグ修正がなされています。詳細については以下のページをご覧ください

※他にも英文で以下の情報が公開されています。

Changelog

release-notes

app-upgrade-notes

・Medium記事

--

--

YuIku
Corda japan

like #blockchain and #smart-contract, especially #corda #fabric #ethereum