【手続補正書】
【提出日】令和3年3月29日(2021.3.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
シャード化された許可型の分散型台帳システムであって、前記システムは、
前記分散型台帳システムに複数のノードとして参加するように構成された複数のコンピューティングデバイスを備え、前記複数のノードは、１つ以上のトランザクションに関する情報を格納するように構成された複数の台帳シャードを含む分散型台帳を管理するように構成されており、
各ノードは、
前記複数の台帳シャードのうちの個々の台帳シャードに対して個々のトランザクションに関する情報をアペンドするためにコンセンサスプロトコルに従って参加するように構成された、１つ以上のベリファイアサービスと、
ディスパッチャサービスとを含み、
前記ディスパッチャサービスは、クライアントからトランザクション要求を受けるように構成されており、前記トランザクション要求は、特定のトランザクションと前記複数の台帳シャードのうちのターゲットシャードとを示す情報を含み、かつ
前記ディスパッチャサービスは、前記受けたトランザクション要求を、前記ターゲットシャードに対応付けられた、前記ベリファイアサービスのうちの１つに転送するように構成されている、シャード化された許可型の分散型台帳システム。
【請求項２】
前記ベリファイアサービスは、前記転送された要求によって指定されるトランザクションに関する情報を、前記ターゲットシャードにアペンドするように構成されている、請求項１に記載のシャード化された許可型の分散型台帳システム。
【請求項３】
前記ディスパッチャサービスはさらに、前記受けたトランザクション要求を、前記ターゲットシャードに対応付けられたリーダーベリファイアに転送するように構成されており、
前記リーダーベリファイアは、前記コンセンサスプロトコルに従い、前記ターゲットシャードに対応付けられた前記ベリファイアサービスに対して前記特定のトランザクションを提案するように構成されている、請求項１または２に記載のシャード化された許可型の分散型台帳システム。
【請求項４】
構成サービスをさらに備え、前記構成サービスは、各対応するノードごとに、前記複数の台帳シャードのうちの個々の台帳シャードに対してアクティブになる、前記対応するノード上の前記ベリファイアサービスのサブセットを決定するように構成され、所定の台帳シャードに対してアクティブであるベリファイアサービスが、コンセンサスに参加して新たなトランザクションを前記台帳シャードにアペンドする、請求項１から３のいずれか１項に記載のシャード化された許可型の分散型台帳システム。
【請求項５】
前記構成サービスはさらに、ランダムネスのシャード化ソースに少なくとも一部基づいて前記ベリファイアサービスのサブセットを決定するように構成されており、前記ランダムネスのシャード化ソースは、前記複数のノードが制御できないランダムデータを提供する、請求項４に記載のシャード化された許可型の分散型台帳システム。
【請求項６】
前記複数の台帳シャードのうちの個々の台帳シャードにアペンドされるトランザクションのカウント、
前記台帳シャードのうちの１つ以上についての状態情報の暗号ハッシュ、および、
前記台帳シャードのうちの個々の台帳シャードに対応付けられたベリファイアサービスに関する情報、
のうちの１つ以上を記録するように構成された分散型構成台帳をさらに備える、請求項１から５のいずれか１項に記載のシャード化された許可型の分散型台帳システム。
【請求項７】
前記複数の台帳シャードに関する指令を前記ノードのうちの１つ以上にブロードキャストするように構成された構成サービスをさらに備える、請求項６に記載のシャード化された許可型の分散型台帳システム。
【請求項８】
コンピュータが実施する方法であって、
分散型台帳システムに複数のノードとして参加するように構成された複数のコンピューティングデバイス上で、１つ以上のトランザクションに関する情報を格納する複数の台帳シャードを含む分散型台帳を管理するステップと、
前記ノードのうちの１つのノード上のディスパッチャプロセスが、クライアントからトランザクション要求を受けるステップとを含み、前記トランザクション要求は、特定のトランザクションと前記複数の台帳シャードのうちのターゲットシャードとを示す情報を含み、
前記ディスパッチャプロセスが、前記受けたトランザクション要求を、前記ターゲットシャードに対応付けられたベリファイアプロセスに転送するステップを含み、前記ベリファイアプロセスは複数のベリファイアプロセスのうちの１つであり、前記複数のベリファイアプロセスは各々、前記複数の台帳シャードのうちの個々の台帳シャードに個々のトランザクションに関する情報をアペンドするためにコンセンサスプロトコルに従い１つ以上の他のベリファイアプロセスとともに参加するように構成されている、コンピュータが実施する方法。
【請求項９】
前記ベリファイアプロセスが、前記転送された要求によって指定されるトランザクションに関する情報を、前記ターゲットシャードにアペンドするステップをさらに含む、請求項８に記載のコンピュータが実施する方法。
【請求項１０】
前記ターゲットシャードに対してアクティブである前記ベリファイアプロセスのセットの中からリーダーベリファイアを決定するステップをさらに含み、
前記転送するステップは、前記ディスパッチャプロセスが、前記受けたトランザクション要求を、前記リーダーベリファイアに転送するステップを含み、
前記リーダーベリファイアが、前記コンセンサスプロトコルに従い前記ターゲットシャードに対してアクティブである前記ベリファイアプロセスのセットに、前記特定のトランザクションを提案するステップをさらに含む、請求項８または９に記載のコンピュータが実施する方法。
【請求項１１】
構成サービスが、各対応するノードごとに、前記複数の台帳シャードのうちの個々の台帳シャードに対してアクティブになる、前記対応するノード上の前記ベリファイアプロセスのサブセットを決定するステップをさらに含む、請求項８から１０のいずれか１項に記載のコンピュータが実施する方法。
【請求項１２】
前記ベリファイアプロセスのサブセットを決定するステップは、ランダムネスのシャード化ソースに少なくとも一部基づいており、前記ランダムネスのシャード化ソースは、前記複数のノードが制御できないランダムデータを提供する、請求項１１に記載のコンピュータが実施する方法。
【請求項１３】
前記複数の台帳シャードのうちの個々の台帳シャードにアペンドされるトランザクションのカウント、
前記台帳シャードのうちの１つ以上についての状態情報の暗号ハッシュ、および、
前記台帳シャードのうちの個々の台帳シャードに対応付けられたベリファイアプロセス関する情報、
のうちの１つ以上を、分散型構成台帳に記録するステップをさらに含む、請求項８から１２のいずれか１項に記載のコンピュータが実施する方法。
【請求項１４】
構成サービスが、前記複数の台帳シャードに関する指令を、前記ノードのうちの１つ以上にブロードキャストするステップをさらに含む、請求項１３に記載のコンピュータが実施する方法。
【請求項１５】
請求項８から１４のいずれか１項に記載の方法をコンピュータに実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
システムのような、シャード化された許可型の分散型台帳を実現するように構成されたシステムは、台帳システム全体の参加者とみなし得る、ノード１２０Ａ〜Ｎ等の複数のノードを含み得る。各種実施形態に従うと、ノード１２０Ａ〜Ｎは、１つ以上のアプリケーション、モジュール、プロセス、スレッドなどを介して、たとえばディスパッチャ１３０Ａ〜Ｎ、メンバシップ代表１４０Ａ〜Ｎ、およびベリファイア１５０Ａ〜Ｎを介して、台帳システムに参加するように構成することができる。加えて、いくつかの実施形態において、ノード１２０Ａ〜Ｎは、複数のシャードに分割し得る、シャード化された許可型の分散型台帳を全体として管理するように構成することができる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
複数のクライアント、たとえばクライアント１８０Ａ〜Ｍは、たとえば台帳に追加するトランザクションをサブミットするために、シャード化された許可型の分散型台帳システムとやり取りすることができる。クライアント１８０が台帳システムに対してトランザクションを提示するとき、このクライアントは、このトランザクションを導く先であるシャード（すなわち台帳を構成するシャードのうちの１つ）を指定することができる。クライアント１８０は、さまざまなやり方のうちのいずれかで、ターゲットシャード（すなわちトランザクションを導く先であるシャード）を示すことができる。たとえば、一実施形態において、クライアント１８０と台帳システムとの通信を媒介する通信プロトコルは、クライアント１８０がターゲットシャードを示すことを媒介する機構（たとえばメッセージタイプ、フィールドなど）を提供し得る。加えて、トランザクションを、さまざまなやり方のうちのいずれかでシャードに割り当てることができ、これらのやり方は、サーバに対する負荷を平衡させる割り当て、地理的に近くにあるサーバを優先する割り当て、および／または関連するトランザクションを１つのシャードに集約させる割り当てを含むが、これらに限定されない。一般的に、シャードに対してトランザクションを割り当てるために使用される特定のやり方および／または機構は、実施形態によって異なり得る。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
ディスパッチャ
先に述べたように、各ノードは、クライアントからアクティブベリファイアにメッセージを導く役割を担うことができる、ディスパッチャ１３０Ａ〜Ｎ等の１つ以上のディスパッチャプロセスを有し得る。図４は、受信メッセージをディスパッチする方法の一実施形態を示すフローチャートである。ブロック４００のように、ディスパッチャ１３０は、ターゲットシャードを示すクライアントからのメッセージを受信することができる。いくつかの実施形態において、ディスパッチャ１３０Ａ〜Ｎは、クライアント１８０Ａ〜Ｍからトランザクション要求を受けることができる。クライアントからの要求は、ターゲットシャードと、コマンドおよび／またはトランザクション（たとえばターゲットシャードに追加／適用する、提案されたトランザクション）とを、指定することができる。ディスパッチャは、ターゲットシャードに対してアクティブであるベリファイア１５０等のプロセスに対し、受信した要求を転送する役割を担うことができる。判断ブロック４１０の肯定出力が示すように、ディスパッチャと同じノード（たとえばディスパッチャが実行しているノード）上のベリファイアがターゲットシャードに対してアクティブである（たとえばターゲットシャードを管理する役割を担う）場合、ブロック４２０のように、ディスパッチャはこの要求をディスパッチャ自身のノード上のプロセス（たとえばベリファイア）に転送することができる。
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2020521252.tif 000001