【誤訳訂正書】
【提出日】令和2年11月25日(2020.11.25)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】００１９
【訂正方法】変更
【訂正の内容】
【００１９】
本発明の実施態様は、以下のような有益な効果を有する。
１)電子署名の方式を用いることで分散システムにおける通信の信頼性を保証し、任意の通信を行う双方はそれぞれ電子署名の方式を利用し、即ち、メッセージを送信する際にメッセージの電子署名を携帯させ、電子署名を検証することでメッセージの信頼性を保証する。
２)スレーブノードは、マスターノードから送信されたメッセージを受信するとき、結果を直接クライアントへ返信し、結果に、例えば、一意のフィールド、メッセージの配列番号及び電子署名等の必要な情報が携帯され、これにより、クライアントは、直接スレーブノードから返信された結果に基づいてスレーブノードの合意達成状況を判定でき、異常ノードを高効率に検出する。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】００２０
【訂正方法】変更
【訂正の内容】
【００２０】
【図１】本発明の実施形態に提供される分散システム１００がブロックチェーンシステムに適用される１つの任意的な構造模式図である。
【図２】本発明の実施形態に提供されるブロック構造の１つの任意的な模式図である。
【図３Ａ】本発明の実施形態に提供されるノード２００の１つの任意的なソフトウェア・ハードウェア構造模式図である。
【図３Ｂ】本発明の実施形態に提供されるクライアント３００の１つの任意的なソフトウェア・ハードウェア構造模式図である。
【図４】本発明の実施形態に提供される第１のコンセンサスモードにおいて各ノードが投票操作を実行することでマスターノード及びスレーブノードを決定する１つの任意的な模式図である。
【図５】本発明の実施形態に提供される分散システムのノードが第１のコンセンサスモードにおいて合意形成し、障害ノード及び悪意のあるノードを検出する１つの任意的なフロー模式図である。
【図６】本発明の実施形態に提供される分散システムが第１のコンセンサスモードと第２のコンセンサスモード間を切り替える１つの任意的なフロー模式図である。
【図７】本発明の実施形態に提供される分散システムが第１のコンセンサスモードと第２のモード間を切り替える１つの任意的なフロー模式図である。
【図８】発明の実施形態に提供されるブロックチェーンシステムがＲＡＦＴアルゴリズムを利用して合意形成する１つの任意的なフロー模式図である。
【図９】発明の実施形態に提供されるブロックチェーンシステムがＰＢＦＴアルゴリズムを利用して合意形成する１つの任意的なフロー模式図である。
【図１０】本発明の実施形態に提供される自己適応型コンセンサスアルゴリズムを実現する運転状態図である。
【図１１】本発明の実施形態に提供されるＴ−ＲＡＦＴアルゴリズムによる合意形成の実現模式図である。
【図１２】本発明の実施形態に提供されるＰＢＦＴアルゴリズムへの切替準備段階においてＴ−ＲＡＦＴアルゴリズムに戻る１つの任意的なフロー模式図である。
【図１３】本発明の実施形態に提供されるブロックチェーンシステムがＴ−ＲＡＦＴアルゴリズムによる合意形成からＰＢＦＴアルゴリズムによる合意形成に切り替える１つの任意的なフロー模式図である。
【図１４】本発明の実施形態に提供されるブロックチェーンシステムがＰＢＦＴアルゴリズムのコンセンサスモードからＴ−ＲＡＦＴアルゴリズムのコンセンサスモードに切り替える１つの任意的なフロー模式図である。
【図１５】本発明の実施形態に提供される分散システムがコンソーシアムチェーンシステムに適用される１つの任意的なシーン模式図である。
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００２７
【訂正方法】変更
【訂正の内容】
【００２７】
第２のコンセンサスモード：ビザンチン問題を解決するためのコンセンサスモードであり、第２のコンセンサスモードを実現するアルゴリズムは、ビザンチンフォールトトレランス(ＢＦＴ、Byzantine Fault Tolerance)アルゴリズム、実用的ビザンチンフォールトトレランス(ＰＢＦＴ、Practical Byzantine Fault Tolerance)アルゴリズム、再帰のフォールトトレランスアルゴリズム−ビザンチンフォールトトレランス(ＢＦＴ−ＲＡＦＴ、Byzantine Fault Tolerance Recursive Algorithm for Fault Tolerance)、ビザンチンフォールトトレランス(ＢＦＴ−Paxos)アルゴリズム等を含む。
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】００２８
【訂正方法】変更
【訂正の内容】
【００２８】
４)コンセンサスモードの切替：コンセンサスモードの適応とも呼ばれ、分散ネットワークに使用されるコンセンサスアルゴリズムは、ネットワーク環境が良好である場合に、合意形成効率が高くて異常ノード(例えば、ビザンチン問題のあるノード)を検出できるアルゴリズムを自動的に利用して、第１のコンセンサスモードを実現するが、悪意のあるノード又はノードが誤っていることが判明した場合に、ビザンチンフォールトトレランスの問題を解決できるアルゴリズムに自動的に切り替えて第２のコンセンサスモードを実現する。
【誤訳訂正５】
【訂正対象書類名】明細書
【訂正対象項目名】００６９
【訂正方法】変更
【訂正の内容】
【００６９】
アプリケーション層に関して例を挙げれば、図３Ａを参照すると、図３Ａに提供されるノード２００のアプリケーション層のコンセンサスメカニズム２７０は、以下を備える。
【誤訳訂正６】
【訂正対象書類名】明細書
【訂正対象項目名】００７０
【訂正方法】変更
【訂正の内容】
【００７０】
投票ユニット２７０１：第１のコンセンサスモードにおいて新しいコンセンサス周期が到来した場合に、ノード２００及び分散システムにおける他のノードが投票操作を実行することで、マスターノードの状態又はスレーブノードの状態にされるように構成される。
【誤訳訂正７】
【訂正対象書類名】明細書
【訂正対象項目名】００９５
【訂正方法】変更
【訂正の内容】
【００９５】
入出力インターフェース３４０は、例えば表示画面、タッチパネル、スピーカ等の入出力デバイスを用いて実現されることができる。
【誤訳訂正８】
【訂正対象書類名】明細書
【訂正対象項目名】００９６
【訂正方法】変更
【訂正の内容】
【００９６】
記憶媒体３３０は、フラッシュメモリ、ハードディスク、光ディスク等の不揮発性記憶媒体を用いて実現されることができれば、ＤＤＲを用いて実現されることもでき、上述したメッセージ処理方法を実行するための実行可能な命令を記憶している。
【誤訳訂正９】
【訂正対象書類名】明細書
【訂正対象項目名】０１２０
【訂正方法】変更
【訂正の内容】
【０１２０】
分散システムにおいて、任意のノードは任意の時刻でマスターノード、スレーブノード及び競合ノードという３つの状態のうちのいずれかの状態にある。分散システムが通常に運転するほとんどの時間内に、分散システムに１つのマスターノードが存在し、他のノードはいずれもスレーブノードであり、マスターノードがクライアントのメッセージを受信する。
【誤訳訂正１０】
【訂正対象書類名】明細書
【訂正対象項目名】０１２１
【訂正方法】変更
【訂正の内容】
【０１２１】
分散システムの動作時間は、連続するコンセンサス周期に分けられ、ここで、任期(Term)とも呼ばれ、各任期は、任意の時間長であってもよく、任期は、連続する整数で番号を付けられる。各任期で、まず最初にマスターノード投票を行い、投票段階において、複数の競合ノードがマスターノードとなるように競合し、あるノードがマスターノードになれば、他の競合ノードがスレーブノードに変換し、マスターノードとなったノードは、この任期内にずっとマスターノードを担い、このマスターノードに障害が生じたら、他のノードは新しい任期内に投票を行う。
【誤訳訂正１１】
【訂正対象書類名】明細書
【訂正対象項目名】０１４９
【訂正方法】変更
【訂正の内容】
【０１４９】
上述したステップから分かるように、第１のコンセンサスモードにおいて、
１)電子署名の方式を用いることで通信の信頼性を保証する。
【誤訳訂正１２】
【訂正対象書類名】明細書
【訂正対象項目名】０１５０
【訂正方法】変更
【訂正の内容】
【０１５０】
任意の通信を行う双方はそれぞれ電子署名の方式を利用し、即ち、送信側はメッセージを送信する際にメッセージの電子署名を携帯させ、例えば、送信側の非対称暗号化アルゴリズムの秘密鍵を用いてメッセージのダイジェストを暗号化し、送信側の電子署名を形成し、受信側は、電子署名を検証することでメッセージの信頼性を保証し、即ち、メッセージの署名について、非対称暗号化アルゴリズムの公開鍵(受信側及び送信側が同じ非対称暗号化アルゴリズムを用いることを保証すれば、受信側は公開鍵を予め取得する)を用いて復号し、復号して得たダイジェストとメッセージから抽出されたダイジェストとを照合し、一致していれば、電子署名の検証が通過し、送信側から送信されたメッセージが信頼できることが分かる。
【誤訳訂正１３】
【訂正対象書類名】明細書
【訂正対象項目名】０１８７
【訂正方法】変更
【訂正の内容】
【０１８７】
同様に、上述の合意したノード割合閾値は、分散システムにおける全てのスレーブノードの数に対応し、例えば１００％であるか、或いは、分散システムにおいて第１のコンセンサスモードで合意形成することを求められるスレーブノードの数の最小値、例えば、５１％(即ち、第１のコンセンサスモードのフォールトトレランス性能に求められる合意したノード数の最小値であり、この最小値よりも低ければ、第１のコンセンサスモードで達成した合意の信頼性は保証されることができない)であることができる。
【誤訳訂正１４】
【訂正対象書類名】明細書
【訂正対象項目名】０１８８
【訂正方法】変更
【訂正の内容】
【０１８８】
例えば、分散システムが第２のコンセンサスメカニズムにあり、仮にノード１をマスターノードとし、ノード２〜ノードＮをスレーブノードとすると、各ノードがクライアントからのメッセージに関して合意形成することをカウントし、ノード１にとって、ノード１とノード２〜ノードＮは、最近クライアントから送られたＭ個(マスターノードの合意形成回数の閾値)のメッセージのそれぞれに関して合意を達成していれば、各ノード間でよく合意を達成したことが示され、ノード１は第１のコンセンサスモードに切り替える旨の通知をノード２〜ノードＮへ送信し、ノード２〜ノードＮはノード１へ切替確認を送信し、ノード１が第１のコンセンサスモードにおいてもマスターノードであることを承認して、ノード２〜ノードＮが継続してスレーブノードであり、ノード２〜ノードＮにおいて悪意のあるノードが生じても、クライアントからのメッセージを偽造できず、ノードの合意形成効率を確保する。
【誤訳訂正１５】
【訂正対象書類名】明細書
【訂正対象項目名】０１８９
【訂正方法】変更
【訂正の内容】
【０１８９】
方式２)：マスターノードは、合意形成回数がマスターノードの合意形成回数の閾値を超えたと統計した場合に、マスターノードは、スレーブノードが第１のコンセンサスモードに戻ることをトリガーし、スレーブノードは、合意形成回数の閾値がスレーブノードの合意形成回数の閾値を超えたと統計した場合に、スレーブノードは、第１のコンセンサスモードに戻ることを確認し、マスターノード及びスレーブノードは、第１のコンセンサスモードに切り替えるときに第２のコンセンサスモードにおけるノード状態を継承する(即ち、ノードがマスターノード又はスレーブノードである状態は変わらないままである)。
【誤訳訂正１６】
【訂正対象書類名】明細書
【訂正対象項目名】０１９０
【訂正方法】変更
【訂正の内容】
【０１９０】
分散システムが第２のコンセンサスモードにあるときに、スレーブノードは、第２のコンセンサスモードにおいてクライアントからのメッセージに関して他のノード(マスターノード及び他のスレーブノードを含む)と合意形成する回数を統計し、合意形成回数がスレーブノードの合意形成回数の閾値を超えていれば(マスターノードの合意形成回数の閾値以下であってもよく、例えば、Ｍ／２であることができる)、マスターノードが第１のコンセンサスモードにおいて継続してマスターノードであることに同意する旨の通知をマスターノードへ送信し、第２のコンセンサスモードにおけるスレーブノードは、第１のコンセンサスモードに切り替えるときに継続してスレーブノードであり、これにより、第１のコンセンサスモードに切り替える投票操作を完成し、継続して第１のコンセンサスモードにおいてクライアントからのメッセージに関して合意形成する。このように、第１のコンセンサスモードにおいて悪意のあるノードがマスターノードになることを回避することができ、合意形成効率を確保する。
【誤訳訂正１７】
【訂正対象書類名】明細書
【訂正対象項目名】０２００
【訂正方法】変更
【訂正の内容】
【０２００】
関連技術に提供されるＲＡＦＴは、複数のノードの一致性問題を解決し、効率が比較に高いが、しかし、ノード間でのビザンチンフォールトトレランス問題を解決しておらず、一方、ＰＢＦＴアルゴリズムは、複数のノードの一致性を保証できるとともに、各ノード間でのビザンチンフォールトトレランスを解決している。このため、本発明の実施形態では、ノードにエラーが生じた場合に、或いはビザンチン問題が生じた場合に、ＰＢＦＴアルゴリズムを自動的に用いて各ノード間で合意形成でき、全てのノードがそれぞれ合意を達成し、即ち、ビザンチンノードがない場合に、再び合意形成効率の高いＲＡＦＴアルゴリズムに自動的に切り替えて、各ノード間で合意形成する。
【誤訳訂正１８】
【訂正対象書類名】明細書
【訂正対象項目名】０２０１
【訂正方法】変更
【訂正の内容】
【０２０１】
図８を参照すると、図８は、発明の実施形態に提供されるブロックチェーンシステムがＲＡＦＴアルゴリズムを利用して合意形成する１つの任意的なフロー模式図であり、クライアントがメッセージをマスターノード(leaderノード)へ送信した後、マスターノードは、受信されたメッセージを並び替え、並び替える順に従ってスレーブノード(followerノード)に配布し、他のfollowerは、leaderノードが並び替えた順に従ってメッセージをログに記憶し、leaderノードへＲＰＣ結果(result)を返信し、その後、leaderノードは、ログにおけるメッセージをローカルの磁気ディスクに記憶してから、各スレーブノードへコミット(Commit)を送信し、各スレーブノードは、ログにおけるメッセージをスレーブノードのローカル磁気ディスクに記憶すれば、メッセージの一致性を同期させることを完成し、効率が高いが、ビザンチンノード問題を解決できない。
【誤訳訂正１９】
【訂正対象書類名】明細書
【訂正対象項目名】０２３０
【訂正方法】変更
【訂正の内容】
【０２３０】
３)異常ノードを検出した場合に、デフォルトに利用される合意形成効率の高い第１のコンセンサスモードからフォールトトレランス性能のより優れた第２のコンセンサスモードに切り替えることができ、分散システムは異常が発生した時でも順調に合意形成できることを確保する。
【誤訳訂正２０】
【訂正対象書類名】明細書
【訂正対象項目名】０２３１
【訂正方法】変更
【訂正の内容】
【０２３１】
４)第２のコンセンサスモードにおいてよく合意を達成していれば(例えば、合意形成回数に基づいて判断する)、再び第１のコンセンサスモードに切り替え、このような適応型コンセンサスモードの切替は、合意形成効率とフォールトトレランス性能をうまく両立させている。分散システムの運転するネットワーク状態が良好であるほとんどの時間内に、合意形成効率が高いという技術効果を実現し、ノードに障害が発生し、或いはビザンチンノードがある場合に、分散システムの業務機能を正常に処理できることを保証する。
【誤訳訂正２１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
分散システムであって、
クライアントと複数のノードとを備え、
前記ノードは、第１のコンセンサスモードにおいて新しいコンセンサス周期が到来した場合に、投票操作を実行することで、マスターノードの状態にあるかそれともスレーブノードの状態にあるかが決定されるように構成され、
前記ノードは、マスターノードの状態にある場合に、前記クライアントから送信されたメッセージの電子署名を検証し、前記メッセージを前記スレーブノードへ送信するように構成され、
前記ノードは、マスターノードの状態にある場合に、所定数を超えた前記スレーブノードの受信確認通知を受信し、前記受信確認通知の電子署名を検証した後に前記メッセージを永続的に記憶して、前記スレーブノードへメッセージ記憶通知を送信するように構成され、
前記ノードは、さらに、スレーブノードの状態にある場合に、前記マスターノードから送信された前記メッセージを受信したときに前記クライアントへ結果を返信し、前記マスターノードから受信したメッセージの電子署名を検証して、前記マスターノードへ受信確認通知を送信するように構成され、
前記ノードは、スレーブノードの状態にある場合に、前記マスターノードから受信したメッセージ記憶通知の電子署名を検証して、前記マスターノードから受信したメッセージを永続的に記憶するように構成され、
前記クライアントは、前記スレーブノードが前記メッセージを受信したときに返信した結果に基づいて、前記分散システムにおける異常ノードを決定するように構成される、
分散システム。
【請求項２】
前記クライアントは、さらに、受信された結果の電子署名を検証した後、受信された結果に含まれる一意のフィールドと送信されたメッセージにおける一意のフィールドとを比較し、一致しない一意のフィールドが対応するスレーブノードをエラーノードとして決定し、結果を返信していないスレーブノードを障害ノードとして決定するように構成される、
請求項１に記載の分散システム。
【請求項３】
前記クライアントは、さらに、受信された結果に含まれた配列番号と送信されたメッセージの配列番号との比較により、一致しない配列番号を送信したスレーブノードの数が一致しない数の閾値を超えた場合に、前記マスターノードが悪意のあるノードであると判定するように構成される、
請求項１に記載の分散システム。
【請求項４】
前記クライアントは、さらに、前記マスターノードが悪意のあるノードであると決定し、或いは、前記スレーブノードに障害ノードが存在すると決定した場合に、前記分散システムにおけるノードが第２のコンセンサスモードに切り替えるようにトリガーする、
請求項１に記載の分散システム。
【請求項５】
前記ノードは、さらに、前記第２のコンセンサスモードに切り替える準備段階にある場合に、前記ノードに永続的に記憶されたメッセージのハッシュ値と、前記分散システムにおけるノードに永続的に記憶されたメッセージのハッシュ値とを比較し、一致すると確認した場合に、対応するノードの電子署名が含まれている一致性確認を前記クライアントへ送信するように構成され、
前記クライアントは、さらに、所定の時間内に全ての前記ノードの一致性確認を受信した場合に、前記分散システムにおけるノードが前記第１のコンセンサスモードに戻るように通知し、前記所定の時間内には全ての前記ノードの一致性確認を受信していない場合に、前記分散システムにおけるノードが継続して前記第２のコンセンサスモードに切り替えるように通知する、
請求項４に記載の分散システム。
【請求項６】
前記ノードは、さらに、前記第２のコンセンサスモードに切り替える準備段階にある場合に、前記ノードに永続的に記憶されたメッセージのハッシュ値と、前記分散システムにおけるノードに永続的に記憶されたメッセージのハッシュ値とを比較し、一致すると確認した場合に、メッセージの送信ノードへ、対応するノードの電子署名が含まれているデータ確認を送信するように構成され、
前記クライアントは、さらに、所定の時間内には合意したノードが合意していないノードのデータ確認を受信していない場合に、或いは、所定の時間内に分散システムにおけるノードがデータ確認を受信していない場合に、前記分散システムにおけるノードが継続して前記第２のコンセンサスモードに切り替えるようにトリガーする、
請求項４に記載の分散システム。
【請求項７】
前記ノードは、さらに、マスターノードの状態にあるとともに、前記第２のコンセンサスモードにおいてカウントした回数であって、受信したメッセージに関して前記スレーブノードと合意形成したカウント数である回数がマスターノードの合意形成回数の閾値を超えた場合に、前記スレーブノードとともに前記第１のコンセンサスモードに切り替えに関して合意形成するように構成される、
請求項４に記載の分散システム。
【請求項８】
前記ノードは、さらに、マスターノードの状態にあるとともに、カウントした回数がマスターノードの合意形成回数の閾値を超えた場合に、前記第１のコンセンサスモードに切り替える旨の通知を前記スレーブノードへ送信し、全ての前記スレーブノードから送信された切替確認を受信した場合に、前記スレーブノードと同期して前記第１のコンセンサスモードに切り替えるように構成される、
請求項７に記載の分散システム。
【請求項９】
前記ノードは、さらに、スレーブノードの状態にあり、前記第１のコンセンサスモードに切り替える旨の通知を受信し、かつ、受信したメッセージに関して合意形成した回数がスレーブノードの合意形成回数の閾値を超えたとカウントした場合に、前記マスターノードへ切替確認を送信するように構成される、
請求項８に記載の分散システム。
【請求項１０】
前記ノードは、さらに、前記マスターノードのハートビートを受信していない場合に、或いは、前記マスターノードが悪意のあるノードである場合に、投票操作を再実行することで、マスターノードの状態にあるかそれともスレーブノードの状態にあるかが決定されるように構成される、
請求項１に記載の分散システム。
【請求項１１】
前記ノードは、さらに、新しいコンセンサス周期が到来し、かついずれのノードから送信されたハートビートも受信していない場合に、前記分散システムにおけるノードへ投票要求を送信し、所定数のノードから返信された投票確認を受信した場合に、マスターノードの状態に変換して前記分散システムにおけるノードへハートビートを定期的に送信するように構成され、
投票確認は、前記分散システムにおけるノードが送信され、かつ送信される前には前記投票要求に含まれた電子署名は検証され、
前記ノードは、さらに、新しいコンセンサス周期が到来し、かつ前記分散システムにおけるノードから送信されたハートビートを受信した場合に、スレーブノードの状態に変換するように構成される、
請求項１に記載の分散システム。
【請求項１２】
メッセージ処理方法であって、
第１のコンセンサスモードにおいて新しいコンセンサス周期が到来した場合に、分散システムにおけるノードが投票操作を実行し、投票操作によりマスターノードの状態にあるかそれともスレーブノードの状態にあるかが決定されることと、
前記ノードがマスターノードの状態にある場合に、前記ノードは、
クライアントのメッセージを受信し、前記メッセージの電子署名を検証して、前記メッセージを前記スレーブノードへ送信する操作と、
所定数を超えた前記スレーブノードの受信確認通知を受信し、前記受信確認通知の電子署名を検証した後に前記メッセージを永続的に記憶して、前記スレーブノードへメッセージ記憶通知を送信する操作とを実行することと、を含み、
前記スレーブノードが前記メッセージを受信したときに前記クライアントへ返信した結果は、前記クライアントが前記分散システムにおける異常ノードを決定するために用いられる、
メッセージ処理方法。
【請求項１３】
前記ノードがスレーブノードの状態にある場合に、前記ノードは、
前記マスターノードから送信されたメッセージを受信し、前記クライアントへ結果を返信して、受信されたメッセージの電子署名を検証した後に前記マスターノードへ受信確認通知を送信する操作と、
受信されたメッセージ記憶通知の電子署名を検証した後、受信されたメッセージを永続的に記憶する操作とを実行すること、をさらに含む、
請求項１２に記載のメッセージ処理方法。
【請求項１４】
前記ノードがスレーブノードの状態にある場合に、前記スレーブノードが前記クライアントへ返信した結果に、前記メッセージの一意のフィールド、前記スレーブノードの電子署名の情報が含まれ、
前記結果は、前記クライアントが含まれた電子署名を検証し、前記結果に含まれる一意のフィールドと送信されたメッセージの一意のフィールドとを比較し、一致しない一意のフィールドが対応するスレーブノードをエラーノードとして決定するとともに、対応する結果を返信していないスレーブノードを障害ノードとして決定するために用いられる、
請求項１２に記載のメッセージ処理方法。
【請求項１５】
前記ノードがスレーブノードの状態にある場合に、前記スレーブノードの返信した結果に、前記スレーブノードの受信したメッセージの配列番号が含まれ、
前記結果は、前記クライアントが含まれた配列番号と送信されたメッセージの配列番号とを比較し、一致しない配列番号を送信したスレーブノードの数が一致しない数の閾値を超えた場合に、前記マスターノードが悪意のあるノードであると決定するために用いられる、
請求項１２に記載のメッセージ処理方法。
【請求項１６】
前記クライアントは、前記マスターノードが悪意のあるノードであると決定し、或いは、前記スレーブノードに障害ノードが存在すると決定した場合に、前記ノードは、前記クライアントのトリガーに応えて第２のコンセンサスモードに切り替えること、をさらに含む、
請求項１２に記載のメッセージ処理方法。
【請求項１７】
前記ノードが前記第２のコンセンサスモードに切り替える準備段階にある場合に、前記ノードは、
前記ノードに永続的に記憶されたメッセージのハッシュ値と、前記分散システムにおけるノードに永続的に記憶されたメッセージのハッシュ値とを比較し、一致すると確認した場合に、前記クライアントへ、対応するノードの電子署名が含まれている一致性確認を送信する操作と、
前記クライアントが所定の時間内に全ての前記ノードの一致性確認を受信した場合に、前記ノードは、前記クライアントの通知に応えて、継続して前記第１のコンセンサスモードに切り替える操作と、
前記クライアントが所定の時間内には全ての前記ノードの一致性確認を受信していない場合に、前記ノードは、前記クライアントの通知に応えて、継続して前記第２のコンセンサスモードに切り替える操作とを実行すること、をさらに含む、
請求項１６に記載のメッセージ処理方法。
【請求項１８】
前記ノードが前記第２のコンセンサスモードに切り替える準備段階にある場合に、前記ノードは、
前記ノードに永続的に記憶されたメッセージのハッシュ値と、前記分散システムにおけるノードに永続的に記憶されたメッセージのハッシュ値とを比較し、一致すると確認した場合に、メッセージの送信ノードへ、対応するノードの電子署名が含まれているデータ確認を送信する操作と、
所定の時間内に合意したノードが合意していないノードのデータ確認を受信していない場合に、或いは、前記所定の時間内に分散システムにおけるノードがデータ確認を受信していない場合に、前記ノードは、前記クライアントのトリガーに応えて、継続して前記第２のコンセンサスモードに切り替える操作とを実行すること、をさらに含む、
請求項１６に記載のメッセージ処理方法。
【請求項１９】
前記ノードがマスターノードの状態にあり、かつ前記第２のコンセンサスモードにおいてカウントした回数であって、受信したメッセージに関して前記スレーブノードと合意形成したカウント数である回数がマスターノードの合意形成回数の閾値を超えた場合に、前記スレーブノードとともに前記第１のコンセンサスモードに切り替えること、をさらに含む、
請求項１６に記載のメッセージ処理方法。
【請求項２０】
前記スレーブノードとともに前記第１のコンセンサスモードに切り替えることは、
前記マスターノードが前記第１のコンセンサスモードに切り替える旨の通知を前記スレーブノードへ送信し、全ての前記スレーブノードから送信された切替確認を受信した場合に、前記スレーブノードと同期して前記第１のコンセンサスモードに切り替えることを含む、
請求項１９に記載のメッセージ処理方法。
【請求項２１】
前記ノードがスレーブノードの状態にある場合に、
前記第１のコンセンサスモードに切り替える旨の通知を受信したときに、受信したメッセージに関して合意形成した回数をカウントし、カウントした回数がスレーブノードの合意形成回数の閾値を超えた場合に、前記マスターノードへ切替確認を送信する操作を実行すること、をさらに含む、
請求項２０に記載のメッセージ処理方法。
【請求項２２】
前記スレーブノードが前記マスターノードのハートビートを受信していない場合に、或いは、前記マスターノードが悪意のあるノードである場合に、前記分散システムにおけるノードが投票操作を再実行することで、マスターノードの状態にあるかそれともスレーブノードの状態にあるかが決定されること、をさらに含む、
請求項１２に記載のメッセージ処理方法。
【請求項２３】
新しいコンセンサス周期が到来し、かつハートビートを受信していない場合に、前記ノードは、前記分散システムにおけるノードへ、前記ノードの電子署名が含まれている投票要求を送信し、
所定数のノードから返信された投票確認を受信した場合に、マスターノードの状態に変換し、前記ノードは前記分散システムにおけるノードへハートビートを定期的に送信し、
前記投票確認は、前記分散システムにおけるノードが前記投票要求に含まれた電子署名を検証する後に送信され、
新しいコンセンサス周期が到来し、かつ前記分散システムにおけるノードから送信されたハートビートを受信した場合に、スレーブノードの状態に変換する、
請求項１２に記載のメッセージ処理方法。
【請求項２４】
メッセージ処理方法であって、
クライアントは、分散システムのノードのうちのマスターノードへ、前記クライアントの電子署名が含まれているメッセージを送信することと、
前記電子署名は、前記マスターノードが検証するのに用いられ、受信されたメッセージは、前記マスターノードの電子署名を含んで、前記分散システムにおけるスレーブノードへ送信されることと、
前記クライアントは、前記スレーブノードが前記メッセージを受信したときに返信した結果を受信することと、
前記クライアントは、前記スレーブノードが前記メッセージを受信したときに返信した結果に基づいて、前記分散システムにおける異常ノードを決定することと、を含む、
メッセージ処理方法。
【請求項２５】
前記クライアントは、前記スレーブノードが前記メッセージを受信したときに返信した結果に基づいて、前記分散システムにおける異常ノードを決定することは、
前記クライアントは、受信された結果の電子署名を検証した後、受信された結果に含まれる一意のフィールドと送信されたメッセージにおける一意のフィールドとを比較し、一致しない一意のフィールドが対応するスレーブノードをエラーノードとして決定するとともに、対応する結果を返信していないスレーブノードを障害ノードとして決定することを含む、
請求項２４に記載のメッセージ処理方法。
【請求項２６】
前記クライアントは、前記スレーブノードが前記メッセージを受信したときに返信した結果に基づいて、前記分散システムにおける異常ノードを決定することは、
前記クライアントは、受信された結果に含まれた配列番号と送信されたメッセージの配列番号との比較により、一致しない配列番号を送信したスレーブノードの数が一致しない数の閾値を超えた場合に、前記マスターノードが悪意のあるノードであると判定することを含む、
請求項２４に記載のメッセージ処理方法。
【請求項２７】
前記クライアントは、前記マスターノードが悪意のあるノードであると決定した場合に、或いは、前記クライアントは、前記スレーブノードに障害ノードが存在すると決定した場合に、前記分散システムのノードが第２のコンセンサスモードに切り替えるようにトリガーすること、をさらに含む、
請求項２４に記載のメッセージ処理方法。
【請求項２８】
前記クライアントは、所定の時間内に全ての前記ノードの一致性確認を受信した場合に、全ての前記ノードが第１のコンセンサスモードに戻るように通知することと、
前記クライアントは、所定の時間内には全ての前記ノードの一致性確認を受信していない場合に、全ての前記ノードが継続して前記第２のコンセンサスモードに切り替えるように通知することと、をさらに含み、
前記一致性確認は、前記ノードの電子署名を含んでおり、前記ノードが前記第２のコンセンサスモードに切り替える準備段階にあるときに送信され、かつ、送信される前に、前記ノードに永続的に記憶されたメッセージのハッシュ値と、前記分散システムにおけるノードに永続的に記憶されたメッセージのハッシュ値とが一致すると確認する、
請求項２７に記載のメッセージ処理方法。
【請求項２９】
所定の時間内に合意したノードが合意していないノードのデータ確認を受信していない場合に、或いは、所定の時間内に分散システムにおけるノードがデータ確認を受信していない場合に、前記クライアントは、前記分散システムにおけるノードが継続して前記第２のコンセンサスモードに切り替えるようにトリガーすること、をさらに含み、
前記データ確認は、対応するノードの電子署名を含んでおり、前記ノードが前記第２のコンセンサスモードに切り替える準備段階にあるときに送信され、かつ、送信される前に、前記ノードに永続的に記憶されたメッセージのハッシュ値と、前記分散システムにおいて永続的に記憶されたメッセージのハッシュ値とが一致すると確認する、
請求項２７に記載のメッセージ処理方法。
【請求項３０】
分散システムにおけるノードであって、
第１のコンセンサスモードにおいて新しいコンセンサス周期が到来した場合に、投票操作を実行することで、投票操作によりマスターノードの状態にあるかそれともスレーブノードの状態にあるかが決定されるように構成される投票ユニットと、
前記ノードがマスターノードの状態にある場合に、クライアントのメッセージを受信し、前記メッセージの電子署名を検証して、前記メッセージを前記スレーブノードへ送信し、そして、
所定数を超えた前記スレーブノードの受信確認通知を受信し、前記受信確認通知の電子署名を検証した後に前記メッセージを永続的に記憶して、前記スレーブノードへメッセージ記憶通知を送信するように構成されるマスターノードユニットと、を備え、
前記スレーブノードが前記メッセージを受信したときに前記クライアントへ返信した結果は、前記クライアントが前記分散システムにおける異常ノードを決定するために用いられる、
ノード。
【請求項３１】
分散システムにおけるノードであって、１つ又は複数のプロセッサと、メモリと、１つ以上のプログラムとを備え、前記１つ以上のプログラムがメモリに記憶され、前記プログラムは、それぞれ一群の命令に対応する１つ以上のユニットを含むことができ、前記１つ又は複数のプロセッサは、命令を実行する際にメッセージ処理方法を実現するように構成され、前記メッセージ処理方法は、
第１のコンセンサスモードにおいて新しいコンセンサス周期が到来した場合に、分散システムにおけるノードが投票操作を実行し、投票操作によりマスターノードの状態にあるかそれともスレーブノードの状態にあるかが決定されることと、
前記ノードがマスターノードの状態にある場合に、前記ノードは、
クライアントのメッセージを受信し、前記メッセージの電子署名を検証して、前記メッセージを前記スレーブノードへ送信する操作と、
所定数を超えた前記スレーブノードの受信確認通知を受信し、前記受信確認通知の電子署名を検証した後に前記メッセージを永続的に記憶して、前記スレーブノードへメッセージ記憶通知を送信する操作とを実行することと、を含み、
前記スレーブノードが前記メッセージを受信したときに前記クライアントへ返信した結果は、前記クライアントが前記分散システムにおける異常ノードを決定するために用いられる、
ノード。
【請求項３２】
分散システムにおけるクライアントであって、
分散システムのノードのうちのマスターノードへ、前記クライアントの電子署名が含まれているメッセージを送信し、
前記電子署名は、前記マスターノードが検証するのに用いられ、受信されたメッセージは、前記マスターノードの電子署名を含んで、前記分散システムにおけるスレーブノードへ送信され、
前記スレーブノードは、前記メッセージを受信したときに返信した結果を受信する
ように構成される通信ユニットと、
前記スレーブノードが前記メッセージを受信したときに前記クライアントへ返信した結果に基づいて、前記分散システムにおける異常ノードを決定するように構成される検出ユニットと、を備える、
クライアント。
【請求項３３】
分散システムにおけるクライアントであって、１つ又は複数のプロセッサと、メモリと、１つ以上のプログラムとを備え、前記１つ以上のプログラムがメモリに記憶され、前記プログラムは、それぞれが一群の命令に対応する１つ以上のユニットを含むことができ、前記１つ又は複数のプロセッサは、命令を実行する際にメッセージ処理方法を実現するように構成され、前記メッセージ処理方法は、
クライアントは、分散システムのノードのうちのマスターノードへ、前記クライアントの電子署名が含まれているメッセージを送信することと、
前記電子署名は、前記マスターノードが検証するのに用いられ、受信されたメッセージは、前記マスターノードの電子署名を含んで、前記分散システムにおけるスレーブノードへ送信されることと、
前記クライアントは、前記スレーブノードが前記メッセージを受信したときに返信した結果を受信することと、
前記クライアントは、前記スレーブノードが前記メッセージを受信したときに返信した結果に基づいて、前記分散システムにおける異常ノードを決定することと、を含む、
クライアント。
【請求項３４】
プロセッサに、実行可能なプログラムを実行する際に、請求項１２乃至２３のいずれか一項に記載のメッセージ処理方法を実現させるための前記実行可能なプログラムが記憶されている記憶媒体。
【請求項３５】
プロセッサに、実行可能なプログラムを実行する際に、請求項２４乃至２９のいずれか一項に記載のメッセージ処理方法を実現させるための前記実行可能なプログラムが記憶されている記憶媒体。