【解決手段】方法は、第一付与ノードがランダムに第二付与ノードを選択し、参照情報を送信するステップと、どのノードイベントが他のものの前であるかのを参照情報に基づいて決定するステップと、参照情報が、第一付与ノードのイベントが第二付与ノードのイベントの前であることを示唆するならば、第一付与ノードにキャンセル情報を送信し、結果として、第一付与ノードが、第二付与ノードにDAG−イベント情報を送ることを防止するステップと、参照情報が、第二付与ノードのイベントが第一付与ノードのイベントであることを示唆するならば、第一付与ノードに、DAG−イベント情報を第二付与ノードに送信させるようにするステップと、を含む。
特定のネットワークで接続された分配されたコンピュータノードの間で、情報を交換するためのコンピュータ実行方法であって、当該方法は、ゴシップププロトコルにおけるゴシップを使用することを介して、ハッシュグラフコンセンサスアルゴリズムのようなDAG(Directed Acyclic Graph)コンセンサスアルゴリズムを実行し、当該方法は、
第一付与ノード(N1)がランダムに第二付与ノード(N4)を選択し、参照情報(8)を送信するようにするステップを含み、
前記方法は、
どのノードイベントが他のもの(N1)の前であるかのを参照情報(8)に基づいて決定するステップと、
もし当該参照情報(8)が、前記第一付与ノード(N1)の前記イベントが前記第二付与ノード(N4)の前記イベントの前であることを示唆するならば、前記第一付与ノード(N1)にキャンセル情報(9)を送信し、結果として、前記第一付与ノード(N1)が、前記第二付与ノード(N4)にDAG−イベント情報を送ることを防止するステップと、
もし前記参照情報(8)が、前記第二付与ノード(N4)の前記イベントが前記第一付与ノード(N1)の前記イベントの前であることを示唆するならば、前記第一付与ノード(N1)に、DAG−イベント情報(6)を前記第二付与ノード(N4)に送信させるようにするステップと、
そして、好ましくは、それから、前記第二付与ノード(N4)に、DAG−イベント情報(7)を前記第一付与ノード(N1)に送信させるようにするステップと、を含み、
そして、前記ネットワークを介して前記DAG−イベント情報(6, 7)を同期及び伝播するために、他のノードにおいても同様となる、ことを特徴とするコンピュータ実行方法。
ここで、前記ノードイベントの順番は、各ノードに、ノードで生成される各イベントのために増加するアルティテュードと呼ばれる整数値の変化を追うことをさせることによって決定される、ことを特徴とする請求項1乃至3の何れか一項に記載のコンピュータ実行方法。
ここで、前記参照情報は、タイダルウェーブ(8)を介して送信され、及び/又は前記キャンセル情報は、ブレーキングウェーブ(9)を介して送信される、ことを特徴とする請求項1乃至4の何れか一項に記載のコンピュータ実行方法。
さらに、前記第二付与ノードから前記第一付与ノードへのDAG−イベント情報の第二送信は、前記DAG−イベント情報の第二及び最終ウェーブである、ことを特徴とする請求項1乃至5の何れか一項に記載のコンピュータ実行方法。
さらに、もしノードが情報の交換の予め決められたシーケンス中にない情報を受信し、及び/又はもしノードが既に情報を交換したノードからの情報を受信した場合、他のキャンセル情報を送信するステップを含む、ことを特徴とする請求項1乃至6の何れか一項に記載のコンピュータ実行方法。
特定のネットワークで接続された分配されたコンピュータノードの間で、情報を交換するためのシステムに関連し、当該システムは、ゴシップププロトコルに関するゴシップを使用することを介して、ハッシュグラフコンセンサスアルゴリズムのようなDAG(Directed Acyclic Graph)コンセンサスアルゴリズムを実行し、当該システムは、
第一付与ノード(N1)がランダムに第二付与ノード(N4)を選択し、参照情報を送信するようにする手段を備え、
当該システムは、好ましくは、
どのノードイベントが他のものの前であるかを参照情報(8)に基づいて決定する手段と、
もし当該参照情報(8)が、前記第一付与ノード(N1)の前記イベントが前記第二付与ノード(N4)の前記イベントの前であることを示唆するならば、前記第一付与ノード(N1)にキャンセル情報を送信し、結果として、前記第一付与ノード(N1)が、前記第二付与ノード(N4)にDAG−イベント情報(6, 7)を送ることを防止する手段と、及び、
もし前記参照情報(8)が、前記第二付与ノード(N4)の前記イベントが前記第一付与ノード(N1)の前記イベントの前であることを示唆するならば、前記第一付与ノード(N1)に、DAG−イベント情報(6)を前記第二付与ノード(N4)に送信させるようにする手段と、
そして、好ましくは、それから、前記第二付与ノード(N4)に、DAG−イベント情報(7)を前記第一付与ノード(N1)に送信させるようにする手段と、を備え
そして、他のノードにおいても同様に、前記ネットワークを介して前記DAG−イベント情報(6, 7)を同期及び伝播する、ことを特徴とするシステム。
ここで、前記ノードイベントの順番を決定するために、各ノードを、ノードで生成される各イベントのために増加するアルティテュードと呼ばれる整数値の変化を追うことをさせるための手段を備える、ことを特徴とする請求項8乃至10の何れか一項に記載のシステム。
ここで、前記参照情報をタイダルウェーブ(8)を介して送信する手段、及び前記キャンセル情報をブレーキングウェーブ(9)を介して送信手段を備える、ことを特徴とする請求項8乃至11の何れか一項に記載のシステム。
さらに、もしノードが情報の交換の予め決められたシーケンス中にない情報を受信し、及び/又はもしノードが既に情報を交換したノードからの情報を受信した場合、他のキャンセル情報を送信する手段を備える、ことを特徴とする請求項8乃至13の何れか一項に記載のシステム。
一以上の中央ユニット、特に一以上のコンピュータ化された中央ユニット(10)、及びトランザクションを実行する追加コマンドユニット(11)への接続(12)、特にコンピュータ化されたコマンドユニット、請求項8乃至14に応じたシステム(5a)を備える中央ユニット(10)を備えるネットワーク。
【背景技術】
【0003】
ハッシュグラフは、分権されたネットワーク内でコンセンサスに至る新しい方法として技術分野で知られている。それは度々、ボーティングアルゴリズムをとして参照される。ハッシュグラフは、特にDAG(Directed Acyclic Graph)である。
【0004】
ハッシュグラフの目的は、分配システム内のノードの間で、コンセンサスに至ることが第一である。ハッシュグラフアルゴリズムは、ビザンチン将軍問題を解決するための方法である。
【0005】
さらに、ハッシュグラフアルゴリズムは、攻撃者がネットワークをシャットダウンすること、又はネットワークをフリーズすることを防止し、それがゆえに、それがコンセンサスに到ることを防止する。
【0006】
本願の一つのアイデアは、ノード間で情報を交換する効率的な方法を持つことで、また、サポート方法で、ハッシュグラフのためのシステム、又は他のDAG情報を交換する必要があるDAGシステムをサポートすることである。
【0007】
図1は、従来の発展された図式的なハッシュグラフを示す。ハッシュグラフは、
図1において垂直に配置されたコンピュータノード(N
A, N
B, N
C, N
D, N
E)のネットワークに基づく。各コンピュータノード(N
A, N
B, N
C, N
D, N
E)は、円形にされたものとして示されるイベント1と呼ばれるものを記録でき、及び
図2により詳細を示す。イベントは、一般的に、情報/バイト及びメモリのシーケンスであり、それからハッシュされる。イベントは、ノードによって記録される。イベントは、ネットワークに分配される情報のピースから構成される。情報はそれを安全にするために、一般的にハッシュされる。このため、ハッシュグラフはネットワーク内で分配される安全な情報を分配することを可能とする。
【0008】
イベントは、ノードによってサインされる。
【0009】
ハッシュグラフの実行において、ノードはそれから他のノードをランダムに選択し、それに全ての情報を送信して、それはコミュニケーションに関してハッシュされる。これは、情報がネットワークを通して伝播するまで繰り返される。
【0010】
ハッシュグラフは、ネットワーク内で情報の送信の無限数を示唆する。加えて、ハッシュグラフアルゴリズムにおいて、イベントは常にネットワーク中においてコンセンサスタイムスタンプに至るタイムスタンプを含む。
【0011】
図2を参照して、イベントの情報は、
図2で垂直に示されるセルフ親ノードから受信されるセルフ親2からのハッシュ。セルフ親2からのハッシュは、セルフ親ノードのメモリ内での前のイベントと関連するもの;
図2で斜めに示された他の親ノードから受信される他の親3からのハッシュ。他の親3からのハッシュは、他の親ノードのメモリ内で前のイベントに関連するもの;
現在のイベント1の情報;及び
現在のイベントのタイムスタンプ4、を含む。
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明の目的は、情報のトランスミッションの数を限定/減少することであり、及び情報の計算、蓄積、及びトランスミッションのコンピュータリソースの使用を減らすことである。
【0013】
本発明の他の一般目的は、コンピュータノード間の効果的な情報の交換であり、及びノードが、それらが永久に前後に情報を送信するような無限エコーの中に行くことを防止する。
【0014】
他の目的は、ノードの安全性であり、それらの間で不必要な情報を送信することなしに、ノードの間で共有される必要があるのは何の情報かを容易に決定することである。
【課題を解決するための手段】
【0015】
これらの目的を達成するため、本発明は、特定のネットワークで接続された分配されたコンピュータノードの間で、情報を交換するためのコンピュータ実行方法に関連し、当該方法は、ゴシップププロトコルにおけるゴシップを使用することを介して、ハッシュグラフコンセンサスアルゴリズムのようなDAG(Directed Acyclic Graph)コンセンサスアルゴリズムを実行し、当該方法は、
第一付与ノードがランダムに第二付与ノードを選択し、参照情報を送信するようにするステップを含み、
当該方法は、好ましくは、
どのノードイベントが他のものの前であるかのを参照情報に基づいて決定するステップと、
もし当該参照情報が、前記第一付与ノードの前記イベントが前記第二付与ノードの前記イベントの前であることを示唆するならば、
前記第一付与ノードにキャンセル情報を送信し、結果として、前記第一付与ノードが、前記第二付与ノードにDAG−イベント情報を送ることを防止するステップと、
もし前記参照情報が、前記第二付与ノードの前記イベントが前記第一付与ノードの前記イベントの前であることを示唆するならば、
前記第一付与ノードに、DAG−イベント情報を前記第二付与ノードに送信させるようにするステップと、
そして、好ましくは、それから、前記第二付与ノードに、DAG−イベント情報を前記第一付与ノードに送信させるようにするステップと、を含むことを特徴として、
そして、前記ネットワークを介して前記DAG−イベント情報を同期及び伝播するために、他のノードにおいても同様となる。
【0016】
より正確には、側面に応じて、前記方法は、
前記第二付与ノードが、キャンセル情報を前記第一付与ノードに送ることをさせるステップと、
前記第二付与ノードが、前記第一付与ノードから参照情報を受信するとき、
もし、第二付与ノードが、以前に、参照情報を前記第一付与ノードに送ったなら、
前記第一付与ノードはDAG−イベント情報を前記第二付与ノードに送信しない、ことを含む。
【0017】
このDAG−イベント情報は、DAGのイベントに関連して交換される情報を参照する。特に、各情報のピースは、ハッシュポインタを介して接続している。それは、イベントのハッシュは、ユニークハッシュ(フィンガープリント)であり、及びセルフ親及び他の親ハッシュフィンガープリントは、イベント内に含まれ、DAG内のイベント間で、ユニークな識別子/ポインタとして行動する。
【0018】
より有利には、前記方法は、前記キャンセル情報を介して情報の送信の回数を限定でき、そのため、前記ノードは、情報の通信を停止できる。それは、計算でのコンピュータリソースの使用、蓄積、情報の送信を減らすことを示唆する。
【0019】
本発明に関する考えは、ノード(ゴシップに関するゴシップ)の間での情報の交換の効率的な方法を有することである。そこで、ウェーブフロント方法が、ハッシュグラフ又は他のDAG情報を交換するために必要なDAGシステムのためのサポートシステムとして使用される。
【0020】
さらに、それは、イベントの各ノードのチェーンの状態を送信することによって情報の数を制限し、参照/アルティテュードの数によって示されるこの方法で、前記ノードは、もしイベントのチェーンでの最後のイベントが、他のノードイベントチェーンの後又は前であるかを決定できる。
【0021】
加えて、キャンセルは、2つのノード間での無限エコーを防止できる。
【0022】
加えて、前記ウェーブフロント方法は、容易にノードを安全にして、それらの間で不必要な情報を送信することなしに、何の情報がウェーブフロント(さらに詳細は後述)を共有することによって、ノードの間で共有される必要があるかを決定する。
【0023】
個別に、又は他のいかなる技術的に可能な組み合わせで組み合わせが取られる前記方法の他の側面に応じて、
参照情報は、ノードイベントの順番に関連し、及び/又は、
前記ノードイベントの順番は、全てのイベントの縦座標値を続けて追跡することによって決定され、及び/又は、
ノードイベントの順番は、各ノードに、ノード内で生成される各エベントのために増加するアルティテュードと呼ばれる整数値の追跡を続けるさせることにより決定され、及び/又は、
参照情報は、タイダルウェーブを介して送られ、及び/又は、
キャンセル情報は、ブレーキングウェーブを介して送られ、及び/又は、
前記第二付与ノードから前記第一付与ノードへのDAG−イベント情報の第二送信は、DAG−イベント情報の第二及び最終ウェーブであり、及び/又は、
前記方法は、もしノードが情報の交換の予め決められたシーケンス中ではない情報を受信、及び/又は、ノードが既に情報を交換したノードから情報を受信するなら、他のキャンセル情報を送信するステップを含む。
【0024】
本発明はさらに、情報を交換するためのシステムに関し、本発明に応じる方法のステップを実行するための手段を備える。
【0025】
より一般的には、本発明は、さらに、特定のネットワークで接続された分配されたコンピュータノードの間で、情報を交換するためのシステムに関連し、当該システムは、ゴシップププロトコルに関してゴシップを使用することを介して、ハッシュグラフコンセンサスアルゴリズムのようなDAG(Directed Acyclic Graph)コンセンサスアルゴリズムを実行し、当該システムは、
第一付与ノードがランダムに第二付与ノードを選択し、参照情報を送信するようにする手段を備え、
当該システムは、好ましくは、
どのノードイベントが他のものの前であるかを参照情報に基づいて決定する手段と、
もし当該参照情報が、前記第一付与ノードの前記イベントが前記第二付与ノードの前記イベントの前であることを示唆するならば、前記第一付与ノードにキャンセル情報を送信し、結果として、前記第一付与ノードが、前記第二付与ノードにDAG−イベント情報を送ることを防止する手段と、及び、
もし前記参照情報が、前記第二付与ノードの前記イベントが前記第一付与ノードの前記イベントの前であることを示唆するならば、前記第一付与ノードに、DAG−イベント情報を前記第二付与ノードに送信させるようにする手段と、
そして、好ましくは、それから、前記第二付与ノードに、DAG−イベント情報を前記第一付与ノードに送信させるようにする手段と、を備えることを特徴として、
そして、前記ネットワークを介して前記DAG−イベント情報を同期及び伝播するために、他のノードにおいても同様となる。
【0026】
前記方法のために上述された有利点は、前記方法を実行するシステムにも適用される。
【0027】
個別に、又は他のいかなる技術的に可能な組み合わせで組み合わせが取られる前記システムの他の側面に応じて、
前記参照情報は、前記ノードイベントの順番に関連し、及び/又は
前記システムは、前記ノードイベントの順番を決定するために、各イベントの縦座標値の変化を追う手段を備え、及び/又は、
前記システムは、前記ノードイベントの順番を決定するために、各ノードを、ノードで生成される各イベントのために増加するアルティテュードと呼ばれる整数値の変化を追うことをさせるための手段を備え、及び/又は
前記システムは、前記参照情報をタイダルウェーブ(8)を介して送信する手段、及び前記キャンセル情報をブレーキングウェーブ(9)を介して送信手段を備え、及び/又は
前記システムは、前記第二付与ノードから前記第一付与ノードの間のDAG−イベント情報の送信の数を限定する手段を備え、及び/又は
前記システムは、もしノードが情報の交換の予め決められたシーケンス中にない情報を受信し、及び/又はもしノードが既に情報を交換したノードからの情報を受信した場合、他のキャンセル情報を送信する手段を備える。
【0028】
本発明の他の目的は、一以上の中央ユニット、特に一以上のコンピュータ化された中央ユニット、及びトランザクションを実行する追加コマンドユニットへの接続、特にコンピュータ化されたコマンドユニット、本発明に係るシステムを備える中央ユニットを備えるネットワークである。
【発明を実施するための形態】
【0031】
本発明は、gossip about gossipプロトコルを介したハッシュグラフコンセンサスアルゴリズムのような、gossip about gossipプロトコルを介したDAGコンセンサスアルゴリズムを実行する。
【0032】
本発明の手段は、ゴシッププロトコルを介して情報を分配し、特定のネットワーク5内で、他のノードから受信するデータに関する情報を送信する。
【0033】
本発明は、コンピュータ実行方法に関し、及びまた対応するシステム5a及びネットワーク5に関する。本発明に係る方法では、例えば、ブロックチェーントランザクション及びハッシュグラフのアプリケーションに関して何が必要かなどの情報を処理及び交換することができる。
【0034】
ハッシュグラフなどのDAGは、特定のネットワーク内に接続された分配コンピュータノードの間で情報を交換するために使用される。この情報は、安全で及びハッシュされる。DAG/ハッシュグラフの送信情報は、DAG−イベント情報と呼ばれる。
【0035】
ゴシッププロトコルは、コンピュータノードが他の別に送信し、その情報はメモリ内に有することを示唆する。
【0036】
本発明の方法は、前であるノードイベント及び後であるノードイベントを決定するため、ノードイベントの順番を決定するためのステップを含む。
【0037】
本形態において、前後順は時間に基づかない。この形態は、タイムコンセンサスを必要としない。都合がよくも、これは、同じ時間上であるエコーコンピュータノードを有する問題を防止する。
【0038】
イベントの順を決定することで、どのイベントが前で、どのイベントが後かを知ることができる。このため、イベントの情報はより正確である。この決定は、好ましくは、イベント中でノードのタイムスタンプを有することに限定されない。
【0039】
本発明の形態に応じて、ノードイベントの順は、各イベントの縦座標値の変化を追うことによって決定される。有利にも、縦座標値の使用は、同じ時間上であるエコーコンピュータノードを有する問題を防止する。
【0040】
特に、ノードイベントの順は、各ノードを、ノードで生成される各イベントのために増加するアルティテュードと呼ばれる整数値の変化を追うことをさせることによって決定される。このアルティテュードは、情報の処理中での役目を果たす。
【0041】
本発明の方法の他のステップで、第一付与ノードN
1が第二付与ノードN
4をランダムに選択し、ネットワーク5内で、DAG−イベント情報をそれに送信する。より一般的には、本システムは、第一付与ノードN
1を第二付与ノードN
4をランダムに選択するようにさせるよう作られ、及び好ましくは、DAG−イベント情報(6, 7)を送信する。
【0042】
ネットワーク5での全てのノードN
0, N
1, ..., N
5,...は、DAG−イベント情報(6, 7)がネットワーク5内で伝播されるまで、処理をする。
【0043】
本発明は、DAG−イベント情報の幾つかのトランザクションを防止することを目的とし、しかしまだネットワーク5内において伝播される関連情報を有する。
【0044】
本発明に応じて、その方法は、第一付与ノードN
1が第二付与ノードN
4をランダムに選択するとき、第一付与ノードN
1が、いかなるDAG−イベント情報(6, 7)を送信する前で特定の参照情報(8)を第二付与ノードN
4に送信させるようなステップを含む。この参照情報の送信はタイダルウェーブと呼ばれる。タイダルウェーブは、情報の流れである。
【0045】
このタイダルウェーブは、各ノードのアルティテュード値を定義する。各ノードは、イベント-DAGの変化を追う。これは、各ノードが各ノードのためのノードのよって知らされる現在のアルティテュードを有することを意味する。
【0046】
特に、参照情報(8)は、ノードイベントの順に関連する。より詳細には、参照情報8は、前のアルティテュード、ここでは各ノードの全てのアルティテュードのリストを備える。
【0047】
さらに、本発明に係る方法は、第一付与ノードN
1から第二付与ノードN
4までのDAG−イベント情報6のさらなる送信を防止するための或る状況下で、キャンセル情報(9)を第一付与ノードN
1に送信するステップを含む。キャンセル情報9の送信は、ブレーキングウェーブと呼ばれる。このブレーキングウェーブは、ノードが初期状態に戻るための応答として送信される情報の流れである。
【0048】
キャンセル情報9は、参照情報8の点から見て、もし第二付与ノードN
4のイベントが第一付与ノードN
1のそれの前ではないなら、第二付与ノードN
4が第一付与ノードN
1から参照情報8を受信するときに送信される。これは、アルティテュードを分析する時、容易に行える。
【0049】
キャンセル情報9は、好ましい形態では、第二付与ノードN
4から第一付与ノードN
1に直接に向かう。
【0050】
さらに、本方法は、キャンセル情報の結果として、第一付与ノードN
1がDAGーイベント情報を第二付与ノードN
4に送信することを防止するステップを含む。
【0051】
言い換えると、第二付与ノードN
4は、第一付与ノードN
1にキャンセル情報を送信し、その結果、第一付与ノードN
1は、第二付与ノードN
4にDAGーイベント情報を送信しない。
【0052】
利点は、本方法は、キャンセル情報を介したトランザクションの数を限定でき、その結果、ノードは情報の通信を停止する。これは、計算でのコンピュータリソースの使用、蓄積、情報の送信を減らすことを示唆する。
【0053】
参照情報(8)の点からみて、もし第二付与ノードN
4のイベントが、第一付与ノードN
1の前であるならば、DAG―イベント情報の送信は継続する。
【0054】
特に、第二付与ノードN
4が、それをメモリ内で有しているイベントを含んでいるDAG―イベント情報を、第一付与ノードN
1に送信する。このDAG―イベント情報の第一送信は、ファーストウェーブ6を呼ばれる。このファーストウェーブは、当該技術分野の当業者であれは知っている周知の情報の流れである。ファーストウェーブ6のDAG―イベント情報は、メモリ内で第二付与ノードN
4が有する全てのイベントのリストを含む。
【0055】
さらに、特には、第一付与ノードN
1が第二付与ノードN
4からDAG―イベント情報を受信した後に、第一付与ノードN
1は、第二付与ノードN
4に、メモリ内でそれが有するイベントを含むDAG―イベント情報を送信する。このDAG―イベント情報の第二送信は、第二ウェーブ(7)と呼ばれる。この第二ウェーブは、当該技術分野の当業者であれは知っている周知の情報の流れである。
【0056】
第一ウェーブ及び第二ウェーブの後、第一付与ノード及び第二付与ノードの間の情報の交換が停止される。
【0057】
これは、送信される情報の無限エコーを防止する第二の方法である。言い換えると、第二ウェーブが、このノード-idが初期状態に戻させるために、ウェーブ状態を受信/送信されるときである。
【0058】
より好ましい形態において、本方法は、もしノードが情報の交換の予め決められたシーケンス中、特に参照情報(8)、それからDAG―イベント情報の第一ウェーブ(6)そしてそれから第二ウェーブ(7)のシーケンス中にない情報を受信すると、別の(第二)キャンセル情報を送信するステップを含む。特に、キャンセル情報は以前と同じタイプであり、しかし、例えば、もし第二付与ノードN
4が最初に第二ウェーブを受信するならばトリガーされる。
【0059】
他の形態に応じて、本方法は、もしノードが、既に情報を交換したノードから情報を受信するなら、他の(第三)キャンセル情報を送信するステップを含む。このキャンセル情報は、特に、以前と同じタイプであり、しかし、例えば、もし第二付与ノードN
4が第一ノードN
1から後で別の参照情報8を受信するならば、トリガーされる。有利な点は、これらのステップは、さらに情報の送信に関して冗長/エコーを限定することである。
【0060】
本発明はさらに、上述の方法を実行するためのシステム5aに関する。このシステム5aは、コンピュータ化されたシステムで、ハードウェア及び上記方法を実行するために構成されたソフトウェアモジュールを必須とする。それは、ウェーブフロントシステム5aを呼ばれるかもしれない。
【0061】
このシステム5aは、特定のネットワーク内で接続された分配コンピュータノードの間で情報を交換でき、ゴシッププロトコルに関するゴシップを介してDAG/ハッシュグラフコンセンサスアルゴリズムを実行する。
【0062】
このシステム5aは、前であるノードイベント及び後であるノードイベントを決定するため、ノードイベントの順番を決定するための手段を備え、すなわち、
第一付与ノードN
1がランダムに第二付与ノードN
4を選択し、参照情報ここで可能ならDAG―イベント情報(6, 7)を送信するようにする手段と、
ネットワーク5内でDAG―イベント情報(6, 7)を伝播するための手段と、を備える。
【0063】
一つの側面に応じて、前記システム5aは、
前記第二付与ノードN
4が、前記第一付与ノードN
1から参照情報を受信するとき、もし、第二付与ノードN
4が、以前に、参照情報を前記第一付与ノードN
1に送るなら、前記第二付与ノードN
4をキャンセル情報を前記第一付与ノードN
1に送るようにさせる手段と、
結果として、前記第一付与ノードN
1が、前記第二付与ノードN
4にDAG−イベント情報を送ることを防止する手段と、を備える。
【0064】
さらに、このシステム5aは、もしノードが情報の交換の予め決められたシーケンス中にない情報を受信し、及び/又はもしノードが既に情報を交換したノードからの情報を受信した場合、他のキャンセル情報を送信する手段を備える。
【0065】
前記方法のために上述された有利点は、前記方法を実行するシステムにも適用される。
【0066】
本発明の他の目的は、一以上の中央ユニット(10)、特に一以上のコンピュータ化された中央ユニット(10)、及びトランザクションを実行する追加コマンドユニット(11)への接続(12)、特にコンピュータ化されたコマンドユニット、上述のシステム5aを備える中央ユニットを備えるネットワークである。これは、ウェーブフロントネットワークを呼ばれる。このネットワークは、インターネットを介して追加のコマンドユニットに接続される。
【0067】
前記方法及びシステムのために上述された有利点は、対応するシステム5aを含むネットワーク5にも適用される。
【0068】
(実施例)
実施例は
図4、
図5で詳細に説明される。
【0069】
図4は、ネットワークノードN
0, N
1, N
2,..., N
5の間の、情報フローを示すゴシップ情報のハッシュグラフを示す。他のノードは、好ましくは、同じネットワーク中であり、しかしながら示されていない。
【0070】
有限時間中で、ネットワーク中の全てのノードは、同じイベント―DAGを構築できる。
【0071】
各垂直ラインは、コンピュータノードを示し、各サークルはイベントを示す。イベント間のラインは、ノードの間でのイベントの通信を示す。
【0072】
各ノードによってのみ見られるイベントは、実線での白サークル中である。2以上のノードによって見られるイベントは、破線の白サークル中である。各ノードの最後のイベントは、平面線のサークルである。
【0073】
最後に生成するイベントは、ドット化されたサークルである。
【0074】
ハッシュグラフアルゴリズムは、ノード間での情報を伝播するために“gossip about gossip”と呼ばれるゴシッププロトコルを使用する。これは、第一付与ノードN
1が、それが知っている通信の全ての情報を、ランダムに選択された第二付与ノードN
4に送信する。これは、ノードN
4がノードN
1として同じハッシュグラフを構築できるようにする。
【0075】
本発明のネットワーク5において、ウェーブフロントと呼ばれるプロトコルは、2つのノードの間の情報を交換するために使用され、ノードN
1 及びN
4がグラフの状態を交換するために3回の通信のみを必要であることを保証する。
【0076】
各ノードは、アルティテュードと呼ばれる整数値の変化を追う。アルティテュードは、ノードによって生成された各イベントのため1ずつ増加する。各ノードは、ネットワーク中で各ノードのためアルティテュードのその現在検証を蓄積する。
【0077】
2つのノード間でアルティテュードに関しての情報を交換することで、両方は、どちらのイベントが前かを理解できる。
【0078】
どのイベントが現在イベントで、どのイベントが受信済みのイベントかを決定することは、差引されたこの値が0より大きいことである。それは、現在のイベントが受信したイベントの前であり、もし受信したイベントが現在のイベント前であるならば逆もしかりということを意味する。
もし、受信したイベントが現在のイベントの前であるならば。
【0079】
ウェーブフロント情報は4つの状態を交換する。
1.ノードN
1がランダムにノードN
4を選択し、各ノードのための最終の知られたアルティテュードのリストを送信する。この状態はタイダルウェーブと呼ばれる。
2.ノードN
4がノードN
1からタイダルウェーブを受信する。もし、タイダルウェーブに基づいて、ノードN
4のイベントが、ノードN
1のイベントの前でないのなら、それからノードN
4は、ノードN
1にブレーキングウェーブと呼ばれるものを送信する。そうでないなら、ノードN
4は、ノードN
1のタイダルウェーブの前の全てのイベントのリストを返す。この状態は、第一ウェーブと呼ばれる。
3.もしノードN
1が第一ウェーブをノードN
4から受信するならば、それは、ノードN
4の前の全てのイベントのリストを返す。この状態に至ると、ウェーブフロント交換を終了する。
4.もしノードN
1又はN
4がブレーキングウェーブを受信するなら、ウェーブフロント通信はドロップされる。
【0080】
状態2に関して、交換の又は組み合わせで、もしノードN
4がすでに前のタイダルウェーブを通してノードN
1と情報を交換しているなら、ノードN
4はブレーキングウェーブを送信する。加えて、変更又は組み合わせで、もしノードN
4がノードN
1から第一ウェーブ及び第二ウェーブを受信しているなら、ノードN
4はブレーキングウェーブを送信する
【0081】
これは、両方のノードが、彼らが前後に永久に情報の送信をする無限エコーに到ることを防止する。
【0082】
ネットワーク内で、ノードは、度々、多くの同時のウェーブフロント接続を有し、そのため、他のノードから同じイベントのパッケージを時々受信する。それは、単純に、それが受信するいかなる二重のイベントもドロップする。
【0083】
図4及び
図5中の例は、イベントとアルティテュードの値が示される図である。
【0084】
ノード1はノードN
4と同期する。イベントb5(色の付いた)は、ノードN
1によって生成される最後のイベントで、b5によって知られた全ての前のイベントは、ドットの鎖線ラインより下にある。
【0085】
イベントe5(色の付いた)は、ノードN
4によって生成された最後のイベントで、このイベントによって知られる全ての前のイベントは、鎖線ラインより下にある。
【0086】
両方のb5及びe5によって知られた全てのイベントは、点線円として示される。
【0087】
ノードN
1からのウェーブフロント(上記ドットの鎖線ラインと共にマークされた)は、最新の知られたイベントの全てのアルティテュードのリストである。
【0088】
これは、ウェーブフロントノードN
1が以下の式であることを意味する。
【0089】
青の鎖線ラインを有してマークされたノードN
4が以下の式となる。
【0091】
第一ノードN
1は、図のボトムで最初アイドル状態である。第一ノードN
1は、第二ノードN
4に向けてゴシップを開始し、初期状態になる。
1.初期ウェーブフロント
【0092】
ノードN
1は、ノードN
4に接続し、ウェーブフロントW
1,b5をノードN
4に送信する。
【0093】
このメッセージはタイダルウェーブタイプとしてマークされる。これは、ノード4が、アイドル状態からタイダルウェーブ状態Tに行くようにさせる。
2.もしタイダルウェーブタイプとしてマークされたメッセージが受信されるなら
【0094】
ノードN
4は、ウェーブフロントを受信し、そのウェーブフロントW
4,e5と比較し、W
1,b5の前の全てのイベントを集める、これは、イベントe3, e4, e5, f3 及び f4がノードN
1に戻されることを意味する。
【0095】
このメッセージは、第一ウェーブタイプとしてマークされる。それは、ノードN
1が第一ウェーブ状態Fに行くようにする。
3.もし第一ウェーブとしてマークされるメッセージが受信されるなら。
【0096】
ノードN
1は、ノードN
4からウェーブフロントを受信し、ノードN
1によって知られていないイベントを蓄積する。
【0097】
受信されたウェーブフロントは、そのウェーブフロントに比較され、受信したウェーブフロントの前のイベントが集められ、ノードN
1に戻される。
【0098】
この例で集められるのは、a1, b1, b2, b4, b5, c2, c3 及び d3である。
【0099】
このメッセージは第二ウェーブタイプとしてマークされる。それは、ノードN
4を第二ウェーブ状態Sに行くようにさせる。
【0100】
もしノードN
4が既に第一ウェーブのメッセージをノードN
1に送信しているなら、ノードN
4は、ノードN
1にブレーキングウェーブタイプとしてマークされるメッセージを送信し、通信の状態をノードN
1 to noN
Eにセットしなければならない。
4.もし第二ウェーブとしてマークされるメッセージが受信されるなら。
【0101】
イベントは、もしイベントがノードN4まで知られていないのならば蓄積される。
5.もしブレーキングウェーブとしてマークされるメッセージを受信したら。
【0102】
受信チャンネルの通信状態はnoN
Eにセットされる。
【0104】
この例では、タイダルウェーブ8は、アルティテュードのリストW
1,b5=[-3,-2,1,-10,2]を含む。
【0105】
第一ウェーブ6はアルティテュードのリストW
4,e5=[-4,-6,-1,-2,3,4]及びまたイベントのリスト1: {e3, e4, e5, f3, f4}を含む。
【0106】
第二ウェーブ7は、イベントのリスト1: {a1, b1, b2, b4, b5, c2, c3, d3}を含む。