Collaborative Recoveryの想定利用シーンや機能の概要がわかる。
前言
Cordaでは、関係者間でのみデータの共有を行うことでプライバシーを守ります。このようなデータ共有方法は確かにプライバシーの確保に役立ちますが、一方で災害等によってデータが失われた場合、「ビットコインのように」他のノードのデータをコピーしてくるだけでデータを復旧させることは難しいです。
何らかの問題により、データがなくなることに備え、運用ポリシーのレベルに合わせてバックアップをとることをCordaでは推奨されています。これは一般的なシステムのバックアップの話と特に変わりはありません。しかし、時にはバックアップだけでは不十分なケースが存在するのも事実です。
例えば、1時間おきにバックアップをとる場合、直近のアバックアップから次のバックアップがされる間で発生したトランザクションが災害等によって失われた場合、バックアップだけでは、一部のトランザクションが失われることが考えられます。
そのようなケースに備え、Cordaでは「Collaborative Recovery」というツールを用意しています。
Collaborative Recoveryの概要
Collaborative Recoveryは、ビジネスネットワーク上で災害復旧シナリオに遭遇した場合に、データを特定して取り出すことができる、安全でプライバシーに配慮したソリューションです。
一度Collaborative Recovery CorDappsをインストールすると、Collaborative Recoveryを使用し、台帳の不整合を検出し、取引があった当事者間で不足しているデータを回復することができます。この機能は今まで通り、セキュリティとプライバシーを配慮した形で設計されており、Cordaを使用する際新たなセキュリティーのレイヤーとして機能します。
その名が示すように、これはノード間で協力してデータを復元する方法です。確実に機能させるために、ビジネスネットワーク全体で合意し、この機能を災害復旧ポリシーの一部とするべきです。すなわち、データ復旧は完全に技術サイドの話ではないということをビジネスサイドの人間は認識しておく必要性があります。
Collaborative Recovery は目的に応じた複数のアプリケーションで構成され、指定したノード間でのトランザクションの差異を検出するLedgerSync や、台帳のデータの差異を修正し整合性を取る LedgerRecover があります。
Collaborative Recovery CorDappsをインストールして使用する前に、下記のことについて知っておく必要があります。
- ビジネスネットワークの災害復旧ポリシー
- 自身のCordaのプラットフォームの要件
- LedgerSync と LedgerRecover CorDapps を、いつ、どのようにして使用するか
Collaborative Recoverにおける主要なステージ
Collaborative Recoverのプロセスには7つのステージがあります。ステージ1~3は予防措置として実行されます。残りは、災害復旧状況が発生した場合にのみ実行されます。
1.ビジネス・ネットワーク・レベルでのCollaborative Recoveryの追加と実施に同意。
2.Collaborative Recovery CorDapp flowのラッピングフローを作成することで、取引可能なノードを検証。
3.ノードのデータの不整合を監視。これは、LedgerSync CorDappを使用して定期的なリコンサイルを行うフローをスケジューリングすることで行います。
4.災害復旧シナリオでは、合意された災害復旧ポリシーに従って、最初にバックアップを使用してデータを回復します。
5.他の手順でデータを回復できない場合は、データ回復flowを使用し、回復を試みます。
- 自動データ復元のための LedgerRecover (自動) を使用してデータ復元flowを開始します。通常、これはデータの損失が軽微な場合に最も効果的です。
- LedgerRecover (手動) では、手動でのデータ復元が可能です。このpathでは、手動でデータをエクスポートしてネットワークにインポートする必要があります。
6.データが復旧したことを検証します。
7.災害復旧ポリシーを確認します。
Collaborative Recorveryを使用するタイミング
Collaborative Recoveryは、データを復旧するための最後の手段です。不足しているレッジャーのデータを検出して、データ復旧できる一方で、それだけでは災害復旧戦略としては十分ではありません。バックアップやレプリケーションなどの従来の災害復旧戦略と連携し、Collaborative Recoveryを使用する必要があります。
理想は、Collaborative Recoveryを使用しないことです。ノード上のデータを保護するために、取引先の各ノードは、ビジネスネットワークレベルで合意された堅牢な災害復旧計画の一部であるべきです。この戦略では、以下のようなバックアップがあることを意味します:
- データベースの完全なバックアップと増分バックアップ
- 同期データベースのレプリケーション
- レプリカされたフォールトトレラント(障害許容)ファイルシステム(MQデータの損失を防ぐため)
ビジネスネットワークがすべてのノードで同期データベースレプリケーションをサポートしておらず、代わりに非同期レプリケーションと増分バックアップを組み合わせて使用している場合、災害時に100%のリカバリを保証することはできません。定義上、非同期レプリカ内のデータはマスターノードの後ろにあります。
このポジションにあることに気付いた場合、または他の災害復旧手順が失敗した場合、Collaborative Recoveryは台帳全体のデータを復元して同期化するのに役立ちます。
Collaborative Recoveryを使用できるのは?
Collaborative Recovery アプリケーショは、最低プラットフォームバージョンが 6 で、Corda Enterprise ノードとのみ互換性があります。
Collaborative Recovery は、Enterprise、CorDapp レベルのソリューションであり、Corda 自体の一部としては提供されません。Collaborative Recovery CorDapps がインストールされているノードのみが Collaborative Recovery に参加することができます。オープンソースとエンタープライズノードの両方で構成される混合ネットワークでは、Collaborative Recovery CorDapps がインストールされている適切なバージョンのエンタープライズノードのみが Collaborative Recovery に参加することができます。
Collaborative Recoveryのスコープ
Collaborative Recoveryでは、Corda ノードがネットワーク上の他のピアから紛失した元帳データを取得することができます。つまり、最初に共有されていたデータのみを回復することが可能です。Collaborative Recovery を使用して、以下のものを回復することができます。
- Transaction
- 添付ファイル
- 過去のネットワークパラメータ
Collaborative Recoveryのスコープ外のもの
Collaborative Recovery を使用して下記のものを回復することはできません。
- Confidential Identity。秘密鍵は他のピアから回復することはできません。ただし、それらの鍵と紐づけされたステートは、Transactionが発生したときに鍵を所有していることの証明が相手と共有されていた場合において、回復可能です。
- ノードのアイデンティティ/TLS キー。
- ノードと CorDapp の設定ファイル
- CorDapp の jar。
- MQ データ。
- 自己発行且つ取引されていないステート。ただし、そのようなステートは、発行にNotaryによる検証が求められないため、台帳に一方的に再発行することができます。
- 台帳外のテーブル。
- 観測されたTransaction。Observers 機能の一部として共有されているTransactionは、個別に改めて用意する必要があります。
- スケジュールされたステート。
- ネットワーク上で利用できなくなったパーティと共有されているすべての台帳のデータ。
RPOとRTOの保証のスコープ外
分散型システムの性質上、Collaborative Recoveryは、RecoverPoint Objective (RPO)およびRecovery Time Objective (RTO)の保証を提供できません。
データが単一のオペレーターの管理下にない場合、回収可能なデータ量は保証されません。例えば、取引相手がネットワークの一部でなくなったために復元できないデータがある可能性があります。
ピアが一時的に利用できなくなったり、帯域幅が低くなったりする可能性があるため、リカバリー時間の保証はありません。
参加者のノードが災害復旧要求に対応するための SLA を義務付ける協働復旧ポリシーは、ビジネスネットワークのガバナンスレベルで実施する必要があります。
最後に
Collaborative Recoveryはデータ復旧のための最後の方法です。災害等によるデータの紛失に備え、従来のシステム同様のバックアップをとるなどの運用は必要です。
また、ビジネス・ネットワーク・オペレーターレベルで検討する必要があることも存在します。
<ご質問・ご要望の例>
- Corda Portalの記事について質問したい
- ブロックチェーンを活用した新規事業を相談したい
- 企業でのブロックチェーン活用方法を教えて欲しい 等々
SBI R3 Japan ビジネス推進部
デジタルアセットのプロジェクトをしています。
パブリックチェーン大好きでした(今も)が、Cordaの魅力に惹かれました!