(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-08
(45)【発行日】2022-09-16
(54)【発明の名称】ブロックチェーンコンセンサス方法、アカウンティングノードおよびノード
(51)【国際特許分類】
G06Q 20/38 20120101AFI20220909BHJP
【FI】
G06Q20/38
(21)【出願番号】P 2020561790
(86)(22)【出願日】2019-01-25
(86)【国際出願番号】 CN2019073232
(87)【国際公開番号】W WO2019210714
(87)【国際公開日】2019-11-07
【審査請求日】2020-11-02
(31)【優先権主張番号】201810414927.8
(32)【優先日】2018-05-03
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】513278998
【氏名又は名称】中国▲銀▼▲聯▼股▲ふん▼有限公司
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】韋 ▲張▼勇
(72)【発明者】
【氏名】王 立
(72)【発明者】
【氏名】▲陸▼ ▲クン▼彪
【審査官】田中 寛人
(56)【参考文献】
【文献】中国特許出願公開第107231299(CN,A)
【文献】中国特許出願公開第107124403(CN,A)
【文献】米国特許出願公開第2018/0101560(US,A1)
【文献】国際公開第2017/148245(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q10/00-99/00
G09C1/00-5/00
H04K1/00-3/00
H04L9/00-9/40
(57)【特許請求の範囲】
【請求項1】
アカウンティングノードは、ブロックを生成し、前記アカウンティングノードの検証情報をN個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストするステップであって、前記N個のアカウンティングノードはM個の選挙ノードによってブロードキャス
トされ
た選挙要求で運ばれるコインエイジ情報に従って決定され、Mは1以上であり、Nは1以上であり、MはN以上である前記ブロードキャストするステップと、
前記アカウンティングノードは、前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証するステップであって、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第2のアカウンティングノードの準備情報が第1の所定条件を満たすときに、第1のアカウンティングノードによって生成され、およびブロードキャストされ、前記第2のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第2のアカウンティングノードによって生成され、およびブロードキャストされ、前記第1のアカウンティングノードおよび前記第2のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかである前記検証するステップと、
受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第2の所定条件を満たすときに、前記アカウンティングノードは、前記ブロックをブロックチェーンに追加するステップとを備え
、
前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って前記N個のアカウンティングノードを決定することは、
任意のノードについて、前記ノードは、M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定し、
前記ノードは、前記N個の選挙ノードを含む選挙結果情報を生成してブロードキャストし、
他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定することを含むことを特徴とするブロックチェーンコンセンサス方法。
【請求項2】
前記アカウンティングノードは、前記他のアカウンティングノード
によってブロードキャスト
された準備情報を受信および検証し、
前記アカウンティングノードは、受信された前記他のアカウンティングノードの準備情報が前記第1の所定条件を満たしたときに、前記アカウンティングノードの確認情報を生成してブロードキャストすることを特徴とする請求項1に記載のブロックチェーンコンセンサス方法。
【請求項3】
前記第2のアカウンティングノードは、前記第1のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信し、
前記第2のアカウンティングノードは、受信された確認情報が前記第2の所定条件を満たすときに、前記ブロックをブロックチェーンに追加することを特徴とする請求項2に記載のブロックチェーンコンセンサス方法。
【請求項4】
前記アカウンティングノードは、受信された前記確認情報が検証に失敗した場合、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第1の障害ノード除去要求をブロードキャストし、
前記アカウンティングノードは、第2の障害ノード除去要求を受信し、前記第2の障害ノード除去要求を検証し、前記第2の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第1の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされ、
受信された前記第2の障害ノード除去要求が第4の所定条件を満たすときに、前記アカウンティングノードは、アカウンティングノード再選択要求をブロードキャストすることにより、非アカウンティングノードが前記アカウンティングノード再選択要求を受信した後、アカウンティングノード競争に参加するための選挙要求をブロードキャストすることを特徴とする請求項1に記載のブロックチェーンコンセンサス方法。
【請求項5】
前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記N個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記N個のアカウンティングノードのうちのアカウンティングノードであることを特徴とする請求項1から
4のいずれか一項に記載のブロックチェーンコンセンサス方法。
【請求項6】
ブロックを生成するように構成された第1のブロードキャストモジュールと、アカウンティングノードの検証情報をN個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストし、前記N個のアカウンティングノードはM個の選挙ノードによってブロードキャス
トされ
た選挙要求で運ばれるコインエイジ情報に従って決定され、Mは1以上であり、Nは1以上であり、MはN以上であり、
前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証するように構成された検証モジュールであって、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第2のアカウンティングノードの準備情報が第1の所定条件を満たすときに、第1のアカウンティングノードによって生成され、およびブロードキャストされ、前記第2のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第2のアカウンティングノードによって生成され、およびブロードキャストされ、前記第1のアカウンティングノードおよび前記第2のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかである前記検証モジュールと
受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第2の所定条件を満たしたときに前記ブロックをブロックチェーンに追加するように構成された第1の処理モジュールとを備え
、
前記N個のアカウンティングノードがM個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って決定されることは、
M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定し、
前記N個の選挙ノードを含む選挙結果情報を生成してブロードキャストし、
他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定されることを含むことを特徴とするアカウンティングノード。
【請求項7】
前記検証モジュールは、前記他のアカウンティングノード
によってブロードキャスト
された準備情報を受信および検証するようにさらに構成され、
前記第1の処理モジュールは、受信された前記他のアカウンティングノードの準備情報が前記第1の所定条件を満たしたときに、前記アカウンティングノードの確認情報を生成してブロードキャストするようにさらに構成されることを特徴とする請求項
6に記載のアカウンティングノード。
【請求項8】
前記第1のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信するように構成された第1の受信モジュールをさらに備え、
前記
第1の処理モジュールは、受信された確認情報が前記第2の所定条件を満たすときに、前記ブロックをブロックチェーンに追加するようにさらに構成されることを特徴とする請求項
7に記載のアカウンティングノード。
【請求項9】
前記第1の処理モジュールは、受信された前記確認情報が検証に失敗した場合、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第1の障害ノード除去要求をブロードキャストし、
前記検証モジュールは、第2の障害ノード除去要求を受信し、前記第2の障害ノード除去要求を検証し、前記第2の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第1の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされ、
前記第1のブロードキャストモジュールは、受信された前記第2の障害ノード除去要求が第4の所定条件を満たすときにアカウンティングノードの再選択要求をブロードキャストし、その結果、非アカウンティングノードは
、アカウンティングノード再選択要求を受信した後にアカウンティングノード競争に参加するための選挙要求をブロードキャストすることを特徴とする請求項
6に記載のアカウンティングノード。
【請求項10】
前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記N個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記N個のアカウンティングノードのうちのアカウンティングノードであることを特徴とする請求項
6から
9のいずれか一項に記載のアカウンティングノード。
【請求項11】
M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定するように構成された第2の受信モジュールと、
前記N個の選挙ノードを含む選挙結果情報を生成およびブロードキャストするように構成された第2のブロードキャストモジュールと、
他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定するように構成された第2の処理モジュールとを備え
、
前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って前記N個のアカウンティングノードを決定することは、
任意のノードについて、前記ノードは、M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定し、
前記ノードは、前記N個の選挙ノードを含む選挙結果情報を生成してブロードキャストし、
他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定することを含むことを特徴とするノード。
【請求項12】
少なくとも1つの処理ユニットおよび少なくとも1つの記憶ユニットを含み、ここで、前記記憶ユニットには、コンピュータプログラムが記憶され、前記
コンピュータプログラムが前記処理ユニットによって実行されるとき、前記処理ユニットに請求項1から
5のいずれか一項に記載された前記方法のステップを実行させることを特徴とする端末デバイス。
【請求項13】
端末デバイスによって実行可能なコンピュータプログラムを格納する、コンピュータ可読媒体であって、前記
コンピュータプログラムは、前記端末デバイス上で実行されるときに、前記端末デバイスに、請求項1から
5のいずれか一項に記載の方法を実行させる
ことを特徴とするコンピュータ可読媒体。
【請求項14】
プロセッサ、メモリ、送受信機、バスインターフェースを含み、プロセッサ、メモリと送受信機は、バスを介してお互いに接続され、
前記送受信機は、ブロックを生成し、アカウンティングノードの検証情報をN個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストし、前記N個のアカウンティングノードはM個の選挙ノードによってブロードキャス
トされ
た選挙要求で運ばれるコインエイジ情報に従って決定され、Mは1以上であり、Nは1以上であり、MはN以上であり、
前記プロセッサは、前記メモリ内のプログラムを読み取って次の方法を実行するように構成され、前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証し、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第2のアカウンティングノードの準備情報が第1の所定条件を満たすときに、第1のアカウンティングノードによって生成され、およびブロードキャストされ、前記第2のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第2のアカウンティングノードによって生成され、およびブロードキャストされ、前記第1のアカウンティングノードおよび前記第2のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかであり、受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第2の所定条件を満たしたときに前記ブロックをブロックチェーンに追加
し、
前記メモリは、1つ以上の実行可能プログラムを格納し、操作を実行するときに前記プロセッサが使用するデータを格納するように構成され
、
前記N個のアカウンティングノードがM個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って決定されることは、
M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定し、
前記N個の選挙ノードを含む選挙結果情報を生成してブロードキャストし、
他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定されることを含むことを特徴とする電子デバイス。
【請求項15】
前記プロセッサは、前記他のアカウンティングノード
によってブロードキャスト
された準備情報を受信して検証し、受信された前記他のアカウンティングノードの準備情報が前記第1の所定条件を満たすときに、前記アカウンティングノードの確認情報を生成してブロードキャストすることを特徴とする請求項
14に記載の電子デバイス。
【請求項16】
前記送受信機は、前記第1のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信するように構成され、
前記プロセッサは、受信された確認情報が前記第2の所定条件を満たすときに、前記ブロックをブロックチェーンに追加するように構成されたことを特徴とする請求項
15に記載の電子デバイス。
【請求項17】
前記プロセッサは、
受信された前記確認情報が検証に合格されていないと判断するときに、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第1の障害ノード除去要求をブロードキャストし、第2の障害ノード除去要求を受信し、前記第2の障害ノード除去要求を検証し、前記第2の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第1の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされ、
前記送受信機は、受信された前記第2の障害ノード除去要求が第4の所定条件を満たすときに、アカウンティングノードの再選択要求をブロードキャストする。その結果、非アカウンティングノードは
、アカウンティングノード再選択要求を受信した後にアカウンティングノード競争に参加するための選挙要求をブロードキャストすることを特徴とする請求項
14に記載の電子デバイス。
【請求項18】
前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記N個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記N個のアカウンティングノードのうちのアカウンティングノードであることを特徴とする請求項
14から
17のいずれか一項に記載の電子デバイス。
【請求項19】
プロセッサ、メモリ、送受信機、およびバスインターフェースを含み、ここで、プロセッサ、メモリ、送受信機およびバスインターフェースは、バスによってお互いに接続され、
前記送受信機は、M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定し、選挙結果情報を生成およびブロードキャストし、前記選挙結果情報は、前記N個の選挙ノードを含み、
前記プロセッサは、他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定
し、
前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードから前記N個のアカウンティングノードを決定することは、
M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定し、
前記N個の選挙ノードを含む選挙結果情報を生成してブロードキャストし、
他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定することを含むことを特徴とする電子デバイス。
【請求項20】
コンピュータに請求項1から
5のいずれか一項に記載の方法を実行させるコンピュータ命令を記憶する、非一時的なコンピュータ可読記憶媒体。
【請求項21】
非一時的なコンピュータ可読記憶媒体に記憶されたコンピュータプログラムを含むコンピュータプログラム製品であって、前記コンピュータプログラムは、コンピュータによって実行されると、コンピュータに請求項1から
5のいずれか一項に記載の方法を実行させるコンピュータ命令を含むコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願の相互参照〕
本出願は、2018年05月03日に中国特許局に提出し、出願番号が201810414927.8であり、発明名称が「ブロックチェーンコンセンサス方法、アカウンティングノードおよびノード」との中国特許出願を基礎とする優先権を主張し、その開示の総てをここに取り込む。
【0002】
本発明は、通信技術分野に関し、特にブロックチェーンコンセンサス方法、アカウンティングノードおよびノードに関する。
【背景技術】
【0003】
従来技術では、ブロックチェーンは、プルーフオブワーク(Proof of Work,PoW)コンセンサスメカニズムを使用し、マイニングプロセスは、コンセンサスメカニズムの中核である。マイニングは、カウンティングの権利のために戦うプロセスである。カウンティングの権利を取得するノードは、受信したすべての法的トランザクションをブロックにパッケージ化し、ブロックをメインチェーンに接続してビットコインの報酬を取得する。ビットコインネットワーク内のすべてのノードがカウンティングを競うことができるが、最終的には、プルーフオブワークの問題を最初に解決する1つのノードだけがカウンティングを完了することができる。PoWは、カウンティングの権利を争うためにノードが一連の計算を実行する必要があるため、このプロセスは大量の計算リソースと電力を消費する必要があり、また、比較的長い計算時間を必要とするため、より高い効率を必要とする多くのプロジェクトを満たすことができない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施形態は、ブロックチェーンのコンセンサス効率を改善するために、ブロックチェーンコンセンサス方法、アカウンティングノード、およびノードを提供する。
【課題を解決するための手段】
【0005】
第1の態様では、本発明の実施形態は、ブロックチェーンコンセンサス方法を提供し、当該ブロックチェーンコンセンサス方法は、アカウンティングノードは、ブロックを生成し、前記アカウンティングノードの検証情報をN個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストし、前記N個のアカウンティングノードはM個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って決定され、Mは1以上であり、Nは1以上であり、MはN以上であり、前記アカウンティングノードは、前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証し、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第2のアカウンティングノードの準備情報が第1の所定条件を満たすときに、第1のアカウンティングノードによって生成され、およびブロードキャストされ、前記第2のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第2のアカウンティングノードによって生成され、およびブロードキャストされ、前記第1のアカウンティングノードおよび前記第2のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかであり、受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第2の所定条件を満たすときに、前記アカウンティングノードは、前記ブロックをブロックチェーンに追加する。
【0006】
プルーフオブワーク問題を解決することによってアカウンティングノードを決定する代わりに、選挙ノードのコインエイジに従って選挙ノードから複数のアカウンティングノードを選択するので、アカウンティングノードを決定する効率が改善される。一方、リソース消費は削減される。第二に、アカウンティングノードは、ブロックを生成し、ここで、ブロックを生成するアカウンティングノードがアカウンティングノードのコインエイジに従って決定され、コインエイジの最大のアカウンティングノードがブロックを生成するアカウンティングノードとして決定され得る。アカウンティングノードは、ブロックを生成するアカウンティングノードとしてコインエイジに応じてランダムに選択される。アカウンティングノードの情報とブロックの情報はブロードキャストされ、ブロードキャストの情報が他のアカウンティングノードによって検証された後にのみローカルブロックチェーンにブロックを追加できるため、ブロックチェーンネットワークの一貫性とセキュリティが確保される。さらに、アカウンティングノードはブロックを生成した直後にコンセンサスを作成でき、コンセンサスプロセスはプルーフオブワークの問題を解決する必要がないため、コンセンサスの効率が向上する。
【0007】
可能な設計では、前記アカウンティングノードは、前記他のアカウンティングノードブロードキャストの準備情報を受信および検証し、前記アカウンティングノードは、受信された前記他のアカウンティングノードの準備情報が前記第1の所定条件を満たしたときに、前記アカウンティングノードの確認情報を生成してブロードキャストする。
【0008】
可能な設計では、前記第2のアカウンティングノードは、前記第1のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信し、前記第2のアカウンティングノードは、受信された確認情報が前記第2の所定条件を満たすときに、前記ブロックをブロックチェーンに追加する。
【0009】
可能な設計では、任意のノードについて、前記ノードは、M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定し、前記ノードは、選挙結果情報を生成してブロードキャストし、前記選挙結果情報は、前記N個の選挙ノードを含み、他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定する。選挙ノードが選挙要求をブロードキャストした後、ブロックチェーンネットワーク内の他のノードは、受信された選挙要求のコインエイジに従って選挙ノードをソートし、次にソート結果をブロードキャストする。受信されたソート結果が第3の所定条件を満たす場合、どのノードもソート結果の選挙ノードをアカウンティングノードとして決定し、プロセス全体でプルーフオブワークの問題を解決する必要がないため、アカウンティングの決定効率が向上する。一方、リソース消費は削減される。
【0010】
可能な設計では、前記アカウンティングノードは、受信された前記確認情報が検証に失敗した場合、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第1の障害ノード除去要求をブロードキャストし、前記アカウンティングノードは、第2の障害ノード除去要求を受信し、前記第2の障害ノード除去要求を検証し、前記第2の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第1の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされ、受信された前記第2の障害ノード除去要求が第4の所定条件を満たすときに、前記アカウンティングノードは、アカウンティングノード再選択要求をブロードキャストすることにより、非アカウンティングノードが前記アカウンティングノード再選択要求を受信した後、アカウンティングノード競争に参加するための選挙要求をブロードキャストする。アカウンティングノードが障害ノードを検出すると、障害ノード除去要求をブロードキャストし、障害ノード除去要求が他のアカウンティングノードによって承認された後にアカウンティングノードの再選択要求をブロードキャストする。これにより、障害ノードのブロックチェーンネットワークへの干渉が回避される。ブロックチェーンネットワークの安定性を向上させる。
【0011】
可能な設計では、前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記N個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記N個のアカウンティングノードのうちのアカウンティングノードである。より多くの権利と利益を持つノードはシステムセキュリティを維持するためのより多くの動機を持っているので、より多くの権利と利益を持つノードはシステムセキュリティを維持メインアカウンティングノードおよびバックアップアカウンティングノードがコインエイジ情報に従ってN個のアカウンティングノードから決定された後、メインアカウンティングノードがコンセンサスプロセスを開始する。システムのセキュリティをさらに向上させることができる。
【0012】
第2の態様では、本発明の実施形態によって提供されるアカウンティングノードは、ブロックを生成するように構成された第1のブロードキャストモジュールであって、前記アカウンティングノードの検証情報をN個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストし、前記N個のアカウンティングノードはM個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って決定され、Mは1以上であり、Nは1以上であり、MはN以上である第1のブロードキャストモジュールと、前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証するように構成された検証モジュールであって、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第2のアカウンティングノードの準備情報が第1の所定条件を満たすときに、第1のアカウンティングノードによって生成され、およびブロードキャストされ、前記第2のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第2のアカウンティングノードによって生成され、およびブロードキャストされ、前記第1のアカウンティングノードおよび前記第2のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかである前記検証モジュールと、受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第2の所定条件を満たしたときに前記ブロックをブロックチェーンに追加するように構成された第1の処理モジュールと、を備える。
【0013】
可能な設計では、前記検証モジュールは、前記他のアカウンティングノードブロードキャストの準備情報を受信および検証するようにさらに構成され、前記第1の処理モジュールは、受信された前記他のアカウンティングノードの準備情報が前記第1の所定条件を満たしたときに、前記アカウンティングノードの確認情報を生成してブロードキャストするようにさらに構成される。
【0014】
可能な設計では、前記第1のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信するように構成された第1の受信モジュールがさらに備えられ、前記処理モジュールは、受信された確認情報が前記第2の所定条件を満たすときに、前記ブロックをブロックチェーンに追加するようにさらに構成される。
【0015】
可能な設計では、前記第1の処理モジュールは、受信された前記確認情報が検証に失敗した場合、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第1の障害ノード除去要求をブロードキャストし、前記検証モジュールは、第2の障害ノード除去要求を受信し、前記第2の障害ノード除去要求を検証し、前記第2の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第1の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされ、前記第1のブロードキャストモジュールは、受信された前記第2の障害ノード除去要求が第4の所定条件を満たすときにアカウンティングノードの再選択要求をブロードキャストする。その結果、非アカウンティングノードは、前記アカウンティングノード再選択要求を受信した後にアカウンティングノード競争に参加するための選挙要求をブロードキャストする。
【0016】
可能な設計では、前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記N個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記N個のアカウンティングノードのうちのアカウンティングノードである。
【0017】
第3の態様では、本発明の実施形態によって提供されるノードは、
M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定するように構成された第2の受信モジュールと、前記N個の選挙ノードを含む選挙結果情報并ブロードキャストするように構成された第2のブロードキャストモジュールと、他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定するように構成された第2の処理モジュールと、を備える。
【0018】
第4の態様では、本発明の実施形態によって提供される端末デバイスは、少なくとも1つの処理ユニットおよび少なくとも1つの記憶ユニットを含み、ここで、前記記憶ユニットには、コンピュータプログラムが記憶され、前記プログラムが前記処理ユニットによって実行されるとき、前記処理ユニットに上記の任意の方法のステップを実行させる。
【0019】
第5の態様では、本発明の実施形態によって提供される電子デバイス,プロセッサ、メモリ、送受信機、およびバスインターフェースを含み、ここで、プロセッサ、メモリ、送受信機およびバスインターフェースは、バスによってお互いに接続され、
前記プロセッサは、前記メモリ内のプログラムを読み取って次の方法を実行するように構成され、ブロックを生成し、送受信機を介してN個のアカウンティングノードのうちの他のアカウンティングノードをに前記アカウンティングノードの検証情報をブロードキャストし、前記N個のアカウンティングノードはM個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って決定され、Mは1以上であり、Nは1以上であり、MはN以上であり、送受信機を介して前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証し、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第2のアカウンティングノードの準備情報が第1の所定条件を満たすときに、第1のアカウンティングノードによって生成され、およびブロードキャストされ、前記第2のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第2のアカウンティングノードによって生成され、およびブロードキャストされ、前記第1のアカウンティングノードおよび前記第2のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかであり、送受信機を介して受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第2の所定条件を満たしたときに前記ブロックをブロックチェーンに追加する。
【0020】
前記メモリは、1つ以上の実行可能プログラムを格納し、操作を実行するときに前記プロセッサが使用するデータを格納するように構成される。
【0021】
第6の態様では、本発明の実施形態によって提供される電子デバイスは、プロセッサ、メモリ、送受信機、およびバスインターフェースを含み、ここで、プロセッサ、メモリ、送受信機およびバスインターフェースは、バスによってお互いに接続され、
前記プロセッサは、前記メモリ内のプログラムを読み取って次の方法を実行するように構成され、送受信機を介して受信された他のノードからの選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定し、送受信機は、プロセッサの制御下で、M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定し、選挙結果情報を生成およびブロードキャストし、前記選挙結果情報は、前記N個の選挙ノードを含み、
前記メモリは、1つ以上の実行可能プログラムを格納し、操作を実行するときに前記プロセッサが使用するデータを格納するように構成される。
【0022】
第7の態様では、本出願の実施形態は、命令を格納する非一時的なコンピュータ可読記憶媒体を提供し、これにより、コンピュータは、コンピュータ上で実行されるときに、第1の態様または第1の態様の任意の可能な実装において方法を実行する。
【0023】
第8の態様では、本出願の実施形態は、命令を含むコンピュータプログラム製品を提供し、これにより、コンピュータは、コンピュータ上で実行されるときに、第1の態様または第1の態様の任意の可能な実装において方法を実行する。
【発明の効果】
【0024】
本発明の実施形態において、プルーフオブワーク問題を解決することによってアカウンティングノードを決定する代わりに、選挙ノードのコインエイジに従って選挙ノードから複数のアカウンティングノードを選択するので、アカウンティングの決定効率が向上する。一方、リソース消費は削減される。つぎに、アカウンティングノードによってブロックが生成され、アカウンティングノードの情報とブロックの情報はブロードキャストされ、ブロードキャストの情報が他のアカウンティングノードによって検証された後にのみローカルブロックチェーンにブロックを追加できるため、ブロックチェーンネットワークの一貫性とセキュリティが確保される。さらに、アカウンティングノードはブロックを生成した直後にコンセンサスを作成でき、コンセンサスプロセスはプルーフオブワークの問題を解決する必要がないため、コンセンサスの効率が向上する。
【図面の簡単な説明】
【0025】
本発明に係る実施例や従来の技術方案をより明確に説明するために、以下に実施例を説明するために必要な図面をについて簡単に紹介する。無論、以下の説明における図面は本発明に係る実施例の一部であり、当業者は、創造性作業を行わないことを前提として、これらの図面に基づいて他の図面を得ることができる。
【0026】
【
図1】本発明の実施形態によって提供されるブロックチェーンコンセンサス方法の概略フローチャートである。
【
図2a】本発明の実施形態によって提供されるアカウンティングノードを決定する方法の概略フローチャートである。
【
図2b】本発明の実施形態によって提供されるアカウンティングノードを決定する方法の概略フローチャートである。
【
図3】本発明の実施形態によって提供される障害ノードを検出する方法の概略フローチャートである。
【
図4】本発明の実施形態によって提供されるアカウンティングノードの構造概略図である。
【
図5】本発明の実施形態によって提供されるノードの構造概略図である。
【
図6】本発明の実施形態によって提供される端末デバイスの構造概略図である。
【
図7】本発明の実施形態によって提供される電子デバイスの構造概略図である。
【
図8】本発明の実施形態によって提供される電子デバイスの構造概略図である。
【発明を実施するための形態】
【0027】
本発明に係る実施例の目的、技術案及びメリットをより明確にするため、以下、本発明に係る実施例の図面を参考しながら、本発明に係る実施例の技術案を明確かつ完全に説明する。説明した実施例は本発明の一部の実施例にすぎず、全部の実施例ではないのが明らかである。本発明の実施例に基づき、当業者は、創造性作業を行わない限りに得られた他の実施例は、全部本発明の保護範囲に属する。
【0028】
本発明に係る実施例の目的、技術案及びメリットをより明確にするため、以下、本発明に係る実施例の図面を参考しながら、本発明に係る実施例の技術案を明確かつ完全に説明する。説明した実施例は本発明の一部の実施例にすぎず、全部の実施例ではないのが明らかである。本発明の実施例に基づき、当業者は、創造性作業を行わない限りに得られた他の実施例は、全部本発明の保護範囲に属する。
【0029】
本明細書では、図面内の任意の数の要素は、限定ではなく例を目的としており、任意の命名は、区別のためにのみ使用され、限定的な意味を持たないことを理解されたい。理解のために、本発明の実施形態に含まれる名詞を以下に説明する。
【0030】
ブロックチェーン:狭義には、ブロックチェーンは、時系列で順次接続によってデータブロックを結合するリンクされたデータ構造であり、暗号化の方法で改ざんおよび偽造することができない分散型台帳である。広い意味で、ブロックチェーンテクノロジーは、ブロックチェーンデータ構造を使用してデータを検証および保存し、分散ノードコンセンサスアルゴリズムを使用してデータを生成および更新し、暗号化を使用してデータ送信とアクセスのセキュリティを保証し、自動化されたスクリプトコードで構成されるスマートコントラクトを使用して、データをプログラムおよび操作するする新しい分散インフラストラクチャおよび計算モードである。
【0031】
本発明の一実施形態は、ブロックチェーンコンセンサス方法のプロセスを提供する。この方法のプロセスは、アカウンティングノードによって実行することができ、
図1に示すように、以下のステップを含む。
【0032】
ステップS101:アカウンティングノードは、ブロックを生成し、N個のアカウンティングノードのうちの他のアカウンティングノードにアカウンティングノードの検証情報をブロードキャストする。
【0033】
具体的には、アカウンティングノードは、法的トランザクションをブロックにパッケージ化し、ブロックをブロックチェーンに接続するブロックチェーンネットワーク内のノードである。検証情報は、アカウンティングノードの情報とアカウンティングノードのブロックの情報を示すために使用される。具体的には、検証情報のフォーマットは次のとおりである。
【0034】
<PRE-PREPARE,p,Block,sig(M)>
ここで、pはブロックを生成するときにアカウンティングノードによって決定されるブロック番号であり、Blockはブロックの内容であり、sig(M)はアカウンティングノードのメッセージ署名である。
【0035】
N個のアカウンティングノードはM個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って決定され、Mは1以上であり、Nは1以上であり、MはN以上である。
【0036】
ステップS102:アカウンティングノードは、他のアカウンティングノードによって送信された確認応答情報を受信し、他のアカウンティングノードによってブロードキャストされた確認情報を検証する。
【0037】
ここで、他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第2のアカウンティングノードの準備情報が第1の所定条件を満たすときに、第1のアカウンティングノードによって生成され、およびブロードキャストされ、第2のアカウンティングノードの準備情報は、第2のアカウンティングノードがアカウンティングノードの検証情報を検証に合格したときに生成およびブロードキャストされ、第1のアカウンティングノードおよび第2のアカウンティングノードは他のアカウンティングノードのいずれかである。
【0038】
具体的には、第2のアカウンティングノードは、アカウンティングノードによってブロードキャストされた検証情報を受信した後、検証を実行する。具体的には、まずアカウンティングノードのメッセージ署名が正当であるかどうかを検証し、次に自身のブロックチェーンで生成される次のブロックのブロック番号が検証情報のブロック番号と一致するかどうかを検証し、次にブロック番号は同じであるが、アカウンティングノードのメッセージ署名が異る検証情報が受信されていないことを検証する。上記の3つの検証条件がすべて満たされている場合、つまり、アカウンティングノードのメッセージ署名が有効であり、自身のブロックチェーンで生成される次のブロックのブロック番号が検証情報のブロック番号と一致し、同じブロック番号であるがアカウンティングノードの異なるメッセージ署名を持つ検証情報が受信されていない場合、第2のアカウンティングノードが準備情報を生成する。準備情報のフォーマットは次のとおりである。
【0039】
<PREPARE,p,Block,sig(M)>
ここで、pはブロック番号、Blockはブロックの内容であり、sig(M)は第2のアカウンティングノードのメッセージ署名である。第2のアカウンティングノードは、準備情報を他のアカウンティングノードにブロードキャストする。上記の3つの検証条件の少なくとも1つが満たされない場合、つまり第2のアカウンティングノードが障害ノードである場合、第2のアカウンティングノードが削除され、アカウンティングノードが再選挙されて第2のアカウンティングノードが置き換えられる。
【0040】
第1のアカウンティングノードは、準備情報を受信した後、準備情報を検証する。具体的には、まず準備情報のメッセージ署名が正当かどうかを確認し、次に独自のブロックチェーンで生成される次のブロックのブロック番号が準備情報のブロック番号と一致しているかどうかを確認する。上記の2つの検証条件が満たされると、受信した準備情報がログに書き込まれ、受信した準備情報が第1の所定条件を満たしていると判断されると、ブロックの確認情報が生成されてブロードキャストされる。任意選択で、第1の所定条件は次のとおりである。検証された準備情報の量が、2fである第1のしきい値よりも大きい。ここで、fは障害ノードの数である。具体的には、確認情報のフォーマットは次のとおりである。
【0041】
<COMMIT,p,Block,sig(M)>
ここで、pはブロック番号、Blockはブロックの内容であり、sig(M) は第1のアカウンティングノードのメッセージ署名である。
【0042】
上記の2つの検証条件のうちの1つが満たされない場合、これは、第1のアカウンティングノードが故障ノードであることを示し、第1のアカウンティングノードが削除され、アカウンティングノードが再選されて第1のアカウンティングノードと置き換わる。
【0043】
任意選択で、アカウンティングノードは、他のアカウンティングノードによってブロードキャストされた準備情報を受信および検証し、他のアカウンティングノードの受信された準備情報が第1の設定条件を満たしたときに、アカウンティングノードの確認応答情報を生成およびブロードキャストする。特定の実施では、アカウンティングノードが受信した準備情報を検証して確認応答情報を生成するプロセスは、第1のアカウンティングノードが準備情報を確認して確認応答情報を生成するプロセスと同じであり、ここでは繰り返さない。
【0044】
ステップS103:アカウンティングノードは、受信された他のアカウンティングノードによってブロードキャストされた確認情報が第2の所定条件を満たしたときにブロックをブロックチェーンに追加する。
【0045】
他のアカウンティングノードによってブロードキャストされた確認応答情報を受信した後、アカウンティングノードは確認応答情報を検証する。具体的には、最初に確認応答情報のメッセージ署名が正当であるかどうかを確認し、次に自身のブロックチェーンで生成される次のブロックのブロック番号が確認応答情報のブロック番号と一致するかどうかを確認する。上記の2つの検証条件が満たされると、受信した確認応答情報がログに書き込まれます。受信した確認応答情報が第2の所定条件を満たすと判断されると、ブロックがブロックチェーンに追加される。任意選択で、第2の所定条件は次のとおりである:検証された確認応答情報が第2のしきい値(2f + 1)より大きい場合、fは障害ノードの数である。上記の2つの検証条件の少なくとも1つが満たされない場合、つまりアカウンティングノードが障害ノードである場合、アカウンティングノードが削除され、アカウンティングノードが再選挙されてこのアカウンティングノードが置き換えられる。
【0046】
任意選択で、第2のアカウンティングノードは、第1のアカウンティングノードによってブロードキャストされた確認応答情報およびアカウンティングノードによってブロードキャストされた確認応答情報を受信し、受信した確認応答情報が第2の設定条件を満たすときにブロックをブロックチェーンに追加する。特定の実施において、第2のアカウンティングノードが受信された確認応答情報に従ってブロックをブロックチェーンに追加するプロセスは、アカウンティングノードが受信された確認応答情報に従ってブロックチェーンにブロックを追加するプロセスと同じである。ここでは繰り返されない。
【0047】
プルーフオブワーク問題を解決することによってアカウンティングノードを決定する代わりに、選挙ノードのコインエイジに従って選挙ノードから複数のアカウンティングノードを選択するので、アカウンティングノードを決定する効率が改善される。一方、リソース消費は削減される。つぎに、アカウンティングノードによってブロックが生成され、アカウンティングノードの情報とブロックの情報はブロードキャストされ、ブロードキャストの情報が他のアカウンティングノードによって検証された後にのみローカルブロックチェーンにブロックを追加できるため、ブロックチェーンネットワークの一貫性とセキュリティが確保される。さらに、アカウンティングノードはブロックを生成した直後にコンセンサスを作成でき、コンセンサスプロセスはプルーフオブワークの問題を解決する必要がないため、コンセンサスの効率が向上する。
【0048】
N個のアカウンティングノードを決定する方法のプロセスを以下に具体的に紹介する。このプロセスは、ブロックチェーンネットワーク内の任意のノードによって実行され、
図2aに示すように、次の手順が含まれる。
【0049】
ステップS201:ノードは、M個の選挙ノードによってブロードキャストされた選挙要求を受信し、M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、M個の選挙ノードからN個の選挙ノードを決定する。
【0050】
ステップS202:ノードは、選挙結果情報を生成してブロードキャストし、選挙結果情報はN個の選挙ノードを含む。
【0051】
具体的には、ノードは、アカウンティングノードの選挙に参加する選挙ノードであり得るか、またはアカウンティングノードの選挙に参加しない通常のノードであり得る。選挙ノードは、アカウンティングノードの選挙に参加するときに選挙要求をブロードキャストする。
【0052】
<CANDIDATE,addr,txs,sig(M)>
ここで、addrは選挙ノードのアカウントアドレス、txsは選挙ノードによって新たに開始されたトランザクションであり、トランザクションには選挙ノードの秘密鍵署名があり、トランザクションの内容は未使用のトランザクション出力(Unspent Transaction Output, UTXO)でコインを自体に支払うことであり、トランザクション時間を更新し、コインの経過時間をクリアする。sig(M)は、選択ノードのメッセージ署名である。
【0053】
任意選択で、コインエイジは、コインの数と日数の積である。具体的には、ドのコインエイジは、トランザクションの内容と更新されたトランザクション時間に基づいて決定できる。たとえば、選挙ノードAは10コインを使用してアカウンティングノードの競争に参加し、選挙ノードAは2018年3月1日に10コインを取得し、トランザクションの内容はUTXOで10コインを自分自身に支払うことであり、トランザクション時間は現在の時刻、つまり2018年3月31日に更新される。トランザクションの内容とトランザクション時間から、選挙ノードAのコインエイジは300であることがわかる。
【0054】
選挙要求を受信した後、他のノードは、最初に、txs内のトランザクションの合法性をチェックし、具体的には、トランザクション開始者のコインがトランザクション要件を満たしているかどうか、およびトランザクション受信者のアカウントアドレスが合法であるかどうかなどをチェックする。txsでのトランザクションが違法である場合、当該選挙ノードの選択要求は無視され、当該選挙ノードをブラックリストに追加する。txsでのトランザクションが合法である場合、当該選挙ノードの選択要求が保存される。設定された時間になると、その期間中に受信した選挙要求がカウントされ、選挙ノードは選挙要求のコインエイジに従ってソートされる。たとえば、この期間中にM個の選挙ノードの選挙要求が検証された場合、M個の選挙ノードがコインエイジで高いものから低いものへとソートされ、上位N個の選挙ノードがリストに配置され、選挙結果情報は他のノードにブロードキャストされる。選挙結果情報のフォーマットは次のとおりである。
【0055】
<RESULT,list,sig(M)>
ここで、listはアカウンティングノードのアカウントアドレスのリストであり、sig(M)は選挙結果情報をブロードキャストするノードのメッセージ署名である。
【0056】
ステップS203:ノードは、他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、他のノードによってアカウンティングノードとして選挙結果情報内のN個の選挙ノードを決定する。
【0057】
選挙結果情報を受信した後、任意のノードは、最初に選挙結果情報のメッセージ署名を検証し、次に、受信した選挙結果情報のリストを比較する。ノードが受信した同じリストの選挙結果情報の量が第3のしきい値よりも大きい場合、リスト内の選挙ノードがアカウンティングノードとして決定される。
【0058】
リストによれば、ノードは、それがアカウンティングノードとして選挙されるかどうかを決定することができる。ノードがアカウンティングノードとして選挙されると、アカウンティングノードの確認応答情報をブロードキャストする。また、ノードがアカウンティングノードとして選挙されていない場合、アカウンティングノードの確認応答情報をブロードキャストしない。アカウンティングノード確認情報のフォーマットは次のとおりである。
【0059】
<CONFIRM,list,sig(M)>
ここで、listはアカウンティングノードのアカウントアドレスのリストであり、sig(M) はアカウンティングノードの確認応答情報をブロードキャストするノードのメッセージ署名である。
【0060】
リスト内のいずれかのアカウンティングノードが、リスト内の他のアカウンティングノードによってブロードキャストされた確認応答情報を受信し、受信した確認応答情報が一貫している場合、リスト内のノードは、正常に選挙されたアカウンティングノードであると判断され、アカウンティングノードは、リスト内のシーケンスに従って各自のシリアル番号を決定し、コインエイジをクリアできる。コインエイジに応じて選挙ノードから複数のアカウンティングノードが選択されるため、プルーフオブワーク問題を解決してアカウンティングノードを決定するのではなく、アカウンティングノードの決定効率が向上し、リソース消費が削減される。アカウンティングノードはコインエイジの経過時間に応じて決定され、アカウンティングノードの決定後にアカウンティングノードのコインエイジがクリアされるため、コインの多い人はブロックチェーンネットワークを制御できず、ブロックチェーンネットワークのセキュリティが向上する。
【0061】
本発明の実施形態をよりよく説明するために、本発明の実施形態によって提供されるアカウンティングノードを決定する方法の流れを、特定の実施シナリオを通して、
図2bに示すように、以下に説明する。フローには次のステップが含まれる。
【0062】
ステップS01:アカウンティングノードの選挙を開始する。
【0063】
ステップS02:ブロックチェーンネットワーク内の任意のノードについて、それが選挙に参加するかどうかを判断する。参加するは、ステップS03を実行する。それ以外の場合は、ステップS04を実行する。
【0064】
ステップS03:ノードは、選挙ノードになるための選挙要求をブロードキャストする。
【0065】
ステップS04:ノードは、選挙要求を受信し、選挙要求の合法性をチェックする。
【0066】
ステップS05:ノードは、設定された期間内に選挙要求が受信されたかどうかを判断する。その場合は、ステップS04を実行する。それ以外の場合は、ステップS06を実行する。
【0067】
ステップS06:ノードは、受信した選挙要求に従って、コインエイジによって選挙ノードを大きいものから小さいものへとソートし、上位m個の選挙ノードをアカウンティングノードとして取り、アカウンティングノードのアカウントアドレスをリストに入れる。
【0068】
ステップS07:リストを含む選挙結果情報をアカウンティングノードにブロードキャストする。
【0069】
ステップS08:アカウンティングノードは、同じリストで2n/3個の選挙結果情報を受信したかどうかを判断する。ここで、nはノードの総数である。受信した場合は、ステップS09を実行する。それ以外の場合は、ステップS103を実行する。
【0070】
ステップS09:アカウンティングノードは、アカウンティングノードの確認応答情報をブロードキャストする。
【0071】
ステップS10:アカウンティングノードは、アカウンティングノードによってブロードキャストされたすべてのアカウンティングノードの確認応答情報を受信したかどうか、およびアカウンティングノードの確認応答情報は一貫しているかどうかを判断し、受信して確認応答情報が一貫している場合は、ステップS11を実行する。それ以外の場合は、ステップS13を実行する。
【0072】
ステップS11:アカウンティングノードは、選挙要求においてトランザクション情報をブロードキャストする。
【0073】
ステップS12:アカウンティングノードの選択が終了する。
【0074】
ステップS13:アカウンティングノードは、アカウンティングノードの一貫性のない確認応答情報を有するアカウンティングノードを除去するために、アカウンティングノード除去要求をブロードキャストする。
【0075】
ステップS14:アカウンティングノードは、2m/3の正当なアカウンティングノード削除要求を受信した後、アカウンティングノード再選択要求をブロードキャストする。
【0076】
ステップS15:非アカウンティングノードは、2m/3のリーガルアカウンティングノード再選択要求を受信した後、ステップS02を実行する。
【0077】
N個のアカウンティングノードに障害のあるノードが存在する可能性があり、障害のあるノードはブロックチェーンネットワーク全体のセキュリティおよび安定性に影響を与えるため、アカウンティングノードの決定プロセスおよびコンセンサスプロセス中に障害のあるノードを検出および処理する必要がある。、これには、
図3に示すように、具体的には次のステップが含まれる。
【0078】
ステップS301:アカウンティングノードは、受信された確認情報が検証に失敗された場合、障害ノードとしてブロードキャスト確認情報のアカウンティングノードを決定し、第1の障害ノード除去要求をブロードキャストする。
【0079】
アカウンティングノードは、確認応答情報を検証することによって障害ノードを検出することに限定されず、検証情報および準備情報を検証することによって障害ノードを検出することも可能であり、または、アカウンティングノードの選択段階で、アカウンティングノードの受信確認情報に一貫性があるかどうか、およびリスト内の他のすべてのアカウンティングノードによってブロードキャストされたアカウンティングノードの確認応答情報が受信されたかどうかに応じて、障害のあるノード検出することも可能であることに留意されたい。
【0080】
以下では、説明のための例として、確認応答情報を検証することによって、障害のあるノードが検出される。アカウンティングノードは、他のアカウンティングノードによってブロードキャストされた確認応答情報を受信した後、他のアカウンティングノードによってブロードキャストされた確認応答情報を検証する。確認応答情報が検証に失敗された場合、確認応答情報を障害ノードとして決定し、第1の障害ノード除去要求をブロードキャストし、第1の障害ノード除去要求のフォーマットは次のとおりである。
【0081】
<REMOVE,addr,c,sig(M)>
ここで、addrは障害のあるノードのアカウントアドレス、cは障害のあるノードによってブロードキャストされる確認応答情報、sig(M)は、第1のアカウンティングノード除去要求をブロードキャストするアカウンティングノードのメッセージ署名である。
【0082】
ステップS302:アカウンティングノードは、第2の障害ノード除去要求を受信し、第2の障害ノード除去要求を検証する。
【0083】
第2の障害ノード除去要求は、受信した第1の障害ノード除去要求が検証され、第2の障害ノード除去要求のフォーマットが第1の障害ノードのフォーマットと同じであると判断した後、他のアカウンティングノードによって生成およびブロードキャストされる。具体的には、第1のアカウンティングノード除去要求を受信した後、他のアカウンティングノードが第1のアカウンティングノード除去要求の確認応答情報を検証し、検証が失敗した場合、受信した第1のアカウンティングノード除去要求内のメッセージ署名を自分のメッセージ署名として変更した後、第2のアカウンティングノード除去要求を生成してブロードキャストする。
【0084】
ステップS303:受信された第2の障害ノード除去要求が第4の所定条件を満たすときに、アカウンティングノードがアカウンティングノード再選択要求をブロードキャストし、その結果、非アカウンティングノードが参加するため、アカウンティングノードの再選択要求を受信した後選挙要求をブロードキャストする。
【0085】
アカウンティングノードは、同じ障害ノードの検証に成功した受信した第2のアカウンティングノード除去要求の数が第4のしきい値よりも大きい場合に、アカウンティングノード再選択要求を生成およびブロードキャストする。ここで、アカウンティングノード再選択要求のフォーマットは以下のとおりである。
【0086】
<REVOTE,n,sig(M)>
nは障害のあるノードのシリアル番号であり、sig(M)は、ブロードキャストアカウンティングノード再選択要求のアカウンティングノードのメッセージ署名である。
【0087】
非アカウンティングノードは、アカウンティングノード再選択要求を受信および検証し、検証に合格した受信したアカウンティングノード再選択要求の数が第5のしきい値よりも大きいと判断すると、選挙要求をブロードキャストし、非アカウンティングノードは、アカウンティングノードの競争に参加する。このとき、選挙されるアカウンティングノードの数は故障ノードの数であり、選挙されるアカウンティングノードのシリアル番号は、リスト内の故障ノードのシリアル番号に対応する。アカウンティングノードは、障害ノードを検出すると、障害ノードの除去要求をブロードキャストし、障害ノード除去要求が他のアカウンティングノードによって承認された後にアカウンティングノードの再選択要求をブロードキャストする。これにより、障害ノードのブロックチェーンネットワークへの干渉が回避される。ブロックチェーンネットワークの安定性を向上させる。
【0088】
任意選択で、N個のアカウンティングノードは、メインアカウンティングノードとバックアップアカウンティングノードに分割され、メインアカウンティングノードは、N個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードである。バックアップアカウンティングノードは、メインアカウンティングノードを除くN個のアカウンティングノードのうちのアカウンティングノードである。ブロックチェーンコンセンサスプロセスでは、メインアカウンティングノードがブロックを生成し、メインアカウンティングノードの検証情報をN個のアカウンティングノードのうちのバックアップアカウンティングノードにブロードキャストする。メインアカウンティングノードは、バックアップアカウンティングノードによってブロードキャストされた確認情報を受信および検証する。ここで、バックアップアカウンティングノードによってブロードキャストされた確認情報は、受信された第2のアカウンティングノードの準備情報が第1の所定条件を満たすときに、第1のアカウンティングノードによって生成され、およびブロードキャストされる。第2のアカウンティングノードの準備情報は、メインアカウンティングノードの検証情報を検証する際に第2のアカウンティングノードによって生成およびブロードキャストされる。第1のアカウンティングノードおよび第2のアカウンティングノードのそれぞれは、バックアップアカウンティングノードのいずれかである。より多くの権利と利益を持つアカウンティングノードはシステムセキュリティを維持するためのより多くの動機を持っているので、N個のアカウンティングノードの中で最大のコインエイジを持つアカウンティングノードがメインアカウンティングノードとして決定され、メインアカウンティングノードがコンセンサスプロセスを開始する。これにより、システムのセキュリティをさらに向上させることができる。
【0089】
同じ技術的思想に基づいて、本発明の実施形態は、アカウンティングノードを提供する。
図4に示されるように、アカウンティングノード400は、
ブロックを生成し、前記アカウンティングノードの検証情報をN個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストするように構成された第1のブロードキャストモジュール401であって、前記N個のアカウンティングノードはM個の選挙ノードによってブロードキャス
トされ
た選挙要求で運ばれるコインエイジ情報に従って決定され、Mは1以上であり、Nは1以上であり、MはN以上である前記第1のブロードキャストモジュール401と、
前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証するように構成された検証モジュール402であって、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第2のアカウンティングノードの準備情報が第1の所定条件を満たすときに、第1のアカウンティングノードによって生成され、およびブロードキャストされ、前記第2のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第2のアカウンティングノードによって生成され、およびブロードキャストされ、前記第1のアカウンティングノードおよび前記第2のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかである前記検証モジュール402と、
受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第2の所定条件を満たしたときに前記ブロックをブロックチェーンに追加するように構成された第1の処理モジュール403とを備える。
【0090】
可能な設計では、前記検証モジュール402は、他のアカウンティングノードによってブロードキャストされた準備情報を受信および検証するようにさらに構成される。
【0091】
前記第1の処理モジュール403は、他のアカウンティングノードの受信された準備情報が第1の所定条件を満たすときに、前記アカウンティングノードの確認情報を生成してブロードキャストする。
【0092】
可能な設計では、前記第1のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信するように構成された第1の受信モジュール404がさらに備えられる。
【0093】
前記第1の処理モジュール403は、受信された確認応答情報が第2の所定条件を満たすときに、前記ブロックをブロックチェーンに追加する。
【0094】
可能な設計では、前記第1の処理モジュール403は、受信された前記確認情報が検証に失敗したと判断した場合、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第1の障害ノード除去要求をブロードキャストしする。
【0095】
前記検証モジュール402は、第2の障害ノード除去要求を受信し、前記第2の障害ノード除去要求を検証し、前記第2の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第1の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされる。
【0096】
前記第1のブロードキャストモジュール401は、受信された前記第2の障害ノード除去要求が第4の所定条件を満たすときに、アカウンティングノードの再選択要求をブロードキャストする。その結果、非アカウンティングノードは、前記アカウンティングノード再選択要求を受信した後にアカウンティングノード競争に参加するための選挙要求をブロードキャストする。
【0097】
可能な設計では、前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記N個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記N個のアカウンティングノードのうちのアカウンティングノードである。
【0098】
同じ技術的思想に基づいて、本発明の実施形態はノードを提供する。
図5に示されるように、ノード500は、
M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定するように構成された第2の受信モジュール501と、
N個の選挙ノードを含む選挙結果情報を生成およびブロードキャストするように構成された第2のブロードキャストモジュール502と、
他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定するように構成された第2の処理モジュール503とを備える。
【0099】
本発明の一実施形態は、少なくとも1つの処理ユニットおよび少なくとも1つの記憶ユニットを含む端末デバイスを提供し、ここで、前記記憶ユニットには、コンピュータプログラムが記憶され、前記プログラムが前記処理ユニットによって実行されるとき、前記処理ユニットにブロックチェーンコンセンサス方法のステップを実行させる。本発明の実施形態に記載された端末デバイスのハードウェア構造の概略図である
図6に示されるように、端末デバイスは、デスクトップコンピュータ、ポータブルコンピュータ、スマートフォン、タブレットコンピュータであり得る。具体的には、端末デバイスは、メモリ601、プロセッサ602、およびメモリに格納されたコンピュータプログラムを含み得、前記プロセッサ602は、前記プログラムを実行するときに、上記の実施形態における任意のブロックチェーンコンセンサス方法のステップを実施する。ここで、メモリ601は、読み取り専用メモリ(ROM)およびランダムアクセスメモリ(RAM)を含み得、メモリ601に記憶されたプログラム命令およびデータをプロセッサ602に提供する。
【0100】
さらに、本出願の実施形態に記載される端末デバイスは、入力装置603、出力装置604などをさらに含むことができる。入力装置603は、キーボード、マウス、タッチスクリーンなどを含み得る。出力装置604は、液晶ディスプレイ(Liquid Crystal Display,LDC)、陰極線管(CRT)、タッチスクリーンなどなどのディスプレイデバイスを含み得る。メモリ601、プロセッサ602、入力デバイス603、および出力デバイス604は、バスを介して、または他の方法で接続することができる。バス接続は、
図6の例として取り上げられる。プロセッサ602は、メモリ601に格納されたプログラム命令を呼び出し、得られたプログラム命令に従って、上記の実施形態で提供されるブロックチェーンコンセンサス方法を実行する。
【0101】
本発明の一実施形態は、端末デバイスによって実行可能なコンピュータプログラムを格納するコンピュータ可読記憶媒体をさらに提供し、プログラムは、端末デバイス上で実行されるときに、端末デバイスにブロックチェーンコンセンサス方式のステップを実行させる。
【0102】
同じ思想に基づいて、本出願は、上記のアカウンティングノードの方法フローを実行するために使用することができる電子デバイスを提供する。
図7は、本出願により提供される電子デバイスの構造概略図である。電子デバイスは、プロセッサ701、メモリ702、送受信機703、およびバスインターフェース704を含む。ここで、プロセッサ701、メモリ702、送受信機703、およびバスインターフェース704は、バス705を介して互いに接続されている。
【0103】
メモリ702は、プログラムを格納するために使用される。具体的には、プログラムは、コンピュータの操作命令を含むプログラムコードを含み得る。メモリ702は、揮発性メモリ(volatile memory)、例えば、ランダムアクセスメモリ(random-access memory,RAM)を含み得る。メモリはまた、不揮発性メモリ(non-volatile memory)、例えば、フラッシュメモリ(flash memory)、ハードディスクドライブ(hard disk drive,HDD)またはソリッドステートドライブ(solid-state drive,SDD)を含み得る。また、メモリ702は、上記のタイプのメモリの組み合わせを含み得る。
【0104】
メモリ702は、以下の要素を格納する:実行可能モジュールまたはデータ構造、またはそれらのサブセット、またはそれらの拡張セット。
【0105】
様々な操作を実施するための様々な操作指示を含む操作指示。
【0106】
さまざまな基本サービスを実施し、ハードウェアベースのタスクを処理するためのさまざまなシステムプログラムを含むオペレーティングシステム。
【0107】
バス705は、ペリフェラルコンポーネントインターコネクト(peripheral component interconnect,PCI)バスまたは拡張産業標準アーキテクチャ(extended industry standard architecture,EISA)バスなどであり得る。ババスは、アドレスバス、データバス、制御バスなどに分けることができる。わかりやすくするために、
図7ではバスを1本の太い線で表していますが、1本のバスや1種類のバスだけを表しているわけではない。
【0108】
バスインターフェース704は、有線通信インターフェース、無線バスインターフェース、またはそれらの組み合わせであり得る。ここで、有線バスインターフェースは、例えば、イーサネットインターフェースであり得る。イーサネットインターフェースは、光インターフェース、電気インターフェース、またはそれらの組み合わせであり得る。無線バスインターフェースは、WLANインターフェースであり得る。
【0109】
プロセッサ701は、中央処理装置(central processing unit,CPU)、ネットワークプロセッサ(network processor,NP)、またはCPUとNPの組み合わせであり得る。ハードウェアチップの場合もある。上記のハードウェアチップは、特定用途向け集積回路(application-specific integrated circuit,ASIC)、プログラマブルロジックデバイス(programmable logic device,PLD)、またはそれらの組み合わせであり得る。上記のPLDは、コンプレックスプログラマブルロジックデバイス(complex programmable logic device,CPLD)、フィールドプログラマブルゲートアレイ(field-programmable gate array,FPGA)、ジェネリックアレイロジック(generic array logic,GAL)、またはそれらの任意の組み合わせであり得る。
【0110】
前記プロセッサ701は、前記メモリ702内のプログラムを読み取って、以下の方法を実行するように構成される:ブロックを生成し、送受信機703を介してN個のアカウンティングノードのうちの他のアカウンティングノードに前記アカウンティングノードの検証情報をブロードキャストし、前記N個のアカウンティングノードはM個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って決定され、Mは1以上であり、Nは1以上であり、MはN以上であり、送受信機703を介して前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証し、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第2のアカウンティングノードの準備情報が第1の所定条件を満たすときに、第1のアカウンティングノードによって生成され、およびブロードキャストされる。前記第2のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第2のアカウンティングノードによって生成され、およびブロードキャストされ、前記第1のアカウンティングノードおよび前記第2のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかであり、受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第2の所定条件を満たしたときに前記ブロックをブロックチェーンに追加する。
前記メモリ702は、1つ以上の実行可能プログラムを格納するように構成され、動作を実行するときにプロセッサ701によって使用されるデータを格納することができる任意選択で、プロセッサ701は、前記他のアカウンティングノードブロードキャストの準備情報を受信して検証し、受信された前記他のアカウンティングノードの準備情報が前記第1の所定条件を満たすときに、前記アカウンティングノードの確認情報を生成してブロードキャストする。
【0111】
任意選択で、送受信機703は、前記第1のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信する。プロセッサ701は、受信された確認情報が前記第2の所定条件を満たすときに、前記ブロックをブロックチェーンに追加する。
【0112】
任意選択で、プロセッサ701は、受信確認情報が検証に失敗したと判断したときに、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第1の障害ノード除去要求をブロードキャストする。また、前記プロセッサ701は、第2の障害ノード除去要求を受信し、前記第2の障害ノード除去要求を検証し、前記第2の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第1の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされる。送受信機703は、受信された前記第2の障害ノード除去要求が第4の所定条件を満たすときに、アカウンティングノードの再選択要求をブロードキャストする。その結果、非アカウンティングノードは、前記アカウンティングノード再選択要求を受信した後にアカウンティングノード競争に参加するための選挙要求をブロードキャストする。
【0113】
任意選択で、前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記N個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記N個のアカウンティングノードのうちのアカウンティングノードである。
【0114】
上記のユニットの分割は、論理機能の分割のみであり、これらのユニットは、完全にまたは部分的に物理エンティティに統合されてもよく、実際の実施では物理的に分離されてもよいことを理解されたい。本出願の一実施形態では、第1のブロードキャストモジュール401および第1の受信モジュール404は、送受信機703によって実施され得、検証モジュール402および第1の処理モジュール403は、プロセッサ701によって実施され得る。
図7に示すように、電子デバイス700は、プロセッサ701、送受信機703、およびメモリ702を含み得、メモリ702は、電子デバイス700が工場を離れるときに事前にインストールされたプログラム/コードを格納するように構成され得、また、プロセッサ701などによって実行されていたコードを記憶し得る。
【0115】
上記から分かるように、本発明の実施形態において、プルーフオブワーク問題を解決することによってアカウンティングノードを決定する代わりに、選挙ノードのコインエイジに従って選挙ノードから複数のアカウンティングノードを選択するので、アカウンティングの決定効率が向上する。一方、リソース消費は削減される。つぎに、アカウンティングノードによってブロックが生成され、アカウンティングノードの情報とブロックの情報はブロードキャストされ、ブロードキャストの情報が他のアカウンティングノードによって検証された後にのみローカルブロックチェーンにブロックを追加できるため、ブロックチェーンネットワークの一貫性とセキュリティが確保される。さらに、アカウンティングノードはブロックを生成した直後にコンセンサスを作成でき、コンセンサスプロセスはプルーフオブワークの問題を解決する必要がないため、コンセンサスの効率が向上する。
【0116】
同じ思想に基づいて、本出願は、上記のアカウンティングノードの方法フローを実行するために使用することができる電子デバイスを提供する。
図8は、本出願により提供される電子デバイスの構造概略図である。電子デバイスは、プロセッサ801、メモリ802、送受信機803、およびバスインターフェース804を含む。ここで、プロセッサ801、メモリ802、送受信機803、およびバスインターフェース804は、バス805を介して互いに接続されている。
【0117】
メモリ802は、プログラムを格納するために使用される。具体的には、プログラムは、コンピュータの操作命令を含むプログラムコードを含み得る。メモリ802は、揮発性メモリ(volatile memory)、例えば、ランダムアクセスメモリ(random-access memory,RAM)を含み得る。メモリはまた、不揮発性メモリ(non-volatile memory)、例えば、フラッシュメモリ(flash memory)、ハードディスクドライブ(hard disk drive,HDD)またはソリッドステートドライブ(solid-state drive,SDD)を含み得る。また、メモリ702は、上記のタイプのメモリの組み合わせを含み得る。
【0118】
メモリ802は、以下の要素を格納する:実行可能モジュールまたはデータ構造、またはそれらのサブセット、またはそれらの拡張セット。
【0119】
様々な操作を実施するための様々な操作指示を含む操作指示。
【0120】
さまざまな基本サービスを実施し、ハードウェアベースのタスクを処理するためのさまざまなシステムプログラムを含むオペレーティングシステム。
【0121】
バス805は、ペリフェラルコンポーネントインターコネクト(peripheral component interconnect,PCI)バスまたは拡張産業標準アーキテクチャ(extended industry standard architecture,EISA)バスなどであり得る。ババスは、アドレスバス、データバス、制御バスなどに分けることができる。わかりやすくするために、
図7ではバスを1本の太い線で表していますが、1本のバスや1種類のバスだけを表しているわけではない。
【0122】
バスインターフェース804は、有線通信インターフェース、無線バスインターフェース、またはそれらの組み合わせであり得る。ここで、有線バスインターフェースは、例えば、イーサネットインターフェースであり得る。イーサネットインターフェースは、光インターフェース、電気インターフェース、またはそれらの組み合わせであり得る。無線バスインターフェースは、WLANインターフェースであり得る。
【0123】
プロセッサ801は、中央処理装置(central processing unit,CPU)、ネットワークプロセッサ(network processor,NP)、またはCPUとNPの組み合わせであり得る。ハードウェアチップの場合もある。上記のハードウェアチップは、特定用途向け集積回路(application-specific integrated circuit,ASIC)、プログラマブルロジックデバイス(programmable logic device,PLD)、またはそれらの組み合わせであり得る。上記のPLDは、コンプレックスプログラマブルロジックデバイス(complex programmable logic device,CPLD)、フィールドプログラマブルゲートアレイ(field-programmable gate array,FPGA)、ジェネリックアレイロジック(generic array logic,GAL)、またはそれらの任意の組み合わせであり得る。
【0124】
前記プロセッサ801は、前記メモリ802内のプログラムを読み取って、以下の方法を実行するように構成される:他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定し、他のノードから受信された選挙結果情報が第3の所定条件を満たすときに、前記選挙結果情報中のN個の選挙ノードをアカウンティングノードとして決定する。
【0125】
前記送受信機803は、M個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記M個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記M個の選挙ノードからN個の選挙ノードを決定し、前記N個の選挙ノードを含む選挙結果情報を生成してブロードキャストする。
【0126】
上記のユニットの分割は、論理機能の分割のみであり、これらのユニットは、完全にまたは部分的に物理エンティティに統合されてもよく、実際の実施では物理的に分離されてもよいことを理解されたい。本出願の一実施形態では、第2のブロードキャストモジュール502および第2の受信モジュール501は、送受信機803によって実施され得、第2の処理モジュール503は、プロセッサ801によって実施され得る。
図8に示されるように、電子デバイス800は、プロセッサ801、送受信機803、およびメモリ802を含み得、ここで、メモリ802電子デバイス800が工場を離れるときに事前にインストールされたプログラム/コードを格納するように構成され得、また、プロセッサ801などによって実行されるコードを格納し得る。
【0127】
本分野の技術者として、本発明の実施形態が、方法、システム或いはコンピュータプログラム製品を提供できるため、本発明は完全なハードウェア実施形態、完全なソフトウェア実施形態、またはソフトウェアとハードウェアの両方を結合した実施形態を採用できることがわかるはずである。さらに、本発明は、一つ或いは複数のコンピュータプログラム製品の形式を採用できる。当該製品はコンピュータ使用可能なプログラムコードを含むコンピュータ使用可能な記憶媒体(ディスク記憶装置、CD-ROM、光学記憶装置等を含むがそれとは限らない)において実施する。
【0128】
以上は本発明の実施形態の方法、装置(システム)、およびコンピュータプログラム製品のフロー図および/またはブロック図によって、本発明を記述した。理解すべきことは、コンピュータプログラム命令によって、フロー図および/またはブロック図における各フローおよび/またはブロックと、フロー図および/またはブロック図におけるフローおよび/またはブロックの結合を実現できる。プロセッサはこれらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、組込み式処理装置、或いは他のプログラム可能なデータ処理装置設備の処理装置器に提供でき、コンピュータ或いは他のプログラム可能なデータ処理装置のプロセッサは、これらのコンピュータプログラム命令を実行し、フロー図における一つ或いは複数のフローおよび/またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。
これらのコンピュータプログラム命令は又、また、コンピュータ或いは他のプログラム可能なデータ処理装置を特定方式で動作させるコンピュータ読取記憶装置に記憶できる。これによって、命令を含む装置は当該コンピュータ読取記憶装置内の命令を実行でき、フロー図における一つ或いは複数のフローおよび/またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。
【0129】
これらコンピュータプログラム命令はさらに、コンピュータ或いは他のプログラム可能なデータ処理装置設備に実装もできる。コンピュータプログラム命令が実装されたコンピュータ或いは他のプログラム可能設備は、一連の操作ステップを実行することによって、関連の処理を実現し、コンピュータ或いは他のプログラム可能な設備において実行される命令によって、フロー図における一つ或いは複数のフローおよび/またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。
無論、当業者によって、上述した実施形態に記述された技術的な解決手段を改造し、或いはその中の一部の技術要素を置換することもできる。そのような、改造と置換は本発明の各実施形態の技術の範囲から逸脱するとは見なされない。そのような改造と置換は、すべて本発明の請求の範囲に属する。
【符号の説明】
【0130】
400アカウンティングノード
401 第1のブロードキャストモジュール
402 検証モジュール
403 第1の処理モジュール
404 第1の受信モジュール
500 ノード
501 第2の受信モジュール
502 第2のブロードキャストモジュール
503 第2の処理モジュール
601 メモリ
602 プロセッサ
603 入力装置
604 出力装置
700 電子デバイス
701 プロセッサ
702 メモリ
703 送受信機
704 バスインターフェース
705 バス
800 電子デバイス
801 プロセッサ
802 メモリ
803 送受信機
804 バスインターフェース
805 バス