(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-07
(54)【発明の名称】ノードデータ同期方法及び装置、システム、電子機器、記憶媒体並びにコンピュータプログラム
(51)【国際特許分類】
G06F 16/182 20190101AFI20220930BHJP
G06F 16/178 20190101ALI20220930BHJP
【FI】
G06F16/182
G06F16/178
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022503455
(86)(22)【出願日】2020-03-13
(85)【翻訳文提出日】2022-01-17
(86)【国際出願番号】 CN2020079088
(87)【国際公開番号】W WO2021051761
(87)【国際公開日】2021-03-25
(31)【優先権主張番号】201910894819.X
(32)【優先日】2019-09-20
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522021952
【氏名又は名称】京▲東▼科技信息技▲術▼有限公司
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】邵 珠光
(72)【発明者】
【氏名】▲孫▼ ▲海▼波
(72)【発明者】
【氏名】黄 ▲海▼泉
(72)【発明者】
【氏名】▲趙▼ 光▲偉▼
(57)【要約】
ノードデータ同期方法及びノードデータ同期装置を開示した。前記方法は、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するステップ(201)と、該対象ブロック高さに基づいて、データ同期要求を対象ノードに送信するステップ(202)と、該対象ノードから送信された更新データが受信されたことに応答して、該更新データをローカル記憶領域に書き込むステップ(203)と、を含む。前記方法により、ブロックチェーンシステムにおける遅延ノードの同期効率が改善され、ネットワークリソースが節約された。
【特許請求の範囲】
【請求項1】
ノードがブロックチェーンシステム内の遅延ノードを含むノードデータ同期方法であって、
前記ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するステップであって、前記対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、前記ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる、ステップと、
前記対象ブロック高さに基づいて、前記対象ブロック高さが含まれるデータ同期要求を対象ノードに送信するステップと、
前記対象ノードから送信された更新データが受信されたことに応答して、前記更新データをローカル記憶領域に書き込むステップであって、前記更新データに対応するブロック高さが前記対象ブロック高さよりも大きい、ステップと、を含むノードデータ同期方法。
【請求項2】
前記対象ブロック高さに基づいて、データ同期要求を対象ノードに送信するステップは、
前記ローカルログファイルに対応するブロックチェーンデータを生成するために、前記ローカルログファイルを実行するステップであって、前記ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さが前記対象ブロック高さ以下である、ステップと、
前記ローカルログファイルの実行が完了したことに応答して、データ同期要求を前記対象ノードに送信するステップと、を含む請求項1に記載のノードデータ同期方法。
【請求項3】
前記データ同期要求はログファイル同期要求を含み、
前記対象ノードから送信された更新データが受信されたことに応答して、前記更新データをローカル記憶領域に書き込むステップは、
前記対象ノードから送信されたログ更新ファイルが受信されたことに応答して、前記ログ更新ファイルをローカルログファイルに書き込むことを含み、
前記ログ更新ファイルに対応するブロック高さが前記対象ブロック高さよりも大きい、
請求項1に記載のノードデータ同期方法。
【請求項4】
前記データ同期要求はブロックチェーンデータ同期要求を含み、
前記対象ノードから送信された更新データが受信されたことに応答して、前記更新データをローカル記憶領域に書き込むステップは、
前記対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、前記ブロックチェーン更新データをローカルデータ記憶領域に書き込むことを含み、
前記ブロックチェーン更新データに対応するブロック高さが前記対象ブロック高さよりも大きい、
請求項1に記載のノードデータ同期方法。
【請求項5】
更新データの書き込みが完了したか否かを判定するステップと、
更新データの書き込みが完了したことに応答して、コンセンサスプロセスに参与するステップと、
をさらに含む請求項1~4のいずれか1項に記載のノードデータ同期方法。
【請求項6】
ノードがブロックチェーンシステム内の遅延ノードを含むノードデータ同期装置であって、
前記ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するように構成される確定ユニットであって、前記対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、前記ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる、確定ユニットと、
前記対象ブロック高さに基づいて、前記対象ブロック高さが含まれるデータ同期要求を対象ノードに送信するように構成される送信ユニットと、
前記対象ノードから送信された更新データが受信されたことに応答して、前記更新データをローカル記憶領域に書き込むように構成される更新ユニットであって、前記更新データに対応するブロック高さが前記対象ブロック高さよりも大きい、更新ユニットと、
を備えるノードデータ同期装置。
【請求項7】
前記送信ユニットは、
前記ローカルログファイルに対応するブロックチェーンデータを生成するために、前記ローカルログファイルを実行するように構成される実行モジュールであって、前記ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さが前記対象ブロック高さ以下である、実行モジュールと、
前記ローカルログファイルの実行が完了したことに応答して、データ同期要求を前記対象ノードに送信するように構成される送信モジュールと、
を備える請求項6に記載のノードデータ同期装置。
【請求項8】
前記データ同期要求はログファイル同期要求を含み、
前記更新ユニットは、さらに
前記対象ノードから送信されたログ更新ファイルが受信されたことに応答して、前記ログ更新ファイルをローカルログファイルに書き込むように構成され、
前記ログ更新ファイルに対応するブロック高さが前記対象ブロック高さよりも大きい、
請求項6に記載のノードデータ同期装置。
【請求項9】
前記データ同期要求はブロックチェーンデータ同期要求を含み、
前記更新ユニットは、さらに
前記対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、前記ブロックチェーン更新データをローカルデータ記憶領域に書き込むように構成され、
前記ブロックチェーン更新データに対応するブロック高さが前記対象ブロック高さよりも大きい、
請求項6に記載のノードデータ同期装置。
【請求項10】
更新データの書き込みが完了したか否かを判定し、
更新データの書き込みが完了したことに応答して、コンセンサスプロセスに参与するようにさらに構成される、
請求項6~9のいずれか1項に記載のノードデータ同期装置。
【請求項11】
ブロックチェーンシステム内の遅延ノード及び対象ノードを含み、
前記遅延ノードは、請求項1~5のいずれか1項に記載の方法を実現するためのものであり、
前記対象ノードは、前記遅延ノードから送信されたデータ同期要求が受信されたことに応答して、更新データを前記遅延ノードに送信するように構成され、前記データ同期要求に前記対象ブロック高さが含まれる、ノードデータ同期システム。
【請求項12】
前記データ同期要求はログファイル同期要求を含み、
前記対象ノードは、さらに
前記遅延ノードから送信されたログファイル同期要求が受信されたことに応答して、前記対象ブロック高さに基づいて前記対象ノードのローカルログファイルの開始送信位置を確定することであって、前記開始送信位置は、ブロック高さが前記対象ブロック高さよりも大きいブロックに対応するログデータの境界点を示すためのものである、ことと、
前記開始送信位置に基づいて、前記対象ブロック高さよりも大きいブロックに対応するログデータを前記遅延ノードに送信することと、
を行うように構成される請求項11に記載のノードデータ同期システム。
【請求項13】
前記データ同期要求はブロックチェーンデータ同期要求を含み、
前記対象ノードは、さらに
前記遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが前記対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとすることと、
前記ブロックチェーン更新データを前記遅延ノードに送信することと、
を行うように構成される請求項11に記載のノードデータ同期システム。
【請求項14】
前記対象ノードは、さらに
前記遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが前記対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとしてバッファ配列に記憶し、
ブロック高さに基づいて前記バッファ配列内のブロックチェーン更新データをソートし、ブロックチェーン更新データリストを生成し、
前記ブロックチェーン更新データリストの順序に基づいて、ブロックチェーン更新データを前記遅延ノードに送信する、
ように構成される請求項13に記載のノードデータ同期システム。
【請求項15】
1つ以上のプロセッサと、
1つ以上のプログラムが記憶されている記憶装置とを備えており、
前記1つ以上のプログラムが前記1つ以上のプロセッサにより実行されると、前記1つ以上のプロセッサに請求項1~5のいずれか1項に記載のノードデータ同期方法が実現される電子機器。
【請求項16】
コンピュータプログラムが記憶されているコンピュータ可読媒体であって、
該プログラムがプロセッサにより実行されると、請求項1~5のいずれか1項に記載のノードデータ同期方法が実現されるコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2019年09月20日に提出された、出願番号が201910894819.X、出願人が北京海益同展信息科技有限公司、発明の名称が「ノードデータ同期方法及び装置」である中国特許出願に基づく優先権を主張し、当該特許出願の全文を引用により本出願に組み込む。
【0002】
本開示の実施例は、コンピュータ技術分野に関し、具体的にはノードデータ同期方法及び装置に関する。
【背景技術】
【0003】
ブロックチェーン技術の発展に伴い、ブロックチェーンで記憶及びやりとりを行うデータがますます増えている。ブロックチェーンは、分散データ記憶、ポイントツーポイント伝送、コンセンサスメカニズム、暗号化アルゴリズムなどのコンピュータ技術の新しい応用モードである。ブロックチェーンシステムにおいて、分散型台帳は、異なる場所に分散された複数のノードによって一緒に完成され、通常、各ノードに記録されているのは完全な勘定であり、コンセンサスメカニズムによって記憶の整合性が確保される。
【0004】
ブロックチェーンシステムにおけるノードが異常終了したか、または他の同期異常が発生した場合、通常は2つの方法がある。1つは、本ノードの欠落しているログを他のノードからコピーして完全なログ全体をリロードする(またはすべてのトランザクションを実行する)方法であり、もう1つは、他のノードから完全なデータをローカルにコピーする方法である。
【発明の概要】
【0005】
本開示の実施例は、ノードデータ同期方法及び装置を提案した。
【0006】
第1態様において、本開示の実施例は、ノードがブロックチェーンシステム内の遅延ノードを含むノードデータ同期方法であって、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定することであって、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる、ことと、対象ブロック高さに基づいて、対象ブロック高さが含まれるデータ同期要求を対象ノードに送信することと、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むことであって、更新データに対応するブロック高さが対象ブロック高さよりも大きい、ことと、を含むノードデータ同期方法を提供する。
【0007】
いくつかの実施例において、前記の、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信することは、ローカルログファイルに対応するブロックチェーンデータを生成するために、ローカルログファイルを実行することであって、ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さが対象ブロック高さ以下である、ことと、ローカルログファイルの実行の完了が確定されたことに応答して、データ同期要求を対象ノードに送信することと、を含む。
【0008】
いくつかの実施例において、前記データ同期要求はログファイル同期要求を含み、前記の、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むことは、対象ノードから送信されたログ更新ファイルが受信されたことに応答して、ログ更新ファイルをローカルログファイルに書き込むことであって、ログ更新ファイルに対応するブロック高さが対象ブロック高さよりも大きい、ことを含む。
【0009】
いくつかの実施例において、前記データ同期要求はブロックチェーンデータ同期要求を含み、前記の、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むことは、対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、ブロックチェーン更新データをローカルデータ記憶領域に書き込むことであって、ブロックチェーン更新データに対応するブロック高さは、対象ブロック高さよりも大きい、ことを含む。
【0010】
いくつかの実施例において、該方法は、更新データの書き込みが完了したか否かを判定することと、更新データの書き込みの完了が確定されたことに応答して、コンセンサスプロセスに参与することと、をさらに含む。
【0011】
第2態様において、本開示の実施例は、ノードがブロックチェーンシステム内の遅延ノードを含むノードデータ同期装置であって、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するように構成される確定ユニットであって、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる、確定ユニットと、対象ブロック高さに基づいて、対象ブロック高さが含まれるデータ同期要求を対象ノードに送信するように構成される送信ユニットと、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むように構成される更新ユニットであって、更新データに対応するブロック高さが対象ブロック高さよりも大きい、更新ユニットと、を備えるノードデータ同期装置を提供する。
【0012】
いくつかの実施例において、前記送信ユニットは、ローカルログファイルに対応するブロックチェーンデータを生成するために、ローカルログファイルを実行するように構成される実行モジュールであって、ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さは、対象ブロック高さ以下である、実行モジュールと、ローカルログファイルの実行の完了が確定されたことに応答して、データ同期要求を対象ノードに送信するように構成される送信モジュールと、を備える。
【0013】
いくつかの実施例において、前記データ同期要求はログファイル同期要求を含み、前記更新ユニットは、さらに、対象ノードから送信されたログ更新ファイルが受信されたことに応答して、ログ更新ファイルをローカルログファイルに書き込むように構成され、ログ更新ファイルに対応するブロック高さが対象ブロック高さよりも大きい。
【0014】
いくつかの実施例において、前記データ同期要求はブロックチェーンデータ同期要求を含み、前記更新ユニットは、さらに、対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、ブロックチェーン更新データをローカルデータ記憶領域に書き込むように構成され、ブロックチェーン更新データに対応するブロック高さが対象ブロック高さよりも大きい。
【0015】
いくつかの実施例において、該装置は、さらに、更新データの書き込みが完了したか否かを判定し、更新データの書き込みの完了が確定されたことに応答して、コンセンサスプロセスに参与するように構成される。
【0016】
第3態様において、本開示の実施例は、ブロックチェーンシステム内の遅延ノード及び対象ノードを含み、前記遅延ノードは、第1態様のいずれか1つの実現形態に記載のノードデータ同期方法を実現するためのものであり、前記対象ノードは、遅延ノードから送信されたデータ同期要求が受信されたことに応答して、更新データを遅延ノードに送信するように構成され、データ同期要求に対象ブロック高さが含まれるノードデータ同期システムを提供する。
【0017】
いくつかの実施例において、前記データ同期要求はログファイル同期要求を含み、前記対象ノードは、さらに、遅延ノードから送信されたログファイル同期要求が受信されたことに応答して、対象ブロック高さに基づいて対象ノードのローカルログファイルの開始送信位置を確定し、開始送信位置は、ブロック高さが対象ブロック高さよりも大きいブロックに対応するログデータの境界点を示すためのものであり、開始送信位置に基づいて、対象ブロック高さよりも大きいブロックに対応するログデータを遅延ノードに送信する、ように構成される。
【0018】
いくつかの実施例において、前記データ同期要求はブロックチェーンデータ同期要求を含み、前記対象ノードは、さらに、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとして確定し、ブロックチェーン更新データを遅延ノードに送信する、ように構成される。
【0019】
いくつかの実施例において、前記対象ノードは、さらに、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとしてバッファ配列に記憶し、ブロック高さに従ってバッファ配列内のブロックチェーン更新データをソートし、ブロックチェーン更新データリストを生成し、ブロックチェーン更新データリストの順序に基づいて、ブロックチェーン更新データを遅延ノードに送信する、ように構成される。
【0020】
第4態様において、本開示の実施例は、1つ以上のプロセッサと、1つ以上のプログラムが記憶されている記憶装置とを備えており、1つ以上のプログラムが1つ以上のプロセッサにより実行されると、1つ以上のプロセッサに第1態様のいずれか1つの実現形態に記載のノードデータ同期方法が実現される電子機器を提供する。
【0021】
第5態様において、本開示の実施例は、コンピュータプログラムが記憶されているコンピュータ可読媒体であって、該プログラムがプロセッサにより実行されると、第1態様のいずれか1つの実現形態に記載のノードデータ同期方法が実現されるコンピュータ可読媒体を提供する。
【0022】
本開示の実施例に係るノードデータ同期方法及び装置において、ブロックチェーンシステム内の遅延ノードは、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。ここで、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものである。ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる。次に、対象ブロック高さに基づいて、遅延ノードはデータ同期要求を対象ノードに送信する。ここで、データ同期要求に対象ブロック高さが含まれる。対象ノードから送信された更新データが受信されたことに応答して、遅延ノードは更新データをローカル記憶領域に書き込み、ここで、更新データに対応するブロック高さは対象ブロック高さよりも大きい。これにより、ブロックチェーンシステムにおける遅延ノードの同期効率が改善され、ネットワークリソースが節約された。
【0023】
以下、添付図面を参照しながら非限定的な実施例を詳細に説明することにより、本開示の他の特徴、目的及び利点はより明らかになる。
【図面の簡単な説明】
【0024】
【
図1】本開示の一実施例が適用される例示的なシステムアーキテクチャを示す図である。
【
図2】本開示に係るノードデータ同期方法の一実施例を示すフローチャートである。
【
図3】本開示の実施例によるノードデータ同期方法の一適用シーンを示す概略図である。
【
図4】本開示に係るノードデータ同期方法のもう1つの実施例を示すフローチャートである。
【
図5】本開示に係るノードデータ同期装置の一実施例を示す概略構成図である。
【
図6】本開示に係るノードデータ同期システムの一実施例における各機器間のやりとりのシーケンス図である。
【
図7】本開示の実施例を実現するために適する電子機器の概略構成図である。
【発明を実施するための形態】
【0025】
以下、添付図面及び実施例を参照しながら本開示をより詳細に説明する。ここで説明する具体的な実施例は、かかる発明を説明するためのものに過ぎず、当該発明を限定するものではないことを理解すべきである。なお、説明の便宜上、図面に発明と関連する部分のみが示されている。
【0026】
なお、矛盾しない場合、本開示の実施例及び実施例の特徴は互いに組み合わせてもよい。以下、添付図面を参照して実施例により本開示を詳細に説明する。
【0027】
図1では、本開示のノードデータ同期方法又はノードデータ同期装置が適用される例示的なシステムアーキテクチャ100を示した。
【0028】
図1に示すように、システムアーキテクチャ100は、端末装置101、102、103、ネットワーク104及びサーバ105を含んでもよい。ネットワーク104は、端末装置101、102、103とサーバ105との間に通信リンクを提供するための媒体とされる。ネットワーク104は、例えば、有線、無線通信リンク又は光ケーブルなどのような様々な接続タイプを含んでもよい。
【0029】
端末装置101、102、103はネットワーク104を介してサーバ105とやりとりすることによって、メッセージなどを受信したり送信したりすることができる。端末装置101、102、103には、各種通信クライアントアプリケーション、例えば、ウェブブラウザアプリケーション、ショッピングアプリケーション、検索アプリケーション、インスタントメッセージツール、電子メールクライアント、ソーシャルプラットフォームソフトウェア、テキスト編集アプリケーションなどがインストールされてもよい。
【0030】
端末装置101、102、103はハードウェアであってもよく、ソフトウェアであってもよい。端末装置101、102、103がハードウェアである場合、ディスプレイを有するとともにネットワークデータ伝送をサポートする各種電子機器であってもよく、スマートフォン、タブレットコンピュータ、電子ブックリーダー、ラップトップコンピュータ及びデスクトップコンピュータなどを含むが、これらに限定されるものではない。端末装置101、102、103がソフトウェアである場合、前記電子機器にインストールされてもよい。複数のソフトウェアまたはソフトウェアモジュール(例えば、分散サービスを提供するためのソフトウェアまたはソフトウェアモジュール)として実現されてもよく、単一ソフトウェアまたはソフトウェアモジュールとして実現されてもよい。ここでは、特に限定しない。
【0031】
サーバ105は、様々なサービスを提供するサーバであってもよい。サーバ105は、端末装置101、102、103と同じブロックチェーンシステムにあってもよく、それぞれが該ブロックチェーンシステム内の1つのノードとされる。ブロックチェーン内の一部のノードが異常な場合、該ノードのローカルデータは、メインチェーンと比べて欠落が存在する。前記異常ノードを遅延ノード(backward node)とし、他のノードを正常ノードとすることができる。
【0032】
なお、サーバは、ハードウェアであってもよく、ソフトウェアであってもよい。 サーバがハードウェアである場合、複数のサーバで構成された分散型サーバクラスタとして実現されてもよく、単一サーバとして実現されてもよい。サーバがソフトウェアである場合、複数のソフトウェアまたはソフトウェアモジュール(例えば、分散サービスを提供するためのソフトウェアまたはソフトウェアモジュール)として実現されてもよく、単一のソフトウェアまたはソフトウェアモジュールとして実現されてもよい。ここでは、特に限定しない。
【0033】
なお、本開示の実施例に係るノードデータ同期方法は、通常ブロックチェーンシステム内の遅延ノードによって実行される。したがって、ノードデータ同期装置は遅延ノードに設置されることができる。ここで、遅延ノードは、サーバ105であってもよく、端末装置101、102、103であってもよい。
【0034】
図1における端末装置、ネットワーク及びサーバの数は例示的なものに過ぎないことを理解すべきである。実現のニーズに応じて、任意の数の端末装置、ネットワーク及びサーバを備えてもよい。
【0035】
次に、
図2を参照されたい。
図2では、本開示に係るノードデータ同期方法の一実施例のフロー200を示した。該ノードデータ同期方法は以下のステップを含む。
【0036】
ステップ201では、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。
【0037】
本実施例において、ノードデータ同期方法の実行主体(例えば、
図1に示された、遅延ノードとしての端末装置101、102、103またはサーバ105)は、ローカルログファイルに基づいて、様々な方式で対象ブロック高さを確定することができる。前記ローカルログファイルは、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルであってもよい。前記対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであってもよい。前記ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれてもよい。例示として、前記実行主体は、ローカルログファイルを逆順にトラバースすることができ、書き込まれたローカルログファイルに対応する最大ブロック高さを前記対象ブロック高さとして確定する。オプションとして、前記実行主体は、完全に書き込まれたローカルログファイルに対応するブロック高さの最大値のみを前記最大ブロック高さとして確定し、即ち、処理に成功したブロックを部分的に放棄してもよい。
【0038】
なお、ブロックチェーンデータにおけるデータは、キー値(key-value)ペアの形式で記憶することができる。本実施例において、ブロックチェーンデータは、記憶されたキー値ペアに対応するブロック高さを含んでもよい。前記ブロック高さは、様々な形式であってもよく、ここでは、特に限定しない。
【0039】
なお、ブロックチェーンシステム内のノードがデータ同期を行う際に、通常、ローカルログファイルを実行することにより対応するブロックチェーンデータを生成することができる。ローカルログファイルを実行することにより対応するブロックチェーンデータを生成する前記方法は、現在広く研究・応用されている公知技術であるため、ここでは、説明を省略する。
【0040】
ステップ202では、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信する。
【0041】
本実施例において、前記実行主体は、ステップ201で取得した対象ブロック高さに基づいて、対象ノードにデータ同期要求を送信することができる。ここで、前記対象ノードは、実際のニーズに応じて予め指定された任意のノードであってもよい。前記対象ノードは、規則に従って決められたノード、例えば、前記遅延ノードと同じブロックチェーンシステム内にある非遅延ノードであってもよい。
【0042】
本実施例において、前記実行主体は、ブロック高さが前記対象ブロック高さよりも大きいブロックチェーンデータを取得するための要求を表すデータ同期要求を対象ノードに送信することができる。ここで、前記データ同期要求は前記対象ブロック高さを含んでもよい。オプションとして、前記データ同期要求はログファイル同期要求を含んでもよい。オプションとして、前記データ同期要求はブロックチェーンデータ同期要求を含んでもよい。
【0043】
本実施例のいくつかのオプション的な実現形態において、前記実行主体は、以下のステップに従ってデータ同期要求を対象ノードに送信することができる。
【0044】
第1のステップでは、ローカルログファイルに対応するブロックチェーンデータを生成するために、ローカルログファイルを実行する。
【0045】
これらの実現形態において、実行されたローカルログファイルに対応するブロックチェーンデータを生成するために、前記実行主体は、通常、ローカルログファイルの順序に従って実行することができる。ここで、前記ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さは、前記対象ブロック高さ以下である。
【0046】
第2のステップでは、ローカルログファイルの実行の完了が確定されたことに応答して、データ同期要求を対象ノードに送信する。
【0047】
これらの実現形態において、前記実行主体は、前記ローカルログファイルの実行が完了したことに応答して、前記データ同期要求を対象ノードに送信する。
【0048】
なお、前記実行主体は、前記対象ブロック高さが示すローカルログファイル記録を実行の末尾とすることができ、即ち、新たに同期されたログファイルを実行しない。
【0049】
ステップ203では、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込む。
【0050】
本実施例において、データ同期要求がログファイル同期要求を含んでもよいことに基づいて、対象ノードから送信されたログ更新ファイルが受信されたことに応答して、前記実行主体は、前記ログ更新ファイルをローカルログファイルに書き込むことができる。ここで、前記ログ更新ファイルに対応するブロック高さが、通常、前記対象ブロック高さよりも大きい。
【0051】
本実施例のいくつかのオプション的な実現形態において、データ同期要求がブロックチェーンデータ同期要求を含んでもよいことに基づいて、対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、前記実行主体は、ブロックチェーン更新データをローカルデータ記憶領域に書き込むことができる。ここで、前記ブロックチェーン更新データに対応するブロック高さは、通常、前記対象ブロック高さよりも大きい。
【0052】
なお、前記オプション的な実現形態に基づいて、ローカルログファイルの実行、ローカルログファイルへのログ更新ファイルの書き込み、ローカルデータ記憶領域へのブロックチェーン更新データの書き込みは、3つのスレッドを起動させることによりほぼ並行して実行することもできる。これにより、ノード同期の時間が短縮され、ノード同期の速度が向上され、さらに、ブロックチェーンシステムの安定性を維持することに役立つ。
【0053】
続いて、
図3を参照されたい。
図3は、本開示の実施例によるノードデータ同期方法の適用シーンを示す概略図である。
図3の適用シーンにおいて、ブロックチェーンシステムにはノード301、302及び303が含まれている。ノード301、302及び303はネットワーク304を介して接続される。ノード301は、ローカルログファイルを逆順にトラバースしてローカルの現在の最大ブロック高さ3を取得する。ノード301は、ノード302及びノード303の最大ブロック高さを定期的に取得し、例えば、いずれも5である。取得したノード302またはノード303の最大ブロック高さが、ローカルの現在の最大ブロック高さよりも大きいと確定されたことに応答して、ノード301が遅延ノードであると確定することができる。ノード301は、ローカル最大ブロック高さ5が含まれているデータ同期要求をノード302に送信することができる。ノード302は、ブロック高さ4及び5に対応するデータを更新データとしてノード301に送信することができる。ノード301は、前記更新データをローカル記憶領域に書き込むことができる。
【0054】
現在、従来技術の1つは、通常、ノード内の欠落しているログをコピーしてリロードすることであるが、ログのコピーのコストが高く、ログのロードをローカルで実行する必要があるため、性能が低く、多くの場合は、該ノードの後続のコンセンサスへの参加プロセスに悪影響を与えてしまう。本開示の前記実施例に係る方法は、ログをリロードせずに、ローカルログファイルに基づいて対象ブロック高さを確定するため、ローカルのコンピューティングリソースが節約される。また、従来技術の1つは、他のノードの完全なデータをローカルにコピーすることによって同期を行うため、ローカルデータの重複排除が困難になり、ネットワーク伝送リソースが消費される。本開示の前記実施例に係る方法は、受信された更新データをローカル記憶領域に書き込む方法によって増分同期を行うことで、ネットワークリソースが節約され、同期効率が向上された。
【0055】
さらに、
図4を参照されたい。
図4では、ノードデータ同期方法のもう1つの実施例のフロー400を示した。該ノードデータ同期方法のフロー400は、以下のステップを含む。
【0056】
ステップ401では、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。
【0057】
ステップ402では、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信する。
【0058】
ステップ403では、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込む。
【0059】
前記ステップ401、ステップ402、ステップ403は、前記実施例におけるステップ201、ステップ202、ステップ203とそれぞれ一致しており、ステップ201、ステップ202、ステップ203に対する上記の説明は、ステップ401、ステップ402 、ステップ403にも適用されるので、ここでは、説明を省略する。
【0060】
ステップ404では、更新データの書き込みが完了したか否かを判定する。
【0061】
本実施例において、ノードデータ同期方法の実行主体は、(例えば、
図1に示された、遅延ノードとしての端末装置101、102、103またはサーバ105)は、更新データの書き込みが完了したか否かを様々な方式によって確定することができる。例示として、前記更新データがログ更新ファイルである場合、全ての遅延ログの完全な書き込みが完了したと確定されたことに応答して、前記実行主体は、更新データの書き込みの完了を確定することができる。別の例示として、前記更新データがブロックチェーン更新データである場合、全てのブロックチェーン更新データの書き込みが完了したと確定されたことに応答して、前記実行主体は、更新データの書き込みの完了を確定することができる。ここで、前記ブロックチェーン更新データは、通常、対象ノードが対象ノードのローカルログファイルに基づいて生成したものであってもよい。
【0062】
ステップ405では、更新データの書き込みの完了が確定されたことに応答して、コンセンサスプロセスに参与する。
【0063】
本実施例において、更新データの書き込みの完了が確定されたことに応答して、前記実行主体は、同期の完了を確定することができる。従って、前記実行主体は、遅延ノードに属せず、後続のコンセンサスプロセスに参加できる。ここで、前記コンセンサスプロセスは、ブロックチェーンのコンセンサスアルゴリズムに使用可能な様々な意思決定プロセスを含んでもよい。
【0064】
図4から分かるように、本実施例おけるノードデータ同期方法のフロー400は、更新データの書き込みが完了したか否かを判定するステップと、更新データの書き込みの完了が確定されたことに応答して、コンセンサスプロセスに参与するステップとを具体化した。したがって、本実施例で記述した構成は、更新データの書き込みが完了したノードがコンセンサスプロセスに参加することを可能にすることで、ブロックチェーンシステムにおけるノード同期が実現され、コンセンサスプロセスの円滑な進行が確保された。
【0065】
さらに、
図5を参照されたい。前記各図に示された方法の実施形態として、本開示は、ノードデータ同期装置の一実施例を提供し、該装置の実施例は、
図2に示される方法の実施例に対応し、該装置は具体的に様々な電子機器に適用できる。
【0066】
図5に示すように、本実施例に係るノードデータ同期装置500は、確定ユニット501、送信ユニット502及び更新ユニット503を備える。確定ユニット501は、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するように構成される。ここで、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる。送信ユニット502は、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信するように構成される。ここで、データ同期要求に対象ブロック高さが含まれる。更新ユニット503は、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むように構成される。ここで、更新データに対応するブロック高さが対象ブロック高さよりも大きい。
【0067】
本実施例において、ノードデータ同期装置500における確定ユニット501、送信ユニット502及び更新ユニット503の具体的な処理及びその技術的効果は、
図2の対応する実施例におけるステップ202、ステップ202及びステップ203の関連説明をそれぞれ参照されたい。ここでは、説明を省略する。
【0068】
本実施例のいくつかのオプション的な実現形態において、前記送信ユニット502は、実行モジュール(図示せず)、送信モジュール(図示せず)を備えることができる。前記実行モジュールは、ローカルログファイルに対応するブロックチェーンデータを生成するために、ローカルログファイルを実行するように構成されることができる。ここで、前記ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さは、通常、対象ブロック高さ以下である。前記送信モジュールは、ローカルログファイルの実行の完了が確定されたことに応答して、データ同期要求を対象ノードに送信するように構成されることができる。
【0069】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はログファイル同期要求を含んでもよい。前記更新ユニット503は、さらに、対象ノードから送信されたログ更新ファイルが受信されたことに応答して、ログ更新ファイルをローカルログファイルに書き込むように構成されることができる。ここで、前記ログ更新ファイルに対応するブロック高さが対象ブロック高さよりも大きくてもよい。
【0070】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はブロックチェーンデータ同期要求を含んでもよい。前記更新ユニット503は、さらに、対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、ブロックチェーン更新データをローカルデータ記憶領域に書き込むように構成されることができる。ここで、前記ブロックチェーン更新データに対応するブロック高さが対象ブロック高さよりも大きくてもよい。
【0071】
本実施例のいくつかのオプション的な実現形態において、前記ノードデータ同期装置500は、さらに、更新データの書き込みが完了したか否かを判定し、更新データの書き込みの完了が確定されたことに応答して、コンセンサスプロセスに参与するように構成される。
【0072】
本開示の前記実施例に係る装置において、ブロックチェーンシステムにおける遅延ノードの確定ユニット501は、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。ここで、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものである。ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる。次に、送信ユニット502は、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信する。ここで、データ同期要求に対象ブロック高さが含まれる。更新ユニット503は、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込む。ここで、更新データに対応するブロック高さが対象ブロック高さよりも大きい。これにより、ブロックチェーンシステムにおける遅延ノードの同期効率が向上され、ネットワークリソースが節約される。
【0073】
さらに、
図6を参照されたい。
図6では、ノードデータを同期させるための一実施例における各機器間のやりとりのシーケンス600を示した。該ノードデータ同期システムは、遅延ノード(例えば、
図1に示される端末装置101)と、対象ノード(例えば、
図1に示されるサーバ105)とを備えてもよい。ここで、前記遅延ノードは、前記実施例に記載のノードデータ同期方法を実現するために用いられることができる。前記対象ノードは、遅延ノードから送信されたデータ同期要求が受信されたことに応答して、更新データを前記遅延ノードに送信するように構成されることができる。ここで、前記データ同期要求に前記対象ブロック高さが含まれてもよい。
【0074】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はログファイル同期要求を含んでもよい。前記対象ノードは、さらに、遅延ノードから送信されたログファイル同期要求が受信されたことに応答して、対象ブロック高さに基づいて対象ノードのローカルログファイルの開始送信位置を確定し、開始送信位置に基づいて、対象ブロック高さよりも大きいブロックに対応するログデータを遅延ノードに送信するように構成されることができる。ここで、前記開始送信位置は、ブロック高さが対象ブロック高さよりも大きいブロックに対応するログデータの境界点を示すために用いられてもよい。
【0075】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はブロックチェーンデータ同期要求を含んでもよい。前記対象ノードは、さらに、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとして確定し、ブロックチェーン更新データを遅延ノードに送信するように構成されることができる。
【0076】
前記オプション的な実現形態に基づいて、前記対象ノードは、さらに、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとしてバッファ配列に記憶し、ブロック高さに従ってバッファ配列内のブロックチェーン更新データをソートし、ブロックチェーン更新データリストを生成し、ブロックチェーン更新データリストの順序に基づいて、ブロックチェーン更新データを遅延ノードに送信するように構成されることができる。
【0077】
図6に示すように、ステップ601では、遅延ノードは、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。
【0078】
ステップ602では、遅延ノードは、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信する。
【0079】
ステップ603では、対象ノードは、遅延ノードから送信されたデータ同期要求が受信されたことに応答して、更新データを遅延ノードに送信する。
【0080】
本実施例において、遅延ノードから送信されたデータ同期要求が受信されたことに応答して、対象ノードは、様々な方法によって更新データを遅延ノードに送信することができる。ここで、前記データ同期要求に対象ブロック高さが含まれてもよい。
【0081】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はログファイル同期要求を含んでもよい。前記対象ノードは、以下のスッテプで更新データを遅延ノードに送信することができる。
【0082】
第1のステップでは、遅延ノードから送信されたログファイル同期要求が受信されたことに応答して、対象ブロック高さに基づいて対象ノードのローカルログファイルの開始送信位置を確定する。
【0083】
これらの実現形態において、前記対象ノードは、対象ブロック高さに基づいてローカルログファイル内の記録に対して位置特定を行って、開始送信位置を確定することができる。ここで、前記開始送信位置は、ブロック高さが対象ブロック高さよりも大きいブロックに対応するログデータの境界点を示すために用いられることができる。例えば、対象ブロック高さが3の場合、前記開始送信位置は、ブロック高さ4のブロックに対応する記録を示すために用いられてもよい。
【0084】
第2のステップでは、開始送信位置に基づいて、対象ブロック高さよりも大きいブロックに対応するログデータを遅延ノードに送信する。
【0085】
これらの実現形態において、前記対象ノードは、対象ブロック高さよりも大きいブロックに対応するログデータをログ順に応じて遅延ノードに1つずつ送信することができる。前記対象ノードが前記ログデータをパケット化して送信してもよいことは理解でき、ここでは、限定しない。
【0086】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はブロックチェーンデータ同期要求を含んでもよい。前記対象ノードは、以下のステップで更新データを遅延ノードに送信することもできる。
【0087】
第1のステップでは、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとして確定する。
【0088】
第2のステップでは、ブロックチェーン更新データを遅延ノードに送信する。
【0089】
オプションとして、前記対象ノードは、以下のステップで更新データを遅延ノードに送信することもできる。
【0090】
第1のステップでは、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとしてバッファ配列に記憶する。
【0091】
前記オプション的な実現形態に基づいて、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、前記対象ノードは、ローカルに記憶されたブロックチェーンデータを1つずつトラバースすることができる。ブロックチェーンデータに対応するブロック高さに基づいて、該ブロックチェーンデータに対応するブロック高さが前記対象ブロック高さよりも大きいか否かを判定する。その後、前記対象ノードは、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとしてバッファ配列に記憶することができる。
【0092】
第2のステップでは、ブロック高さに従ってバッファ配列内のブロックチェーン更新データをソートし、ブロックチェーン更新データリストを生成する。例示として、前記ブロックチェーン更新データリストは、ブロックの高さに従って低いものから高いものへと配列することができる。
【0093】
第3のステップでは、ブロックチェーン更新データリストの順序に基づいて、ブロックチェーン更新データを遅延ノードに送信する。オプションとして、前記ブロックチェーン更新データリスト内のブロックチェーン更新データの送信が完了したことに応答して、前記対象ノードは、新たに生成されたデータがあるか否かをチェックすることができる。存在する場合、前記新たに生成されたデータを前記遅延ノードに引き続き送信する。
【0094】
ステップ604において、遅延ノードは、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込む。
【0095】
前記ステップ601、ステップ602、ステップ604は、前記実施例におけるステップ201、ステップ202、ステップ203とそれぞれ一致しており、ステップ201、ステップ202及びステップ203に対する上記の説明は、ステップ601、ステップ602 及びステップ604にも適用されるので、ここでは、説明を省略する。
【0096】
本出願の前記実施例に係るノードデータ同期システムにおいて、遅延ノードは、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。その後、遅延ノードは、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信する。次に、対象ノードは、遅延ノードから送信されたデータ同期要求が受信されたことに応答して、更新データを遅延ノードに送信する。そして、遅延ノードは、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込む。遅延ノードと対象ノードとのやりとりによって、遅延ノードのデータ同期が実現され、同期時間が短縮され、効率が向上され、さらに、ブロックチェーンシステムにおけるノードデータの同期整合性によりコンセンサスプロセスの円滑な進行が確保された。
【0097】
次に、
図7を参照されたい。
図7では、本開示の実施例を実現するのに適した電子機器(例えば、
図1の端末装置)700の概略構成図を示した。本開示の実施例における端末装置は、携帯電話、ノートブックコンピュータ、デジタル放送受信機、PDA(パーソナルデジタルアシスタント)、PAD(タブレットコンピュータ)、PMP(ポータブルマルチメディアプレーヤー)、車載端末(例えば、車載ナビゲーション端末)等のモバイル端末、及びデスクトップコンピュータなどの固定端末を含むが、これらに限定されない。
図7に示された端末装置は単なる例示に過ぎず、本開示の実施例の機能及び使用範囲にいかなる制限をもたらすものとすべきでない。
【0098】
図7に示すように、電子機器700は、読み出し専用メモリ(ROM)702に記憶されているプログラム又は記憶装置708からランダムアクセスメモリ(RAM)703にロードされたプログラムに基づいて様々な適切な動作及び処理を実行することができる処理装置(例えば、中央処理装置、グラフィックプロセッサ等)701を備えることができる。RAM703には、電子機器700の動作に必要な様々なプログラム及びデータがさらに記憶されている。処理装置701、ROM702及びRAM703は、バス704を介して互いに接続される。入/出力(I/O)インタフェース705もバス704に接続される。
【0099】
通常、I/Oインタフェース705には、例えば、タッチパネル、タッチパッド、キーボード、マウスなどを含む入力装置706、液晶ディスプレイ(LCD,Liquid Crystal Display)、スピーカ、バイブレータなどを含む出力装置707、磁気テープ、ハードディスクなどを含む記憶装置708、並びに通信装置709が接続されている。通信装置709は、電子機器700と他の機器との間で無線または有線による通信を行い、データのやりとりを可能にする。なお、
図7では、様々な装置を有する電子機器700を示しているが、図示された装置のすべてを実施または備える必要はないことを理解すべきである。代替して実施してもよく、より多くの装置またはより少ない装置を備えてもよい。
図7に示す各ブロックは1つの装置を代表してもよく、必要に応じて複数の装置を代表してもよい。
【0100】
特に、本開示の実施例によれば、以上のフローチャートを参照しながら記載したプロセスは、コンピュータソフトウェアプログラムとして実現することができる。例えば、本開示の実施例は、コンピュータ可読媒体にロードされるコンピュータプログラムを含むコンピュータプログラム製品を含み、該コンピュータプログラムは、フローチャートに示された方法を実行するためのプログラムコードを含んでもよい。このような実施例において、該コンピュータプログラムは、通信装置709を介してネットワークからダウンロードされてインストールされてもよく、又は記憶装置708またはROM702からインストールされてもよい。該コンピュータプログラムが処理装置701により実行されると、本開示の方法によって限定された前記機能が実行される。
【0101】
なお、本開示の実施例におけるコンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体、或いは前記両者の任意の組み合わせであってもよい。コンピュータ可読記憶媒体は、例えば、電気的、磁気的、光学的、電磁的、赤外線の、又は半導体のシステム、装置又はデバイス、あるいは任意の前記の組み合わせであってもよいが、これらに限定するものではない。コンピュータ可読記憶媒体のより具体的な例として、1本又は複数本の導線を有する電気接続、携帯可能なコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ケーブル、携帯可能なコンパクトディスク読み出し専用メモリ(CD-ROM)、光記憶装置、磁気記憶装置、又は前記の任意の適切な組み合わせを含むが、これらに限定されない。本開示の実施例において、コンピュータ可読記憶媒体は、プログラムを含有又は記憶するいずれの有形媒体であってもよく、該プログラムは、コマンド実行システム、装置又はデバイスに用いられ、又はそれらに組み合わせて用いられてもよい。本開示の実施例において、コンピュータ可読信号媒体は、ベースバンドにおいて又はキャリアの一部として伝搬されるデータ信号を含み、コンピュータ可読プログラムコードがロードされる。このように伝搬されるデータ信号は、電磁気信号、光信号又は前記任意の適切な組み合わせを含む種々の形式を採ることができるが、これらに限定されない。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体以外のいかなるコンピュータ可読媒体であってもよく、該コンピュータ可読媒体は、コマンド実行システム、装置又はデバイスにより使用され、又はそれらと組み合わせて使用されるためのプログラムを送信、伝搬又は伝送することができる。コンピュータ可読媒体に含まれるプログラムコードは、電線、光ケーブル、RF(Radio Frequency,無線周波数)など、又は前記任意の適切な組み合わせを含む任意の適切な媒体を用いて伝送することができるが、それらに限定されない。
【0102】
前記コンピュータ可読媒体は、前記電子機器に含まれるものであってもよく、該電子機器に実装されずに別体として存在するものであってもよい。前記コンピュータ可読媒体に1つ又は複数のプログラムがロードされ、前記1つ又は複数のプログラムが該電子機器により実行される時、該電子機器は、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定することであって、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる、ことと、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信することであって、データ同期要求に対象ブロック高さが含まれる、ことと、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むことであって、更新データに対応するブロック高さが対象ブロック高さよりも大きい、ことと、を含む。
【0103】
1つまたは複数のプログラミング言語またはそれらの組み合わせによって、本開示の実施例の動作の実行に用いられるコンピュータプログラムコードを作成してもよい。前記プログラミング言語は、Java、Smalltalk、C++などのようなオブジェクト指向のプログラミング言語を含み、さらに「C」言語または類似のプログラミング言語のような手続き型プログラミング言語を含む。プログラムコードは完全にユーザコンピュータ上で実行されてもよく、部分的にユーザコンピュータ上で実行されてもよく、スタンドアロンソフトウェアパッケージとして実行されてもよく、一部がユーザコンピュータ上で実行され一部がリモートコンピュータ上で実行されてもよく、或いは完全にリモートコンピュータまたはサーバ上で実行されてもよい。リモートコンピュータに関わる場合、リモートコンピュータはローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザコンピュータに接続されてもよく、または外部コンピュータ(例えばインターネットサービスプロバイダーによるインターネットを通じて接続する)に接続されてもよい。
【0104】
添付図面におけるフローチャート及びブロック図は、本開示の各実施例によるシステム、方法及びコンピュータプログラムの実現可能なアーキテクチャー、機能及び動作を示した。この点において、フローチャート又はブロック図におけるそれぞれのブロックは、1つのモジュール、プログラムセグメント、又はコードの一部を代表することができ、該モジュール、プログラムセグメント、又はコードの一部は、所定のロジック機能を実現するための1つ又は複数の実行可能な指令を含む。なお、代替の実現において、ブロックに表示された機能は、図面に表示された順番と異なる順番で発生させることができる。例えば、2つの直列的に示されたブロックは、実際には、基本的に並行して実行することができ、機能によっては、逆の順番で実行することも可能である。なお、ブロック図及び/又はフローチャートにおけるそれぞれのブロックと、ブロック図及び/又はフローチャートにおけるブロックの組み合わせは、所定の機能又は動作を実行するための専用のハードウェアに基づくシステムによって実現することができ、あるいは、専用ハードウェアとコンピュータ指令の組み合わせによって実現することができる。
【0105】
本開示の実施例に記載されたユニットは、ソフトウェアによって実現されてもよく、ハードウェアによって実現されてもよい。記載されたユニットはプロセッサに構成されてもよい。例えば、確定ユニット、送信ユニット、更新ユニットを備えるプロセッサとして記載されてもよい。なお、これらのユニットの名称は場合によってはユニット自体への限定を構成せず、例えば、確定ユニットは、「ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するユニット」と記載されてもよい。
【0106】
以上の記載は、本開示の好ましい実施例、及び適用される技術的原理の説明に過ぎない。当業者であれば、本開示の実施例に係る発明の範囲が、前記技術的特徴の特定な組み合わせからなる技術案に限定されるものではなく、前記発明の趣旨を逸脱しない範囲で、前記技術的特徴または均等の特徴の任意の組み合わせからなる他の技術案も含むべきであることを理解すべきである。例えば、前記特徴と、本開示の実施例に開示された類似の機能を持っている技術的特徴(これらに限定されていない)とを互いに置き換えてなる技術案が挙げられる。
【符号の説明】
【0107】
301 ノード
302 ノード
303 ノード
304 ネットワーク
500 ノードデータ同期装置
501 確定ユニット
502 送信ユニット
503 更新ユニット
700 電子機器
701 処理装置
702 ROM
703 RAM
704 バス
705 I/Oインタフェース
706 入力装置
707 出力装置
708 記憶装置
709 通信装置
【手続補正書】
【提出日】2022-01-17
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2019年09月20日に提出された、出願番号が201910894819.X、出願人が北京海益同展信息科技有限公司、発明の名称が「ノードデータ同期方法及び装置」である中国特許出願に基づく優先権を主張し、当該特許出願の全文を引用により本出願に組み込む。
【0002】
本開示の実施例は、コンピュータ技術分野に関し、具体的にはノードデータ同期方法及び装置、システム、電子機器、記憶媒体並びにコンピュータプログラムに関する。
【背景技術】
【0003】
ブロックチェーン技術の発展に伴い、ブロックチェーンで記憶及びやりとりを行うデータがますます増えている。ブロックチェーンは、分散データ記憶、ポイントツーポイント伝送、コンセンサスメカニズム、暗号化アルゴリズムなどのコンピュータ技術の新しい応用モードである。ブロックチェーンシステムにおいて、分散型台帳は、異なる場所に分散された複数のノードによって一緒に完成され、通常、各ノードに記録されているのは完全な勘定であり、コンセンサスメカニズムによって記憶の整合性が確保される。
【0004】
ブロックチェーンシステムにおけるノードが異常終了したか、または他の同期異常が発生した場合、通常は2つの方法がある。1つは、本ノードの欠落しているログを他のノードからコピーして完全なログ全体をリロードする(またはすべてのトランザクションを実行する)方法であり、もう1つは、他のノードから完全なデータをローカルにコピーする方法である。
【発明の概要】
【0005】
本開示の実施例は、ノードデータ同期方法及び装置、システム、電子機器、記憶媒体並びにコンピュータプログラムを提案した。
【0006】
第1態様において、本開示の実施例は、ノードがブロックチェーンシステム内の遅延ノードを含むノードデータ同期方法であって、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定することであって、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる、ことと、対象ブロック高さに基づいて、対象ブロック高さが含まれるデータ同期要求を対象ノードに送信することと、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むことであって、更新データに対応するブロック高さが対象ブロック高さよりも大きい、ことと、を含むノードデータ同期方法を提供する。
【0007】
いくつかの実施例において、前記の、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信することは、ローカルログファイルに対応するブロックチェーンデータを生成するために、ローカルログファイルを実行することであって、ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さが対象ブロック高さ以下である、ことと、ローカルログファイルの実行の完了が確定されたことに応答して、データ同期要求を対象ノードに送信することと、を含む。
【0008】
いくつかの実施例において、前記データ同期要求はログファイル同期要求を含み、前記の、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むことは、対象ノードから送信されたログ更新ファイルが受信されたことに応答して、ログ更新ファイルをローカルログファイルに書き込むことであって、ログ更新ファイルに対応するブロック高さが対象ブロック高さよりも大きい、ことを含む。
【0009】
いくつかの実施例において、前記データ同期要求はブロックチェーンデータ同期要求を含み、前記の、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むことは、対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、ブロックチェーン更新データをローカルデータ記憶領域に書き込むことであって、ブロックチェーン更新データに対応するブロック高さは、対象ブロック高さよりも大きい、ことを含む。
【0010】
いくつかの実施例において、該方法は、更新データの書き込みが完了したか否かを判定することと、更新データの書き込みの完了が確定されたことに応答して、コンセンサスプロセスに参与することと、をさらに含む。
【0011】
第2態様において、本開示の実施例は、ノードがブロックチェーンシステム内の遅延ノードを含むノードデータ同期装置であって、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するように構成される確定ユニットであって、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる、確定ユニットと、対象ブロック高さに基づいて、対象ブロック高さが含まれるデータ同期要求を対象ノードに送信するように構成される送信ユニットと、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むように構成される更新ユニットであって、更新データに対応するブロック高さが対象ブロック高さよりも大きい、更新ユニットと、を備えるノードデータ同期装置を提供する。
【0012】
いくつかの実施例において、前記送信ユニットは、ローカルログファイルに対応するブロックチェーンデータを生成するために、ローカルログファイルを実行するように構成される実行モジュールであって、ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さは、対象ブロック高さ以下である、実行モジュールと、ローカルログファイルの実行の完了が確定されたことに応答して、データ同期要求を対象ノードに送信するように構成される送信モジュールと、を備える。
【0013】
いくつかの実施例において、前記データ同期要求はログファイル同期要求を含み、前記更新ユニットは、さらに、対象ノードから送信されたログ更新ファイルが受信されたことに応答して、ログ更新ファイルをローカルログファイルに書き込むように構成され、ログ更新ファイルに対応するブロック高さが対象ブロック高さよりも大きい。
【0014】
いくつかの実施例において、前記データ同期要求はブロックチェーンデータ同期要求を含み、前記更新ユニットは、さらに、対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、ブロックチェーン更新データをローカルデータ記憶領域に書き込むように構成され、ブロックチェーン更新データに対応するブロック高さが対象ブロック高さよりも大きい。
【0015】
いくつかの実施例において、該装置は、さらに、更新データの書き込みが完了したか否かを判定し、更新データの書き込みの完了が確定されたことに応答して、コンセンサスプロセスに参与するように構成される。
【0016】
第3態様において、本開示の実施例は、ブロックチェーンシステム内の遅延ノード及び対象ノードを含み、前記遅延ノードは、第1態様のいずれか1つの実現形態に記載のノードデータ同期方法を実現するためのものであり、前記対象ノードは、遅延ノードから送信されたデータ同期要求が受信されたことに応答して、更新データを遅延ノードに送信するように構成され、データ同期要求に対象ブロック高さが含まれるノードデータ同期システムを提供する。
【0017】
いくつかの実施例において、前記データ同期要求はログファイル同期要求を含み、前記対象ノードは、さらに、遅延ノードから送信されたログファイル同期要求が受信されたことに応答して、対象ブロック高さに基づいて対象ノードのローカルログファイルの開始送信位置を確定し、開始送信位置は、ブロック高さが対象ブロック高さよりも大きいブロックに対応するログデータの境界点を示すためのものであり、開始送信位置に基づいて、対象ブロック高さよりも大きいブロックに対応するログデータを遅延ノードに送信する、ように構成される。
【0018】
いくつかの実施例において、前記データ同期要求はブロックチェーンデータ同期要求を含み、前記対象ノードは、さらに、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとして確定し、ブロックチェーン更新データを遅延ノードに送信する、ように構成される。
【0019】
いくつかの実施例において、前記対象ノードは、さらに、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとしてバッファ配列に記憶し、ブロック高さに従ってバッファ配列内のブロックチェーン更新データをソートし、ブロックチェーン更新データリストを生成し、ブロックチェーン更新データリストの順序に基づいて、ブロックチェーン更新データを遅延ノードに送信する、ように構成される。
【0020】
第4態様において、本開示の実施例は、1つ以上のプロセッサと、1つ以上のコンピュータプログラムが記憶されている記憶装置とを備えており、1つ以上のコンピュータプログラムが1つ以上のプロセッサにより実行されると、1つ以上のプロセッサに第1態様のいずれか1つの実現形態に記載のノードデータ同期方法が実現される電子機器を提供する。
【0021】
第5態様において、本開示の実施例は、コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、該コンピュータプログラムがプロセッサにより実行されると、第1態様のいずれか1つの実現形態に記載のノードデータ同期方法が実現されるコンピュータ可読記憶媒体を提供する。
【0022】
第6態様において、本開示の実施例は、プロセッサにより実行されると、第1態様のいずれか1つの実現形態に記載のノードデータ同期方法が実現されるコンピュータプログラムを提供する。
【0023】
本開示の実施例に係るノードデータ同期方法及び装置において、ブロックチェーンシステム内の遅延ノードは、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。ここで、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものである。ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる。次に、対象ブロック高さに基づいて、遅延ノードはデータ同期要求を対象ノードに送信する。ここで、データ同期要求に対象ブロック高さが含まれる。対象ノードから送信された更新データが受信されたことに応答して、遅延ノードは更新データをローカル記憶領域に書き込み、ここで、更新データに対応するブロック高さは対象ブロック高さよりも大きい。これにより、ブロックチェーンシステムにおける遅延ノードの同期効率が改善され、ネットワークリソースが節約された。
【0024】
以下、添付図面を参照しながら非限定的な実施例を詳細に説明することにより、本開示の他の特徴、目的及び利点はより明らかになる。
【図面の簡単な説明】
【0025】
【
図1】本開示の一実施例が適用される例示的なシステムアーキテクチャを示す図である。
【
図2】本開示に係るノードデータ同期方法の一実施例を示すフローチャートである。
【
図3】本開示の実施例によるノードデータ同期方法の一適用シーンを示す概略図である。
【
図4】本開示に係るノードデータ同期方法のもう1つの実施例を示すフローチャートである。
【
図5】本開示に係るノードデータ同期装置の一実施例を示す概略構成図である。
【
図6】本開示に係るノードデータ同期システムの一実施例における各機器間のやりとりのシーケンス図である。
【
図7】本開示の実施例を実現するために適する電子機器の概略構成図である。
【発明を実施するための形態】
【0026】
以下、添付図面及び実施例を参照しながら本開示をより詳細に説明する。ここで説明する具体的な実施例は、かかる発明を説明するためのものに過ぎず、当該発明を限定するものではないことを理解すべきである。なお、説明の便宜上、図面に発明と関連する部分のみが示されている。
【0027】
なお、矛盾しない場合、本開示の実施例及び実施例の特徴は互いに組み合わせてもよい。以下、添付図面を参照して実施例により本開示を詳細に説明する。
【0028】
図1では、本開示のノードデータ同期方法又はノードデータ同期装置が適用される例示的なシステムアーキテクチャ100を示した。
【0029】
図1に示すように、システムアーキテクチャ100は、端末装置101、102、103、ネットワーク104及びサーバ105を含んでもよい。ネットワーク104は、端末装置101、102、103とサーバ105との間に通信リンクを提供するための媒体とされる。ネットワーク104は、例えば、有線、無線通信リンク又は光ケーブルなどのような様々な接続タイプを含んでもよい。
【0030】
端末装置101、102、103はネットワーク104を介してサーバ105とやりとりすることによって、メッセージなどを受信したり送信したりすることができる。端末装置101、102、103には、各種通信クライアントアプリケーション、例えば、ウェブブラウザアプリケーション、ショッピングアプリケーション、検索アプリケーション、インスタントメッセージツール、電子メールクライアント、ソーシャルプラットフォームソフトウェア、テキスト編集アプリケーションなどがインストールされてもよい。
【0031】
端末装置101、102、103はハードウェアであってもよく、ソフトウェアであってもよい。端末装置101、102、103がハードウェアである場合、ディスプレイを有するとともにネットワークデータ伝送をサポートする各種電子機器であってもよく、スマートフォン、タブレットコンピュータ、電子ブックリーダー、ラップトップコンピュータ及びデスクトップコンピュータなどを含むが、これらに限定されるものではない。端末装置101、102、103がソフトウェアである場合、前記電子機器にインストールされてもよい。複数のソフトウェアまたはソフトウェアモジュール(例えば、分散サービスを提供するためのソフトウェアまたはソフトウェアモジュール)として実現されてもよく、単一ソフトウェアまたはソフトウェアモジュールとして実現されてもよい。ここでは、特に限定しない。
【0032】
サーバ105は、様々なサービスを提供するサーバであってもよい。サーバ105は、端末装置101、102、103と同じブロックチェーンシステムにあってもよく、それぞれが該ブロックチェーンシステム内の1つのノードとされる。ブロックチェーン内の一部のノードが異常な場合、該ノードのローカルデータは、メインチェーンと比べて欠落が存在する。前記異常ノードを遅延ノード(backward node)とし、他のノードを正常ノードとすることができる。
【0033】
なお、サーバは、ハードウェアであってもよく、ソフトウェアであってもよい。 サーバがハードウェアである場合、複数のサーバで構成された分散型サーバクラスタとして実現されてもよく、単一サーバとして実現されてもよい。サーバがソフトウェアである場合、複数のソフトウェアまたはソフトウェアモジュール(例えば、分散サービスを提供するためのソフトウェアまたはソフトウェアモジュール)として実現されてもよく、単一のソフトウェアまたはソフトウェアモジュールとして実現されてもよい。ここでは、特に限定しない。
【0034】
なお、本開示の実施例に係るノードデータ同期方法は、通常ブロックチェーンシステム内の遅延ノードによって実行される。したがって、ノードデータ同期装置は遅延ノードに設置されることができる。ここで、遅延ノードは、サーバ105であってもよく、端末装置101、102、103であってもよい。
【0035】
図1における端末装置、ネットワーク及びサーバの数は例示的なものに過ぎないことを理解すべきである。実現のニーズに応じて、任意の数の端末装置、ネットワーク及びサーバを備えてもよい。
【0036】
次に、
図2を参照されたい。
図2では、本開示に係るノードデータ同期方法の一実施例のフロー200を示した。該ノードデータ同期方法は以下のステップを含む。
【0037】
ステップ201では、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。
【0038】
本実施例において、ノードデータ同期方法の実行主体(例えば、
図1に示された、遅延ノードとしての端末装置101、102、103またはサーバ105)は、ローカルログファイルに基づいて、様々な方式で対象ブロック高さを確定することができる。前記ローカルログファイルは、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルであってもよい。前記対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであってもよい。前記ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれてもよい。例示として、前記実行主体は、ローカルログファイルを逆順にトラバースすることができ、書き込まれたローカルログファイルに対応する最大ブロック高さを前記対象ブロック高さとして確定する。オプションとして、前記実行主体は、完全に書き込まれたローカルログファイルに対応するブロック高さの最大値のみを前記最大ブロック高さとして確定し、即ち、処理に成功したブロックを部分的に放棄してもよい。
【0039】
なお、ブロックチェーンデータにおけるデータは、キー値(key-value)ペアの形式で記憶することができる。本実施例において、ブロックチェーンデータは、記憶されたキー値ペアに対応するブロック高さを含んでもよい。前記ブロック高さは、様々な形式であってもよく、ここでは、特に限定しない。
【0040】
なお、ブロックチェーンシステム内のノードがデータ同期を行う際に、通常、ローカルログファイルを実行することにより対応するブロックチェーンデータを生成することができる。ローカルログファイルを実行することにより対応するブロックチェーンデータを生成する前記方法は、現在広く研究・応用されている公知技術であるため、ここでは、説明を省略する。
【0041】
ステップ202では、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信する。
【0042】
本実施例において、前記実行主体は、ステップ201で取得した対象ブロック高さに基づいて、対象ノードにデータ同期要求を送信することができる。ここで、前記対象ノードは、実際のニーズに応じて予め指定された任意のノードであってもよい。前記対象ノードは、規則に従って決められたノード、例えば、前記遅延ノードと同じブロックチェーンシステム内にある非遅延ノードであってもよい。
【0043】
本実施例において、前記実行主体は、ブロック高さが前記対象ブロック高さよりも大きいブロックチェーンデータを取得するための要求を表すデータ同期要求を対象ノードに送信することができる。ここで、前記データ同期要求は前記対象ブロック高さを含んでもよい。オプションとして、前記データ同期要求はログファイル同期要求を含んでもよい。オプションとして、前記データ同期要求はブロックチェーンデータ同期要求を含んでもよい。
【0044】
本実施例のいくつかのオプション的な実現形態において、前記実行主体は、以下のステップに従ってデータ同期要求を対象ノードに送信することができる。
【0045】
第1のステップでは、ローカルログファイルに対応するブロックチェーンデータを生成するために、ローカルログファイルを実行する。
【0046】
これらの実現形態において、実行されたローカルログファイルに対応するブロックチェーンデータを生成するために、前記実行主体は、通常、ローカルログファイルの順序に従って実行することができる。ここで、前記ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さは、前記対象ブロック高さ以下である。
【0047】
第2のステップでは、ローカルログファイルの実行の完了が確定されたことに応答して、データ同期要求を対象ノードに送信する。
【0048】
これらの実現形態において、前記実行主体は、前記ローカルログファイルの実行が完了したことに応答して、前記データ同期要求を対象ノードに送信する。
【0049】
なお、前記実行主体は、前記対象ブロック高さが示すローカルログファイル記録を実行の末尾とすることができ、即ち、新たに同期されたログファイルを実行しない。
【0050】
ステップ203では、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込む。
【0051】
本実施例において、データ同期要求がログファイル同期要求を含んでもよいことに基づいて、対象ノードから送信されたログ更新ファイルが受信されたことに応答して、前記実行主体は、前記ログ更新ファイルをローカルログファイルに書き込むことができる。ここで、前記ログ更新ファイルに対応するブロック高さが、通常、前記対象ブロック高さよりも大きい。
【0052】
本実施例のいくつかのオプション的な実現形態において、データ同期要求がブロックチェーンデータ同期要求を含んでもよいことに基づいて、対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、前記実行主体は、ブロックチェーン更新データをローカルデータ記憶領域に書き込むことができる。ここで、前記ブロックチェーン更新データに対応するブロック高さは、通常、前記対象ブロック高さよりも大きい。
【0053】
なお、前記オプション的な実現形態に基づいて、ローカルログファイルの実行、ローカルログファイルへのログ更新ファイルの書き込み、ローカルデータ記憶領域へのブロックチェーン更新データの書き込みは、3つのスレッドを起動させることによりほぼ並行して実行することもできる。これにより、ノード同期の時間が短縮され、ノード同期の速度が向上され、さらに、ブロックチェーンシステムの安定性を維持することに役立つ。
【0054】
続いて、
図3を参照されたい。
図3は、本開示の実施例によるノードデータ同期方法の適用シーンを示す概略図である。
図3の適用シーンにおいて、ブロックチェーンシステムにはノード301、302及び303が含まれている。ノード301、302及び303はネットワーク304を介して接続される。ノード301は、ローカルログファイルを逆順にトラバースしてローカルの現在の最大ブロック高さ3を取得する。ノード301は、ノード302及びノード303の最大ブロック高さを定期的に取得し、例えば、いずれも5である。取得したノード302またはノード303の最大ブロック高さが、ローカルの現在の最大ブロック高さよりも大きいと確定されたことに応答して、ノード301が遅延ノードであると確定することができる。ノード301は、ローカル最大ブロック高さ5が含まれているデータ同期要求をノード302に送信することができる。ノード302は、ブロック高さ4及び5に対応するデータを更新データとしてノード301に送信することができる。ノード301は、前記更新データをローカル記憶領域に書き込むことができる。
【0055】
現在、従来技術の1つは、通常、ノード内の欠落しているログをコピーしてリロードすることであるが、ログのコピーのコストが高く、ログのロードをローカルで実行する必要があるため、性能が低く、多くの場合は、該ノードの後続のコンセンサスへの参加プロセスに悪影響を与えてしまう。本開示の前記実施例に係る方法は、ログをリロードせずに、ローカルログファイルに基づいて対象ブロック高さを確定するため、ローカルのコンピューティングリソースが節約される。また、従来技術の1つは、他のノードの完全なデータをローカルにコピーすることによって同期を行うため、ローカルデータの重複排除が困難になり、ネットワーク伝送リソースが消費される。本開示の前記実施例に係る方法は、受信された更新データをローカル記憶領域に書き込む方法によって増分同期を行うことで、ネットワークリソースが節約され、同期効率が向上された。
【0056】
さらに、
図4を参照されたい。
図4では、ノードデータ同期方法のもう1つの実施例のフロー400を示した。該ノードデータ同期方法のフロー400は、以下のステップを含む。
【0057】
ステップ401では、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。
【0058】
ステップ402では、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信する。
【0059】
ステップ403では、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込む。
【0060】
前記ステップ401、ステップ402、ステップ403は、前記実施例におけるステップ201、ステップ202、ステップ203とそれぞれ一致しており、ステップ201、ステップ202、ステップ203に対する上記の説明は、ステップ401、ステップ402 、ステップ403にも適用されるので、ここでは、説明を省略する。
【0061】
ステップ404では、更新データの書き込みが完了したか否かを判定する。
【0062】
本実施例において、ノードデータ同期方法の実行主体は、(例えば、
図1に示された、遅延ノードとしての端末装置101、102、103またはサーバ105)は、更新データの書き込みが完了したか否かを様々な方式によって確定することができる。例示として、前記更新データがログ更新ファイルである場合、全ての遅延ログの完全な書き込みが完了したと確定されたことに応答して、前記実行主体は、更新データの書き込みの完了を確定することができる。別の例示として、前記更新データがブロックチェーン更新データである場合、全てのブロックチェーン更新データの書き込みが完了したと確定されたことに応答して、前記実行主体は、更新データの書き込みの完了を確定することができる。ここで、前記ブロックチェーン更新データは、通常、対象ノードが対象ノードのローカルログファイルに基づいて生成したものであってもよい。
【0063】
ステップ405では、更新データの書き込みの完了が確定されたことに応答して、コンセンサスプロセスに参与する。
【0064】
本実施例において、更新データの書き込みの完了が確定されたことに応答して、前記実行主体は、同期の完了を確定することができる。従って、前記実行主体は、遅延ノードに属せず、後続のコンセンサスプロセスに参加できる。ここで、前記コンセンサスプロセスは、ブロックチェーンのコンセンサスアルゴリズムに使用可能な様々な意思決定プロセスを含んでもよい。
【0065】
図4から分かるように、本実施例おけるノードデータ同期方法のフロー400は、更新データの書き込みが完了したか否かを判定するステップと、更新データの書き込みの完了が確定されたことに応答して、コンセンサスプロセスに参与するステップとを具体化した。したがって、本実施例で記述した構成は、更新データの書き込みが完了したノードがコンセンサスプロセスに参加することを可能にすることで、ブロックチェーンシステムにおけるノード同期が実現され、コンセンサスプロセスの円滑な進行が確保された。
【0066】
さらに、
図5を参照されたい。前記各図に示された方法の実施形態として、本開示は、ノードデータ同期装置の一実施例を提供し、該装置の実施例は、
図2に示される方法の実施例に対応し、該装置は具体的に様々な電子機器に適用できる。
【0067】
図5に示すように、本実施例に係るノードデータ同期装置500は、確定ユニット501、送信ユニット502及び更新ユニット503を備える。確定ユニット501は、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するように構成される。ここで、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる。送信ユニット502は、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信するように構成される。ここで、データ同期要求に対象ブロック高さが含まれる。更新ユニット503は、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むように構成される。ここで、更新データに対応するブロック高さが対象ブロック高さよりも大きい。
【0068】
本実施例において、ノードデータ同期装置500における確定ユニット501、送信ユニット502及び更新ユニット503の具体的な処理及びその技術的効果は、
図2の対応する実施例におけるステップ202、ステップ202及びステップ203の関連説明をそれぞれ参照されたい。ここでは、説明を省略する。
【0069】
本実施例のいくつかのオプション的な実現形態において、前記送信ユニット502は、実行モジュール(図示せず)、送信モジュール(図示せず)を備えることができる。前記実行モジュールは、ローカルログファイルに対応するブロックチェーンデータを生成するために、ローカルログファイルを実行するように構成されることができる。ここで、前記ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さは、通常、対象ブロック高さ以下である。前記送信モジュールは、ローカルログファイルの実行の完了が確定されたことに応答して、データ同期要求を対象ノードに送信するように構成されることができる。
【0070】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はログファイル同期要求を含んでもよい。前記更新ユニット503は、さらに、対象ノードから送信されたログ更新ファイルが受信されたことに応答して、ログ更新ファイルをローカルログファイルに書き込むように構成されることができる。ここで、前記ログ更新ファイルに対応するブロック高さが対象ブロック高さよりも大きくてもよい。
【0071】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はブロックチェーンデータ同期要求を含んでもよい。前記更新ユニット503は、さらに、対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、ブロックチェーン更新データをローカルデータ記憶領域に書き込むように構成されることができる。ここで、前記ブロックチェーン更新データに対応するブロック高さが対象ブロック高さよりも大きくてもよい。
【0072】
本実施例のいくつかのオプション的な実現形態において、前記ノードデータ同期装置500は、さらに、更新データの書き込みが完了したか否かを判定し、更新データの書き込みの完了が確定されたことに応答して、コンセンサスプロセスに参与するように構成される。
【0073】
本開示の前記実施例に係る装置において、ブロックチェーンシステムにおける遅延ノードの確定ユニット501は、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。ここで、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものである。ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる。次に、送信ユニット502は、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信する。ここで、データ同期要求に対象ブロック高さが含まれる。更新ユニット503は、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込む。ここで、更新データに対応するブロック高さが対象ブロック高さよりも大きい。これにより、ブロックチェーンシステムにおける遅延ノードの同期効率が向上され、ネットワークリソースが節約される。
【0074】
さらに、
図6を参照されたい。
図6では、ノードデータを同期させるための一実施例における各機器間のやりとりのシーケンス600を示した。該ノードデータ同期システムは、遅延ノード(例えば、
図1に示される端末装置101)と、対象ノード(例えば、
図1に示されるサーバ105)とを備えてもよい。ここで、前記遅延ノードは、前記実施例に記載のノードデータ同期方法を実現するために用いられることができる。前記対象ノードは、遅延ノードから送信されたデータ同期要求が受信されたことに応答して、更新データを前記遅延ノードに送信するように構成されることができる。ここで、前記データ同期要求に前記対象ブロック高さが含まれてもよい。
【0075】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はログファイル同期要求を含んでもよい。前記対象ノードは、さらに、遅延ノードから送信されたログファイル同期要求が受信されたことに応答して、対象ブロック高さに基づいて対象ノードのローカルログファイルの開始送信位置を確定し、開始送信位置に基づいて、対象ブロック高さよりも大きいブロックに対応するログデータを遅延ノードに送信するように構成されることができる。ここで、前記開始送信位置は、ブロック高さが対象ブロック高さよりも大きいブロックに対応するログデータの境界点を示すために用いられてもよい。
【0076】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はブロックチェーンデータ同期要求を含んでもよい。前記対象ノードは、さらに、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとして確定し、ブロックチェーン更新データを遅延ノードに送信するように構成されることができる。
【0077】
前記オプション的な実現形態に基づいて、前記対象ノードは、さらに、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとしてバッファ配列に記憶し、ブロック高さに従ってバッファ配列内のブロックチェーン更新データをソートし、ブロックチェーン更新データリストを生成し、ブロックチェーン更新データリストの順序に基づいて、ブロックチェーン更新データを遅延ノードに送信するように構成されることができる。
【0078】
図6に示すように、ステップ601では、遅延ノードは、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。
【0079】
ステップ602では、遅延ノードは、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信する。
【0080】
ステップ603では、対象ノードは、遅延ノードから送信されたデータ同期要求が受信されたことに応答して、更新データを遅延ノードに送信する。
【0081】
本実施例において、遅延ノードから送信されたデータ同期要求が受信されたことに応答して、対象ノードは、様々な方法によって更新データを遅延ノードに送信することができる。ここで、前記データ同期要求に対象ブロック高さが含まれてもよい。
【0082】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はログファイル同期要求を含んでもよい。前記対象ノードは、以下のスッテプで更新データを遅延ノードに送信することができる。
【0083】
第1のステップでは、遅延ノードから送信されたログファイル同期要求が受信されたことに応答して、対象ブロック高さに基づいて対象ノードのローカルログファイルの開始送信位置を確定する。
【0084】
これらの実現形態において、前記対象ノードは、対象ブロック高さに基づいてローカルログファイル内の記録に対して位置特定を行って、開始送信位置を確定することができる。ここで、前記開始送信位置は、ブロック高さが対象ブロック高さよりも大きいブロックに対応するログデータの境界点を示すために用いられることができる。例えば、対象ブロック高さが3の場合、前記開始送信位置は、ブロック高さ4のブロックに対応する記録を示すために用いられてもよい。
【0085】
第2のステップでは、開始送信位置に基づいて、対象ブロック高さよりも大きいブロックに対応するログデータを遅延ノードに送信する。
【0086】
これらの実現形態において、前記対象ノードは、対象ブロック高さよりも大きいブロックに対応するログデータをログ順に応じて遅延ノードに1つずつ送信することができる。前記対象ノードが前記ログデータをパケット化して送信してもよいことは理解でき、ここでは、限定しない。
【0087】
本実施例のいくつかのオプション的な実現形態において、前記データ同期要求はブロックチェーンデータ同期要求を含んでもよい。前記対象ノードは、以下のステップで更新データを遅延ノードに送信することもできる。
【0088】
第1のステップでは、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとして確定する。
【0089】
第2のステップでは、ブロックチェーン更新データを遅延ノードに送信する。
【0090】
オプションとして、前記対象ノードは、以下のステップで更新データを遅延ノードに送信することもできる。
【0091】
第1のステップでは、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとしてバッファ配列に記憶する。
【0092】
前記オプション的な実現形態に基づいて、遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、前記対象ノードは、ローカルに記憶されたブロックチェーンデータを1つずつトラバースすることができる。ブロックチェーンデータに対応するブロック高さに基づいて、該ブロックチェーンデータに対応するブロック高さが前記対象ブロック高さよりも大きいか否かを判定する。その後、前記対象ノードは、ブロック高さが対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとしてバッファ配列に記憶することができる。
【0093】
第2のステップでは、ブロック高さに従ってバッファ配列内のブロックチェーン更新データをソートし、ブロックチェーン更新データリストを生成する。例示として、前記ブロックチェーン更新データリストは、ブロックの高さに従って低いものから高いものへと配列することができる。
【0094】
第3のステップでは、ブロックチェーン更新データリストの順序に基づいて、ブロックチェーン更新データを遅延ノードに送信する。オプションとして、前記ブロックチェーン更新データリスト内のブロックチェーン更新データの送信が完了したことに応答して、前記対象ノードは、新たに生成されたデータがあるか否かをチェックすることができる。存在する場合、前記新たに生成されたデータを前記遅延ノードに引き続き送信する。
【0095】
ステップ604において、遅延ノードは、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込む。
【0096】
前記ステップ601、ステップ602、ステップ604は、前記実施例におけるステップ201、ステップ202、ステップ203とそれぞれ一致しており、ステップ201、ステップ202及びステップ203に対する上記の説明は、ステップ601、ステップ602 及びステップ604にも適用されるので、ここでは、説明を省略する。
【0097】
本出願の前記実施例に係るノードデータ同期システムにおいて、遅延ノードは、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定する。その後、遅延ノードは、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信する。次に、対象ノードは、遅延ノードから送信されたデータ同期要求が受信されたことに応答して、更新データを遅延ノードに送信する。そして、遅延ノードは、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込む。遅延ノードと対象ノードとのやりとりによって、遅延ノードのデータ同期が実現され、同期時間が短縮され、効率が向上され、さらに、ブロックチェーンシステムにおけるノードデータの同期整合性によりコンセンサスプロセスの円滑な進行が確保された。
【0098】
次に、
図7を参照されたい。
図7では、本開示の実施例を実現するのに適した電子機器(例えば、
図1の端末装置)700の概略構成図を示した。本開示の実施例における端末装置は、携帯電話、ノートブックコンピュータ、デジタル放送受信機、PDA(パーソナルデジタルアシスタント)、PAD(タブレットコンピュータ)、PMP(ポータブルマルチメディアプレーヤー)、車載端末(例えば、車載ナビゲーション端末)等のモバイル端末、及びデスクトップコンピュータなどの固定端末を含むが、これらに限定されない。
図7に示された端末装置は単なる例示に過ぎず、本開示の実施例の機能及び使用範囲にいかなる制限をもたらすものとすべきでない。
【0099】
図7に示すように、電子機器700は、読み出し専用メモリ(ROM)702に記憶されているプログラム又は記憶装置708からランダムアクセスメモリ(RAM)703にロードされたプログラムに基づいて様々な適切な動作及び処理を実行することができる処理装置(例えば、中央処理装置、グラフィックプロセッサ等)701を備えることができる。RAM703には、電子機器700の動作に必要な様々なプログラム及びデータがさらに記憶されている。処理装置701、ROM702及びRAM703は、バス704を介して互いに接続される。入/出力(I/O)インタフェース705もバス704に接続される。
【0100】
通常、I/Oインタフェース705には、例えば、タッチパネル、タッチパッド、キーボード、マウスなどを含む入力装置706、液晶ディスプレイ(LCD,Liquid Crystal Display)、スピーカ、バイブレータなどを含む出力装置707、磁気テープ、ハードディスクなどを含む記憶装置708、並びに通信装置709が接続されている。通信装置709は、電子機器700と他の機器との間で無線または有線による通信を行い、データのやりとりを可能にする。なお、
図7では、様々な装置を有する電子機器700を示しているが、図示された装置のすべてを実施または備える必要はないことを理解すべきである。代替して実施してもよく、より多くの装置またはより少ない装置を備えてもよい。
図7に示す各ブロックは1つの装置を代表してもよく、必要に応じて複数の装置を代表してもよい。
【0101】
特に、本開示の実施例によれば、以上のフローチャートを参照しながら記載したプロセスは、コンピュータソフトウェアプログラムとして実現することができる。例えば、本開示の実施例は、コンピュータ可読媒体にロードされるコンピュータプログラムを含むコンピュータプログラム製品を含み、該コンピュータプログラムは、フローチャートに示された方法を実行するためのプログラムコードを含んでもよい。このような実施例において、該コンピュータプログラムは、通信装置709を介してネットワークからダウンロードされてインストールされてもよく、又は記憶装置708またはROM702からインストールされてもよい。該コンピュータプログラムが処理装置701により実行されると、本開示の方法によって限定された前記機能が実行される。
【0102】
なお、本開示の実施例におけるコンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体、或いは前記両者の任意の組み合わせであってもよい。コンピュータ可読記憶媒体は、例えば、電気的、磁気的、光学的、電磁的、赤外線の、又は半導体のシステム、装置又はデバイス、あるいは任意の前記の組み合わせであってもよいが、これらに限定するものではない。コンピュータ可読記憶媒体のより具体的な例として、1本又は複数本の導線を有する電気接続、携帯可能なコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ケーブル、携帯可能なコンパクトディスク読み出し専用メモリ(CD-ROM)、光記憶装置、磁気記憶装置、又は前記の任意の適切な組み合わせを含むが、これらに限定されない。本開示の実施例において、コンピュータ可読記憶媒体は、プログラムを含有又は記憶するいずれの有形媒体であってもよく、該プログラムは、コマンド実行システム、装置又はデバイスに用いられ、又はそれらに組み合わせて用いられてもよい。本開示の実施例において、コンピュータ可読信号媒体は、ベースバンドにおいて又はキャリアの一部として伝搬されるデータ信号を含み、コンピュータ可読プログラムコードがロードされる。このように伝搬されるデータ信号は、電磁気信号、光信号又は前記任意の適切な組み合わせを含む種々の形式を採ることができるが、これらに限定されない。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体以外のいかなるコンピュータ可読媒体であってもよく、該コンピュータ可読媒体は、コマンド実行システム、装置又はデバイスにより使用され、又はそれらと組み合わせて使用されるためのプログラムを送信、伝搬又は伝送することができる。コンピュータ可読媒体に含まれるプログラムコードは、電線、光ケーブル、RF(Radio Frequency,無線周波数)など、又は前記任意の適切な組み合わせを含む任意の適切な媒体を用いて伝送することができるが、それらに限定されない。
【0103】
前記コンピュータ可読媒体は、前記電子機器に含まれるものであってもよく、該電子機器に実装されずに別体として存在するものであってもよい。前記コンピュータ可読媒体に1つ又は複数のプログラムがロードされ、前記1つ又は複数のプログラムが該電子機器により実行される時、該電子機器は、ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定することであって、対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる、ことと、対象ブロック高さに基づいて、データ同期要求を対象ノードに送信することであって、データ同期要求に対象ブロック高さが含まれる、ことと、対象ノードから送信された更新データが受信されたことに応答して、更新データをローカル記憶領域に書き込むことであって、更新データに対応するブロック高さが対象ブロック高さよりも大きい、ことと、を含む。
【0104】
1つまたは複数のプログラミング言語またはそれらの組み合わせによって、本開示の実施例の動作の実行に用いられるコンピュータプログラムコードを作成してもよい。前記プログラミング言語は、Java、Smalltalk、C++などのようなオブジェクト指向のプログラミング言語を含み、さらに「C」言語または類似のプログラミング言語のような手続き型プログラミング言語を含む。プログラムコードは完全にユーザコンピュータ上で実行されてもよく、部分的にユーザコンピュータ上で実行されてもよく、スタンドアロンソフトウェアパッケージとして実行されてもよく、一部がユーザコンピュータ上で実行され一部がリモートコンピュータ上で実行されてもよく、或いは完全にリモートコンピュータまたはサーバ上で実行されてもよい。リモートコンピュータに関わる場合、リモートコンピュータはローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザコンピュータに接続されてもよく、または外部コンピュータ(例えばインターネットサービスプロバイダーによるインターネットを通じて接続する)に接続されてもよい。
【0105】
添付図面におけるフローチャート及びブロック図は、本開示の各実施例によるシステム、方法及びコンピュータプログラムの実現可能なアーキテクチャー、機能及び動作を示した。この点において、フローチャート又はブロック図におけるそれぞれのブロックは、1つのモジュール、プログラムセグメント、又はコードの一部を代表することができ、該モジュール、プログラムセグメント、又はコードの一部は、所定のロジック機能を実現するための1つ又は複数の実行可能な指令を含む。なお、代替の実現において、ブロックに表示された機能は、図面に表示された順番と異なる順番で発生させることができる。例えば、2つの直列的に示されたブロックは、実際には、基本的に並行して実行することができ、機能によっては、逆の順番で実行することも可能である。なお、ブロック図及び/又はフローチャートにおけるそれぞれのブロックと、ブロック図及び/又はフローチャートにおけるブロックの組み合わせは、所定の機能又は動作を実行するための専用のハードウェアに基づくシステムによって実現することができ、あるいは、専用ハードウェアとコンピュータ指令の組み合わせによって実現することができる。
【0106】
本開示の実施例に記載されたユニットは、ソフトウェアによって実現されてもよく、ハードウェアによって実現されてもよい。記載されたユニットはプロセッサに構成されてもよい。例えば、確定ユニット、送信ユニット、更新ユニットを備えるプロセッサとして記載されてもよい。なお、これらのユニットの名称は場合によってはユニット自体への限定を構成せず、例えば、確定ユニットは、「ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するユニット」と記載されてもよい。
【0107】
以上の記載は、本開示の好ましい実施例、及び適用される技術的原理の説明に過ぎない。当業者であれば、本開示の実施例に係る発明の範囲が、前記技術的特徴の特定な組み合わせからなる技術案に限定されるものではなく、前記発明の趣旨を逸脱しない範囲で、前記技術的特徴または均等の特徴の任意の組み合わせからなる他の技術案も含むべきであることを理解すべきである。例えば、前記特徴と、本開示の実施例に開示された類似の機能を持っている技術的特徴(これらに限定されていない)とを互いに置き換えてなる技術案が挙げられる。
【符号の説明】
【0108】
301 ノード
302 ノード
303 ノード
304 ネットワーク
500 ノードデータ同期装置
501 確定ユニット
502 送信ユニット
503 更新ユニット
700 電子機器
701 処理装置
702 ROM
703 RAM
704 バス
705 I/Oインタフェース
706 入力装置
707 出力装置
708 記憶装置
709 通信装置
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ノードがブロックチェーンシステム内の遅延ノードを含むノードデータ同期方法であって、
前記ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するステップであって、前記対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、前記ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる、ステップと、
前記対象ブロック高さに基づいて、前記対象ブロック高さが含まれるデータ同期要求を対象ノードに送信するステップと、
前記対象ノードから送信された更新データが受信されたことに応答して、前記更新データをローカル記憶領域に書き込むステップであって、前記更新データに対応するブロック高さが前記対象ブロック高さよりも大きい、ステップと、を含むノードデータ同期方法。
【請求項2】
前記対象ブロック高さに基づいて、データ同期要求を対象ノードに送信するステップは、
前記ローカルログファイルに対応するブロックチェーンデータを生成するために、前記ローカルログファイルを実行するステップであって、前記ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さが前記対象ブロック高さ以下である、ステップと、
前記ローカルログファイルの実行が完了したことに応答して、データ同期要求を前記対象ノードに送信するステップと、を含む請求項1に記載のノードデータ同期方法。
【請求項3】
前記データ同期要求はログファイル同期要求を含み、
前記対象ノードから送信された更新データが受信されたことに応答して、前記更新データをローカル記憶領域に書き込むステップは、
前記対象ノードから送信されたログ更新ファイルが受信されたことに応答して、前記ログ更新ファイルをローカルログファイルに書き込むことを含み、
前記ログ更新ファイルに対応するブロック高さが前記対象ブロック高さよりも大きい、
請求項1に記載のノードデータ同期方法。
【請求項4】
前記データ同期要求はブロックチェーンデータ同期要求を含み、
前記対象ノードから送信された更新データが受信されたことに応答して、前記更新データをローカル記憶領域に書き込むステップは、
前記対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、前記ブロックチェーン更新データをローカルデータ記憶領域に書き込むことを含み、
前記ブロックチェーン更新データに対応するブロック高さが前記対象ブロック高さよりも大きい、
請求項1に記載のノードデータ同期方法。
【請求項5】
更新データの書き込みが完了したか否かを判定するステップと、
更新データの書き込みが完了したことに応答して、コンセンサスプロセスに参与するステップと、
をさらに含む請求項1~4のいずれか1項に記載のノードデータ同期方法。
【請求項6】
ノードがブロックチェーンシステム内の遅延ノードを含むノードデータ同期装置であって、
前記ブロックチェーンシステムのブロックチェーンデータを同期させるためのローカルログファイルに基づいて対象ブロック高さを確定するように構成される確定ユニットであって、前記対象ブロック高さは、ブロックチェーンデータの処理の進行状況を示すためのものであり、前記ブロックチェーンデータにはデータ及びデータに対応するブロック高さが含まれる、確定ユニットと、
前記対象ブロック高さに基づいて、前記対象ブロック高さが含まれるデータ同期要求を対象ノードに送信するように構成される送信ユニットと、
前記対象ノードから送信された更新データが受信されたことに応答して、前記更新データをローカル記憶領域に書き込むように構成される更新ユニットであって、前記更新データに対応するブロック高さが前記対象ブロック高さよりも大きい、更新ユニットと、
を備えるノードデータ同期装置。
【請求項7】
前記送信ユニットは、
前記ローカルログファイルに対応するブロックチェーンデータを生成するために、前記ローカルログファイルを実行するように構成される実行モジュールであって、前記ローカルログファイルに対応するブロックチェーンデータ内のデータに対応するブロック高さが前記対象ブロック高さ以下である、実行モジュールと、
前記ローカルログファイルの実行が完了したことに応答して、データ同期要求を前記対象ノードに送信するように構成される送信モジュールと、
を備える請求項6に記載のノードデータ同期装置。
【請求項8】
前記データ同期要求はログファイル同期要求を含み、
前記更新ユニットは、さらに
前記対象ノードから送信されたログ更新ファイルが受信されたことに応答して、前記ログ更新ファイルをローカルログファイルに書き込むように構成され、
前記ログ更新ファイルに対応するブロック高さが前記対象ブロック高さよりも大きい、
請求項6に記載のノードデータ同期装置。
【請求項9】
前記データ同期要求はブロックチェーンデータ同期要求を含み、
前記更新ユニットは、さらに
前記対象ノードから送信されたブロックチェーン更新データが受信されたことに応答して、前記ブロックチェーン更新データをローカルデータ記憶領域に書き込むように構成され、
前記ブロックチェーン更新データに対応するブロック高さが前記対象ブロック高さよりも大きい、
請求項6に記載のノードデータ同期装置。
【請求項10】
更新データの書き込みが完了したか否かを判定し、
更新データの書き込みが完了したことに応答して、コンセンサスプロセスに参与するようにさらに構成される、
請求項6~9のいずれか1項に記載のノードデータ同期装置。
【請求項11】
ブロックチェーンシステム内の遅延ノード及び対象ノードを含み、
前記遅延ノードは、請求項1~5のいずれか1項に記載の方法を実現するためのものであり、
前記対象ノードは、前記遅延ノードから送信されたデータ同期要求が受信されたことに応答して、更新データを前記遅延ノードに送信するように構成され、前記データ同期要求に前記対象ブロック高さが含まれる、ノードデータ同期システム。
【請求項12】
前記データ同期要求はログファイル同期要求を含み、
前記対象ノードは、さらに
前記遅延ノードから送信されたログファイル同期要求が受信されたことに応答して、前記対象ブロック高さに基づいて前記対象ノードのローカルログファイルの開始送信位置を確定することであって、前記開始送信位置は、ブロック高さが前記対象ブロック高さよりも大きいブロックに対応するログデータの境界点を示すためのものである、ことと、
前記開始送信位置に基づいて、前記対象ブロック高さよりも大きいブロックに対応するログデータを前記遅延ノードに送信することと、
を行うように構成される請求項11に記載のノードデータ同期システム。
【請求項13】
前記データ同期要求はブロックチェーンデータ同期要求を含み、
前記対象ノードは、さらに
前記遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが前記対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとすることと、
前記ブロックチェーン更新データを前記遅延ノードに送信することと、
を行うように構成される請求項11に記載のノードデータ同期システム。
【請求項14】
前記対象ノードは、さらに
前記遅延ノードから送信されたブロックチェーンデータ同期要求が受信されたことに応答して、ブロック高さが前記対象ブロック高さよりも大きいブロックチェーンデータをブロックチェーン更新データとしてバッファ配列に記憶し、
ブロック高さに基づいて前記バッファ配列内のブロックチェーン更新データをソートし、ブロックチェーン更新データリストを生成し、
前記ブロックチェーン更新データリストの順序に基づいて、ブロックチェーン更新データを前記遅延ノードに送信する、
ように構成される請求項13に記載のノードデータ同期システム。
【請求項15】
1つ以上のプロセッサと、
1つ以上の
コンピュータプログラムが記憶されている記憶装置とを備えており、
前記1つ以上の
コンピュータプログラムが前記1つ以上のプロセッサにより実行されると、前記1つ以上のプロセッサに請求項1~5のいずれか1項に記載のノードデータ同期方法が実現される電子機器。
【請求項16】
コンピュータプログラムが記憶されているコンピュータ可読
記憶媒体であって、
該
コンピュータプログラムがプロセッサにより実行されると、請求項1~5のいずれか1項に記載のノードデータ同期方法が実現されるコンピュータ可読
記憶媒体。
【請求項17】
プロセッサにより実行されると、請求項1~5のいずれか1項に記載のノードデータ同期方法が実現されるコンピュータプログラム。
【国際調査報告】