IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 京▲東▼科技信息技▲術▼有限公司の特許一覧

特表2023-503120ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置
<>
  • 特表-ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置 図1
  • 特表-ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置 図2
  • 特表-ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置 図3
  • 特表-ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置 図4
  • 特表-ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置 図5
  • 特表-ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置 図6
  • 特表-ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置 図7
  • 特表-ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置 図8
  • 特表-ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置 図9
  • 特表-ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-01-26
(54)【発明の名称】ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置
(51)【国際特許分類】
   G06F 11/16 20060101AFI20230119BHJP
   H04L 9/32 20060101ALI20230119BHJP
【FI】
G06F11/16 658
H04L9/32 200Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022529735
(86)(22)【出願日】2020-05-15
(85)【翻訳文提出日】2022-05-20
(86)【国際出願番号】 CN2020090656
(87)【国際公開番号】W WO2021109471
(87)【国際公開日】2021-06-10
(31)【優先権主張番号】201911221129.4
(32)【優先日】2019-12-03
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】522021952
【氏名又は名称】京▲東▼科技信息技▲術▼有限公司
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】張爽
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034CC01
5B034DD06
(57)【要約】
本出願は、ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置に関する。そのうち、方法は、新しい参加者によって開始されたコンセンサスネットワークに新しいコンセンサスノードとして登録する登録要求を受信することであって、前記登録要求は、前記コンセンサスネットワークに登録を開始するために用いられることと、前記登録要求に従い、新しいコンセンサスネットワークのトポロジ情報が書き込まれたネットワーク更新ブロックを生成することであって、前記新しいコンセンサスネットワークには、コンセンサスネットワークにおけるコンセンサスノード及び新しいコンセンサスノードが含まれることと、前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者及びコンセンサスノードに同期し、前記新しいコンセンサスネットワークを取得することとを含む。本出願は、コンセンサスネットワークに新たに加入するノードは、ステータスマシンレプリケーションを介して元帳ブロックのデータを同期し、ステータスマシンレプリケーションは、ローカル再生トランザクションの計算量が非常に多くなり、パフォーマンスが比較的に低いという問題を解決しており、トランザクションを再生する必要がなく、さらに同期時の各コンセンサスノードの計算量を効果的に削減し、同期する効率を向上させる。
【特許請求の範囲】
【請求項1】
ブロックチェーンにおけるコンセンサスノードの動的増加方法であって、
新しい参加者によって開始されたコンセンサスネットワークに新しいコンセンサスノードとして登録する登録要求を受信することであって、前記登録要求は、前記コンセンサスネットワークへの登録を開始するために用いられることと、
前記登録要求に従い、新しいコンセンサスネットワークのトポロジ情報が書き込まれたネットワーク更新ブロックを生成することであって、前記新しいコンセンサスネットワークには、コンセンサスネットワークにおけるコンセンサスノード及び新しいコンセンサスノードが含まれることと、
前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者及びコンセンサスノードに同期し、前記新しいコンセンサスネットワークを取得することと、を含む、ことを特徴とする方法。
【請求項2】
前述した、前記登録要求に従い、新しいコンセンサスネットワークのトポロジ情報が書き込まれたネットワーク更新ブロックを生成することは、
前記コンセンサスネットワークにおけるコンセンサスノードは、前記登録要求に対してビザンチンフォールトトレランスコンセンサスを行うことであって、前記登録要求における内容は、前記参加者の情報を含み、前記参加者の情報は、前記参加者のネットワークアドレスと、ポート番号とを含むことと、
コンセンサスが達成された後、前記登録要求に従ってネットワーク更新ブロックを生成することと、を含む、ことを特徴とする請求項1に記載の方法。
【請求項3】
前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者及びコンセンサスノードに同期する前に、
前記参加者によって開始されたブロック情報取得要求を受信することと、
前記ブロック情報取得要求に従い、前記参加者に各コンセンサスノードの現在のブロック情報をフィードバックし、前記参加者が各前記コンセンサスノードから完全なブロック情報を含むコンセンサスノードを選択してブロック情報を同期することに用いられることと、をさらに含む、ことを特徴とする請求項1に記載の方法。
【請求項4】
前述した、前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者に同期することは、
前記参加者によってデータソースノードに対して開始されたブロック同期要求を受信することであって、前記データソースノードは、完全な前記ブロック情報を具備するコンセンサスノードであることと、
前記ブロック同期要求に従って、前記データソースノードにおける既存ブロック情報を前記参加者に同期することと、を含む、ことを特徴とする請求項3に記載の方法。
【請求項5】
前述した、前記ブロック同期要求に従って前記データソースノードにおける既存ブロック情報を前記参加者に同期することは、
前記データソースノードにおける各既存ブロック情報に対応するキーと値のペアのデータセットを決定することと、
前記キーと値のペアのデータセットをデータソースノードに対応するソースデータベースからプルした後、前記参加者のデータベースに記憶することと、を含む、ことを特徴とする請求項4に記載の方法。
【請求項6】
前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記コンセンサスノードに同期することは、
前記参加者によって送信される更新構成情報を受信することと、
前記更新構成情報に基づいてブロック更新を行うように前記コンセンサスネットワークにおける前記コンセンサスノードに通知し、各前記コンセンサスノードに更新させて前記ネットワーク更新ブロックを取得させることと、を含む、ことを特徴とする請求項1に記載の方法。
【請求項7】
前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者に同期する期間帯である同期時間帯内に、前記コンセンサスネットワークにおいて新しいコンセンサスを達成し、新しいブロック情報を生成する際に、前記新しいコンセンサスノードに対して前記新しいブロック情報を同期することをさらに含む、ことを特徴とする請求項1に記載の方法。
【請求項8】
前述した、前記新しいコンセンサスノードに対して前記新しいブロック情報を同期することは、
前記新しいコンセンサスノードが、コンセンサスノードと比較して、前記新しいブロックが他のコンセンサスノードに含まれていると決定れた後、前記新しいブロックに対応するトランザクションは、ステータスマシンレプリケーションの方式によって再生され、前記新しいブロックは、前記新しいコンセンサスノードで生成されることを含む、ことを特徴とする請求項7に記載の方法。
【請求項9】
ブロックチェーンにおけるコンセンサスノードの動的増加装置であって、
新しい参加者により開始されたコンセンサスネットワークに新しいコンセンサスノードとして登録する登録要求を受信するための受信モジュールであって、前記登録要求は、前記コンセンサスネットワークに登録を開始するために用いられる受信モジュールと、
前記登録要求に従い、新しいコンセンサスネットワークのトポロジ情報が書き込まれたネットワーク更新ブロックを生成するための登録モジュールであって、前記新しいコンセンサスネットワークには、コンセンサスネットワークにおけるコンセンサスノード及び新しいコンセンサスノードが含まれる登録モジュールと、
前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者及びコンセンサスノードに同期し、前記新しいコンセンサスネットワークを得るための同期モジュールと、を含む、ことを特徴とする装置。
【請求項10】
プロセッサと、通信インタフェースと、メモリと通信バスとを含む電子設備であって、前記プロセッサ、通信インタフェース及びメモリは、通信バスを介して互いに通信を完了し、
前記メモリは、コンピュータプログラムを格納するために用いられ、
前記プロセッサは、前記コンピュータプログラムを実行する際に、請求項1から8のいずれか1項に記載の方法を実現するために用いられる、ことを特徴とする電子機器。
【請求項11】
コンピュータ命令が記憶されており、前記コンピュータ命令は、前記コンピュータに請求項1から8のいずれか1項に記載の方法を実行させる、ことを特徴とする非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【発明の詳細な説明】
【0001】
[関連出願の相互参照]
本出願は、2019年12月3日に中国特許局に提出された、出願番号は201911221129.4で、「ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置」を発明名称とする中国特許出願の優先権を主張し、同出願の内容の全ては、本出願に引用して取り込まれる。
【0002】
[技術分野]
本出願は、ブロックチェーン技術分野に関し、特に、ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置に関する。
【0003】
[背景技術]
ほとんどのBFT SMR(ステータスマシンレプリケーションシステム)は、いずれもコンセンサスネットワークトポロジが静的であり、時間とともに増大したり収縮したりしないと仮定する。少数のブロックチェーンシステムにおいて、コンセンサスネットワークトポロジにおけるコンセンサスノードの動的構成が実現されたとしても、ステータスマシンレプリケーションの技術が採用されているため、大きな業務量でのパフォーマンスが非常に低いため、エンジニアリングの実践での使用も困難である。また、一部のブロックチェーンシステムは、コンセンサスノードの動的構成を実現したと主張しているが、いずれもダウンタイム又は業務の一時停止に基づいて行われている。
【0004】
ブロックチェーン技術の発展、及びブロックチェーンブロックチェーンの商用アプリケーションのトレンドに伴い、実用的なコンセンサスノードの動的追加案が必要とされる。
【0005】
関連技術に存在する多くの技術課題に対し、現在では、有効的な解決策がまだ提案されていない。
【0006】
[発明の概要]
[課題を解決するための手段]
上記技術課題を解決するか、又は上記技術課題を少なくとも部分的に解決するために、本出願は、ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置を提供した。
【0007】
第一の側面では、本出願は、ブロックチェーンにおけるコンセンサスノードの動的増加方法を提供した。この方法は、
新しい参加者により開始されたコンセンサスネットワークに新しいコンセンサスノードとして登録する登録要求を受信することであって、前記登録要求は、前記コンセンサスネットワークに登録を開始するために用いられることと、
前記登録要求に応じて、新しいコンセンサスネットワークのトポロジ情報が書き込まれるネットワーク更新ブロックを生成することであって、前記新しいコンセンサスネットワークには、コンセンサスネットワークにおけるコンセンサスノード及び新しいコンセンサスノードが含まれることと、
前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者及びコンセンサスノードに同期し、前記新しいコンセンサスネットワークを取得することと、を含む。
【0008】
選択可能で、前述した方法のように、前述した、前記登録要求に従い、新しいコンセンサスネットワークのトポロジ情報が書き込まれたネットワーク更新ブロックを生成することは、
前記コンセンサスネットワークにおけるコンセンサスノードは、前記登録要求に対してビザンチンフォールトトレランスコンセンサスを行うことであって、前記登録要求における内容は、前記参加者の情報を含み、前記参加者の情報は、前記参加者のネットワークアドレスと、ポート番号とを含むことと、
コンセンサスが達成されると、前記登録要求に従ってネットワーク更新ブロックを生成することと、を含む。
【0009】
選択可能で、前述した方法のように、前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者及びコンセンサスノードに同期する前に、
前記参加者によって開始されたブロック情報取得要求を受信することと、
前記ブロック情報取得要求に従い、前記参加者に各コンセンサスノードの現在のブロック情報をフィードバックする。これは、前記参加者が各前記コンセンサスノードから完全なブロック情報を含むコンセンサスノードを選択して、ブロック情報を同期できるようにするために用いられることと、をさらに含む。
【0010】
選択可能で、前述した方法のように、前述した、前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者に同期することは、
前記参加者によってデータソースノードに対して開始されたブロック同期要求を受信することであって、前記データソースノードは、前記ブロック情報が完全なコンセンサスノードであることと、
前記ブロック同期要求に従って前記データソースノードにおける既存ブロック情報を前記参加者に同期することと、を含む。
【0011】
選択可能で、前述した方法のように、前述した、前記ブロック同期要求に従って前記データソースノードにおける既存ブロック情報を前記参加者に同期することは、
前記データソースノードにおける各既存ブロック情報に対応するキーと値のペアのデータセットを決定することと、
前記キーと値のペアのデータセットは、データソースノードに対応するソースデータベースからプルした後、前記参加者のデータベースに記憶することと、を含む。
【0012】
選択可能で、前述した方法のように、前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記コンセンサスノードに同期することは、
前記参加者によって送信される更新構成情報を受信することと、
前記更新構成情報に基づいて、ブロック更新を行うように前記コンセンサスネットワークにおける前記コンセンサスノードに通知し、各前記コンセンサスノードに更新させて前記ネットワーク更新ブロックを取得させることと、を含む。
【0013】
選択可能で、前述した方法のように、
前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者に同期する期間帯である同期時間帯内に、前記コンセンサスネットワークにおいて新しいコンセンサスを達成し、且つ新しいブロック情報を生成する際に、前記新しいコンセンサスノードに対して前記新しいブロック情報を同期することをさらに含む。
【0014】
選択的には、前述した方法のように、前記新しいコンセンサスノードに対して前記新しいブロック情報を同期することは、
前記新しいコンセンサスノードが、コンセンサスノードと比較して、前記新しいブロックが他のコンセンサスノードに含まれていると決定された後前記新しいブロックに対応するトランザクションは、ステータスマシンレプリケーションによって再生されるため、前記新しいブロックは前記新しいコンセンサスノードで生成されることを含む。
【0015】
第二の側面では、本出願は、ブロックチェーンにおけるコンセンサスノードの動的増加装置を提供した。
【0016】
新しい参加者によって開始されたコンセンサスネットワークにおいて新しいコンセンサスノードとして登録する登録要求を受信するための受信モジュールであって、前記登録要求は、前記コンセンサスネットワークへの登録を開始するために用いられる受信モジュールと、
前記登録要求に従い、新しいコンセンサスネットワークのトポロジ情報が書き込まれたネットワーク更新ブロックを生成するための登録モジュールであって、前記新しいコンセンサスネットワークには、コンセンサスネットワークにおけるコンセンサスノード及び新しいコンセンサスノードが含まれる登録モジュールと、
前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者及びコンセンサスノードに同期し、前記新しいコンセンサスネットワークを取得するための同期モジュールと、を含むことを特徴とする。
【0017】
第三の側面では、本出願は、プロセッサと、通信インタフェースと、メモリと通信バスとを含む電子機器を提供した。そのうち、前記プロセッサ、通信インタフェース及びメモリは、通信バスを介して互いに通信し、
前記メモリは、コンピュータプログラムを格納するために用いられ、
前記プロセッサは、前記コンピュータプログラムを実行する際に、前記いずれか1項に記載の処理方法を実現するのに用いられる。
【0018】
第四の側面では、本出願は、非一時的コンピュータ可読記憶媒体を提供した。前記非一時的コンピュータ可読記憶媒体は、コンピュータ命令を記憶し、前記コンピュータ命令は、前記コンピュータに前記いずれか1項に記載の処理方法を実行させることを特徴とする。
【0019】
本出願の実施例は、ブロックチェーンにおけるコンセンサスノードの動的増加方法及び装置を提供した。そのうち、方法は、新しい参加者によって開始されたコンセンサスネットワークに新しいコンセンサスノードとして登録する登録要求を受信することであって、前記登録要求は、前記コンセンサスネットワークへの登録を開始するために用いられることと、前記登録要求に従い、新しいコンセンサスネットワークのトポロジ情報が書き込まれたネットワーク更新ブロックを生成することであって、前記新しいコンセンサスネットワークには、コンセンサスネットワークにおけるコンセンサスノード及び新しいコンセンサスノードが含まれることと、前記コンセンサスネットワークにおけるブロック情報及び前記ネットワーク更新ブロックを前記参加者及びコンセンサスノードに同期し、前記新しいコンセンサスネットワークを取得することとを含む。本出願の実施例によって提供された上記技術案は、関連技術に対して、コンセンサスネットワークに新たに参加するノードは、ステータスマシンレプリケーションを介して元帳ブロックのデータを同期し、ステータスマシンレプリケーションは、ローカル再生トランザクションの計算量が非常に多くなり、パフォーマンスが低下する問題を解決しており、トランザクションを再生する必要がなく、さらにコンセンサスネットワークにコンセンサスノードを追加する時、ブロック情報を同期する際の各コンセンサスノードの計算量を効果的に削減し、同期の効率を向上させることができる。
【0020】
[図面の簡単な説明]
本明細書に組み込まれ、その一部を構成する添付の図面は、本出願と一致する実施例を示しており、明細書とともに本出願の原理を解釈するのに用いられる。
【0021】
本出願の実施例又は従来技術における技術案をより明瞭に説明するために、以下は、実施例又は従来技術の記述に使用される図面を簡単に紹介する。創意的な工夫をしない前提で、これらの図面に基づき、他の図面が得られることは当業者にとって自明なことである。
【0022】
図1]本出願の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
【0023】
図2]本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
【0024】
図3]本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
【0025】
図4]本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
【0026】
図5]本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
【0027】
図6]本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
【0028】
図7]本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
【0029】
図8]本出願の一つの応用例の処理方法フローチャートである。
【0030】
図9]本出願の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加装置のブロック図である。
【0031】
図10]本出願の実施例による電子機器の構造概略図である。
【0032】
[発明を実施するための形態]
本出願の実施例の目的、技術案と利点をより明瞭にするために、以下は、本出願の実施例における図面と合わせて、本出願の実施例における技術案を明瞭且つ完全に記述する。明らかに、記述された実施例は、本出願の一部の実施例であり、全ての実施例ではない。本出願における実施例に基づき、当業者は創意的な工夫をしない前提で得られる全ての他の実施例は、いずれも本出願の保護範囲に属する。
【0033】
図1は、本出願の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法である。図1が示されたように、以下のステップS1乃至S3が含まれる。
【0034】
S1.新しい参加者によって開始されたコンセンサスネットワークに新しいコンセンサスノードとして登録する登録要求を受信し、登録要求は、コンセンサスネットワークへの登録を開始するために用いられる。
【0035】
具体的には、参加者は、SDK又は第三者管理ツールを介してコンセンサスネットワークに新しいコンセンサスノードとして登録し、さらにコンセンサスネットワークにおけるコンセンサスノードとコンセンサスをし、選択可能で、登録要求を開始する操作は、トランザクションの形式で開始されてもよい。
【0036】
S2.登録要求に従い、新しいコンセンサスネットワークのトポロジ情報が書き込まれたネットワーク更新ブロックを生成し、そのうち、新しいコンセンサスネットワークには、コンセンサスネットワークにおけるコンセンサスノード及び新しいコンセンサスノードが含まれる。
【0037】
具体的には、新しいコンセンサスネットワークは、元のコンセンサスネットワークにおける同時ノードと、参加者が登録成功した後の新しいコンセンサスノードで構成される新しいネットワークであり、ネットワーク更新ブロックには、新しいコンセンサスネットワークに基づくトポロジ情報が含まれ、トポロジ情報は通常、新しいコンセンサスネットワークのトポロジ構造である。
【0038】
例えば、トランザクションで開始された登録要求を受信する前に、既存のブロック情報がblock0、block1……blockNである場合、コンセンサスネットワークは、登録要求を受信した後、トランザクションをブロックに書き込み、即ち、新しいブロックblockN+1が生じ、且つ該ブロックには上記の新しいコンセンサスネットワークのトポロジ構造が記録されている。
【0039】
S3.コンセンサスネットワークにおけるブロック情報及びネットワーク更新ブロックを参加者及びコンセンサスノードに同期し、新しいコンセンサスネットワークを取得する。
【0040】
具体的には、ブロック情報は、即ちブロックチェーンにおける元帳ブロックであり、上述した、コンセンサスネットワークにおけるブロック情報及びネットワーク更新ブロックを参加者及びコンセンサスノードに同期することは、コンセンサスネットワークにおけるブロック情報及びネットワーク更新ブロックを参加者に同期し、及び、コンセンサスネットワークにおけるブロック情報及びネットワーク更新ブロックをコンセンサスノードに同期することである。そのため、参加者とコンセンサスノードのブロック情報は、一致に達せ、これにより参加者(同期後は新しいコンセンサスノードとなる)と従来のコンセンサスネットワークにおける各コンセンサスノードは、いずれも構成からその自身以外の他のノードの存在を知ることができ、新しいコンセンサスノード及びコンセンサスノードのいずれかも新しいトランザクションのコンセンサスに参加でき、それで新しいコンセンサスネットワークを取得する。
【0041】
図2が示されたように、いくつかの実施例では、前述した方法のように、ステップS2において、登録要求に従い、新しいコンセンサスネットワークのトポロジ情報が書き込まれたネットワーク更新ブロックを生成することは、以下の前記ステップS21とS22とを含む。
【0042】
S21.コンセンサスネットワークにおけるコンセンサスノードは、登録要求に対してビザンチンフォールトトレランスコンセンサスを行い、登録要求の内容は、参加者の情報を含み、参加者の情報は、参加者のネットワークアドレスと、ポート番号とを含む。
【0043】
具体的には、上記のビザンチンフォールトトレランスコンセンサスは、3つの段階を含む。
【0044】
1)、指導者の提案段階:参加者を新しいコンセンサスノードとする提案である。
【0045】
2)、書き込み(write)段階:提案を各コンセンサスノードに書き込む。
【0046】
3)、受信(accept)段階:各コンセンサスノードは、参加者を新しいコンセンサスノードとすることを受け入れる。
【0047】
S22.コンセンサスが達成された後、登録要求に従ってネットワーク更新ブロックを生成する。
【0048】
具体的には、コンセンサス達成とは、各ブロックが、参加者を新しいコンセンサスノードとする提案を受け入れることである。一般的には、コンセンサスネットワークのトポロジ情報は、ジェネシスブロックに存在でき、且つトポロジ情報には、各コンセンサスノードのネットワークアドレス、ポート番号などの情報を含めることができる。登録要求には参加者のネットワークアドレス、ポート番号が含めることができるため、ジェネシスブロックにおけるトポロジ情報と登録要求に基づけば、コンセンサスネットワークに基づくトポロジ情報を含むネットワーク更新ブロックを取得できる。ここまで、新しいコンセンサスネットワークのトポロジ構造は、従来の各コンセンサスノードのデータベースに既に格納された。
【0049】
図3が示されたように、いくつかの実施例では、前述した方法のように、ステップS3において、コンセンサスネットワークにおけるブロック情報及びネットワーク更新ブロックを参加者及びコンセンサスノードに同期する前に、以下のステップA1とA2とをさらに含む。
【0050】
A1.参加者によって開始されたブロック情報取得要求を受信する。
【0051】
具体的には、起動当初、参加者に対応するデータベースにはいかなる元帳ブロック情報がないため、他のコンセンサスノードとのコンセンサスに加入する必要がある場合、他のコンセンサスノードのブロック情報を取得する必要がある。選択可能で、他のコンセンサスノードのブロック情報を取得する方法は、参加者が積極的に要求することで取得することであってもよい。
【0052】
A2.ブロック情報取得要求に従い、参加者に各コンセンサスノードの現在のブロック情報をフィードバックし、参加者が各コンセンサスノードから完全なブロック情報を含むコンセンサスノードを選択して、ブロック情報を同期できるようにするために用いられる。
【0053】
具体的には、コンセンサスネットワークには「不良ノード」が存在する可能性があるため、参加者はコンセンサスネットワークのコンセンサスノードと情報インタラクションを行って、データソースノードとして完全な元帳データを具備するコンセンサスノードを選択する必要がある。そのため、ブロック情報取得要求を受信した後、参加者に各コンセンサスノードの現在のブロック情報をフィードバックして、参加者が各コンセンサスノードから完全なブロック情報を含むコンセンサスノードを選択して、ブロック情報を同期できるようにする。
【0054】
図4が示されたように、いくつかの実施例では、前述した方法のように、ステップS3において、コンセンサスネットワークにおけるブロック情報及びネットワーク更新ブロックを参加者に同期することは、以下のステップS311とS312とを含む。
【0055】
S311.参加者によりデータソースノードに対して開始されたブロック同期要求を受信し、そのうち、データソースノードは、完全なブロック情報を含むンセンサスノードである。
【0056】
具体的には、データソースノードは、前記ステップA1とA2の参加者によって選択された完全なブロック情報を備えたコンセンサスノードである。選択可能で、参加者はデータソースノードに存在する最新のブロック情報を知っているため、上記のブロック同期要求には、同期する必要のあるブロックが含まれる。例えば、参加者がインタラクション情報に基づいてデータソースノードが最新のブロックBlockN+1を有することを知ると、Block0乃至BlockN+1の全てのブロックを同期するように要求する。一般的には、完全なブロック情報を備えるコンセンサスノードには、前記実施例におけるネットワーク更新ブロックが含まれる。
【0057】
S312.ブロック同期要求に従ってデータソースノードにおける既存ブロック情報を参加者に同期する。
【0058】
選択可能で、本実施例における既存ブロック情報同期の方法は、データ同期であってもよい。そのため、関連技術におけるステータスマシンレプリケーションを介して元帳ブロックのデータを同期する方法と明らかに異なり、ステータスマシンレプリケーションによってローカル再生トランザクションの大量の計算の発生で、性能に影響を及ぼす状況を大幅に低減することができる。
【0059】
図5が示されたように、いくつかの実施例では、前述した方法のように、ステップS312において、ブロック同期要求に従ってデータソースノードにおける既存ブロック情報を参加者に同期することは、以下のステップを含む。
【0060】
S3121.データソースノードにおける各既存ブロック情報に対応するキーと値のペアのデータセットを決定する。
【0061】
具体的には、上記キーと値のペアのデータセットは、KVデータセットであり、KVデータセットには、複数のKVデータが含まれ、各ブロック情報はKVデータに対応しており、KVデータは、key-valueデータであり、分散ストレージシステムを採用し、クエリー速度が速く、格納データ量が大きく、高い同時実行性をサポートし、主キーによるクエリーに最適し、つまり、ブロック情報は、キーと値のペアのデータの方式でデータベースに記憶される。
【0062】
S3122.キーと値のペアのデータセットをデータソースノードに対応するソースデータベースからプルした後、参加者のデータベースに記憶する。
【0063】
具体的には、キーと値のペアのデータセットを上記データソースノードのソースデータベースからプルし、且つ参加者のデータベースに記憶した後、データソースノードがビジネストランザクションを実行しない場合、参加者は、データソースノードの元帳ブロックとの整合性の要件を満たす。
【0064】
図6が示されたように、いくつかの実施例では、前述した方法のように、ステップS3において、コンセンサスネットワークにおけるブロック情報及びネットワーク更新ブロックをコンセンサスノードに同期することは、以下のステップS321とS322とを含む。
【0065】
S321.参加者によって送信される更新構成情報を受信する。
【0066】
一般的には、ステップS312の実行完了後、参加者が後続のコンセンサスに参加しようとするため、該ステップは、更新構成情報を従来のコンセンサスネットワークに送信し、コンセンサスレベルで構成を更新し、即ち、新しいコンセンサスネットワークのトポロジ情報を更新するように各コンセンサスノードに通知する。
【0067】
S322.更新構成情報に基づいてブロック更新を行うようにコンセンサスネットワークにおけるコンセンサスノードに通知し、各コンセンサスノードに更新させてネットワーク更新ブロックを取得させる。
【0068】
具体的には、ネットワーク更新ブロックは、トランザクションによって各コンセンサスノードに該ブロックを取得させることができ、且つ、これにより参加者と従来のコンセンサスネットワークにおけるコンセンサスノードは、その構成から自身以外のその他のノード(参加者を含み)の存在を知り、新しいトランザクションのコンセンサスに共同で参加することができ、そのため、参加者は、他のコンセンサスノードとともに同一の新しいコンセンサスネットワークにおり、一つの新しいコンセンサスノードとして登録するのに成功する。
【0069】
図7が示されたように、いくつかの実施例では、前述した方法のように、以下のステップS4をさらに含む。
【0070】
S4.コンセンサスネットワークにおけるブロック情報及びネットワーク更新ブロックを参加者に同期する期間帯である同期時間帯内にコンセンサスネットワークにおいて新しいコンセンサスを達成し、且つ新しいブロック情報を生成する際に、新しいコンセンサスノードに対して新しいブロック情報を同期する。
【0071】
具体的には、例をあげると、参加者がキーと値のペアのデータセットをプルするプロセスにおいて、元コンセンサスネットワークノードは、ビジネストランザクションの処理を中断せず、新しいトランザクションについて2ラウンドのコンセンサスに達成しており、それに応じて二つの新しいブロックBlockN+2、BlockN+3が生成された。新しいコンセンサスノード(参加者による登録に成功した後のコンセンサスノード)がコンセンサスを開いた後、他のコンセンサスノードとブロック情報を比較する過程があり、比較により、2ブロック遅れていることが分かり、この時、他のコンセンサスノードブロック情報との整合性を保つために、新しいブロック情報が同期される。
【0072】
いくつかの実施例では、前述した方法のように、ステップS4において、新しいコンセンサスノードに対して新しいブロック情報を同期することは、具体的には、
新しいコンセンサスノードがコンセンサスノードと比較して、他のコンセンサスノードには新しいブロックが含まれることを判断された後、新しいブロックに対応するトランザクションをステータスマシンレプリケーションの方式を介して再生され、新しいコンセンサスノードに新しいブロックを生成させることを含む。
【0073】
つまり、新しいコンセンサスノードがコンセンサスを開いた後、他のコンセンサスノードとブロック情報を比較する過程によって、N個ブロック情報(即ち上記の新しいブロック情報)遅れていることを知った後、ステータスマシンレプリケーションの方式によって遅れたブロックにおけるトランザクションを再生し、他のコンセンサスノードブロック情報との整合性を達成することができる。
【0074】
そのため、本発明は、ブロック情報データベースレプリケーションとステータスマシンレプリケーション(トランザクション再生)補償技術とを組み合わせる設計方案によって、ダウンタイムなしで、ビジネストランザクションの処理を中断せずにコンセンサスノードの動的追加の問題を解決した。
【0075】
図8が示されたように、本出願の方法を採用する応用例は、以下の通りである。
【0076】
I、新しいコンセンサス参加者の登録
SDK又は第三者管理ツールを介してコンセンサスネットワークに新しい参加者を登録し、この操作は、トランザクションの形式で開始され、トランザクション内容は、新しい参加者のネットワークアドレス、ポートなどの情報を含み、このトランザクションが従来のコンセンサスネットワークに到達した後、3段階のBFTコンセンサス(ビザンチンフォールトトレランスコンセンサス)過程を経験し、コンセンサスが達成された後、トランザクションはブロックに書き込まれ、即ち新しいブロックBlockN+1が生成され、該ブロックには、新しいコンセンサスネットワークのトポロジが記録されている。該ステップの目的とは、データベースストレージレベルから、コンセンサスノードの新しいネットワークトポロジを記録することであって、コンセンサスノードがシャットダウンして再起動した場合でも、該ブロック情報から最新のコンセンサスネットワークトポロジ情報をロードできる。
【0077】
II、データソースノードからKVデータセットをレプリケーションする
新しいコンセンサスネットワークトポロジは、従来のコンセンサスネットワークにおけるコンセンサスノードのデータベースに既に格納されており、現在では、新しい参加者ノードプロセスを起動する。起動当初、新しいノードに対応するデータベースにはいかなる元帳ブロック情報がなく、この時、元コンセンサスネットワークにおけるコンセンサスノードと情報インタラクションを行って、完全な元帳データを具備するコンセンサスノードをデータソースノードとして選択する必要がある。新しい参加者は、インタラクション情報に基づいて、データソースノードが最新のブロックBlockN+1を有することを知り、すると、0からN+1個のブロックに対応するデータベースにおけるKVデータセットをプルする。
【0078】
III、元ネットワークのコンセンサスノードは新しいトランザクションを処理する
新しい参加者がKVデータセットをプルする過程において、従来のコンセンサスネットワークノードは、トランザクションの処理を中断せず、新しいトランザクションについて2ラウンドのコンセンサスに達成しており、それに応じて二つの新しいブロックBlockN+2、BlockN+3が生成された。
【0079】
IV、新しい参加者がコンセンサスを開く
新しい参加者は、までの引き出しており、そのうち、コンセンサスネットワークトポロジ変更のブロックデータを含む、全てのブロックデータを0からN+1からプルし、この時、新しい参加者は、後続のコンセンサスに参加しようとする場合、メッセージを従来のコンセンサスネットワークに送信し、コンセンサスレベルでの構成即ちコンセンサスノードの新しいトポロジ情報を更新するように従来のコンセンサスネットワークにおけるコンセンサスノードに通知する。これにより新しい参加者と従来のコンセンサスネットワークにおけるコンセンサスノードは、いずれかも構成から他のノードの存在を知り、新しいトランザクションのコンセンサスに共同で参加することができる。
【0080】
V、ステータスマシンレプリケーション(一部のトランザクションの再生)
新しい参加者は、コンセンサスを開いた後、他のコンセンサスノードと元帳情報を比較する過程があり、比較により、2ブロック遅れていることを知り、この時、ステータスマシンレプリケーションの方式によって遅れたブロックにおけるトランザクションを再生して、他のコンセンサスノードの元帳ブロックとの整合性に達成する。
【0081】
図9が示されたように、本出願の別の実施例によれば、ブロックチェーンにおけるコンセンサスノードの動的増加装置をさらに提供した。この装置は、
新しい参加者によって開始されたコンセンサスネットワークに新しいコンセンサスノードとして登録する登録要求を受信するための受信モジュール1であって、登録要求は、コンセンサスネットワークへの登録を開始するために用いられる受信モジュール1と、
登録要求に従い、新しいコンセンサスネットワークのトポロジ情報が書き込まれたネットワーク更新ブロックを生成するための登録モジュール2であって、新しいコンセンサスネットワークには、コンセンサスネットワークにおけるコンセンサスノード及び新しいコンセンサスノードが含まれる登録モジュール2と、
コンセンサスネットワークにおけるブロック情報及びネットワーク更新ブロックを参加者及びコンセンサスノードに同期し、新しいコンセンサスネットワークを取得するための同期モジュール3と、を含む。
【0082】
具体的には、本発明の実施例の装置における各モジュールがその機能を実現する具体的なプロセスは、方法の実施例における関連記述を参照すればよい。ここではこれ以上説明しない。
【0083】
本出願の別の実施例に基づき、電子機器をさらに提供する。図10が示したように、電子機器は、プロセッサ1501と、通信インタフェース1502と、メモリ1503と通信バス1504とを含んでもよく、そのうち、プロセッサ1501、通信インタフェース1502、メモリ1503は、通信バス1504を介して相互間の通信を完了する。
【0084】
メモリ1503は、コンピュータプログラムを格納するために用いられる。
【0085】
プロセッサ1501は、メモリ1503に格納されたプログラムを実行する時、上記方法の実施例のステップを実現するために用いられる。
【0086】
上記電子機器で言及されるバスは、ペリフェラルコンポーネントインターコネクト基準(Peripheral Component Interconnect、PCI)バス又は拡張産業標準構造(Extended Industry Standard Architecture、EISA)バスなどであってもよい。該バスは、アドレスバス、データバス、制御バスなどに分けることができる。表示しやすくするために、図では、一本の太い線のみで示されるが、バスが一本又は一種類しかないとの意味ではない。
【0087】
通信インタフェースは、上記電子機器と他の機器との間の通信に用いられる。
【0088】
メモリは、ランダムアクセスメモリ(Random Access Memory、RAM)を含んでもよく、不揮発性メモリ(Non-Volatile Memory、NVM)、例えば少なくとも一つの磁気ディスクメモリを含んでもよい。選択可能で、メモリは、前記プロセッサから離れた少なくとも一つの記憶装置であってもよい。
【0089】
上記のプロセッサは、中央プロセッサ(Central Processing Unit、CPU)、ネットワークプロセッサ(Network Processor、NP)などを含む汎用プロセッサであってもよく、デジタルシグナルプロセッサ(Digital Signal Processing、DSP)、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field-Programmable Gate Array、FPGA)又は他のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジックデバイス、ディスクリートハードウェアコンポーネントであってもよい。
【0090】
本出願の実施例は、非一時的コンピュータ可読記憶媒体をさらに提供する。非一時的コンピュータ可読記憶媒体には、コンピュータ命令が記憶されており、コンピュータ命令は、コンピュータに上記方法の実施例のステップを実行させる。
【0091】
なお、説明しておくこととして、本明細書では、例えば「第一」と「第二」などのような関係用語は、一つのエンティティ又は操作を別のエンティティ又は操作と区別するためにのみ使用され、これらのエンティティ又は操作の間にいずれかのこのような実際な関係又は順序が存在していることを必ずしも要求又は暗示していない。そして、「含む」、「包含」という用語又はその他の任意の変形は、非排他的な「包含」を意図的にカバーするものであり、それにより、一連の要素を含むプロセス、方法、物品又は機器は、それらの要素を含むだけではなく、明確にリストアップされていない他の要素も含み、又はこのようなプロセス、方法、物品又は機器に固有の要素をさらに含む。それ以上の制限がない場合に、「……を1つ含む」という文章で限定された要素について、前記要素を含むプロセス、方法、物品又は機器には他の同じ要素も存在することを除外しない。
【0092】
上述したのは、本発明の具体的な実施の形態に過ぎず、当業者に本発明を理解又は実現することを可能にする。これらの実施例に対する様々な修正は、当業者にとって自明なことであり、本明細書で定義される一般的な原理は、本発明の精神又は範囲を逸脱しない状況の下で、他の実施例において実現されることができる。従って、本発明は、本明細書に示されるこれらの実施例に限定されず、本明細書で出願される原理と新規性のある特徴と一致する最も広い範囲に合致すべきである。
【図面の簡単な説明】
【0093】
図1】本出願の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
図2】本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
図3】本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
図4】本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
図5】本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
図6】本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
図7】本出願の別の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加方法の方法フロー概略図である。
図8】本出願の一つの応用例の処理方法フローチャートである。
図9】本出願の実施例によるブロックチェーンにおけるコンセンサスノードの動的増加装置のブロック図である。
図10】本出願の実施例による電子機器の構造概略図である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
【国際調査報告】