(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-06
(54)【発明の名称】コンセンサスネットワークのデータ処理方法、装置、プログラム、及び機器
(51)【国際特許分類】
H04L 9/32 20060101AFI20240730BHJP
【FI】
H04L9/32 200Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023572514
(86)(22)【出願日】2023-04-23
(85)【翻訳文提出日】2024-01-12
(86)【国際出願番号】 CN2023090018
(87)【国際公開番号】W WO2024007689
(87)【国際公開日】2024-01-11
(31)【優先権主張番号】202210800712.6
(32)【優先日】2022-07-08
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シャオ,ジュグアン
(57)【要約】
本出願はコンセンサスネットワークのデータ処理方法、装置、プログラム製品、機器及び媒体を開示し、第1のコンセンサスノードは、コンセンサスネットワークの第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信して、第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行って、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果を取得する。第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果はコンセンサス達成結果であれば、第1のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行うように、コンセンサスネットワークの第1のコンセンサスサブネットワークにおいて第1のブロックをブロードキャストする。コンセンサスネットワークにおいて第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果をブロードキャストして、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数を取得して、第1の数に基づいて第1のブロックに対してアップリンク処理を行う。本出願によれば、ブロックに対してコンセンサスを行う時の通信量を減少して、ブロックに対するコンセンサスの効率及び性能を向上する。
【特許請求の範囲】
【請求項1】
第1のコンセンサスノードによって実行される、コンセンサスネットワークのデータ処理方法であって、前記コンセンサスネットワークはN個のコンセンサスノードを含み、Nは正の整数であり、前記N個のコンセンサスノードは第1の主ノードを含み、前記第1のコンセンサスノードは前記N個のコンセンサスノードのうちの、前記第1の主ノードを除いた何れか1つであり、前記方法は、
第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信するステップであって、前記第2のコンセンサスサブネットワークは前記N個のコンセンサスノードのうちのK個のコンセンサスノードを含み、前記第1のコンセンサスノード及び前記第2のコンセンサスノードは何れも前記第2のコンセンサスサブネットワークに属し、KはNより小さい正の整数であり、前記第2のコンセンサスノードは前記N個のコンセンサスノードのうちの、前記第1のコンセンサスノードを除いた何れか1つであり、前記第1のブロックのコンセンサス過程は前記第1の主ノードから発起されるステップと、
前記第2のコンセンサスサブネットワークにおいて前記第1のブロックに対してコンセンサス処理を行って、前記第1のコンセンサスノードの、前記第1のブロックに対するコンセンサス結果を取得するステップと、
前記第1のコンセンサスノードの、前記第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した場合、前記第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて前記第1のブロックをブロードキャストして、前記第1のコンセンサスサブネットワークにおいて前記第1のブロックに対して引き続いてコンセンサス処理を実行するようにするステップであって、前記第1のコンセンサスサブネットワークは前記N個のコンセンサスノードのうちのM個のコンセンサスノードを含み、MはNより小さい正の整数であるステップと、
前記コンセンサスネットワークにおいて前記第1のコンセンサスノードの、前記第1のブロックに対するコンセンサス達成結果をブロードキャストして、前記コンセンサスネットワークにおける前記第1のブロックのコンセンサス達成結果の第1の数を取得して、前記第1の数に基づいて前記第1のブロックに対してアップリンク処理を行うステップと、を含む方法。
【請求項2】
前記K個のコンセンサスノードにおける第1の残りのコンセンサスノードは、前記第2のコンセンサスノードが前記N個のコンセンサスノードから選択した、前記第2のコンセンサスノードに連結するK-1個のコンセンサスノードであり、前記第1の残りのコンセンサスノードは前記K個のコンセンサスノードのうちの、前記第2のコンセンサスノードを除いたコンセンサスノードであり、前記M個のコンセンサスノードにおける第2の残りのコンセンサスノードは、前記第1のコンセンサスノードが前記N個のコンセンサスノードから選択した、前記第1のコンセンサスノードに連結するM-1個のコンセンサスノードであり、前記第2の残りのコンセンサスノードは、前記M個のコンセンサスノードのうちの、前記第1のコンセンサスノードを除いたコンセンサスノードであり、
前記第2のコンセンサスノードが前記第1の主ノードであれば、前記第2のコンセンサスノードがブロードキャストする前記第1のブロックは前記第2のコンセンサスノードにより生成され、前記第2のコンセンサスノードが前記第1の主ノードでなければ、前記第2のコンセンサスノードがブロードキャストする前記第1のブロックは、前記N個のコンセンサスノードのうちの第3のコンセンサスノードが前記第2のコンセンサスノードへブロードキャストすることで取得され、前記第3のコンセンサスノードは前記N個のコンセンサスノードのうちの、前記第1のコンセンサスノード及び前記第2のコンセンサスノードを除いた何れか1つのコンセンサスノードである請求項1に記載の方法。
【請求項3】
前記コンセンサスネットワークにおける何れか1つのコンセンサスノードの、何れか1つのブロックに対するコンセンサス達成結果は、前記何れか1つのコンセンサスノードの、前記何れか1つのブロックに対するノード署名であり、前記第1のブロックは関連するノード署名セットを有し、前記ノード署名セットは前記第1のコンセンサスノードの、前記第1のブロックに対するノード署名を含み、
前記コンセンサスネットワークにおける前記第1のブロックのコンセンサス達成結果の第1の数を取得して、前記第1の数に基づいて前記第1のブロックに対してアップリンク処理を行うステップは、
前記コンセンサスネットワークにおいて前記第1のブロックに対してコンセンサス処理を実行する過程で、第3の残りのコンセンサスノードがブロードキャストした、前記第1のブロックに対するノード署名を受信して、受信したノード署名を前記ノード署名セットに追加するステップであって、前記第3の残りのコンセンサスノードは前記N個のコンセンサスノードのうちの、前記第1のコンセンサスノードを除いたコンセンサスノードであるステップと、
前記ノード署名セットにおけるノード署名の前記第1の数を取得し、前記第1の数が数量閾値の以上であると、前記第1のブロックに対してアップリンク処理を行うステップと、を含む請求項1に記載の方法。
【請求項4】
前記第2のコンセンサスノードが前記第1の主ノードであり、前記K個のコンセンサスノードは第2の主ノードを含み、前記第2の主ノードは前記N個のコンセンサスノードにおける、前記第1の主ノードに対して主ノード交替を行うための次の主ノードであり、
前記第2の主ノードは、前記第2のコンセンサスノードの、前記第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した後、前記コンセンサスネットワークにおいて第2のブロックに対するコンセンサス過程を発起し、前記第2のブロックに対応するブロック高さは前記第1のブロックに対応するブロック高さの次のブロック高さである請求項1に記載の方法。
【請求項5】
前記第1のブロックに対応するブロック高さは第1のブロック高さであり、前記方法は、
コンセンサス対象となる第3のブロックを取得するステップであって、前記第3のブロックは、第3の主ノードが所定時間帯内で前記第1のブロックを取得していない場合発起した、コンセンサスを必要とするブロックであり、前記第3のブロックに対応するブロック高さは前記第1のブロック高さであり、前記第3の主ノードは前記N個のコンセンサスノードのうちの、前記第1の主ノードの後で主ノード交替を行うためのコンセンサスノードであるステップと、
前記第3のブロックに対してコンセンサス処理を行うステップと、
前記第3のブロックに対するコンセンサス処理を完成した場合、前記第3のブロックをキャッシュするステップと、をさらに含む請求項1に記載の方法。
【請求項6】
前記方法は、
前記第1のブロックに対するコンセンサス処理を完成した場合、前記第1のブロックをキャッシュするステップをさらに含み、
前記方法は、
前記コンセンサスネットワークにおける前記第3のブロックのコンセンサス達成結果の第2の数を取得し、且つ前記第2の数が数量閾値の以上であると、前記第3のブロックに対してアップリンク処理を行って、キャッシュされる前記第1のブロックを削除するステップをさらに含む請求項5に記載の方法。
【請求項7】
前記第1の数に基づいて前記第1のブロックに対してアップリンク処理を行う前記ステップは、
前記第1の数が前記数量閾値の以上であれば、前記第1のブロックに対してアップリンク処理を行って、キャッシュされる前記第3のブロックを削除するステップを含む請求項6に記載の方法。
【請求項8】
前記方法は、
キャッシュされる前記第1のブロックの子ブロックの数に基づいて前記第1のブロックのブロック重みを決定するステップと、
キャッシュされる前記第3のブロックの子ブロックの数に基づいて前記第3のブロックのブロック重みを決定するステップと、をさらに含み、
前記第1のブロックのブロック重み及び前記第3のブロックのブロック重みは、第4のブロックの親ブロックを決定し、前記第4のブロックに対応するブロック高さは第2のブロック高さであり、前記第2のブロック高さは前記第1のブロック高さの次のブロック高さである請求項6に記載の方法。
【請求項9】
前記方法は、
コンセンサス対象となる前記第4のブロックを取得するステップと、
前記第1のブロックのブロック重みが前記第3のブロックのブロック重みより大きければ、前記第1のブロックを前記第4のブロックの親ブロックとして、前記第4のブロックに対してコンセンサス処理を行うステップと、
前記第1のブロックのブロック重みが前記第3のブロックのブロック重みより小さければ、前記第3のブロックを前記第4のブロックの親ブロックとして、前記第4のブロックに対してコンセンサス処理を行うステップと、をさらに含む請求項8に記載の方法。
【請求項10】
前記方法は、
前記コンセンサスネットワークにおける前記第4のブロックのコンセンサス達成結果の数が数量閾値の以上であり、且つ前記第4のブロックの親ブロックが前記第1のブロックであると決定した場合、キャッシュされる前記第3のブロック及び前記第4のブロックの兄弟ブロックを削除して、前記第1のブロック及び前記第4のブロックに対してアップリンク処理を行うステップと、
前記コンセンサスネットワークにおける前記第4のブロックのコンセンサス達成結果の数が前記数量閾値の以上であり、且つ前記第4のブロックの親ブロックが前記第3のブロックであると決定した場合、キャッシュされる前記第1のブロック及び前記第4のブロックの兄弟ブロックを削除して、前記第3のブロック及び前記第4のブロックに対してアップリンク処理を行うステップと、をさらに含み、
何れか1つのブロックの兄弟ブロックは、ブロック高さが前記何れか1つのブロックに対応するブロック高さと同様なブロックであり、前記第1のブロックと前記第3のブロックとは互いの兄弟ブロックである請求項9に記載の方法。
【請求項11】
前記方法は、
前記第4のブロックに対するコンセンサス処理を完成した場合、前記第4のブロックをキャッシュするステップと、
キャッシュされる前記第4のブロック及び前記第4のブロックの親ブロックに基づいて、前記第1のブロックのブロック重み、前記第3のブロックのブロック重み及び前記第4のブロックのブロック重みを更新するステップと、をさらに含む請求項9に記載の方法。
【請求項12】
コンセンサスネットワークのデータ処理装置であって、前記コンセンサスネットワークはN個のコンセンサスノードを含み、Nは正の整数であり、前記N個のコンセンサスノードは第1の主ノードを含み、前記装置は第1のコンセンサスノードに適用され、前記第1のコンセンサスノードは前記N個のコンセンサスノードのうちの、前記第1の主ノードを除いた何れか1つであり、前記装置は、
第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信する受信モジュールであって、前記第2のコンセンサスサブネットワークは前記N個のコンセンサスノードのうちのK個のコンセンサスノードを含み、前記第1のコンセンサスノード及び前記第2のコンセンサスノードは何れも前記第2のコンセンサスサブネットワークに属し、KはNより小さい正の整数であり、前記第2のコンセンサスノードは前記N個のコンセンサスノードのうちの、前記第1のコンセンサスノードを除いた何れか1つであり、前記第1のブロックのコンセンサス過程は前記第1の主ノードから発起される受信モジュールと、
前記第2のコンセンサスサブネットワークにおいて前記第1のブロックに対してコンセンサス処理を行って、前記第1のコンセンサスノードの、前記第1のブロックに対するコンセンサス結果を取得し、前記第1のコンセンサスノードの、前記第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した場合、前記第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて前記第1のブロックをブロードキャストして、前記第1のコンセンサスサブネットワークにおいて前記第1のブロックに対して引き続いてコンセンサス処理を実行するようにするコンセンサスモジュールであって、前記第1のコンセンサスサブネットワークは前記N個のコンセンサスノードのうちのM個のコンセンサスノードを含み、MはNより小さい正の整数であるコンセンサスモジュールと、
前記コンセンサスネットワークにおいて前記第1のコンセンサスノードの、前記第1のブロックに対するコンセンサス達成結果をブロードキャストして、前記コンセンサスネットワークにおける前記第1のブロックのコンセンサス達成結果の第1の数を取得して、前記第1の数に基づいて前記第1のブロックに対してアップリンク処理を行う取得モジュールと、を含む装置。
【請求項13】
コンピュータプログラムであって、当該コンピュータプログラムはプロセッサーによって実行されると、請求項1~11の何れか1項に記載の方法のステップを実現するコンピュータプログラム。
【請求項14】
コンピュータ機器であって、メモリ及びプロセッサーを含み、前記メモリにはコンピュータプログラムが記憶され、前記コンピュータプログラムは前記プロセッサーによって実行されると、前記プロセッサーに請求項1~11の何れか1項に記載の方法のステップを実行させるコンピュータ機器。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2022年7月8日にて中国特許庁に提出され、出願番号が202210800712.6であり、出願の名称が「コンセンサスネットワークのデータ処理方法、装置、プログラム製品、機器及び媒体」である中国特許出願の優先権を主張して、その全ての内容は本出願に援用されている。
【0002】
本出願は、ブロックチェーンの技術分野に関して、特にコンセンサスネットワークのデータ処理方法、装置、プログラム製品、機器及び媒体に関する。
【背景技術】
【0003】
ブロックチェーン(Blockchain)は分散型データ記憶、ピアツーピア伝送、コンセンサスメカニズム、暗号化アルゴリズムなどのコンピュータ技術の新規適用モードである。ブロックチェーンネットワークにおけるブロックはコンセンサスネットワークにおいてそのコンセンサスを達成した場合に限り、アップリンク処理を行うことができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
コンセンサスネットワークにおいてブロックに対するコンセンサス過程では、ブロックはコンセンサスネットワークの各コンセンサスノードの間でブロードキャストしてから、コンセンサスを行う必要があり、コンセンサスネットワークの規模が大きく、コンセンサスノードの数が多いと、コンセンサスネットワークにおいてブロックに対してブロードキャスト・コンセンサスを行う時の通信量が極めて大きくなり、コンセンサスネットワーク全体の処理性能が激しく低下してしまう。
【0005】
本出願は、コンセンサスネットワークのデータ処理方法、装置、プログラム製品、機器及び媒体を提供し、コンセンサスネットワークにおいてブロックに対してコンセンサスを行う過程中の通信量を低減して、コンセンサスネットワークの、ブロックに対するコンセンサス効率及び性能を向上する。
【課題を解決するための手段】
【0006】
本出願の1つの態様はコンセンサスネットワークのデータ処理方法を提供し、コンセンサスネットワークはN個のコンセンサスノードを含み、Nは正の整数であり、N個のコンセンサスノードは第1の主ノードを含み、当該方法は第1のコンセンサスノードによって実行され、第1のコンセンサスノードはN個のコンセンサスノードのうちの、第1の主ノードを除いた何れか1つであり、当該方法は、
第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信するステップであって、第2のコンセンサスサブネットワークはN個のコンセンサスノードのうちのK個のコンセンサスノードを含み、第1のコンセンサスノード及び第2のコンセンサスノードは何れも第2のコンセンサスサブネットワークに属し、KはNより小さい正の整数であり、第2のコンセンサスノードはN個のコンセンサスノードのうちの、第1のコンセンサスノードを除いた何れか1つであり、第1のブロックのコンセンサス過程は第1の主ノードから発起されるステップと、
第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行って、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果を取得し、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した場合、第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて第1のブロックをブロードキャストして、第1のコンセンサスサブネットワークにおいて第1のブロックに対して引き続いてコンセンサス処理を実行するようにするステップであって、第1のコンセンサスサブネットワークはN個のコンセンサスノードのうちのM個のコンセンサスノードを含み、MはNより小さい正の整数であるステップと、
コンセンサスネットワークにおいて第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果をブロードキャストして、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数を取得し、第1の数に基づいて第1のブロックに対してアップリンク処理を行うステップと、を含む。
【0007】
本出願の1つの態様はコンセンサスネットワークのデータ処理装置を提供し、コンセンサスネットワークはN個のコンセンサスノードを含み、Nは正の整数であり、N個のコンセンサスノードは第1の主ノードを含み、当該装置は第1のコンセンサスノードに適用され、第1のコンセンサスノードはN個のコンセンサスノードのうちの、第1の主ノードを除いた何れか1つであり、当該装置は、
第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信する受信モジュールであって、第2のコンセンサスサブネットワークはN個のコンセンサスノードのうちのK個のコンセンサスノードを含み、第1のコンセンサスノード及び第2のコンセンサスノードは何れも第2のコンセンサスサブネットワークに属し、KはNより小さい正の整数であり、第2のコンセンサスノードはN個のコンセンサスノードのうちの、第1のコンセンサスノードを除いた何れか1つであり、第1のブロックのコンセンサス過程は第1の主ノードから発起される受信モジュールと、
第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行って、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果を取得し、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した場合、第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて第1のブロックをブロードキャストして、第1のコンセンサスサブネットワークにおいて第1のブロックに対して引き続いてコンセンサス処理を実行するようにするコンセンサスモジュールであって、第1のコンセンサスサブネットワークはN個のコンセンサスノードのうちのM個のコンセンサスノードを含み、MはNより小さい正の整数であるコンセンサスモジュールと、
コンセンサスネットワークにおいて第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果をブロードキャストして、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数を取得し、第1の数に基づいて第1のブロックに対してアップリンク処理を行う取得モジュールと、を含む。
【0008】
本出願の1つの態様はコンピュータ機器を提供し、メモリ及びプロセッサーを含み、メモリにはコンピュータプログラムが記憶され、コンピュータプログラムはプロセッサーによって実行されると、プロセッサーに本出願の何れか1つの態様の方法を実行させる。
【0009】
本出願の1つの態様はコンピュータ可読記憶媒体を提供し、当該コンピュータ可読記憶媒体にはコンピュータプログラムが記憶され、当該コンピュータプログラムはプログラム指令を含み、当該プログラム指令はプロセッサーによって実行されると、当該プロセッサーに上記の何れか1つの態様の方法を実行させる。
【0010】
本出願の1つの態様によれば、コンピュータプログラム製品を提供し、当該コンピュータプログラム製品はコンピュータプログラムを含み、当該コンピュータプログラムはコンピュータ可読記憶媒体に記憶される。コンピュータ機器のプロセッサーはコンピュータ可読記憶媒体から当該コンピュータプログラムを読み取り、プロセッサーは当該コンピュータプログラムを実行することで、当該コンピュータ機器に上記の何れか1つの態様の各種の好適な方式から提供される方法を実行させる。
【発明の効果】
【0011】
本出願において、コンセンサスネットワークはN個のコンセンサスノードを含み、コンセンサスネットワークにおける第1の主ノードは第1のブロックのコンセンサス過程を発起し、第1のブロックのコンセンサス過程で、第1のコンセンサスノードは、第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信する。第2のコンセンサスサブネットワークはN個のコンセンサスノードのうちのK個のコンセンサスノードを含み、第1のコンセンサスノード及び第2のコンセンサスノードは何れも第2のコンセンサスサブネットワークに属し、第2のコンセンサスノードはN個のコンセンサスノードのうちの第1のコンセンサスノードを除いた何れか1つであり、KはNより小さい正の整数であり、つまり、コンセンサスネットワークより、第2のコンセンサスサブネットワークは小規模ネットワークである。第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行って、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果を取得し、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した場合、第1のコンセンサスサブネットワークにおいて第1のブロックに対して引き続いてコンセンサス処理を実行するように、第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて第1のブロックをブロードキャストする。第1のコンセンサスサブネットワークはN個のコンセンサスノードのうちのM個のコンセンサスノードを含み、MはNより小さい正の整数であり、つまり、コンセンサスネットワークより、第1のコンセンサスサブネットワークも小規模ネットワークである。これによって、大規模コンセンサスネットワークにおけるコンセンサスを、いくつかの小規模コンセンサスサブネットワークにおけるコンセンサスに変換する。コンセンサスネットワークにおいて第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果をブロードキャストして、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数を取得し、第1の数に基づいて第1のブロックに対してアップリンク処理を行う。このように、本出願が提出する方法によれば、各コンセンサスノードは何れもコンセンサスネットワークの小さなネットワーク内(例えば第1のコンセンサスサブネットワーク及び第2のコンセンサスサブネットワーク)においてブロックをブロードキャストでき、さらに、小さなネットワーク内においてもブロックに対してコンセンサス処理を行って、ブロックに対してコンセンサスを行う時の通信量を減少して、コンセンサスネットワークの、ブロックに対するコンセンサス効率及び性能を向上する。
【図面の簡単な説明】
【0012】
本出願又は従来技術における技術案をより明らかに説明するために、以下、実施例又は従来技術の記載の必要な図面を簡単に紹介し、明らかに、以下に記載の図面は本出願のいくつかの実施例に過ぎず、当業者にとって、進歩性に値する労働をしないことを前提として、これらの図面に基づいて、他の図面を取得できる。
【
図1】本出願が提供するコンセンサスネットワークのネットワークアーキテクチャの構造概略図である。
【
図2】本出願が提供するブロックコンセンサスのシナリオ概略図である。
【
図3】本出願が提供するコンセンサスネットワークのデータ処理方法のフロー概略図である。
【
図4a】本出願が提供するブロックブロードキャストのシナリオ概略図である。
【
図4b】本出願が提供するブロックブロードキャストのシナリオ概略図である。
【
図5】本出願が提供するブロックコンセンサスのシナリオ概略図である。
【
図6】本出願が提供するブロックの提案コンテンツのシナリオ概略図である。
【
図7】本出願が提供するブロック処理方法のフロー概略図である。
【
図8】本出願が提供するブロック重み設置のシナリオ概略図である。
【
図9】本出願が提供するブロック処理のシナリオ概略図である。
【
図10】本出願が提供するブロックコンセンサスのフロー概略図である。
【
図11】本出願が提供する付加方法のフロー概略図である。
【
図12】本出願が提供するコンセンサスネットワークのデータ処理装置の構造概略図である。
【
図13】本出願が提供するコンピュータ機器の構造概略図である。
【発明を実施するための形態】
【0013】
以下、本出願の図面を結合して、本出願の技術案を明らか且つ完全に記載し、明らかに、記載される実施例は全ての実施例ではなく、本出願の一部の実施例に過ぎない。本出願の実施例に基づいて、当業者が進歩性に値する労働をしないことを前提として、取得した他の全ての実施例は何れも本出願の保護範囲に属する。
【0014】
本出願はブロックチェーンの関連技術に関する。ブロックチェーンは分散型データ記憶、ピアツーピア伝送、コンセンサスメカニズム、暗号化アルゴリズムなどのコンピュータ技術の新規適用モードである。本質的に、ブロックチェーン(Blockchain)は非集中化されたデータベースであり、暗号化方法を使用して関連付けるように生成された一連のデータブロックであり、各データブロックには、情報の有効性(偽造防止)を検証して次のブロックを生成するための1バッチのネットワークトランザクションの情報が含まれる。ブロックチェーンはブロックチェーン基礎プラットフォーム、プラットフォーム製品サービス層及びアプリケーションサービス層を含む。ブロックチェーンには、生成の早い順に従って互いに接続される一連のブロック(Block)が含まれ、新たなブロックはブロックチェーンに追加されると、除去されることなく、ブロックには、ブロックチェーンシステムにおけるノードから提出される記録データが記録される。本出願において、大規模のコンセンサスネットワークを一つ一つの小規模のコンセンサスサブネットワークに変えることで、ブロックに対するコンセンサスを実現して、コンセンサスネットワークの、ブロックに対するコンセンサスの性能及び効率を向上する。
【0015】
本出願はクラウド技術に関し、例えば、ブロックチェーンノード(例えばコンセンサスノード)の間は「クラウド」を介して通信できる。
【0016】
ここで、本出願が収集した全てのデータ(例えばブロック及びブロックにおけるトラフィックデータ)は何れも、当該トラフィックデータが所属するオブジェクト(例えば、ユーザー)が個別に同意して認証した場合で収集され、且つ関連データの收集、使用及び処理は関連国家及び地域の関連法令及び標準を遵守しなければならない。
【0017】
図1を参照し、
図1は本出願が提供するコンセンサスネットワークのネットワークアーキテクチャの構造概略図である。
図1に示すように、当該コンセンサスネットワークは、コンセンサスノード1~コンセンサスノードNといういくつかのコンセンサスノードを含み、Nは正の整数であり、Nの具体的な値は実際適用シナリオに基づいて決定される。何れか1つのコンセンサスノードは、1つ又は複数のコンピュータ機器から構成され、当該コンピュータ機器は端末機器であってもよいし、サーバーであってもよい。
【0018】
コンセンサスノードを構成するコンピュータ機器がサーバーであれば、当該サーバーは独立の物理サーバーであってもよいし、複数の物理サーバーからなるサーバークラスタ又は分散型システムであってもよいし、さらに、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウド記憶、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメイン名サービス、セキュリティーサービス、CDN、ビッグデータ及び人工知能プラットフォームなどの基礎クラウドコンピューティングサービスを提供するクラウドサーバーであってもよい。コンセンサスノードを構成するコンピュータ機器が端末機器であれば、当該端末機器はスマートフォン、タブレットコンピューター、ノートパソコン、デスクトップパソコン、スマートテレビ、車載端末などのスマート端末であってもよい。
【0019】
図2を合わせて参照し、
図2は本出願が提供するブロックコンセンサスのシナリオ概略図である。
図2に示すように、コンセンサスネットワークにおける主ノードを交替させることができ、コンセンサスノード1は現在、ブロックに対して提案・コンセンサスを発起した主ノードである。コンセンサスノード1はまず、コンセンサスを必要とするブロックを対応するコンセンサスサブネットワーク1にブロードキャストし、当該コンセンサスサブネットワーク1はコンセンサスノード1、コンセンサスノード2、コンセンサスノード3及びコンセンサスノード4を含む。
【0020】
さらに、コンセンサスサブネットワーク1においてコンセンサスノード1が発起したブロックに対してコンセンサスを行って、コンセンサスを完成した後、コンセンサスサブネットワーク1における各コンセンサスノードは自体の、ブロックに対するコンセンサス結果をそれぞれ取得し、当該コンセンサス結果は、コンセンサスサブネットワーク1における全てのコンセンサスノードの、ブロックに対する最終のコンセンサス結果ではなく、各コンセンサスノード自体の、ブロックに対するそれぞれのコンセンサス結果(例えばコンセンサス達成結果又はコンセンサス未達成結果)である。各コンセンサスノードの、ブロックに対するコンセンサス結果は同様であってもよいし、異なってもよい。
【0021】
コンセンサスノード2においてブロックのコンセンサスを達成し、即ち、コンセンサスノード2の、当該ブロックに対するコンセンサス結果がコンセンサス達成結果であれば、コンセンサスノード2は引き続いてブロックを対応するコンセンサスサブネットワーク2にブロードキャストし、当該コンセンサスサブネットワーク2はコンセンサスノード2、コンセンサスノード5、コンセンサスノード6及びコンセンサスノード7を含み、さらに、コンセンサスサブネットワーク2においてコンセンサスノードが発起したブロックに対して引き続いてコンセンサスを行って、コンセンサスを完成した後、コンセンサスサブネットワーク2における各コンセンサスノードは自体の、ブロックに対するコンセンサス結果をそれぞれ取得できる。
【0022】
同じように、コンセンサスノード3でブロックのコンセンサスを達成し、即ち、コンセンサスノード3の、当該ブロックに対するコンセンサス結果がコンセンサス達成結果であれば、コンセンサスノード3は引き続いてブロックを対応するコンセンサスサブネットワーク3にブロードキャストし、当該コンセンサスサブネットワーク3はコンセンサスノード3、コンセンサスノード8、コンセンサスノード9及びコンセンサスノード10を含み、さらに、コンセンサスサブネットワーク3においてコンセンサスノードが発起したブロックに対して引き続いてコンセンサスを行って、コンセンサスを完成した後、コンセンサスサブネットワーク3における各コンセンサスノードは自体の、ブロックに対するコンセンサス結果をそれぞれ取得できる。
【0023】
同じように、コンセンサスノード4でブロックのコンセンサスを達成し、即ち、コンセンサスノード4の、当該ブロックに対するコンセンサス結果がコンセンサス達成結果であれば、コンセンサスノード4は引き続いてブロックを対応するコンセンサスサブネットワーク4をブロードキャストし、当該コンセンサスサブネットワーク4はコンセンサスノード4、コンセンサスノード11、コンセンサスノード12及びコンセンサスノード13を含み、さらに、コンセンサスサブネットワーク4においてコンセンサスノードが発起したブロックに対して引き続いてコンセンサスを行って、コンセンサスを完成した後、コンセンサスサブネットワーク4における各コンセンサスノードは自体の、ブロックに対するコンセンサス結果をそれぞれ取得できる。
【0024】
さらに、コンセンサスノード5、コンセンサスノード6、コンセンサスノード7、コンセンサスノード8、コンセンサスノード9、コンセンサスノード10、コンセンサスノード11、コンセンサスノード12及びコンセンサスノード13において、ブロックコンセンサスを達成したコンセンサスノードは引き続いてブロックをコンセンサスネットワークにおけるより多くのコンセンサスノード(例えば、対応するコンセンサスサブネットワークにブロードキャストする)にブロードキャストし、さらに、ブロックに対して引き続いてコンセンサス処理を行って、各コンセンサスサブネットワークにおいてブロックに対して拡散的なブロードキャスト・コンセンサスを行った後、コンセンサスネットワーク全体においてブロックに対してコンセンサスを行う目的を達成する。
【0025】
さらに、コンセンサスネットワークにおいてブロックコンセンサスを達成したコンセンサスノードはネットワーク全体(コンセンサスネットワーク全体)範囲内でそれぞれの、ブロックに対するコンセンサス達成結果をブロードキャストし、各コンセンサスノードがコンセンサスネットワークから数が数量閾値以上であるブロックに対するコンセンサス達成結果を取得した場合、ネットワーク全体においてブロックのコンセンサスを達成したことを表し、ブロックに対してアップリンク処理を行うことができ、例えば、ブロックをコンセンサスネットワークが所属するブロックチェーンに追加する。以上、ブロックに対するコンセンサスの具体的な過程について、以下の
図3に対応する実施例の記載を参照すればよい。
【0026】
本出願が提供する方法によれば、大規模のコンセンサスネットワーク全体ではなく、各小さなネットワーク(例えば、各小規模のコンセンサスサブネットワーク)においてブロックに対してコンセンサスを行うことで、ブロックに対するコンセンサス過程中の通信の複雑さ及び通信量を減少して、ブロックに対するコンセンサス効率を向上して、コンセンサスネットワーク全体の、ブロックに対するコンセンサス性能を高める。
【0027】
図3を参照し、
図3は本出願が提供するコンセンサスネットワークのデータ処理方法のフロー概略図である。
図3に示すように、当該方法は以下のステップを含む:
S101:第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信し、第2のコンセンサスサブネットワークはN個のコンセンサスノードのうちのK個のコンセンサスノードを含み、第1のコンセンサスノード及び第2のコンセンサスノードは何れも第2のコンセンサスサブネットワークに属し、KはNより小さい正の整数であり、第2のコンセンサスノードはN個のコンセンサスノードのうちの、第1のコンセンサスノードを除いた何れか1つであり、第1のブロックのコンセンサス過程は第1の主ノードが発起する。
【0028】
可能な実現形態において、コンセンサスネットワークはN個のコンセンサスノードを含み、当該N個のコンセンサスノードはアップリンクを必要とするブロックに対してコンセンサス処理を行うブロックチェーンノードであり、Nは正の整数であり、Nの具体な数値は実際適用シナリオに基づいて決定される。何れか1つのコンセンサスノードは1つ又は複数のコンピュータ機器から構成され、当該コンピュータ機器はサーバーであってもよいし、端末機器であってもよく、具体的に、実際適用シナリオに基づいて決定されてもよく、これに対して限定しない。
【0029】
上記のN個のコンセンサスノードは第1の主ノードを含み、当該第1の主ノードは現在、ブロックに対して提案・コンセンサスを発起する必要がある主ノードであり、一般的に、第1の主ノードはコンセンサスノード、つまり、現在、ブロックに対するコンセンサスを発起するコンセンサスノードである。従って、本出願の実施例における実行本体は第1のコンセンサスノードであり、当該第1のコンセンサスノードは、N個のコンセンサスノードのうちの、第1の主ノードを除いた何れか1つのコンセンサスノードである。
【0030】
従って、第1のコンセンサスノードは、第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信し、当該第1のブロックは現在、コンセンサスを必要とするブロックであり、当該第1のブロックのコンセンサス過程は上記の第1の主ノードが発起し、第1のブロックは最初、第1の主ノードが提案を発起し、第1のブロックは第1の主ノードが生成してもよく、第1のブロックはアップリンクを必要とする任意のトラフィックデータ、例えばトランザクションデータなどを含んでもよい。
【0031】
可能な実現形態において、本出願の実施例が提供する方法は、TBFT(TendermintBFT、コンセンサスアルゴリズム)のコンセンサス過程を改善し、TBFTでは、コンセンサスネットワークにおける主ノードは交替でき、交替方式は多種であり、例えば、コンセンサスネットワークにおける各コンセンサスノードは何れも対応するノード番号をそれぞれ備え、コンセンサスネットワークにおける主ノードは各コンセンサスノードのノード番号に基づいて順に交替してもよいし、又は他のポリシーに従って交替してもよく、コンセンサスネットワークにおける各コンセンサスノードは何れも主ノードの交替ポリシーを知っているため、TBFTを使用するコンセンサスネットワークにおいて、各コンセンサスノードの間は互いに通知しなくても、各時点の各主ノードがどのコンセンサスノードであるかを知ることができる。
【0032】
従って、本出願が提供する方法によれば、TBFTにおける大規模のコンセンサスネットワークをいくつかの小さなネットワーク(例えばいくつかのコンセンサスサブネットワーク)に変えて、ブロックに対してコンセンサスを行って、コンセンサス過程でデータをブロードキャストする時のデータ量及び通信の複雑さを低減する。
【0033】
上記の第2のコンセンサスノードは、上記のN個のコンセンサスノードのうちの、第1のコンセンサスノードを除いた何れか1つのコンセンサスノードであり、上記の第2のコンセンサスサブネットワークは、第2のコンセンサスノードに対応するコンセンサスサブネットワークであり、当該第2のコンセンサスサブネットワークはコンセンサスネットワークにおける1つのサブネットワーク(小さなネットワーク又は小規模ネットワークとも呼ばれる)であり、当該第2のコンセンサスサブネットワークはK個のコンセンサスノードを含み、KはNより小さい正の整数であり、Kの数値はNの数値より小さく、Kの数値は実際適用シナリオに基づいて決定される。第1のコンセンサスノード及び第2のコンセンサスノードは何れも第2のコンセンサスサブネットワークに属し、即ち、第2のコンセンサスサブネットワークは第1のコンセンサスノード及び第2のコンセンサスノードを含む。
【0034】
上記のK個のコンセンサスノードにおける第1の残りのコンセンサスノードは、第2のコンセンサスノードがN個のコンセンサスノードから選択(ランダムに選択する)した、第2のコンセンサスノードに互いに連結(即ち、連通)するK-1個のコンセンサスノードであり、当該K-1個のコンセンサスノードは、第2のコンセンサスノードがコンセンサスを必要とするブロックを取得した場合、当該ブロックがブロードキャストできるコンセンサスノードである。第1の残りのコンセンサスノードは、K個のコンセンサスノードのうちの、第2のコンセンサスノードを除いたコンセンサスノードである。又は、可能な実現形態において、当該K-1個のコンセンサスノードは、ルーティングテーブルに基づいて選択した、第2のコンセンサスノードに近いコンセンサスノードであってもよいし、又は予め設置された第2のコンセンサスノードが、コンセンサスを必要とするブロックをブロードキャストできるコンセンサスノードであってもよい。当該K-1個のコンセンサスノードは予め設置されると、当該K-1個のコンセンサスノードは周期的に更新され、例えば所定期間ごとに(例えば、1つの周期ごとに)更新され、更新の時、Kの数値も更新されてもよく、即ち、第2のコンセンサスノードが、コンセンサスを必要とするブロックがブロードキャストできるコンセンサスノードの数は変化してもよく、言い換えると、第2のコンセンサスノードが、コンセンサスを必要とするブロックがブロードキャストできるいくつかのコンセンサスノードは定期に更新し且つ動的に変化してもよい。可能な実現形態において、具体的に、第2のコンセンサスノードに対応する第2のコンセンサスサブネットワークの決定方法は、実際適用シナリオに基づいて決定され、これに対して限定しない。
【0035】
上記の第2のコンセンサスサブネットワークは、第2のコンセンサスノードが第1のブロックをブロードキャストする時形成された、第1のブロックをブロードキャストするための仮想のコンセンサスサブネットワークであり、当該コンセンサスサブネットワークは予め区画された個別のサブネットワークでなくてもよい。
【0036】
ここで、第2のコンセンサスノードは第1の主ノードであれば、第2のコンセンサスノードがブロードキャストする第1のブロックは、第2のコンセンサスノードが生成して、第2のコンセンサスノードが第1のブロックに対するコンセンサス過程を発起してもよい。第2のコンセンサスノードが第1の主ノードではなければ、第2のコンセンサスノードがブロードキャストする第1のブロックは、上記のN個のコンセンサスノードのうちの第3のコンセンサスノードが、第2のコンセンサスノードへブロードキャストすることで取得したものであり、第3のコンセンサスノードはN個のコンセンサスノードのうちの、第1のコンセンサスノード及び第2のコンセンサスノードを除いた何れか1つのコンセンサスノードである。N個のコンセンサスノードのうちの第3のコンセンサスノードが第2のコンセンサスノードへ第1のブロックをブロードキャストする原理は、第2のコンセンサスノードが第1のコンセンサスノードへ第1のブロックをブロードキャストする原理と同様であり、例えば、対応するコンセンサスサブネットワークへ第1のブロックをブロードキャストし、当該コンセンサスサブネットワークは第2のコンセンサスノードを含む。
【0037】
言い換えると、第1のブロックは最初、第1の主ノードが生成して対応するコンセンサスサブネットワークにブロードキャストしたものであり、第1の主ノードに対応するコンセンサスサブネットワークにおける各コンセンサスノードが受信した第1のブロックは、第1の主ノードがブロードキャストしたものであり、N個のコンセンサスノードのうちの他のコンセンサスノードが受信した第1のブロックは、N個のコンセンサスノードのうちの、第1の主ノードを除いたコンセンサスノードがブロードキャストしたものである。他のコンセンサスノードは、N個のコンセンサスノードのうちの、第1の主ノードに対応するコンセンサスサブネットワークに含まれるコンセンサスノードを除いたコンセンサスノードである。
【0038】
S102:第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行って、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果を取得し、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した場合、第1のコンセンサスサブネットワークにおいて第1のブロックに対して引き続いてコンセンサス処理を実行するように、第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて第1のブロックをブロードキャストし、第1のコンセンサスサブネットワークはN個のコンセンサスノードのうちのM個のコンセンサスノードを含み、MはNより小さい正の整数である。
【0039】
可能な実現形態において、第1のコンセンサスノードは第2のコンセンサスノードがブロードキャストした第1のブロックを受信した後、第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行って、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果を取得する。即ち、第2のコンセンサスサブネットワークにおける各コンセンサスノードの間は、第1のブロックに対して一緒にコンセンサス処理を行ってもよい。可能な実現形態において、第2のコンセンサスサブネットワークにおける各コンセンサスノードはBTFTコンセンサスアルゴリズムを使用して第1のブロックに対してコンセンサス処理を行って、当該コンセンサス処理は、propose階段(提案階段)、prevote(期日前投票階段)及びprecommit(事前提出階段)という3つのコンセンサス階段を含み、期日前投票階段及び事前提出階段では、第2のコンセンサスサブネットワークにおける各コンセンサスノードの間には、相互ブロードキャストを必要とするデータ(例えば、第1のブロックに対する投票データ)が存在する。
【0040】
第2のコンセンサスサブネットワークにおける各コンセンサスノードが一緒に上記の3つのコンセンサス階段を介して第1のブロックに対してコンセンサスを行った後、第2のコンセンサスサブネットワークにおける各コンセンサスノードはそれぞれの、第1のブロックに対するコンセンサス結果を取得でき、当該コンセンサス結果はコンセンサス達成結果、又はコンセンサス未達成結果であってもよく、異なるコンセンサスノードが取得した、自体の、第1のブロックに対するコンセンサス結果が同様であってもよいし、異なってもよい。当該コンセンサス達成結果は、第1のブロックに対するコンセンサスを達成して、第1のブロックに対するアップリンクに同意することを表し、逆に、当該コンセンサス未達成結果は、第1のブロックに対するコンセンサスを達成しておらず、第1のブロックに対するアップリンクに同意しないことを表す。
【0041】
ここで、上記の第1の主ノードは現在、コンセンサスネットワーク全体の主ノードであり、ブロックチェーンに対して提案し、第2のコンセンサスノードが第1の主ノードであるかどうかにかかわらず、第2のコンセンサスノードは第2のコンセンサスサブネットワークにおける「主ノード」として理解され、即ち、第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードが第1のブロックに対する提案・コンセンサスを発起する。
【0042】
従って、第1のコンセンサスノードで第1のブロックのコンセンサスを達成すると(即ち、第1のコンセンサスノードは、自体の、第1のブロックに対するコンセンサス達成結果を取得する)、第1のコンセンサスノードは対応するコンセンサスサブネットワーク(第1のコンセンサスサブネットワークとも呼ばれる)において第1のブロックを引き続いてブロードキャストすることで、第1のコンセンサスサブネットワークにおいて第1のブロックに対して引き続いてコンセンサス処理を実行する。
【0043】
同じように、第1のコンセンサスサブネットワークはコンセンサスネットワークにおける1つのサブネットワーク(小さなネットワーク)であってもよく、第1のコンセンサスサブネットワークにはM個のコンセンサスノードが含まれ、MはNより小さい正の整数であり、Mの数値は上記のKの数値と同様であってもよいし、又は異なってもよく、具体的に、実際適用シナリオに基づいて決定される。当該M個のコンセンサスノードにおける第2の残りのコンセンサスノードは、第1のコンセンサスノードがN個のコンセンサスノードから選択(例えばランダムに選択する)した、第1のコンセンサスノードに互いに連結するM-1個のコンセンサスノードである。第2の残りのコンセンサスノードは、M個のコンセンサスノードのうちの、第1のコンセンサスノードを除いたコンセンサスノードである。
【0044】
当該M-1個のコンセンサスノードは、第1のコンセンサスノードがコンセンサスを必要とするブロック(例えば、第1のブロック)を取得した場合、当該ブロックをブロードキャストできるコンセンサスノードである。又は、可能な実現形態において、当該M-1個のコンセンサスノードは、ルーティングテーブルに基づいて選択した、第1のコンセンサスノードに近いコンセンサスノードであり、或いは当該M-1個のコンセンサスノードは、予め設置された第1のコンセンサスノードが、コンセンサスを必要とするブロックをブロードキャストできるコンセンサスノードであり、当該M-1個のコンセンサスノードは予め設置された場合、周期的に更新されてもよく、例えば所定期間ごとに(例えば、1つの周期ごとに)更新され、更新の時、Mの数値も更新され、即ち、第1のコンセンサスノードがコンセンサスを必要とするブロックがブロードキャストできるコンセンサスノードの数も変化でき、言い換えると、第1のコンセンサスノードが、コンセンサスを必要とするブロックがブロードキャストできるいくつかのコンセンサスノードは周期的に更新されるとともに、動的に変化してもよい。可能な実現形態において、具体的に、第1のコンセンサスノードに対応する第1のコンセンサスサブネットワークの決定方法は実際適用シナリオに基づいて決定され、これに対して限定しない。
【0045】
同じように、ここで、第1のコンセンサスサブネットワークは、第1のコンセンサスノードが第1のブロックをブロードキャストする時形成された、第1のブロックをブロードキャストするための仮想のコンセンサスサブネットワークであってもよく、当該コンセンサスサブネットワークは予め区画された個別のサブネットワークでなくてもよい。
【0046】
第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサスを行う場合、第1のコンセンサスノードで第1のブロックのコンセンサスを達成していないと、第1のコンセンサスノードは引き続いて第1のブロックを対応する第1のコンセンサスサブネットワークにブロードキャストする必要がなく、第1のブロックに対するコンセンサス未達成結果を記録すればよい。
【0047】
同じように、第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて第1のブロックをブロードキャストした後、第1のコンセンサスサブネットワークにおける各コンセンサスノードは第1のブロックに対して上記の3つの階段のコンセンサス処理を引き続いて行って、第1のコンセンサスサブネットワークにおける各コンセンサスノードはそれぞれの、第1のブロックに対するコンセンサス結果を取得し、当該コンセンサス結果はコンセンサス達成結果又はコンセンサス未達成結果であってもよく、このように類推すればよく、第1のコンセンサスサブネットワークにおける、第1のブロックに対するコンセンサス達成結果を取得したコンセンサスノードは引き続いて第1のブロックを対応するコンセンサスサブネットワークにブロードキャストすることで、当該コンセンサスサブネットワークにおいて第1のブロックに対して引き続いてコンセンサス処理を実行する。
【0048】
同じように、上記の第1の主ノードは現在、コンセンサスネットワーク全体の主ノードであり、ブロックチェーンに対して提案し、第1のコンセンサスノードは第1のコンセンサスサブネットワークにおける「主ノード」として理解され、即ち、第1のコンセンサスサブネットワークにおいて、第1のコンセンサスノードが第1のブロックに対する提案・コンセンサスを発起する。
【0049】
上記の過程によれば、一つ一つのコンセンサスサブネットワークの間で、第1のブロックは継続的且つ拡散的にブロードキャストされ、各コンセンサスサブネットワークにおいて第1のブロックに対して完全なコンセンサス過程(上記の3つのコンセンサス階段を含む)をそれぞれ行って、結果として、コンセンサスネットワーク全体における第1のブロックのコンセンサスを実現できる。3つのコンセンサス階段のうちの最後の2つのコンセンサス階段(prevote階段及びprecommit階段)には何れも、ブロックに対して相互コンセンサスを行うコンセンサスノードの間で相互ブロードキャストを行う必要があるコンセンサスデータ(例えば、投票データ)が存在するため、N個のコンセンサスノードを含むコンセンサスネットワーク全体でデータの相互ブロードキャストを行うと、その通信の複雑さはO(N2)である。
【0050】
従って、本出願が提供する方法によれば、ブロックに対して上記の3つのコンセンサス階段のコンセンサス処理を行う場合、最後の2つのコンセンサス階段で、コンセンサスノードの間も、大規模のコンセンサスネットワーク内全体ではなく、相応的なコンセンサスサブネットワークにおいてコンセンサスデータの相互ブロードキャストを行うとよいため、コンセンサス過程でブロードキャストされて伝送される必要があるデータ量を減少するとともに、コンセンサス過程中の通信の複雑さを低減する。
【0051】
上記の各コンセンサスサブネットワークが第1のブロックに対してブロードキャスト・コンセンサスを継続的且つ拡散的に行う方式は、gossipプロトコル(通信プロトコル)の原理に基づいて実現され、大規模ノードのコンセンサスをいくつかの小規模ノードのコンセンサスに変えることで、ブロックチェーン全体のコンセンサス性能を向上できる。
【0052】
図4a~
図4bを参照し、
図4a~
図4bは本出願が提供するブロックブロードキャストのシナリオ概略図である。
図4aに示すように、コンセンサスネットワークにおけるコンセンサスノードはノード1~ノード14を含み、ノード1は第1の主ノードであり、ノード1はまず、コンセンサスを必要とする第1のブロックを対応するコンセンサスサブネットワークにブロードキャストし、ここで、ノード1に対応するコンセンサスサブネットワークはノード1、ノード2、ノード3及びノード4を含む。さらに、ノード1に対応するコンセンサスサブネットワークにおける各コンセンサスノードは第1のブロックに対してコンセンサス処理を行って、当該コンセンサスサブネットワークにおける、第1のブロックに対するコンセンサスを達成したコンセンサスノードであれば、引き続いて第1のブロックを自体に対応するコンセンサスサブネットワークにブロードキャストし、当該コンセンサスサブネットワークにおける各コンセンサスノードは第1のブロックに対して引き続いてコンセンサス処理を行うことができる。
【0053】
図4aに示すように、ノード2で第1のブロックのコンセンサスを達成した場合、ノード2は第2のコンセンサスノードであり、そうすれば、ノード2は引き続いて第1のブロックを対応するコンセンサスサブネットワーク(例えば第2のコンセンサスサブネットワーク)にブロードキャストし、ここで、ノード2に対応するコンセンサスサブネットワークはノード2、ノード5、ノード6及びノード7を含む。さらに、ノード2に対応するコンセンサスサブネットワークにおける各コンセンサスノードは第1のブロックに対して引き続いてコンセンサス処理を行って、当該コンセンサスサブネットワークにおける、第1のブロックに対するコンセンサスを達成したコンセンサスノードであれば、引き続いて第1のブロックを自体に対応するコンセンサスサブネットワークにブロードキャストし、さらに、当該コンセンサスサブネットワークにおける各コンセンサスノードは第1のブロックに対して引き続いてコンセンサス処理を行うことができる。
【0054】
図4bに示すように、ノード6で第1のブロックのコンセンサスを達成した場合、ノード6は第1のコンセンサスノードであり、そうすれば、ノード6は引き続いて第1のブロックを対応するコンセンサスサブネットワーク(例えば第1のコンセンサスサブネットワーク)にブロードキャストし、ここで、ノード6に対応するコンセンサスサブネットワークはノード6、ノード8、ノード9及びノード14を含む。このように類推すればよく、ノード6に対応するコンセンサスサブネットワークにおける、第1のブロックに対するコンセンサスを達成したコンセンサスノードであれば、引き続いて第1のブロックを自体に対応するコンセンサスサブネットワークにブロードキャストし、さらに、当該コンセンサスサブネットワークにおける各コンセンサスノードは第1のブロックに対して引き続いてコンセンサス処理を行って、結果として、コンセンサスネットワーク全体において第1のブロックに対してコンセンサスを行う目的を達成することができる。
【0055】
なお、同一ブロックに対して、コンセンサスネットワークにおける各コンセンサスノードは対応するコンセンサスサブネットワークに1回だけブロードキャストしてもよい。
【0056】
図5を参照し、
図5は本出願が提供するブロックコンセンサスのシナリオ概略図である。
図5に示すように、コンセンサスネットワークにおけるN個のコンセンサスノードはノード0~ノード30を含み、ノード0は第1の主ノードである。
【0057】
従って、まず、ノード0は対応するコンセンサスサブネットワーク(ノード0~ノード4を含む)においてコンセンサスを必要とする第1のブロックをブロードキャストし、さらに、当該コンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行うことができる。
【0058】
ノード0に対応するコンセンサスサブネットワークにおいて第1のブロックに対するコンセンサスを完成し、且つノード1~ノード4は何れも第1のブロックに対してコンセンサスを達成した場合、ノード1~ノード4は何れも引き続いて第1のブロックをそれぞれに対応するコンセンサスサブネットワークにブロードキャストすることができる。
【0059】
ここで、ノード1に対応するコンセンサスサブネットワークはノード1、ノード5、ノード6及びノード7を含むため、ノード1は引き続いて第1のブロックをノード5、ノード6及びノード7にブロードキャストし、ノード2に対応するコンセンサスサブネットワークはノード2、ノード8、ノード9及びノード10を含むため、ノード2は引き続いて第1のブロックをノード8、ノード9及びノード10にブロードキャストし、ノード3に対応するコンセンサスサブネットワークはノード3、ノード11、ノード12及びノード13を含むため、ノード3は引き続いて第1のブロックをノード11、ノード12及びノード13にブロードキャストし、ノード4に対応するコンセンサスサブネットワークはノード4、ノード14、ノード15及びノード16を含むため、ノード4は引き続いて第1のブロックをノード14、ノード15及びノード16にブロードキャストする。
【0060】
このように類推すると、各コンセンサスサブネットワークにおける、第1のブロックに対するコンセンサスを達成したコンセンサスノードは引き続いて第1のブロックを対応するコンセンサスサブネットワークにブロードキャストしてコンセンサス処理を行って、以降、コンセンサスネットワークにおける、第1のブロックに対するコンセンサスを達成したコンセンサスノードの数が数量閾値の以上であれば、第1のブロックに対してアップリンク処理を行うことができる。各コンセンサスサブネットワークにおける、第1のブロックに対するコンセンサスを達成していないコンセンサスノードであれば、第1のブロックをより多くのコンセンサスノードにブロードキャストする必要がなくなる。
【0061】
S103:コンセンサスネットワークにおいて第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果をブロードキャストして、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数を取得し、第1の数に基づいて第1のブロックに対してアップリンク処理を行う。
【0062】
可能な実現形態において、第1のコンセンサスノードはコンセンサスネットワークにおいて自体の、第1のブロックに対するコンセンサス達成結果をブロードキャストすることで、コンセンサスネットワークにおける他のコンセンサスノードも第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果を知ることができる。第1のコンセンサスノードで第1のブロックのコンセンサスを達成していないと、第1のコンセンサスノードは、第1のブロックに対するコンセンサス未達成結果をブロードキャストする必要がない。
【0063】
同じように、コンセンサスネットワークにおいて第1のコンセンサスノードはgossipプロトコルの原理に基づいて、自体の、第1のブロックに対するコンセンサス達成結果を対応するコンセンサスサブネットワークにブロードキャストしてから、第1のコンセンサスノードに対応するコンセンサスサブネットワークにおけるコンセンサスノードにより引き続いて、第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果を対応するコンセンサスサブネットワークにブロードキャストし、このように類推して、引き続いて拡散的にブロードキャストし、結果として、第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果をコンセンサスネットワーク全体にブロードキャストする目的を達成する。
【0064】
実際に、コンセンサスネットワークにおける、第1のブロックに対するコンセンサスを達成した各コンセンサスノードであれば、何れも上記の第1のコンセンサスノードがコンセンサスネットワークにおいて第1のブロックに対するコンセンサス達成結果をブロードキャストする原理に従って、コンセンサスネットワークにおいて自体の、第1のブロックに対するコンセンサス達成結果をそれぞれブロードキャストすることができる。従って、コンセンサスネットワークにおける各コンセンサスノードは何れも、他のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果を取得できる。
【0065】
従って、第1のコンセンサスノードはさらに、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の数(第1の数とも呼ばれる)を取得し、当該第1の数は、第1のコンセンサスノードがコンセンサスネットワーク全体から取得した、各コンセンサスノードの、第1のブロックに対するコンセンサス達成結果の総数である。
【0066】
さらに、第1のコンセンサスノードは当該第1の数に基づいて第1のブロックに対してアップリンク処理を行って、当該第1の数が数量閾値の以上であれば、コンセンサスネットワーク全体において第1のブロックのコンセンサスを達成したことを表し、第1のコンセンサスノードは第1のブロックに対してアップリンク処理を行うことができ、即ち、第1のブロックをブロックチェーンネットワークに追加する。第1の数が当該数量閾値より小さければ、コンセンサスネットワーク全体において第1のブロックのコンセンサスを達成していないことを表し、第1のコンセンサスノードは第1のブロックを廃棄し、即ち、第1のブロックに対してアップリンク処理を行わない。
【0067】
上記の数量閾値は実際ニーズに応じて設置される。可能な実現形態において、数量閾値はコンセンサスネットワークでサポートする最大の不正ノードの数に基づいて設置され、例えば2f+1であり、fはコンセンサスネットワークでサポートする最大の不正ノードの数(即ち、許容可能な不正のコンセンサスノードの最大数)であり、この場合、上記のNも、コンセンサスネットワークがサポートする最大不正ノードの数と関係があり、例えば、上記のNは3f+1以上である。
【0068】
可能な実現形態において、コンセンサスネットワークにおける何れか1つのコンセンサスノードの、何れか1つのブロックに対するコンセンサス達成結果は、当該何れか1つのコンセンサスノードの、当該何れか1つのブロックに対するノード署名である。第1のコンセンサスノードには、第1のブロックに関連付けられるノード署名セットがキャッシュされ、当該ノード署名セットはコンセンサスネットワークにおける各コンセンサスノードの、第1のブロックに対するノード署名(即ち、コンセンサス達成結果)を記憶し、第1のコンセンサスノードで第1のブロックのコンセンサスを達成した場合、当該ノード署名セットは第1のコンセンサスノードの、第1のブロックに対するノード署名を含む。
【0069】
従って、コンセンサスネットワークにおいて第1のブロックに対してコンセンサス処理を行う過程(即ち、コンセンサスネットワークの各コンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行う過程)で、第1のコンセンサスノードは、第3の残りのコンセンサスノードがブロードキャストした、第1のブロックに対するノード署名(ブロードキャストされるものは、コンセンサスノード自体の、第1のブロックに対するノード署名であってもよく、又は受信した、他のコンセンサスノードの、第1のブロックに対するノード署名であってもよい)を受信し、第1のコンセンサスノードは受信した、第1のブロックに対するノード署名を何れも第1のブロックに関連付けられるノード署名セットに追加する。なお、第3の残りのコンセンサスノードは、N個のコンセンサスノードのうちの、第1のコンセンサスノードを除いたコンセンサスノードである。
【0070】
さらに、第1のコンセンサスノードは第1のブロックに関連付けられるノード署名セットにおけるノード署名の数を取得し、当該数は上記の第1の数であり、当該第1の数が上記の数量閾値の以上であれば、第1のコンセンサスノードは第1のブロックに対してアップリンク処理を行うことができる(即ち、書き込み、例えば、第1のコンセンサスノードのロカール台帳に追加する)。
【0071】
コンセンサスネットワークにおける各コンセンサスノードは何れも、上記の第1のコンセンサスノードが第1のブロックに対してアップリンク処理を行う原理に従って、受信した第1のブロックに対するコンセンサス達成結果に基づいて第1のブロックに対してアップリンク処理を行うことができる。
【0072】
図6を参照し、
図6は本出願が提供するブロックの提案コンテンツのシナリオ概略図である。
図6に示すように、対応するコンセンサスサブネットワークにおいて何れか1つのコンセンサスノードが提案したコンテンツ(即ち、ブロードキャストするコンテンツ)はBlock(ブロックであって、例えば第1のブロックである)、主ノードのブロックに対する署名(例えば、第1の主ノードの第1のブロックに対する署名)、ノード署名セット、本ラウンドのコンセンサスノードID(識別子)セット(当該セットは現在コンセンサスサブネットワークにおける全てのコンセンサスノードのノードIDを含む)、及び現在ノード署名(即ち、現在コンセンサスサブネットワークにおける「主ノード」の、ブロックに対するノード署名)を含む。
【0073】
提案コンテンツにおけるBlockには、当該ブロックに対応するブロックの高さ及びコンセンサスround(即ち、コンセンサスラウンド)が付けられ、当該ブロックの高さ及びコンセンサスroundは当該ブロックを唯一にマーキングする。提案コンテンツにおける主ノード(例えば、第1の主ノードであり、引用符が付けられていない主ノードは、コンセンサスネットワーク全体における主ノードを示す)の、ブロックに対する署名は、提案コンテンツを確認し、即ち、現在ブロックのコンセンサスが現在主ノードから発起されたことを確認するために用いられる。
【0074】
提案コンテンツにおけるノード署名セットは、コンセンサスネットワークにおける各コンセンサスノードの、第1のブロックに対するノード署名を記録し、当該ノード署名は、第1のブロックに対するコンセンサス達成結果であり、ここで、当該コンセンサスサブネットワークにおける「主ノード」(引用符が付けられる「主ノード」は、対応するコンセンサスサブネットワークにおける、主ノード作用を発揮するコンセンサスノードを示す)が最初、対応するコンセンサスサブネットワークに提案コンテンツをブロードキャストする時、当該ノード署名セットには最初、当該「主ノード」の第1のブロックに対するノード署名のみが含まれてもよく、以降、当該ノード署名セットは継続的に更新できる。
【0075】
提案コンテンツにおける本ラウンドのコンセンサスノードIDセットによって、現在コンセンサスサブネットワークにおける各コンセンサスノードが現在、どのコンセンサスノードとブロックに対するコンセンサス処理を完成するかということを明らかに知ることができる。
【0076】
現在ノード署名は、現在の提案コンテンツが現在、コンセンサスサブネットワークにおける「主ノード」としてのコンセンサスノードによってブロードキャストされたことを確認するために用いられる。
【0077】
さらに、上記の第2のコンセンサスノードが第1の主ノードであれば、上記のK個のコンセンサスノードは第2の主ノードを含み、当該第2の主ノードはN個のコンセンサスノードにおける、第1の主ノードに対して主ノード交替を行う次の主ノードであり、即ち、当該第2の主ノードは第1の主ノードの後の、次にブロックに対して提案を行うための主ノードである。
【0078】
従って、第2のコンセンサスノードの、第1のブロックに対するコンセンサス結果がコンセンサスコンセンサス達成結果であると決定した場合、第2の主ノードはコンセンサスネットワークにおいて第2のブロックに対するコンセンサス過程を発起し、第2の主ノードが第2のブロックに対するコンセンサス過程を発起する原理は、第1の主ノードが第1のブロックに対するコンセンサス過程を発起する原理と同様であり、例えば、何れも対応するコンセンサスサブネットワークにブロードキャストして、コンセンサスネットワークの各コンセンサスサブネットワークの間で拡散的にブロードキャスト・コンセンサスを行う。なお、第2のブロックに対応するブロック高さは、第1のブロックに対応するブロック高さの次のブロック高さであってもよい。
【0079】
ここで、コンセンサスを必要とする何れか1つのブロックに対応するブロック高さは、コンセンサスネットワーク全体において当該ブロックに対するコンセンサをス達成した後、当該ブロックのアップリンク後のブロック高さである。
【0080】
以上から分かるように、コンセンサスネットワークにおける現在主ノードがブロックに対する提案を発起する時、当該ブロックを次の主ノード(即ち、当該現在主ノードに対応するコンセンサスサブネットワークは、当該現在主ノードの次の主ノードを含む)に優先的にブロードキャストすることで、現在主ノードがブロードキャストしたブロックに対するコンセンサスを完成した後、当該次の主ノードは次のブロック(例えば、第2のブロック)に対するコンセンサス過程を前倒しで発起することで、次のブロックのコンセンサス過程と現在ブロックのコンセンサス過程とを同期に行って、ブロックに対するコンセンサス処理効率を向上する。
【0081】
本出願において、コンセンサスネットワークはN個のコンセンサスノードを含み、コンセンサスネットワークにおける第1の主ノードは第1のブロックのコンセンサス過程を発起し、第1のブロックのコンセンサス過程で、第1のコンセンサスノードは、第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信する。第2のコンセンサスサブネットワークはN個のコンセンサスノードのうちのK個のコンセンサスノードを含み、第1のコンセンサスノード及び第2のコンセンサスノードは何れも第2のコンセンサスサブネットワークに属し、第2のコンセンサスノードはN個のコンセンサスノードのうちの第1のコンセンサスノードを除いた何れか1つであり、KはNより小さい正の整数であり、つまり、第2のコンセンサスサブネットワークはコンセンサスネットワークより小規模ネットワークである。第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行って、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果を取得し、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した場合、第1のコンセンサスサブネットワークにおいて第1のブロックに対して引き続いてコンセンサス処理を実行するように、第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて第1のブロックをブロードキャストする。第1のコンセンサスサブネットワークはN個のコンセンサスノードのうちのM個のコンセンサスノードを含み、MはNより小さい正の整数であり、つまり、第1のコンセンサスサブネットワークもコンセンサスネットワークより小規模ネットワークである。これによって、大規模コンセンサスネットワークにおけるコンセンサスを、いくつかの小規模コンセンサスサブネットワークにおけるコンセンサスに変換する。コンセンサスネットワークにおいて第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果をブロードキャストして、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数を取得し、第1の数に基づいて第1のブロックに対してアップリンク処理を行う。このように、本出願が提出する方法によれば、各コンセンサスノードは何れもコンセンサスネットワークの小さなネットワーク内(例えば、第1のコンセンサスサブネットワーク及び第2のコンセンサスサブネットワーク)においてブロックをブロードキャストでき、さらに、小さなネットワーク内においてもブロックに対してコンセンサス処理を行って、ブロックに対してコンセンサスを行う時の通信量を減少して、コンセンサスネットワークの、ブロックに対するコンセンサス効率及び性能を向上する。
【0082】
図7を参照し、
図7は本出願が提供するブロック処理方法のフロー概略図である。
図7に示すように、当該方法は以下のステップを含む:
S201:コンセンサス対象となる第3のブロックを取得し、第3のブロックは、所定時間帯内で第1のブロックを取得していない場合、第3の主ノードが発起したコンセンサスを必要とするブロックであり、第3のブロックに対応するブロック高さは第1のブロック高さであり、第3の主ノードはN個のコンセンサスノードのうちの、第1の主ノードの次の主ノード交替を行うためのコンセンサスノードである。
【0083】
可能な実現形態において、本出願の実施例における実行本体は上記の第1のコンセンサスノードであってもよい。上記の第1のブロックに対応するブロック高さは第1のブロック高さであってもよく、即ち、第1のブロックは第1のブロック高さで提案されるブロックであり、ネットワーク全体(例えばコンセンサスネットワーク全体)において第1のブロックに対するコンセンサスを達成(例えば、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の数が上記の数量閾値の以上である)した場合、第1のブロックのアップリンク後のブロック高さは第1のブロック高さである。
【0084】
所定時間帯は実際ニーズに基づいて設置される時間帯であり、第3の主ノードが第1のブロックを受信するように待つ時間制限であり、所定時間帯内で第3の主ノードが第1のブロックを取得していないと、待ちがタイムアウトになったと決定し、この場合、第3の主ノードはコンセンサス対象となる第3のブロックを発起できる。所定時間帯内で第3の主ノードが第1のブロックを取得していない原因は色々あり、例えば、伝送遅延又はネットワーク異常などであってもよい。
【0085】
第1のコンセンサスノードはコンセンサス対象となる第3のブロックを取得でき、当該第3のブロックは、タイムアウトになっても第1のブロックを取得していない時、第3の主ノードが発起した、コンセンサスを必要とするブロックであるか、又はタイムアウトになっても第1のブロック高さで提案されるブロックを取得していない(伝送遅延又はネットワーク異常のため、取得していない)時、第3の主ノードが生成した、コンセンサスを必要とするブロックであり、当該第3のブロックに対応するブロック高さも第1のブロック高さであり、即ち、第1のブロックに対応するブロック高さと第3のブロックに対応するブロック高さとは同様であってもよい。
【0086】
つまり、同一ブロック高さで、ブロックに対する1ラウンド又は複数ラウンド(round)のコンセンサスを発起し、1ラウンドのコンセンサスはコンセンサスを必要とする1つのブロックに対応するが、同一ブロック高さに対して、1ラウンドにおけるブロックのみがネットワーク全体においてコンセンサスを達成でき、即ち、同一ブロック高さで1つのブロックのみがネットワーク全体においてコンセンサスを達成できる。上記の第1のブロック及び第3のブロックは同一ブロック高さに対応するが、コンセンサスroundが異なるブロックである。
【0087】
当該第3の主ノードは、上記のN個のコンセンサスノードのうちの、第1の主ノードの後の主ノード交替を行うためのコンセンサスノードであり、例えば第1の主ノードの次の1番目の主ノード(例えば上記の第2の主ノード)であってもよいし、又は第1の主ノードの後の2番目の主ノードであってもよいし、或いは第1の主ノードの後の3番目の主ノードなどであってもよい。
【0088】
第1のコンセンサスノードが取得した第3のブロックは、第3の主ノードからブロードキャストされてもよいし、又は第3の主ノードからブロードキャストされず、第1のコンセンサスノードが発起した第3のブロックを受信した他のコンセンサスノードからブロードキャストされてもよい。第3の主ノードがコンセンサスネットワークにおいて第3のブロックに対してブロードキャスト及びコンセンサスを行う原理は、上記の第1の主ノードがコンセンサスネットワークにおいて第1のブロックに対してブロードキャスト及びコンセンサスを行う原理と同様であってもよく、例えば、何れも各コンセンサスサブネットワークの間でコンセンサスを拡散的にブロードキャストしてもよい。
【0089】
S202:第3のブロックに対してコンセンサス処理を行って、第3のブロックに対するコンセンサス処理を完成した場合、第3のブロックをキャッシュする。
【0090】
可能な実現形態において、第1のコンセンサスノードは、取得した第3のブロックに対してコンセンサス処理を行って、第2のブロックに対するコンセンサス処理を完成した場合、まず、第3のブロックをキャッシュし、以降、コンセンサスネットワークで他のコンセンサスノードの、第3のブロックに対するコンセンサス達成結果を引き続いて取得することができる。そして、第3のブロックに対するコンセンサス処理を完成した後、第1のコンセンサスノードは第3のブロックに対するコンセンサス結果を取得でき、当該コンセンサス結果はコンセンサス達成結果又はコンセンサス未達成結果であってもよい。即ち、第3のブロックに対するコンセンサス処理を完成した後、当該第3のブロックに対するコンセンサスを達成したかどうかにかかわらず、第1のコンセンサスノードは第3のブロックをキャッシュすることで、コンセンサスネットワークで他のコンセンサスノードの、第3のブロックに対するコンセンサス達成結果を引き続いて取得して、さらに、実際状況に基づいて第1のブロックを柔軟に処理する。ここで、一般的に、1つのブロック高さで1つのコンセンサスノードは1つのブロックのみに対してコンセンサスを達成でき、即ち、1つのコンセンサスノードは同一ブロック高さでのいくつかのラウンドのコンセンサスのうちの何れか1つのラウンドのコンセンサスにおけるブロックのみに賛成投票する(即ち、コンセンサスを達成し、つまり、コンセンサス達成結果を取得する)。また、一般的に、1つのコンセンサスノードは1つのブロックに賛成投票した後、以降、当該ブロックに反対投票できない(即ち、コンセンサスを達成せず、つまり、コンセンサス未達成結果を取得する)。但し、特別な場合、1つのコンセンサスノードは1つのブロックに反対投票した後、コンセンサスネットワークにおける当該ブロックのコンセンサス達成結果の数を取得し、且つ当該数が数量閾値の以上であれば、コンセンサスネットワーク全体において当該ブロックのコンセンサスを達成したことを表し、当該コンセンサスノードは当該ブロックに対する反対票を賛成票に変える。
【0091】
同じように、第1のブロックに対するコンセンサス処理を完成した後、第1のブロックに対するコンセンサス達成結果を取得するか、それとも第1のブロックに対するコンセンサス未達成結果を取得するかにかかわらず、第1のコンセンサスノードは第1のブロックをキャッシュすることで、以降、コンセンサスネットワークで他のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果を引き続いて取得し、さらに、実際状況に基づいて第1のブロックを柔軟に処理する。
【0092】
上記の場合、第1のコンセンサスノードは第3のブロックの、コンセンサスネットワークにおけるコンセンサス達成結果の数(第2の数とも呼ばれる)を取得してもよく、当該第2の数が上記の数量閾値の以上であれば、コンセンサスネットワーク全体において第3のブロックのコンセンサスを達成し、従って、第1のコンセンサスノードは第3のブロックに対してアップリンク処理を行って、第1のブロックを削除する。同一ブロック高さで、コンセンサスを達成した1つのブロックのみが存在でき、即ち、同一ブロック高さでの複数ラウンドのコンセンサスにおいて、コンセンサスネットワークにおけるコンセンサス達成の数が数量閾値の以上である1ラウンドのブロックのみが存在できる。
【0093】
従って、コンセンサスネットワークにおける第3のブロックのコンセンサス達成結果の第2の数が数量閾値の以上であれば、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数が必然的に数量閾値の以下であり、即ち、コンセンサスネットワーク全体において第3のブロックのコンセンサスが成功した(即ち、コンセンサスを達成する)後、コンセンサスネットワーク全体において第1のブロックのコンセンサスが成功できず、これによって、ブロックコンセンサスの正確性を保証する。
【0094】
同じように、上記の第1の数が数量閾値の以上であれば、第2の数が数量閾値の以上であるはずがなく、この場合、コンセンサスネットワーク全体において第1のブロックのコンセンサスを達成し、第1のコンセンサスノードは第1のブロックに対してアップリンク処理を行って、キャッシュされる第3のブロックを削除する。
【0095】
さらに、本出願において同一ブロック高さには、提案・コンセンサスを行う複数のブロックが存在する可能性があり、即ち、同一ブロック高さで第1のコンセンサスノードは複数のブロックをキャッシュする可能性がある、当該複数のブロックに対応するブロック高さが同様であり、従って、以下は、次のブロック高さのブロックを取得した場合、キャッシュされる複数のブロックから当該次のブロック高さのブロックの親ブロックを決定する過程を記載する。
【0096】
本出願において、キャッシュされる各ブロックにブロック重みを追加し、以降、当該ブロック重みによって各ブロックの親ブロックを選択し、当該ブロック重みが大きいほど、現在ブロック高さで対応するブロックの信頼性が高く、当該ブロック重みが小さいほど、現在ブロック高さで対応するブロックの信頼性が低く、以下、第1のブロック及び第3のブロックを例として説明し、同一ブロック高さに多くのブロックが存在すると、2つのブロックの間の処理論理が類似し、以下の内容記載を参照すればよい。
【0097】
第1のコンセンサスノードは、キャッシュされる第1のブロックの子ブロックの数に基づいて第1のブロックのブロック重みを取得する。可能な実現形態において、第1のブロックのブロック重みは、第1のコンセンサスノードにキャッシュされる第1のブロックの子ブロックの数に等しい。
【0098】
同じように、第1のコンセンサスノードはさらに、キャッシュされる第3のブロックの子ブロックの数に基づいて、第3のブロックのブロック重みを取得する。可能な実現形態において、第3のブロックのブロック重みは、第1のコンセンサスノードにキャッシュされる第3のブロックの子ブロックの数に等しい。第1のブロックのブロック重み及び第3のブロックのブロック重みは、第4のブロックの親ブロックを決定し、第4のブロックに対応するブロック高さは第2のブロック高さであり、第2のブロック高さは第1のブロック高さの次のブロック高さである。
【0099】
何れか1つのブロックの子ブロックは、当該ブロックを親ブロックとするブロックa、ブロックaを親ブロックとするブロックb、ブロックbを親ブロックとするブロックc、ブロックcを親ブロックとするブロックd、……を含む。言い換えると、何れか1つのブロックの子ブロックは、継続的に上(即ち前へ)へ親ブロックを遡って、且つ当該何れか1つのブロックを遡ることができる全てのブロックを含む。
【0100】
何れか1つのブロックの兄弟ブロックは、対応するブロック高さが当該何れか1つのブロックに対応するブロック高さと同様な全てのブロックであり、第1のブロック及び第3のブロックは何れも第1のブロック高さに対応するため、第1のブロックと第3のブロックとは互いの兄弟ブロックである。
【0101】
以上から分かるように、あるブロックのブロック重みが大きいほど、以降、より多くのブロックは当該ブロックを根拠としてコンセンサスを行うことを表し、逆に、あるブロックのブロック重みが小さいほど、以降、より少ないブロックは当該ブロックを根拠としてコンセンサスを行うことを表し、従って、ブロック重みが大きいほど、現在ブロック高さで対応するブロックの信頼性がより高いことを表す。
【0102】
さらに、第1のノードはコンセンサス対象となる第4のブロックを取得でき、当該第4のブロックに対応するブロック高さは第2のブロック高さとも呼ばれ、第2のブロック高さは第1のブロック高さの次のブロック高さである。例えば、第1のブロック高さは99であれば、第2のブロック高さは100である。可能な実現形態において、当該第4のブロックは上記の第2のブロックであってもよいし、又は第2のブロックの兄弟ブロックであってもよい。
【0103】
従って、キャッシュされる第1のブロック高さに対応するブロックは第1のブロック及び第3のブロックのみを含み、且つ第1のブロックのブロック重みが第3のブロックのブロック重みより大きいと、第1のコンセンサスノードは第1のブロックを第4のブロックの親ブロックとして、第4のブロックに対してコンセンサス処理を行うことができる。
【0104】
キャッシュされる第1のブロック高さに対応するブロックは第1のブロック及び第3のブロックのみを含み、且つ第1のブロックのブロック重みが第3のブロックのブロック重みより小さいと、第1のコンセンサスノードは第3のブロックを第4のブロックの親ブロックとして、第4のブロックに対してコンセンサス処理を行うことができる。
【0105】
キャッシュされる第1のブロック高さに対応するブロックは第1のブロック及び第3のブロックのみを含み、且つ第1のブロックのブロック重みが第3のブロックのブロック重みに等しいと、第1のコンセンサスノードは第4のブロックの親ブロックとして第1のブロック及び第3のブロックから何れか1つのブロックを選択して、第4のブロックに対してコンセンサス処理を行うことができる。
【0106】
同じように、第1のコンセンサスノードは、第4のブロックに対するコンセンサス処理を完成して、当該第4のブロックに対するコンセンサス結果(コンセンサス達成結果、又はコンセンサス未達成結果)を取得した場合、第4のブロックをキャッシュしてもよい。
【0107】
第1のコンセンサスノードは同じように、コンセンサスネットワークにおける第4のブロックのコンセンサス達成結果の数を取得できる。ここで、コンセンサスネットワークにおいて1つのブロックのコンセンサスを達成した場合、当該ブロックが上へ遡ることができる全ての親ブロックのコンセンサスを何れも達成でき、従って、コンセンサスネットワークにおける第4のブロックのコンセンサス達成結果の数が数量閾値の以上であり、且つ第4のブロックの親ブロックが第1のブロックであれば、コンセンサスネットワーク全体において第4のブロック及び第1のブロックのコンセンサスを達成できることを表し、第1のコンセンサスノードはキャッシュされる第3のブロック及び第4のブロックの兄弟ブロックを削除して、キャッシュされる第1のブロック及び第4のブロックに対してアップリンク処理を行う。
【0108】
ネットワーク遅延のため、コンセンサスネットワークから、数が数量閾値の以上である第4のブロックのコンセンサス達成結果を取得したが、数が数量閾値の以上である第1のブロックのコンセンサス達成結果を取得していないと、第1のコンセンサスノードは、コンセンサスネットワークから数が数量閾値の以上である第1のブロックのコンセンサス達成結果を取得した後、第1のブロック及び第4のブロックに対してアップリンク処理を行う。
【0109】
同じように、コンセンサスネットワークにおける第4のブロックのコンセンサス達成結果の数が数量閾値の以上であり、且つ第4のブロックの親ブロックが第3のブロックであると決定した場合、コンセンサスネットワーク全体において第4のブロック及び第3のブロックのコンセンサスを達成でき、第1のコンセンサスノードはキャッシュされる第1のブロック及び第4のブロックの兄弟ブロックを削除して、キャッシュされる第3のブロック及び第4のブロックに対してアップリンク処理を行う。
【0110】
言い換えると、コンセンサスネットワーク全体においてキャッシュされるあるブロックのコンセンサスを達成した場合、当該ブロック及び当該ブロックによって前(即ち、上へ、例えば、対応するブロック高さが当該ブロックに対応するブロック高さより小さいブロック)へ遡ることができる全ての親ブロックに対してアップリンク処理を行って、当該ブロックの兄弟ブロック、及び当該ブロックによって前へ遡ることができる全ての親ブロックの兄弟ブロックを削除する。
【0111】
さらに、第4のブロックの親ブロックを決定し、第4のブロックに対するコンセンサス処理を完成して、第4のブロックをキャッシュした後、第1のコンセンサスノードはさらに、キャッシュされる第4のブロック及び第4のブロックの親ブロックに基づいて第1のブロックのブロック重み、第3のブロックのブロック重み及び第4のブロックのブロック重みを更新する。
【0112】
第4のブロックの親ブロックが第1のブロックであれば、第1のブロックのブロック重みの更新は、第1のブロックの既存のブロック重みに1を加算し、第4のブロックの親ブロックが第3のブロックであれば、第3のブロックのブロック重みの更新は、第3のブロックの既存のブロック重みに1を加算し、最後にキャッシュされる第4のブロックに追加されるブロック重みは0に等しい。
【0113】
図8を参照し、
図8は本出願が提供するブロック重み設置のシナリオ概略図である。
図8に示すように、第1のコンセンサスノードにはブロック1、ブロック2、ブロック22、ブロック3、ブロック33、ブロック4、ブロック44及びブロック444がキャッシュされる。
【0114】
なお、ブロック2及びブロック22は兄弟ブロックに属し、ブロック2に対応するブロック高さとブロック22に対応するブロック高さとは同様であり、ブロック2及びブロック22は同一ブロック高さの異なるroundで提案・コンセンサスを行うブロックであり、異なるコンセンサスノードからコンセンサスを発起する。
【0115】
同じように、ブロック3及びブロック33は兄弟ブロックに属し、ブロック3に対応するブロック高さとブロック33に対応するブロック高さとは同様であり、ブロック3及びブロック33は同一ブロック高さの異なるroundで提案・コンセンサスを行うブロックであり、異なるコンセンサスノードからコンセンサスを発起する。
【0116】
さらに、ブロック4、ブロック44及びブロック444は兄弟ブロックに属し、ブロック4に対応するブロック高さと、ブロック44に対応するブロック高さと、ブロック444に対応するブロック高さとは同様であり、ブロック4、ブロック44及びブロック444は同一ブロック高さの異なるroundで提案・コンセンサスを行うブロックであり、異なるコンセンサスノードからコンセンサスを発起する。
【0117】
何れか1つのブロック矢印が指す別のブロックは、当該何れか1つのブロックの親ブロックであり、ブロック2及びブロック22の親ブロックは何れもブロック1であり、ブロック3の親ブロックはブロック2であり、ブロック33の親ブロックはブロック22であり、ブロック4、ブロック44及びブロック444の親ブロックは何れもブロック3である。
【0118】
ここで、ブロック重みをβと記す。ブロック1の子ブロックはブロック2、ブロック22、ブロック3、ブロック33、ブロック4、ブロック44及びブロック444という7つの子ブロックを含み、従って、ブロック1のブロック重みは7であり、ブロック2の子ブロックはブロック3、ブロック4、ブロック44及びブロック444という4つの子ブロックを含み、従って、ブロック2のブロック重みは4であり、ブロック22の子ブロックはブロック33という1つの子ブロックを含み、従って、ブロック22のブロック重みは1であり、ブロック3の子ブロックはブロック4、ブロック44及びブロック444という3つの子ブロックを含み、従って、ブロック3のブロック重みは3であり、ブロック33の次には子ブロックが接続されず、従って、ブロック33のブロック重みは0であり、同じように、ブロック4、ブロック44及びブロック444の次には子ブロックが接続されず、従って、ブロック4、ブロック44及びブロック444のブロック重みは何れも0である。
【0119】
この際、ブロック高さがブロック3及びブロック33に対応するブロック高さと同様な1つのブロックxを追加する必要があると、当該ブロックxはブロック2を親ブロックとすることができるため、ブロック2のブロック重み4がブロック22のブロック重み1より大きい。
【0120】
図9を参照し、
図9は本出願が提供するブロック処理のシナリオ概略図である。
図9に示すように、ここで、現在、第1のコンセンサスノードにはブロック1、ブロック2、ブロック22、ブロック3、ブロック33、ブロック4、ブロック44、ブロック444、ブロック5、ブロック55及びブロック555がキャッシュされている。ブロック2とブロック22とは互いの兄弟ブロックであり、ブロック3とブロック33とは互いの兄弟ブロックであり、ブロック4、ブロック44及びブロック444は互いの兄弟ブロックであり、ブロック5、ブロック55及びブロック555は互いの兄弟ブロックである。
【0121】
第1のコンセンサスノードがコンセンサスネットワークで取得した、ブロック444に対するコンセンサス達成結果の数が数量閾値(即ち、2f+1)の以上であれば、コンセンサスネットワーク全体においてブロック444のコンセンサスを達成し、さらに、コンセンサスネットワークにおいてブロック444によって前へ遡ることができる全ての親ブロック(ブロック3、ブロック2及びブロック1を含む)のコンセンサスを何れも達成できることを確認し、従って、第1のコンセンサスノードは、前へ遡ることができる全ての親ブロックの兄弟ブロック(ブロック22及びブロック33を含む)を削除して、ブロック444の兄弟ブロック(ブロック4及びブロック44を含む)を削除し、さらに、ブロック444の兄弟ブロックの子ブロック(ブロック5及びブロック55を含む)を削除する。現在、コンセンサスネットワークにおけるブロック555の最終のコンセンサス結果が決定されていないため、キャッシュされるブロック555を保留し、即ち、ブロック555を引き続いてキャッシュする。
【0122】
本出願において、キャッシュされる各ブロックに対応するブロック重みを追加し、以降、キャッシュされる各ブロックに追加されたブロック重みによって、新たにキャッシュされるブロックの親ブロックを正確に位置決めして、ネットワーク全体のブロックに対するコンセンサスの正確性を向上する。
【0123】
図10を参照し、
図10は本出願が提供するブロックコンセンサスのフロー概略図である。
図10に示すように、当該過程は何れか1つのコンセンサスノードによって実行される。
1.新たなブロック高さ(例えば、ブロック高さHであり、Hは正の整数である)に入って、コンセンサスラウンド(即ち、round)は0(roundは0からカウントしてもよいし、又は1からカウントしてもよい)である。
2.コンセンサスノードは現在、自体が主ノードであるかどうかを判定し、NOであれば、ステップ3を実行し、YESであれば、ステップ4を実行する。
3.コンセンサスノードはタイマーを追加して、提案メッセージを受信するように待つ(当該提案メッセージにおいて、コンセンサスを必要とするブロックは現在主ノードから発起される)。
4.コンセンサスノードは現在、コンセンサスを必要とするブロックを生成する。
5. 本ラウンドのコンセンサスノードセットとして、コンセンサスノードは周辺ノードをランダムに選択し、当該コンセンサスノードセットは当該コンセンサスノードに対応するコンセンサスサブネットワークにおけるコンセンサスノードを含み、提案(生成されたブロックを含む)を生成する。
6.コンセンサスノードは生成された提案を選択された周辺ノードにブロードキャストする。
7.コンセンサスノードは周辺ノードとともに、現在提案されているブロックに対するコンセンサスを完成する。
8.コンセンサスノードは、自体の、現在コンセンサスのブロックに対するコンセンサスを達成したかどうかを判定する。NOであれば、ステップ9を実行し、YESであれば、ステップ10を実行する。
9.コンセンサスノードは現在ブロック高さの新たなコンセンサスroundに入って、ステップ2を改めて実行する。
10.コンセンサスノードは現在ブロックをキャッシュして、メモリにおける当該ブロックの親ブロック(前へ遡ることができる全ての親ブロックを含む)の重み値(即ち、ブロック重み)を更新する。
11.コンセンサスノードはタイマーを起動させ、付加的プロトコル(付加的フローを実行するプロトコルであり、当該付加的フローは、ネットワーク全体で自体の、ブロックに対する認可をブロードキャストする)によって、自体の、当該ブロックに対する認可、即ち、自体の、ブロックに対するコンセンサス達成結果をブロードキャストする。
12.コンセンサスノードは、キャッシュに当該ブロックに対する他のノード署名があるかどうかを判定し、即ち、コンセンサスネットワークにおける他のコンセンサスノードの、当該ブロックに対するノード署名(即ち、コンセンサス達成結果)を取得したかどうかを判定し、YESであれば、ステップ13を実行し、NOであれば、ネットワーク全体において現在ブロックのコンセンサスが失敗したことを表し、ステップ1を改めて実行する。
13.コンセンサスノードは、取得したブロックに対するノード署名を何れもブロック拡張データに追加すれば、当該ブロック拡張データは当該ブロックに関連付けられるノード署名セットを含み、ブロックに対するノード署名を何れもブロック拡張データに追加することは、ブロックに対するノード署名を何れも当該ブロックに関連付けられるノード署名セットに追加することである。
14.コンセンサスノードは、ブロック拡張データにおいて当該ブロックのノード署名の数が2f+1の以上であるかどうかを判定し、YESであれば、ステップ15を実行し、NOであれば、ネットワーク全体において現在ブロックのコンセンサスが失敗したことを表し、ステップ1を改めて実行する。
15.コンセンサスノードは当該ブロックを書き込んで、即ち、ブロックをロカール台帳に書き込んで、当該ブロックに対してアップリンク処理を行う。
【0124】
図11を参照し、
図11は本出願が提供する付加方法のフロー概略図である。
図11に示すように、当該フローは何れか1つのコンセンサスノードによって実行される。
1.コンセンサスノードは付加的プロトコルによって他のコンセンサスノードがブロードキャストした投票メッセージを受信し、当該投票メッセージは他のコンセンサスノードが現在ブロック(例えば、第1のブロック)のコンセンサス達成結果に対してシーケンス化を行うことで取得される。従って、コンセンサスノードは当該投票メッセージに対して逆シーケンス化を行って、付加的メッセージオブジェクトを取得し、当該付加的メッセージオブジェクトは、他のコンセンサスノードの、現在ブロックに対するノード署名(即ち、コンセンサス達成結果)を含み、当該付加的メッセージオブジェクトには、コンセンサスノードに対応するノードIDが付けられ、当該付加的メッセージオブジェクトは、当該ノードIDが所属するコンセンサスノードが、現在ブロックに対するコンセンサスを達成して取得したことを表す。
2.コンセンサスノードは、現在取得した付加的メッセージオブジェクトが受信されたかどうかを判定し、YESであれば、ステップ3を実行し、NOであれば、ステップ4を実行する。
3.コンセンサスノードは、現在取得した付加的メッセージオブジェクトを廃棄する。
4.コンセンサスノードは、現在取得した付加的メッセージオブジェクトの合法性を検証し、例えば、対応するコンセンサスノードが秘密キーによって現在ブロックに対して署名することで取得されたかどうかを検証し(コンセンサスノードに対応する公開キーによって検証する)、不合法であれば、ステップ3を実行し、合法であれば、ステップ5を実行する。
5.コンセンサスノードは、当該付加的メッセージオブジェクトに対応するブロックが書き込まれたかどうかを判定し(例えば、アップリンクされたかどうか)、YESであれば、ステップ3を実行し、NOであれば、ステップ6を実行する。
6.コンセンサスノードはさらに、当該付加的メッセージオブジェクトに対応するブロック自体が処理されたかどうかを判定し(例えば、コンセンサスが完成された後、キャッシュされたかどうか)、NOであれば、ステップ7を実行し、YESであれば、ステップ8を実行する。
7.コンセンサスノードは、まず、当該付加的メッセージオブジェクトをキャッシュし、以降、当該付加的メッセージオブジェクトに対応するブロックに対するコンセンサスを完成した後、使用する。
8.コンセンサスノードは当該付加的メッセージオブジェクトにおけるノード署名を対応するブロックのブロック拡張データに追加する(即ち、対応するブロックに関連付けられるノード署名セットに追加する)。
9.コンセンサスノードは、ブロック拡張データにおいて当該ブロックのノード署名の数が2f+1以上であるかどうかを判定し、YESであれば、ステップ10を実行し、NOであれば、ネットワーク全体において現在ブロックのコンセンサスが失敗したことを表し、現在ブロックの処理を終了させる。
10.コンセンサスノードは当該ブロックを書き込み、即ち、ブロックをロカール台帳に書き込んで、つまり、当該ブロックに対してアップリンク処理を行う。
【0125】
図12を参照し、
図12は本出願が提供するコンセンサスネットワークのデータ処理装置の構造概略図である。当該コンセンサスネットワークのデータ処理装置はコンピュータ機器で実行されるコンピュータプログラム(プログラムコードを含む)であってもよく、例えば、当該コンセンサスネットワークのデータ処理装置はアプリケーションソフトウェアであり、本出願の実施例が提供する方法の相応的なステップを実行する。コンセンサスネットワークはN個のコンセンサスノードを含み、Nは正の整数であり、N個のコンセンサスノードは第1の主ノードを含み、当該装置は第1のコンセンサスノードに適用され、第1のコンセンサスノードはN個のコンセンサスノードのうちの、第1の主ノードを除いた何れか1つであり、
図12に示すように、当該コンセンサスネットワークのデータ処理装置1は、
第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信する受信モジュール11であって、第2のコンセンサスサブネットワークはN個のコンセンサスノードのうちのK個のコンセンサスノードを含み、第1のコンセンサスノード及び第2のコンセンサスノードは何れも第2のコンセンサスサブネットワークに属し、KはNより小さい正の整数であり、第2のコンセンサスノードはN個のコンセンサスノードのうちの、第1のコンセンサスノードを除いた何れか1つであり、第1のブロックのコンセンサス過程は第1の主ノードから発起される受信モジュール11と、
第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行って、第1のコンセンサスノードの、前記第1のブロックに対するコンセンサス結果を取得し、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果がコンセンサス達成であると決定した場合、第1のコンセンサスサブネットワークにおいて第1のブロックに対して引き続いてコンセンサス処理を実行するように、第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて第1のブロックをブロードキャストするコンセンサスモジュール12であって、第1のコンセンサスサブネットワークはN個のコンセンサスノードのうちのM個のコンセンサスノードを含み、MはNより小さい正の整数であるコンセンサスモジュール12と、
コンセンサスネットワークにおいて第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果をブロードキャストして、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数を取得し、第1の数に基づいて第1のブロックに対してアップリンク処理を行う取得モジュール13と、を含む。
【0126】
可能な実現形態において、K個のコンセンサスノードにおける第1の残りのコンセンサスノードは、第2のコンセンサスノードがN個のコンセンサスノードから選択した、第2のコンセンサスノードに連結するK-1個のコンセンサスノードであり、第1の残りのコンセンサスノードは、K個のコンセンサスノードのうちの、第2のコンセンサスノードを除いたコンセンサスノードであり、M個のコンセンサスノードにおける第2の残りのコンセンサスノードは、第1のコンセンサスノードがN個のコンセンサスノードから選択した、第1のコンセンサスノードに連結するM-1個のコンセンサスノードであり、第2の残りのコンセンサスノードはM個のコンセンサスノードのうちの、第1のコンセンサスノードを除いたコンセンサスノードであり、
第2のコンセンサスノードが第1の主ノードであれば、第2のコンセンサスノードがブロードキャストする第1のブロックは第2のコンセンサスノードが生成したものであり、第2のコンセンサスノードが第1の主ノードではなければ、第2のコンセンサスノードがブロードキャストする第1のブロックは、N個のコンセンサスノードのうちの第3のコンセンサスノードが第2のコンセンサスノードへブロードキャストすることで取得したものであり、第3のコンセンサスノードはN個のコンセンサスノードのうちの、第1のコンセンサスノード及び第2のコンセンサスノードを除いた何れか1つのコンセンサスノードである。
【0127】
可能な実現形態において、コンセンサスネットワークにおける何れか1つのコンセンサスノードの、何れか1つのブロックに対するコンセンサス達成結果は、何れか1つのコンセンサスノードの、何れか1つのブロックに対するノード署名であり、第1のブロックは関連するノード署名セットを有し、ノード署名セットは第1のコンセンサスノードの、第1のブロックに対するノード署名を含み、
取得モジュール13が、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数を取得して、第1の数に基づいて第1のブロックに対してアップリンク処理を行う方式は、
コンセンサスネットワークにおいて第1のブロックに対してコンセンサス処理を実行する過程で、第3の残りのコンセンサスノードがブロードキャストした、第1のブロックに対するノード署名を受信して、受信したノード署名をノード署名セットに追加するステップであって、第3の残りのコンセンサスノードはN個のコンセンサスノードのうちの、第1のコンセンサスノードを除いたコンセンサスノードであるステップと、
ノード署名セットにおけるノード署名の第1の数を取得し、第1の数が数量閾値の以上であれば、第1のブロックに対してアップリンク処理を行うステップと、を含む。
【0128】
可能な実現形態において、第2のコンセンサスノードが第1の主ノードであれば、K個のコンセンサスノードは第2の主ノードを含み、第2の主ノードはN個のコンセンサスノードにおける、第1の主ノードに対して主ノード交替を行うための次の主ノードであり、
第2の主ノードは、第2のコンセンサスノードの、第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した後、コンセンサスネットワークにおいて第2のブロックに対するコンセンサス過程を発起し、第2のブロックに対応するブロック高さは、第1のブロックに対応するブロック高さの次のブロック高さである。
【0129】
可能な実現形態において、第1のブロックに対応するブロック高さは第1のブロック高さであり、上記の装置1はさらに、
コンセンサス対象となる第3のブロックを取得し、第3のブロックは、所定時間帯内で第1のブロックを取得していない場合、第3の主ノードが発起したコンセンサスを必要とするブロックであり、第3のブロックに対応するブロック高さは第1のブロック高さであり、第3の主ノードはN個のコンセンサスノードにおける、第1の主ノードの次の主ノード交替を行うためのコンセンサスノードであり、
第3のブロックに対してコンセンサス処理を行って、
第3のブロックに対するコンセンサス処理を完成した場合、第3のブロックをキャッシュする。
【0130】
可能な実現形態において、上記の装置1はさらに、
第1のブロックに対するコンセンサス処理を完成した場合、第1のブロックをキャッシュし、
上記の装置1はさらに、
コンセンサスネットワークにおける第3のブロックのコンセンサス達成結果の第2の数を取得して、且つ第2の数が数量閾値の以上であれば、第3のブロックに対してアップリンク処理を行って、キャッシュされる第1のブロックを削除する。
【0131】
可能な実現形態において、取得モジュール13が第1の数に基づいて第1のブロックに対してアップリンク処理を行う方式は、
第1の数が数量閾値の以上であれば、第1のブロックに対してアップリンク処理を行って、キャッシュされる第3のブロックを削除するステップを含む。
【0132】
可能な実現形態において、上記の装置1はさらに、
キャッシュされる第1のブロックの子ブロックの数に基づいて第1のブロックのブロック重みを決定し、
キャッシュされる第3のブロックの子ブロックの数に基づいて第3のブロックのブロック重みを決定し、
何れか1つのブロックの兄弟ブロックは、対応するブロック高さが何れか1つのブロックに対応するブロック高さと同様なブロックであり、第1のブロックと第3のブロックとは互いの兄弟ブロックであり、
第1のブロックのブロック重み及び第3のブロックのブロック重みは第4のブロックの親ブロックを決定するためのものであり、第4のブロックに対応するブロック高さは第2のブロック高さであり、第2のブロック高さは第1のブロック高さの次のブロック高さである。
【0133】
可能な実現形態において、上記の装置1はさらに、
コンセンサス対象となる第4のブロックを取得し、
第1のブロックのブロック重みが第3のブロックのブロック重みより大きければ、第1のブロックを第4のブロックの親ブロックとして、第4のブロックに対してコンセンサス処理を行って、
第1のブロックのブロック重みが第3のブロックのブロック重みより小さければ、第3のブロックを第4のブロックの親ブロックとして、第4のブロックに対してコンセンサス処理を行う。
【0134】
可能な実現形態において、コンセンサスネットワークにおける第4のブロックのコンセンサス達成結果の数が数量閾値の以上であり、且つ第4のブロックの親ブロックが第1のブロックであると決定した場合、キャッシュされる第3のブロック及び第4のブロックの兄弟ブロックを削除して、第1のブロック及第4のブロックに対してアップリンク処理を行い、
コンセンサスネットワークにおける第4のブロックのコンセンサス達成結果の数が数量閾値の以上であり、且つ第4のブロックの親ブロックが第3のブロックであると決定した場合、キャッシュされる第1のブロック及び第4のブロックの兄弟ブロックを削除して、第3のブロック及第4のブロックに対してアップリンク処理を行い、
何れか1つのブロックの兄弟ブロックは、ブロック高さが何れか1つのブロックに対応するブロック高さと同様なブロックであり、第1のブロックと第3のブロックとは互いの兄弟ブロックである。
【0135】
可能な実現形態において、上記の装置1はさらに、
第4のブロックに対するコンセンサス処理を完成した場合、第4のブロックをキャッシュし、
キャッシュされる第4のブロック及び第4のブロックの親ブロックに基づいて、第1のブロックのブロック重み、第3のブロックのブロック重み及び第4のブロックのブロック重みを更新する。
【0136】
本出願の1つの実施例によれば、
図3のコンセンサスネットワークのデータ処理方法に係るステップは、
図12のコンセンサスネットワークのデータ処理装置1における各モジュールによって実行されてもよい。例えば、
図3のS101は、
図12の受信モジュール11によって実行され、
図3のS102は、
図12のコンセンサスモジュール12によって実行され、
図3のS103は、
図12の取得モジュール13によって実行される。
【0137】
本出願において、コンセンサスネットワークはN個のコンセンサスノードを含み、コンセンサスネットワークにおける第1の主ノードは第1のブロックのコンセンサス過程を発起し、第1のブロックのコンセンサス過程で、第1のコンセンサスノードは、第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信する。第2のコンセンサスサブネットワークはN個のコンセンサスノードのうちのK個のコンセンサスノードを含み、第1のコンセンサスノード及び第2のコンセンサスノードは何れも第2のコンセンサスサブネットワークに属し、第2のコンセンサスノードはN個のコンセンサスノードのうちの第1のコンセンサスノードを除いた何れか1つであり、KはNより小さい正の整数であり、つまり、第2のコンセンサスサブネットワークはコンセンサスネットワークより小規模ネットワークである。第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行って、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果を取得し、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した場合、第1のコンセンサスサブネットワークにおいて第1のブロックに対して引き続いてコンセンサス処理を実行するように、第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて第1のブロックをブロードキャストする。さらに、第1のコンセンサスサブネットワークはN個のコンセンサスノードのうちのM個のコンセンサスノードを含み、MはNより小さい正の整数であり、つまり、第1のコンセンサスサブネットワークもコンセンサスネットワークより小規模ネットワークである。これによって、大規模コンセンサスネットワークにおけるコンセンサスを、いくつかの小規模コンセンサスサブネットワークにおけるコンセンサスに変換する。コンセンサスネットワークにおいて第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果をブロードキャストして、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数を取得し、第1の数に基づいて第1のブロックに対してアップリンク処理を行う。このように、本出願が提出する方法によれば、各コンセンサスノードは何れもコンセンサスネットワークの小さなネットワーク内(例えば第1のコンセンサスサブネットワーク及び第2のコンセンサスサブネットワーク)においてブロックをブロードキャストでき、さらに、小さなネットワーク内においてもブロックに対してコンセンサス処理を行って、ブロックに対してコンセンサスを行う時の通信量を減少して、コンセンサスネットワークの、ブロックに対するコンセンサス効率及び性能を向上する。
【0138】
本出願の1つの実施例によれば、
図12のコンセンサスネットワークのデータ処理装置1における各モジュールはそれぞれ又は全部的に1つ又はいくつかのユニットとして合併されて構成され、又はそのうちのある(いくつかの)ユニットはさらに、機能でより小さい複数のサブユニットとして区画され、同様な操作を実現して、本出願の実施例の技術効果の実現に影響しない。上記のモジュールは論理機能に基づいて区画され、実際適用において、1つのモジュールの機能は複数のユニットによって実現され、又は複数のモジュールの機能は1つのユニットによって実現される。本出願の他の実施例において、コンセンサスネットワークのデータ処理装置1は他のユニットを含んでもよく、実際適用において、これらの機能は他のユニットが協力するように実現されてもよいし、複数のユニットが協調するように実現されてもよい。
【0139】
本出願の1つの実施例によれば、中央処理ユニット(CPU)、ランダムアクセス記憶媒体(RAM)、読み取り専用記憶媒体(ROM)などの処理素子及び記憶素子を含む、例えばコンピュータの汎用コンピュータ機器で、
図3の相応的な方法が係る各ステップを実行できるコンピュータプログラム(プログラムコードを含む)を実行させることで、
図12のコンセンサスネットワークのデータ処理装置1を構成して、本出願の実施例のコンセンサスネットワークのデータ処理方法を実現する。上記のコンピュータプログラムは、例えばコンピュータ可読記録媒体に記載され、コンピュータ可読記録媒体によって上記のコンピューティング機器に搭載されて実行する。
【0140】
図13を参照し、
図13は本出願が提供するコンピュータ機器の構造概略図である。
図13に示すように、コンピュータ機器1000はプロセッサー1001、ネットワークインターフェース1004及びメモリ1005を含み、また、コンピュータ機器1000はユーザーインターフェース1003及び少なくとも1つの通信バス1002をさらに含む。通信バス1002はこれらのコンポーネントの間の接続通信を実現する。ユーザーインターフェース1003はディスプレイ(Display)、キーボード(Keyboard)を含み、好ましくは、ユーザーインターフェース1003は標準的な有線インターフェース、無線インターフェースをさらに含む。ネットワークインターフェース1004は標準的な有線インターフェース、無線インターフェース(例えばWI―FIインターフェース)を含む。メモリ1005は高速RAMメモリであってもよいし、不揮発性メモリ(non―volatile
memory)、例えば少なくとも1つの磁気ディスクメモリであってもよい。メモリ1005はさらに、上記プロセッサー1001から離れた少なくとも1つの記憶装置であってもよい。
図13に示すように、コンピュータ記憶媒体としてのメモリ1005には、オペレーティングシステム、ネットワーク通信モジュール、ユーザーインターフェースモジュール及び機器制御アプリケーションプログラムが含まれる。
【0141】
図13のコンピュータ機器1000において、ネットワークインターフェース1004はネットワーク通信機能を提供でき、ユーザーインターフェース1003は主に、ユーザーに入力を提供するインターフェースであり、プロセッサー1001はメモリ1005に記憶される機器制御アプリケーションプログラムを呼び出すことで、上記実施例が提供する方法を実現し、例えば、
第2のコンセンサスサブネットワークにおいて第2のコンセンサスノードがブロードキャストした第1のブロックを受信するステップであって、第2のコンセンサスサブネットワークはN個のコンセンサスノードのうちのK個のコンセンサスノードを含み、第1のコンセンサスノード及び第2のコンセンサスノードは何れも第2のコンセンサスサブネットワークに属し、KはNより小さい正の整数であり、第2のコンセンサスノードはN個のコンセンサスノードのうちの、第1のコンセンサスノードを除いた何れか1つであり、第1のブロックのコンセンサス過程は第1の主ノードから発起されるステップと、
第2のコンセンサスサブネットワークにおいて第1のブロックに対してコンセンサス処理を行って、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果を取得し、第1のコンセンサスノードの、第1のブロックに対するコンセンサス結果がコンセンサス達成結果であると決定した場合、第1のコンセンサスサブネットワークにおいて第1のブロックに対して引き続いてコンセンサス処理を実行するように、第1のコンセンサスノードが所属する第1のコンセンサスサブネットワークにおいて第1のブロックをブロードキャストするステップであって、第1のコンセンサスサブネットワークはN個のコンセンサスノードのうちのM個のコンセンサスノードを含み、MはNより小さい正の整数であるステップと、
コンセンサスネットワークにおいて第1のコンセンサスノードの、第1のブロックに対するコンセンサス達成結果をブロードキャストして、コンセンサスネットワークにおける第1のブロックのコンセンサス達成結果の第1の数を取得し、第1の数に基づいて第1のブロックに対してアップリンク処理を行うステップと、を実現する。
【0142】
ここで、本出願の実施例に記載のコンピュータ機器1000は、上記
図3に対応する実施例における、上記のコンセンサスネットワークのデータ処理方法の記載を実行してもよいし、上記
図12に対応する実施例における、上記のコンセンサスネットワークのデータ処理装置1の記載を実行してもよく、ここで、贅言しない。また、同一方法による有益な効果記載について、贅言しない。
【0143】
また、本出願はコンピュータ可読記憶媒体をさらに提供し、コンピュータ可読記憶媒体には、以上のコンセンサスネットワークのデータ処理装置1が実行するコンピュータプログラムが記憶され、コンピュータプログラムはプログラム指令を含み、プロセッサーがプログラム指令を実行すると、以上の
図3に対応する実施例における、コンセンサスネットワークのデータ処理方法の記載を実行できるため、ここで贅言しない。また、同一方法による有益な効果記載について、贅言しない。本出願が係るコンピュータ記憶媒体の実施例において開示されていない技術細部について、本出願の方法実施例の記載を参照すればよい。
【0144】
例示として、上記のプログラム指令は1つのコンピュータ機器に配置されて実行されるか、又は1つの箇所の複数のコンピュータ機器に配置されて実行され、或いは複数の箇所に分布されて通信ネットワークを介して互いに連結する複数のコンピュータ機器に配置されて実行され、複数の箇所に分布されて通信ネットワークを介して互いに連結する複数のコンピュータ機器はブロックチェーンネットワークを構成できる。
【0145】
上記のコンピュータ可読記憶媒体は、上記何れか1つの実施例が提供するコンセンサスネットワークのデータ処理装置、又は上記のコンピュータ機器の内部記憶ユニット、例えば、コンピュータ機器のハードディスク又はメモリである。当該コンピュータ可読記憶媒体は当該コンピュータ機器の外部記憶機器、例えば当該コンピュータ機器に配置される外付けハードディスク、スマートメディア(smart
media card、SMC)、セキュアデジタル(secure digital、 SD)カード、フラッシュメモリカード(flash card)などである。さらに、当該コンピュータ可読記憶媒体は当該コンピュータ機器の内部記憶ユニットを含むとともに、外部記憶機器も含む。当該コンピュータ可読記憶媒体は当該コンピュータプログラム及び当該コンピュータ機器の必要な他のプログラム、データを記憶する。当該コンピュータ可読記憶媒体はさらに、出力済み又は出力対象となるデータを一時的に記憶する。
【0146】
本出願はコンピュータプログラム製品を提供し、当該コンピュータプログラム製品はコンピュータプログラムを含み、当該コンピュータプログラムはコンピュータ可読記憶媒体に記憶される。コンピュータ機器のプロセッサーはコンピュータ可読記憶媒体から当該コンピュータプログラムを読み取り、プロセッサーは当該コンピュータプログラムを実行することで、当該コンピュータ機器に、以上の
図3に対応する実施例における、上記のコンセンサスネットワークのデータ処理方法の記載を実行させ、ここで贅言しない。また、同一方法による有益な効果記載について、贅言しない。本出願が係るコンピュータ可読記憶媒体の実施例において、開示されていない技術細部について、本出願の方法実施例の記載を参照すればよい。
【0147】
本出願の実施例の明細書、請求項及び図面における「第1」、「第2」などの用語は特定の順序を記載するのではなく、異なるオブジェクトを区別するためのものである。また、用語である「含む」及びこれらの変形は、非排他的包含を含むように意図される。例えば、一連のステップ又はユニットを含む過程、方法、装置、製品又は機器は、挙げられたステップ又はモジュールに限定されず、好ましくは、挙げられていないステップ又はモジュールをさらに含み、又は、好ましくは、これらの過程、方法、装置、製品又は機器の固有の他のステップ、ユニットをさらに含む。
【0148】
当業者であれば意識できるように、本明細書が開示した実施例を結合して記載された各例示的なユニット及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア又は両者の結合で実現され、ハードウェアとソフトウェアとの交換可能性を明らかに説明するために、上記の説明において機能に従って各例示的な構造及びステップを一般的に記載した。これらの機能がハードウェアの形態、それともソフトウェアの形態で実行されるかということは、技術案の特定適用及び設計制約条件に依存する。当業者は、各特定の適用に対して異なる方法を使用して記載される機能を実現できるが、このような実現は本出願の範囲を超えない。
【0149】
本出願の実施例が提供する方法及び関連装置は、本出願の実施例が提供する方法フローチャート及び/又は構造概略図を参照して記載され、具体的に、コンピュータプログラム指令によって方法フローチャート及び/又は構造概略図の各フロー及び/又はブロック、並びにフローチャート及び/又はブロック図におけるフロー及び/又はブロックの結合を実現する。これらのコンピュータプログラム指令は汎用コンピュータ、専用コンピュータ、埋め込みプロセッサー又は他のプログラマブルデータ処理機器のプロセッサーに提供され、1つのマシンを生成し、これによって、コンピュータ又は他のプログラマブルデータ処理機器のプロセッサーによって実行される指令は、フローチャートの1つ又は複数のフロー及び/又は構造概略図の1つ又は複数のブロックが指定する機能を実現するための装置を生成する。これらのコンピュータプログラム指令は特定の方式で動作させるように、コンピュータ又は他のプログラマブルデータ処理機器をガイドできるコンピュータ可読メモリに記憶されることで、当該コンピュータ可読メモリに記憶される指令は、指令装置を含む製品を生成し、当該指令装置はフローチャートの1つ又は複数のフロー及び/又は構造概略図の1つ又は複数のブロックが指定する機能を実現する。これらのコンピュータプログラム指令は、コンピュータ又は他のプログラマブルデータ処理機器に搭載されることで、コンピュータ又は他のプログラマブル機器で一連の操作ステップを実行してコンピュータが実現する処理を生成し、さらに、コンピュータ又は他のプログラマブル機器で実行される指令は、フローチャートの1つ又は複数のフロー及び/又は構造概略図の1つ又は複数のブロックが指定する機能を実現するステップを提供する。
【0150】
以上は本出願の好適な実施例に過ぎないため、本出願の請求項の範囲を限定できず、従って、本出願の請求項による等価変更は何れも本出願の範囲に属している。
【国際調査報告】