Corda 4.6 Introduction
Introduction of Corda 4.6
こちらの記事はR3社のテックリードであるMike Wardによる記事の抄訳です。詳細については元記事をご覧ください。 R3社から、Corda4.6がもうすぐリリースされます。今回のリリースは、次の3つの領域に重点を置いています。
Flow管理 メンバーシップとネットワークの改善 開発者向けの改善
Flow管理
Cordaは、企業をまたいでワークフローを実現するFlowという機能を備えています。これらのワークフローの管理は困難な場合が多いです。今回のリリースでは,実行中のFlowの管理方法を改善しました。
- シェル/ RPCを介してFlowCheckpointを検索および検査する機能が追加されました。本番で長い時間使われるようになった結果、実行中のFlowを管理するツールが必要になりました。この機能を使用すると、Flowの開始時間、到達したステップ、渡されたパラメーターなど、実行中のFlowに関する豊富な情報をリモートで取得して、実行を管理することができます。これは、以前の「FlowHospital」を拡張しています。ユーザーはCorDappなどのいくつかのフィルター基準からFlowを照会し、進行状況等や各種の情報を取得できます。
- Nodeを再起動せずにFlowを再試行できるようになりました。ノードオペレーターは、再試行をトリガーするためにノードを再起動する必要がなく、RPCを介してHospitalized Flowを再試行できるようになりました。さらに、ノードオペレーターは、問題のあるFlowを「再起動しない」としてマークし、ノードが再起動されたときに自動的に再試行されないようにすることができます。
- 一意のIDを使用して、フローの開始が重複しないようにすることができるようになりました。RPCクライアントがバージョンアップし、クライアントがFlowの二重呼び出しを排除できるようになりました。これにより、Flowの開始に失敗した場合にクライアントが適切なアクションを実行できるようになるため、エコシステム全体の回復力も向上します。
メンバーシップとネットワークの改善
多くの実運用経験によれば、CorDappオペレーターが参加者を管理する為に多くのコストを投じていることが判明しています。プライベートネットワークでも、the Corda Networkなどのより大きなネットワークでも、オペレーターはユーザーを特定し、それらの参加者について確立したメタデータを利用してユーザーを管理する必要があります。このニーズに対応するための初期機能を実装しました。
- ”代表”という参加者の実装。BNO(Business Network Operator)という用語がCordaにはあります。BNOとは、CorDappsをネットワーク参加者に配布し、ネットワークに参加したユーザーを管理する主体を表す用語です。この重要なエンティティがユーザーをより適切に管理できるようにすることを目指しました。手始めに,典型的にはBNOを表す「Primitive」を用意しました.今回のリリースでは、メンバーシップ認証のライフサイクルを管理するツールを紹介し、メンバーシップを管理し、資格を推進し、ビジネスネットワーク内でプライバシーとアクセス許可をきめ細かく設定するためのベストプラクティスを紹介します。
- 大規模ネットワークのサポート強化。ネットワークマップリストの配信パフォーマンスを向上させ、ネットワークが数千のノードを含む場合のターンアラウンドタイムを高速化しました。
- Notaryを追加する際のFlag Dayの必要性の除去。新しいNotaryがネットワークのホワイトリストに追加されるたびに更新されたネットワークパラメーターを受け入れた後、Nodeをシャットダウンして再起動する必要がなくなりました。
開発者向けの改善
このリリースでは、開発者がより復元力のあるアプリケーションを構築するのに役立つ多くの改善がなされました。
- 復元できないチェックポイントの検出。Flowはその実行中に、自動的にシリアライズされ、チェックポイントに到達するたびにデシリアライズされるようになりました。これにより、デシリアライズできないチェックポイントを作成するフローコードの自動検出が可能になります。この機能は、運用中のノード構成では無効にすることができます。(主に開発中に使用することを想定しています)
- カスタムシリアライザーの登録を可能にしました。FlowCheckPointの一部として型をシリアル化するときに、カスタムシリアライザーを使用できるようになりました。(もちろん、ほとんどのクラスはカスタムシリアライザーを必要としません。)チェックポイントのシリアル化中に例外をスローするクラスの為の機能です。新しいCheckpointCustomSerializerインターフェイスを実装して、カスタムチェックポイントシリアライザーを作成できます。
その他の追加機能
上記3つの重点的な改善に加え、以下のような機能改善がなされています。
- Ledgerの統計データ提供。CordaのLedger(台帳)に関する統計を提供する新しいユーティリティCorDappをリリースします。
- トランザクションチェーンのサイズ、添付ファイルの数、およびトランザクションチェーンのすべてのOutputが消費されたかどうかを示す情報が提供するLedgerGraphというユーティリティーが提供されます。このユーティリティは、トランザクションチェーンが長すぎる場合に,オペレーターがその動作を予測し、場合によっては他の手段を検討することを可能とします。
- インプレースアップグレードの実現。CordaオープンソースからCordaエンタープライズに移行するお客様をよりよく支援したいと考えています。これに向けた最初のステップは、オープンソースとエンタープライズの間でスキーマが一致している事です。これにより、インスタンスの大規模な移行を必要としない、いわゆるインプレースアップグレードが可能になります。
- 署名件数カウントツールの改善。中央のコレクターNodeからCorda Enterpriseメータリングデータを取得できるようにMetering Cordappを改善しました。Metering CorDappはスタンドアローンクライアントになりました。クライアントをそのまま使用して、ビジネスネットワークの1つ以上のNodeからJSON形式で測定データを取得できます。各Nodeのシェルに直接アクセスする必要はありません。いずれかのNodeが応答に失敗した場合、クライアントは不足しているデータを収集する後続の試行を容易にします。
- TLS鍵をHSMに保管できるようになりました。TLSキーは、他のCordaサーバーへの安全な接続を確保するために使用されます。これまでのリリースにもこの機能はありましたが、制限がありました。今回のリリースから、あらゆる構成において、HSMにTLSキーを保存できるようになりました。