(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-20
(45)【発行日】2024-02-29
(54)【発明の名称】ブロック処理方法、ブロックチェーンに基づくデータ検索方法および装置
(51)【国際特許分類】
G06Q 20/36 20120101AFI20240221BHJP
G06F 16/27 20190101ALI20240221BHJP
【FI】
G06Q20/36
G06F16/27
(21)【出願番号】P 2022527689
(86)(22)【出願日】2020-11-04
(86)【国際出願番号】 CN2020126458
(87)【国際公開番号】W WO2021164321
(87)【国際公開日】2021-08-26
【審査請求日】2022-06-14
(31)【優先権主張番号】202010099538.8
(32)【優先日】2020-02-18
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リー,シン
【審査官】阿部 圭子
(56)【参考文献】
【文献】中国特許出願公開第108304475(CN,A)
【文献】米国特許出願公開第2019/0394267(US,A1)
【文献】中国特許出願公開第109471905(CN,A)
【文献】中国実用新案第208781225(CN,U)
【文献】特表2018-525729(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
G06F 16/27
(57)【特許請求の範囲】
【請求項1】
コンピュータが実行するブロック処理方法であって、
いずれかのブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得するステップと、
前記ブロックに含まれているトランザクションのトランザクション発生時間が前記時間区間内にあることに応答して、前記ルートブロックに接続されている第1ターゲット数のサブチェーンから、ターゲット条件に合致する前記サブチェーンをターゲットサブチェーンとして決定するステップと、
前記ブロックに対するコンセンサスが達成されたことに応答して、前記ブロックを前記ターゲットブロックチェーンの前記ターゲットサブチェーンに追加するステップと、
を含むことを特徴とする方法。
【請求項2】
前記第1ターゲット数は、前記ターゲットブロックチェーンが属するブロックチェーンシステムにおけるブロック平均コンセンサス時間長さおよびブロック生成周期に基づいて決定される、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記ルートブロックに接続されている第1ターゲット数のサブチェーンから、ターゲット条件に合致する前記サブチェーンをターゲットサブチェーンとして決定する前記ステップは、
各前記サブチェーンに含まれているブロックの数を決定するステップと、
各前記サブチェーンに含まれているブロックの数が異なることに応答して、含まれているブロックの数が最も少ない前記サブチェーンを前記ターゲットサブチェーンとして決定するステップと、
各前記サブチェーンに含まれているブロックの数が同じであることに応答して、各前記サブチェーンにおいて、1つの前記サブチェーンを前記ターゲットサブチェーンとしてランダムに決定するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項4】
前記ブロックに対するコンセンサスが達成されたことに応答して、前記ブロックを前記ターゲットブロックチェーンの前記ターゲットサブチェーンに追加する前記ステップは、
前記ターゲットサブチェーンのサブチェーン番号と、前記ターゲットサブチェーンにおけるブロックの順序番号とに基づいて、前記ブロックのブロック番号を決定するステップであって、前記順序番号が、前記ターゲットサブチェーンにおけるブロックの配列順序を示すために使用され、前記ブロック番号が、前記ターゲットブロックチェーンにおける前記ブロックの記憶位置を示すために使用されるステップと、
前記ブロック番号が付けられている前記ブロックを、前記ターゲットサブチェーンに追加するステップと、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項5】
前記ターゲットサブチェーンのサブチェーン番号と、前記ターゲットサブチェーンにおけるブロックの順序番号とに基づいて、前記ブロックのブロック番号を決定する前記ステップは、
前記ターゲットサブチェーンにおいてブロック高さが最も高いブロックの順序番号を1つ加算して、前記ブロックの順序番号を得るステップと、
前記ターゲットサブチェーンのサブチェーン番号と前記ブロックの順序番号とをつなぎ合わせて、前記ターゲットブロックチェーンにおける前記ブロックのブロック番号を得るステップと、を含む、
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記方法は、さらに、
前記ブロックの1つ前のブロックを候補ブロックとして決定するステップと、
前記候補ブロックの順序番号および前記ブロックの順序番号が連続的に逓増しないことに応答して、前記ブロックの追加位置を再び決定し、前記ブロックを前記ターゲットサブチェーンに追加するステップを実行するステップと、を含む、
ことを特徴とする請求項5に記載の方法。
【請求項7】
前記方法は、さらに、
前記ブロックの記憶位置情報を前記ターゲットブロックチェーンのブロックインデックステーブルに記憶するステップであって、前記ブロックインデックステーブルが、前記ターゲットブロックチェーンにおける各ブロックのブロック情報を記録するために使用されるステップ、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項8】
前記ブロックインデックステーブルは、第2ターゲット数のデータ記憶ユニットを含み、1つのデータ記憶ユニットは、1つの時間識別子に対応
し、
前記ブロックの記憶位置情報を前記ターゲットブロックチェーンのブロックインデックステーブルに記憶する前記ステップは、
前記ブロックの記憶位置情報を前記ブロックインデックステーブルのターゲットデータ記憶ユニットに記憶するステップであって、前記ターゲットデータ記憶ユニットの時間識別子が、前記ブロックに含まれているトランザクションのトランザクション発生時間とマッチングするステップ、を含む、
ことを特徴とする請求項7に記載の方法。
【請求項9】
コンピュータが実行するブロックチェーンに基づくデータ検索方法であって、
ターゲットブロックチェーンにおけるターゲットブロックへの検索命令に応答して、前記ターゲットブロックチェーンのブロックインデックステーブルを取得するステップであって、前記検索命令には、前記ターゲットブロックにおけるトランザクションのトランザクション発生時間が付けられ、前記ブロックインデックステーブルにおけるデータ記憶ユニットは、前記ターゲットブロックチェーンにおけるブロックの記憶位置情報を記録するために使用され、1つの前記データ記憶ユニットは、1つの時間識別子に対応するステップと、
前記ブロックインデックステーブルからターゲットデータ記憶ユニットを決定するステップであって、前記ターゲットデータ記憶ユニットの時間識別子は、前記トランザクション発生時間とマッチングするステップと、
前記ターゲットデータ記憶ユニットにおける記憶位置情報に基づいて、前記ターゲットブロックチェーンにおいて前記ターゲットブロックを検索するステップと、を含
み、
前記ブロックインデックステーブルからターゲットデータ記憶ユニットを決定する前記ステップは、
前記ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得するステップと、
前記時間区間の開始時間に対する前記トランザクション発生時間の時間オフセットを決定するステップと、
いずれかのデータ記憶ユニットの時間識別子が前記時間オフセットと同じであることに応答して、前記いずれかのデータ記憶ユニットを、前記ターゲットデータ記憶ユニットとして決定するステップと、を含む、
ことを特徴とする方法。
【請求項10】
ブロック処理装置であって、
いずれかのブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得する取得モジュールと、
前記ブロックに含まれているトランザクションのトランザクション発生時間が前記時間区間内にあることに応答して、前記ルートブロックに接続されている第1ターゲット数のサブチェーンから、ターゲット条件に合致する前記サブチェーンをターゲットサブチェーンとして決定するサブチェーン決定モジュールと、
前記ブロックに対するコンセンサスが達成されたことに応答して、前記ブロックを前記ターゲットブロックチェーンの前記ターゲットサブチェーンに追加する追加モジュールと、
を含むことを特徴とする装置。
【請求項11】
ブロックチェーンに基づくデータ検索装置であって、
ターゲットブロックチェーンにおけるターゲットブロックへの検索命令に応答して、前記ターゲットブロックチェーンのブロックインデックステーブルを取得する取得モジュールであって、前記検索命令には、前記ターゲットブロックにおけるトランザクションのトランザクション発生時間が付けられ、前記ブロックインデックステーブルにおけるデータ記憶ユニットは、前記ターゲットブロックチェーンにおけるブロックの記憶位置情報を記録するために使用され、1つの前記データ記憶ユニットは、1つの時間識別子に対応する取得モジュールと、
前記ブロックインデックステーブルからターゲットデータ記憶ユニットを決定する決定モジュールであって、前記ターゲットデータ記憶ユニットの時間識別子は、前記トランザクション発生時間とマッチングする決定モジュールと、
前記ターゲットデータ記憶ユニットにおける記憶位置情報に基づいて、前記ターゲットブロックチェーンにおいて前記ターゲットブロックを検索する検索モジュールと、を含
み、
前記決定モジュールは、
前記ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、
前記時間区間の開始時間に対する前記トランザクション発生時間の時間オフセットを決定し、
いずれかのデータ記憶ユニットの時間識別子が前記時間オフセットと同じであることに応答して、前記いずれかのデータ記憶ユニットを、前記ターゲットデータ記憶ユニットとして決定する、
ことを特徴とする装置。
【請求項12】
コンピュータであって、
1つまたは複数のプロセッサと、1つまたは複数のメモリとを含み、前記1つまたは複数のメモリには、少なくとも1つのコンピュータプログラムが記憶されており、前記少なくとも1つのコンピュータプログラムは、前記1つまたは複数のプロセッサによってロードされて実行され、請求項1~
8のいずれか1項に記載のブロック処理方法によって実行される動作を実現させる、
ことを特徴とする
コンピュータ。
【請求項13】
コンピュータであって、
1つまたは複数のプロセッサと、1つまたは複数のメモリとを含み、前記1つまたは複数のメモリには、少なくとも1つのコンピュータプログラムが記憶されており、前記少なくとも1つのコンピュータプログラムは、前記1つまたは複数のプロセッサによってロードされて実行され、請求項
9に記載のブロックチェーンに基づくデータ検索方法によって実行される動作を実現させる、
ことを特徴とする
コンピュータ。
【請求項14】
コンピュータプログラムであって、
請求項1~
8のいずれか1項に記載のブロック処理方法によって実行される動作をコンピュータデバイスに実行させる、
ことを特徴とするコンピュータプログラム。
【請求項15】
コンピュータプログラムであって、
請求項
9に記載のブロックチェーンに基づくデータ検索方法によって実行される動作をコンピュータデバイスに実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本開示は、2020年02月18日に提出された、出願番号が202010099538.8であり、発明名称が「ブロック処理方法、ブロックチェーンに基づくデータ検索方法および装置」である中国特許出願の優先権を主張し、その全ての内容が、参照によって本開示に組み込まれる。
【0002】
[技術分野]
本開示は、ブロックチェーンの技術分野に関し、特に、ブロック処理方法、ブロックチェーンに基づくデータ検索の方法、装置、コンピュータデイバスおよび記憶媒体に関する。
【背景技術】
【0003】
ブロックチェーン(Blockchain)は、本質的には、分散化されたデータベースであり、複数の直列接続されたブロックから構成される。現在のブロックチェーンの構築方法において、コンセンサスが達成されたブロックは、生成時系列順に応じて接続されることで1つのブロックチェーンを構成し、新たなブロックは生成され、かつコンセンサスが達成された後、そのブロックチェーンの末尾に接続され得る。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示は、ブロック処理方法、ブロックチェーンに基づくデータ検索方法、装置、コンピュータデバイスおよび記憶媒体を提供する。この技術的解決手段は、下記の通りである。
【0005】
一態様では、ブロック処理方法が提供され、この方法は、
いずれかのブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得するステップと、
前記ブロックに含まれているトランザクションのトランザクション発生時間が前記時間区間内にあることに応答して、前記ルートブロックに接続されている第1ターゲット数のサブチェーンから、ターゲット条件に合致する前記サブチェーンをターゲットサブチェーンとして決定するステップと、
前記ブロックに対するコンセンサスが達成されたことに応答して、前記ブロックを前記ターゲットブロックチェーンの前記ターゲットサブチェーンに追加するステップと、
を含む。
【0006】
一態様では、ブロックチェーンに基づくデータ検索方法が提供され、この方法は、
ターゲットブロックチェーンにおけるターゲットブロックへの検索命令に応答して、前記ターゲットブロックチェーンのブロックインデックステーブルを取得するステップであって、前記検索命令には、前記ターゲットブロックにおけるトランザクションのトランザクション発生時間が付けられ、前記ブロックインデックステーブルにおけるデータ記憶ユニットは、前記ターゲットブロックチェーンにおけるブロックの記憶位置情報を記録するために使用され、1つの前記データ記憶ユニットは、1つの時間識別子に対応するステップと、
前記ブロックインデックステーブルからターゲットデータ記憶ユニットを決定するステップであって、前記ターゲットデータ記憶ユニットの時間識別子は、前記トランザクション発生時間とマッチングするステップと、
前記ターゲットデータ記憶ユニットにおける記憶位置情報に基づいて、前記ターゲットブロックチェーンにおいて前記ターゲットブロックを検索するステップと、を含む。
【0007】
一態様では、ブロック処理装置が提供され、この装置は、
いずれかのブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得する取得モジュールと、
前記ブロックに含まれているトランザクションのトランザクション発生時間が前記時間区間内にあることに応答して、前記ルートブロックに接続されている第1ターゲット数のサブチェーンから、ターゲット条件に合致する前記サブチェーンをターゲットサブチェーンとして決定するサブチェーン決定モジュールと、
前記ブロックに対するコンセンサスが達成されたことに応答して、前記ブロックを前記ターゲットブロックチェーンの前記ターゲットサブチェーンに追加する追加モジュールと、
を含む。
【0008】
1つの可能な実施形態では、前記第1ターゲット数は、前記ターゲットブロックチェーンが属するブロックチェーンシステムにおけるブロック平均コンセンサス時間長さおよびブロック生成周期に基づいて決定される。
【0009】
1つの可能な実施形態では、このサブチェーン決定モジュールは、
各前記サブチェーンに含まれているブロックの数を決定し、
各前記サブチェーンに含まれているブロックの数が異なることに応答して、含まれているブロックの数が最も少ない前記サブチェーンを前記ターゲットサブチェーンとして決定し、
各前記サブチェーンに含まれているブロックの数が同じであることに応答して、各前記サブチェーンにおいて、1つの前記サブチェーンを前記ターゲットサブチェーンとしてランダムに決定するために使用される。
【0010】
1つの可能な実施形態では、この追加モジュールは、
前記ターゲットサブチェーンのサブチェーン番号と、前記ターゲットサブチェーンにおけるブロックの順序番号とに基づいて、前記ブロックのブロック番号を決定し、前記順序番号が、前記ターゲットサブチェーンにおけるブロックの配列順序を示すために使用され、前記ブロック番号が、前記ターゲットブロックチェーンにおける前記ブロックの記憶位置を示すために使用され、
前記ブロック番号が付けられている前記ブロックを、前記ターゲットサブチェーンに追加するために使用される。
【0011】
1つの可能な実施形態では、この追加モジュールは、
前記ターゲットサブチェーンにおいてブロック高さが最も高いブロックの順序番号を1つ加算して、前記ブロックの順序番号を得、
前記ターゲットサブチェーンのサブチェーン番号と前記ブロックの順序番号とをつなぎ合わせて、前記ターゲットブロックチェーンにおける前記ブロックのブロック番号を得るために使用される。
【0012】
1つの可能な実施形態では、この装置は、さらに、
前記ブロックの1つ前のブロックを候補ブロックとして決定するブロック決定モジュールと、
前記候補ブロックの順序番号と前記ブロックの順序番号とが連続的に逓増しないことに応答して、前記前記ブロックの追加位置を再び決定し、前記ブロックを前記ターゲットサブチェーンに追加するステップを実行する比較モジュールと、
を含む。
【0013】
1つの可能な実施形態では、この装置は、さらに、
前記ブロックの記憶位置情報を前記ターゲットブロックチェーンのブロックインデックステーブルに記憶する情報記憶モジュールであって、前記ブロックインデックステーブルが、前記ターゲットブロックチェーンにおける各ブロックのブロック情報を記録するために使用され情報記憶モジュール、を含む。
【0014】
1つの可能な実施形態では、前記ブロックインデックステーブルは、第2ターゲット数のデータ記憶ユニットを含み、1つのデータ記憶ユニットは、1つの時間識別子に対応する。
【0015】
1つの可能な実施形態では、この情報記憶モジュールは、
前記ブロックの記憶位置情報を、前記ブロックインデックステーブルのターゲットデータ記憶ユニットに記憶するために使用され、前記ターゲットデータ記憶ユニットの時間識別子が、前記ブロックに含まれているトランザクションのトランザクション発生時間とマッチングする。
【0016】
一態様では、ブロックチェーンに基づくデータ検索装置が提供され、この装置は、
ターゲットブロックチェーンにおけるターゲットブロックへの検索命令に応答して、前記ターゲットブロックチェーンのブロックインデックステーブルを取得する取得モジュールであって、前記検索命令には、前記ターゲットブロックにおけるトランザクションのトランザクション発生時間が付けられ、前記ブロックインデックステーブルにおけるデータ記憶ユニットは、前記ターゲットブロックチェーンにおけるブロックの記憶位置情報を記録するために使用され、1つの前記データ記憶ユニットは、1つの時間識別子に対応する取得モジュールと、
前記ブロックインデックステーブルからターゲットデータ記憶ユニットを決定する決定モジュールであって、前記ターゲットデータ記憶ユニットの時間識別子は、前記トランザクション発生時間とマッチングする決定モジュールと、
前記ターゲットデータ記憶ユニットにおける記憶位置情報に基づいて、前記ターゲットブロックチェーンにおいて前記ターゲットブロックを検索する検索モジュールと、
を含む。
【0017】
1つの可能な実施形態では、この決定モジュールは、
前記ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、
前記時間区間の開始時間に対する前記トランザクション発生時間の時間オフセットを決定し、
いずれかのデータ記憶ユニットの時間識別子が前記時間オフセットと同じであることに応答して、前記いずれかのデータ記憶ユニットを、前記ターゲットデータ記憶ユニットとして決定するために使用される。
【0018】
一態様では、コンピュータデイバスが提供され、このコンピュータデイバスは、
1つまたは複数のプロセッサと、1つまたは複数のメモリとを含み、前記1つまたは複数のメモリには、少なくとも1つのコンピュータプログラムが記憶されており、前記少なくとも1つのコンピュータプログラムは、前記1つまたは複数のプロセッサによってロードされて実行され、上記のブロック処理方法または上記のブロックチェーンに基づくデータ検索方法によって実行される動作を実現させる。
【0019】
一態様では、コンピュータ読み取り可能な記憶媒体が提供され、このコンピュータ読み取り可能な記憶媒体には、少なくとも1つのコンピュータプログラムが記憶されており、前記少なくとも1つのコンピュータプログラムは、プロセッサによってロードされて実行され、上記のブロック処理方法または上記のブロックチェーンに基づくデータ検索方法によって実行される動作を実現させる。
【図面の簡単な説明】
【0020】
本開示の実施例における技術案をより明確に説明するために、以下、実施例の説明において必要とされる図面を簡単に説明し、明らかに、以下の説明における図面は、本開示のいくつかの実施例にすぎず、当業者にとって、創造的な努力なしに、これらの図面から他の図面を得ることもできる。
【
図1】本開示の実施例によって提供されるブロックチェーンシステム100の概略図である。
【
図2】本開示の実施例によって提供されるノードデバイスの機能のアーキテクチャ図である。
【
図3】本開示の実施例によって提供されるブロック処理方法のフローチャートである。
【
図4】本開示の実施例によって提供されるターゲットブロックチェーンの概略図である。
【
図5】本開示の実施例によって提供されるターゲットブロックチェーンデータ構造の概略図である。
【
図6】本開示の実施例によって提供されるターゲットブロックチェーンとブロックインデックステーブルの構造概略図である。
【
図7】本開示の実施例によって提供されるブロックチェーンに基づくデータ検索方法のフローチャートである。
【
図8】本開示の実施例によって提供されるブロック処理装置の構成概略図である。
【
図9】本開示の実施例によって提供されるブロックチェーンに基づくデータ検索装置の構成概略図である。
【
図10】本開示の実施例によって提供される端末の構成概略図である。
【
図11】本開示の実施例によって提供されるサーバの構成概略図である。
【発明を実施するための形態】
【0021】
本開示の目的、技術的解決手段および利点をより明確にするために、以下、図面を参照しながら本開示の実施形態をさらに詳細に説明する。
【0022】
ブロックチェーン(blockchain)は、分散型データ記憶、ピアツーピア(Pear to Pear)伝送、コンセンサスメカニズム、暗号化アルゴリズムなどのコンピュータ技術の新たな応用モードである。ブロックチェーンは、本質的には、分散化されたデータベースであり、暗号学的方法を使用して関連付けられて生成された一連のデータブロックであり、各データブロックには、その情報の有効性の検証(偽造防止)および次のブロックの生成のために使用される1バッチのネットトランザクションの情報が含まれる。ブロックチェーンは、ブロックチェーンの下位プラットフォーム、プラットフォーム製品サービス層、およびアプリケーションサービス層を含み得る。
【0023】
ブロックチェーンの下位プラットフォームには、ユーザ管理、基礎サービス、スマートコントラクト(Smart contract)および運営監視などの処理モジュールが含まれ得る。そのうち、ユーザ管理モジュールは、すべてのブロックチェーン参加者のアイデンティティ情報管理を担当し、このアイデンティティ情報管理には、公開鍵と秘密鍵の生成の維持(アカウント管理)、鍵管理、およびユーザの真のアイデンティティとブロックチェーンのアドレスとの間の対応関係の維持(権限管理)などが含まれ、また、認可された場合、ある真のアイデンティティのトランザクション状況を監視および監査し、リスク制御のルール構成(リスク管理監査)を提供し、基礎サービスモジュールは、すべてのブロックチェーンノードデバイスに配置され、業務要求の有効性を検証し、また、有効な要求に対して、コンセンサスが達成された後にストレージに記録し、新たな業務要求に対して、基礎サービスモジュールは、まず、インターフェースに対して解析と認証処理を適応させ(インターフェース適応)、次に、コンセンサスアルゴリズムを介して業務情報を暗号化して(コンセンサス管理)、暗号化した後に完全で一貫性のあるものを共有台帳に伝送して(ネットワーク通信)、記録および記憶を行い、スマートコントラクトモジュールは、コントラクトの登録発行、およびコントラクトのトリガーとコントラクトの実行を担当し、コントラクトのロジックが開発者によってあるプログラミング言語で定義され、このコントラクトをブロックチェーン上に公開し(コントラクト登録)、コントラクト条項のロジックに基づいて、鍵または他のイベントを呼び出してその実行をトリガーし、コントラクトのロジックを完成し、また、コントラクトへのアップグレードと解約の機能を提供し、運営監視モジュールは、主に、製品のリリース過程中における配置、構成の変更、コントラクトの設定、クラウド適応、および製品動作中のリアルタイムな状態の視覚的な出力、例えば、警報、ネットワーク状況の監視、ノードデバイスの健康状態の監視などを担当する。
【0024】
プラットフォーム製品サービス層は、典型的なアプリケーションの基本的な能力および実現フレームワークを提供し、開発者は、これらの基本的な能力に基づいて、業務の特性を重ね合わせて、業務ロジックのブロックチェーン実現を完了することができる。アプリケーションサービス層は、業務参加者が使用するために、ブロックチェーンスキームに基づくアプリケーションサービスを提供する。
【0025】
ブロックチェーンの構築過程中に、各ブロックをチェーンに追加するのに要する時間が異なるため、ブロックにおけるあるトランザクションがタイムアウトした場合、ブロックをチェーンに追加するのに時間がかかるということがある。ブロックチェーンにおける各ブロックの接続順序が正しいことを確保するために、1つのブロックがすでに生成されたが、コンセンサスが達成されず、または、チェーンに追加されない場合、このブロックの後に生成された複数のブロックは、コンセンサスが達成されても、ブロックチェーンに接続され得ず、その結果、大量のブロックは、タイムリーにチェーンに追加され得ず、それにより、ブロックチェーンシステムの正常な動作に影響を与えってしまう。
【0026】
したがって、ブロックチェーンの構築過程中に、コンセンサスが達成されたブロックをタイムリーにチェーンに追加して、ブロックチェーンシステムの正常な動作を確保するために、ブロックをどのように処理かは、重要な研究方向である。
【0027】
本開示の実施例は、ブロックチェーン技術に基づいて実現されるブロックチェーンシステム100を提供し、以下、このブロックチェーンシステムのシステムアーキテクチャについて説明する。
【0028】
図1は、本開示の実施例によって提供されるブロックチェーンシステム100の概略図であり、
図1を参照すると、このブロックチェーンシステム100は、複数のノードデバイス101を含み得て、これに加えて、このブロックチェーンシステム100は、また、少なくとも1つのクライアントを含み得る。
【0029】
ノードデバイス101は、サーバ、ホスト、ユーザ端末などのような、ネットワークにおける任意の形態のコンピューティングデバイスであり得る。ノードデバイス101とノードデバイス101との間では、データを共有することができる。ここで、ノードデバイス101の間では、ピアツーピア(P2P:Peer To Peer)プロトコルに基づいてP2Pネットワークを構築することができる。当該P2Pプロトコルは、伝送制御プロトコル(TCP:Transmission Control Protocol)というプロトコルの上で動作するアプリケーション層プロトコルである。
【0030】
オプションとして、ノードデバイス101のデバイスタイプは、スマートフォン、タブレット、電子書籍リーダー、MP3(Moving Picture Experts Group Audio Layer III、動画専門家圧縮標準オーディオレベル3)プレーヤー、MP4(Moving Picture Experts Group Audio Layer IV、動画専門家圧縮標準オーディオレベル4)プレーヤー、ラップトップ型ポータブルコンピュータ、またはデスクトップ型コンピュータのうちの少なくとも1つを含み得る。
【0031】
各ノードデバイス101は、通常の動作を行う過程中に、入力情報を受信し、受信した入力情報に基づいて、当該ブロックチェーンシステムにおける共有データを維持することができる。ブロックチェーンシステムにおける情報の相互交換を確保するために、ブロックチェーンシステムにおける各ノードデバイスの間では、情報接続が存在し得て、ノードデバイス同士は、上記の情報接続により情報の伝送を行うことができる。例えば、ブロックチェーンシステムにおける任意のノードデバイスが入力情報を受信した場合、ブロックチェーンシステムにおける他のノードデバイスも、その入力情報を取得して、その入力情報を共有データにおけるデータとして記憶することができ、これにより、ブロックチェーンシステムにおける全ノードデバイスに記憶されているデータは一致になる。
【0032】
以下、ノードデバイス101の機能アーキテクチャについて説明する。
【0033】
図2を参照すると、
図2は、本開示の実施例によって提供されるノードデバイスの機能のアーキテクチャ図であり、ノードデバイス101は、機能的には、ハードウェア層、中間層、オペレーティングシステム層、およびアプリケーション層に分けられ、係る具体的な機能は、以下の通りであり、即ち、
1)ルーティングは、ノードデバイスが有する基本的な機能であり、ノードデバイス間の通信をサポートするために使用される。
【0034】
ノードデバイスは、ルーティング機能に加えて、以下の機能をも含み得、即ち、
2)アプリケーションは、ブロックチェーンにおいて配置され、実際の業務ニーズに応じて特定の業務を実現し、機能の実現に関するデータを記録して記録データを形成し、タスクデータのソースを示すためにデジタル署名を記録データに付けており、記録データをブロックチェーンシステムにおける他のノードデバイスに送信するために使用され、これにより、他のノードデバイスは、記録データのソースおよび完全性の検証に成功したとき、記録データを一時ブロックに追加する。
【0035】
例えば、アプリケーションによって実現される業務には、以下のものが含まれ、即ち、
2.1)ウォレットは、電子マネーのトランザクションを行う機能を提供するために使用され、トランザクションの開始を含み、すなわち、現在のトランザクションのトランザクション記録をブロックチェーンシステムにおける他のノードデバイスに送信し、他のノードデバイスは、検証に成功した後、トランザクションが有効であることを承認する応答として、トランザクションの記録データをブロックチェーンの一時ブロックに書き込み、もちろん、ウォレットは、電子マネーアドレスに残っている電子マネーを検索することもサポートする。
【0036】
2.2)共有台帳は、会計データの記憶、検索および修正などの動作を行う機能を提供するために使用され、会計データに対する動作の記録データをブロックチェーンシステムにおける他のノードデバイスに送信し、他のノードデバイスは、有効であることを検証した後、会計データが有効であることを承認する応答として、記録データを一時ブロックに書き込み、また、動作を開始したノードデバイスに確認を送信することもできる。
【0037】
2.3)スマートコントラクトは、コンピュータ化されたプロトコルであり、あるコントラクトの条項を実行することができ、共有台帳に配置された、特定の条件を満たすときに実行されるコードによって実現され、実際の業務ニーズコードに従って自動化トランザクションを完了するために使用され、例えば、購入者が購入した商品の物流状態を検索したり、購入者が商品を受領して署名した後に購入者の電子マネーを販売者のアドレスに転送したりすることを含み、もちろん、スマートコントラクトは、トランザクションのためのコントラクトを実行するだけでなく、受信した情報を処理するためのコントラクトを実行することも可能である。
【0038】
3)ブロックチェーンは、生成された場合の前後時間順に従って接続された一連のブロック(Block)を含み、ブロックは、ブロックチェーンに一旦追加すると削除されず、ブロックには、ブロックチェーンシステムにおけるノードデバイスから提出された記録データが記録されている。
理解できるものとして、本開示の実施例によって提供される方法は、ノードデバイスによって実行されることが可能であり、ノードデバイスは、コンピュータデイバスであり、サーバまたは端末を含むが、これらに限定されない。
【0039】
図3は、本開示の実施例によって提供されるブロック処理方法のフローチャートであり、本開示の実施例では、当該方法が上記のブロックチェーンシステムにおけるノードデバイスに適用される場合を例として説明する。
図3を参照すると、当該方法は、具体的には、ステップ301~304を含み得る。
【0040】
301で、ノードデバイスは、いずれかの新たなブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得する。
【0041】
説明すべきものとして、本開示の実施例に係る「新たなブロック」とは、ブロックチェーンシステムにおいて最新の時点で生成されたブロックを指し、いずれかのブロックも生成直後に「新たなブロック」と呼ばれ、本開示の実施例に係る「ルートブロック」とは、ブロックチェーンシステムにおいて生成された最初のブロックを指し、「ジェネシスブロック」とも呼ばれる。したがって、上記のステップ301は、ノードデバイスが、いずれかのブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得することである。
【0042】
ここで、当該ノードデバイスは、ブロックチェーンシステムにおけるいずれかのノードデバイスであってもよく、当該ノードデバイスは、端末、サーバなどであってもよいし、本開示の実施例は、これに対して限定しない。当該ターゲットブロックチェーンは、当該ブロックチェーンシステムに属するものであり、もちろん、当該ブロックチェーンシステムは、他のブロックチェーンを含んでいてもよく、本開示の実施例は、これに対して限定しない。
図4を参照すると、
図4は、本開示の実施例によって提供されるターゲットブロックチェーンの概略図であり、当該ターゲットブロックチェーン401は、ツリー構造を呈しており、すなわち、当該ターゲットブロックチェーン401には、1つのルートブロック402と、当該ルートブロック402に接続されている複数のサブチェーンとが含まれ、
図4に示すように、ルートブロック402には、サブチェーン403、サブチェーン404およびサブチェーン405が接続されてもよく、1つのサブチェーンには、少なくとも1つのブロックが含まれてもよい。本開示の実施例では、当該ブロックチェーンシステムには、少なくとも1つのブロックチェーンが含まれてもよく、各ブロックチェーンの構造は、いずれも、当該ターゲットブロックチェーンの構造と同じである。
【0043】
本開示の実施例では、当該ターゲットブロックチェーンのルートブロックに時間区間が記憶されており、当該時間区間は、当該ターゲットブロックチェーンにおける各ブロックに含まれているトランザクションのトランザクション発生時間を限定するために使用されることが可能であり、トランザクション発生時間が当該時間区間内にあるトランザクションデータは、当該ターゲットブロックチェーンに記憶され得る。通常、ブロックチェーンシステムは、ブロック生成周期に従ってブロックを生成することができ、各ブロック生成周期内に1つの新たなブロックを生成することができ、各ブロック生成周期は、1つのトランザクション発生時間帯に対応することができ、当該トランザクション発生時間帯内に発生したトランザクションは、いずれも、同一のブロックに記録されており、例えば、1番目の秒内に発生したトランザクションが1つのブロックに記録され、2番目の秒内に発生したトランザクションが別のブロックに記録される。したがって、ルートブロックに記憶されている時間区間により、当該ターゲットブロックチェーンに含まれているブロックの数を決定し、ブロックチェーンのデータ記憶量を制御することができる。異なるルートブロックによって記憶されている時間区間の長さは、同じでもよく異なってもよいし、すなわち、異なるブロックチェーンに含まれているブロックの数は、同じでもよく、異なってもよい。ここで、当該ブロック生成周期は、ブロックチェーンシステムにおけるトランザクションデータのパッケージング周期を示すために使用されることが可能であり、例えば、1秒ごとに生成されるトランザクションデータを1つのブロックとしてパッケージングする場合、ブロック生成周期は、1秒あたり1つのブロックを生成することになり、当該ブロック生成周期は、開発者によって設定されることが可能であり、本開示の実施例は、これに対して限定しない。
【0044】
1つの可能な実現形態では、ルートブロックは、トランザクションデータを記憶しなくてもよく、したがって、ブロックチェーンシステムでは、予め生成する方式を採用して、各ブロックチェーンのルートブロックを生成することができ、つまり、1つのルートブロックに対応する時間区間が到達する前に、このルートブロックを生成しておけばよい。例えば、ルートブロックに対応する時間区間が23:00から24:00である場合、ブロックチェーンシステムは、23:00より前の任意の時点でこのルートブロックを生成しておけばよい。ここで、この任意の時点は、ランダムに決定されてもよく、ブロックチェーンシステムの動作状況に基づいて決定されてもよいし、例えば、ルートブロックは、データ処理能力が小さい場合に生成されてもよく、本開示の実施例は、ルートブロックの具体的な生成時間に対して限定しない。
【0045】
302で、当該新たなブロックに含まれているトランザクションのトランザクション発生時間が当該時間区間内にある場合、ノードデバイスは、当該ルートブロックに接続されている第1ターゲット数のサブチェーンを走査(traverse)し、各サブチェーンに含まれているブロックの数を決定する。
【0046】
本開示の実施例では、当該第1ターゲット数は、当該ターゲットブロックチェーンが属するブロックチェーンシステムにおけるブロック平均コンセンサス時間長さおよびブロック生成周期に基づいて決定され得る。例えば、当該第1ターゲット数は、当該ブロック平均コンセンサス時間長さを1ブロック生成周期で除算した演算結果に基づいて決定されることが可能であり、当該演算結果が整数である場合、当該第1ターゲット数は、当該演算結果に等しく、当該演算結果が整数でない場合、当該第1ターゲット数は、当該演算結果に1を加算したものに等しい。ここで、当該ブロック平均コンセンサス時間長さは、ブロックチェーンシステムにおける各ブロックに対するコンセンサスが達成された時間長さを統計することにより決定され得る。
【0047】
1つの可能な実現形態では、サブチェーンに含まれているブロックの数は、各ブロックのブロック番号に基づいて決定され得る。ターゲットブロックチェーンにおける各ブロックは、1つのブロック番号に対応することができ、当該ブロック番号は、当該ターゲットブロックチェーンにおけるブロックの記憶位置を示すために使用されることが可能であり、1つのブロックのブロック番号は、当該ブロックが属するサブチェーンのサブチェーン番号と、この属するサブチェーンにおけるこのブロックの順序番号とによって構成されることが可能であり、当該順序番号は、この属するサブチェーンにおけるこのブロックの配列順序である。例えば、1つのブロックのブロック番号が2.3である場合、当該ブロックが属するサブチェーンのサブチェーン番号は2であり、当該ブロックは、この属するサブチェーンの3番目のブロックである。本開示の実施例では、当該ノードデバイスは、各サブチェーンを走査する際に、各サブチェーンにおける最後のブロックのブロック番号を取得し、最後のブロックのブロック番号における順序番号に基づいて、各サブチェーンに含まれているブロックの数を決定することができる。ここで、当該サブチェーン番号の最大値は、当該第1ターゲット数に等しい。
【0048】
本開示の実施例では、1つのブロックチェーンは、複数のサブチェーンを含んでもよく、サブチェーンのいずれかにもブロックを追加することができ、これにより、ブロックの追加効率を向上させ、システムの並行処理能力を向上させることができる。
【0049】
303で、ノードデバイスは、各サブチェーンに含まれているブロックの数に基づいて、ターゲットサブチェーンを決定する。
【0050】
1つの可能な実現形態では、各サブチェーンに含まれているブロックの数が異なる場合、含まれているブロックの数が最も少ないサブチェーンをターゲットサブチェーンとして決定し、各サブチェーンに含まれているブロックの数が同じである場合、各サブチェーンの中から1つのサブチェーンをターゲットサブチェーンとしてランダムに決定する。本開示の実施例では、含まれているブロックが最も少ないサブチェーン、すなわち長さが最も短いサブチェーンをターゲットサブチェーンとし、このターゲットサブチェーンに対して後続のブロック追加ステップを実行することにより、ターゲットブロックチェーンにおける各サブチェーンの長さをバランスさせることができ、長い時間周期から見ると、各サブチェーンの長さがほぼ同じになるという効果を達成することができる。
【0051】
言い換えれば、ノードデバイスは、各サブチェーンに含まれているブロックの数が異なることに応じて、含まれているブロックの数が最も少ないサブチェーンをターゲットサブチェーンとして決定し、あるいは、ノードデバイスは、各サブチェーンに含まれているブロック数が同じであることに応答して、各サブチェーンの中から1つのサブチェーンをターゲットサブチェーンとしてランダムに決定する。
【0052】
説明すべきものとして、上記のステップ302およびステップ303は、当該新たなブロックに含まれているトランザクションのトランザクション発生時間が当該時間区間内にある場合、当該ルートブロックに接続されている第1ターゲット数のサブチェーンを走査し、ターゲット条件に合致するサブチェーンをターゲットサブチェーンとするステップであり、新たなブロックとは、最新の時点でブロックチェーンシステムにおいて生成されたいずれかのブロックを指すため、言い換えれば、上記のステップ302~303は、ノードデバイスが、このいずれかのブロックに含まれているトランザクションのトランザクション発生時間が当該時間区間内にあることに応答して、ルートブロックに接続されている第1ターゲット数のサブチェーンから、ターゲット条件に合致するサブチェーンをターゲットサブチェーンとすることを可能にする実施形態である。
【0053】
ここで、当該ターゲット条件は、開発者によって設定されてもよく、本開示の実施例は、これに対して限定されず、例えば、本開示の実施例では、当該ターゲット条件は、サブチェーンに含まれているブロックの数が最も少なくなるように設定されてもよい。上記の技術的解決手段において、ターゲット条件に基づいてサブチェーンを選択し、1つのターゲットサブチェーンを決定して新たなブロックを追加するというターゲットサブチェーン決定方法により、ブロックチェーンの構造をより合理的にすることができ、例えば、当該ターゲット条件が、サブチェーンに含まれているブロック数が最も少ない場合、ブロックチェーンにおける各サブチェーンの長さを比較的バランスのとれた状態にすることができる。
【0054】
304で、ノードデバイスは、当該新たなブロックに対するコンセンサスが達成されたことに応答して、当該新たなブロックを当該ターゲットブロックチェーンの当該ターゲットサブチェーンに追加する。
【0055】
新たなブロックとは、最新の時点でブロックチェーンシステムにおいて生成されたいずれかのブロックを指すため、上記のステップ304は、ノードデバイスがそのいずれかのブロックに対するコンセンサスが達成されたことに応答して、そのいずれかのブロックを当該ターゲットブロックチェーンの当該ターゲットサブチェーンに追加することである。
【0056】
本開示の実施例では、ブロックチェーンシステムにおけるノードデバイスは、当該ターゲットサブチェーンのサブチェーン番号と、当該ターゲットサブチェーンにおけるブロックの順序番号とに基づいて、当該新たなブロックのブロック番号を決定し、当該ブロック番号が付けられている当該新たなブロックを当該ターゲットサブチェーンに追加することができる。ここで、当該ノードデバイスは、コンセンサスノードデバイスのうちのリーダーノードデバイスであってもよい。
【0057】
新たなブロックとは、最新の時点でブロックチェーンシステムにおいて生成されたいずれかのブロックを指すため、言い換えれば、ノードデバイスは、当該ターゲットサブチェーンのサブチェーン番号と、当該ターゲットサブチェーンにおけるブロックの順序番号とに基づいて、そのいずれかのブロックのブロック番号を決定し、当該ブロック番号が付けられているそのいずれかのブロックを当該ターゲットサブチェーンに追加する。
【0058】
1つの可能な実現形態では、当該新たなブロックに対するコンセンサスが達成されたことに応答して、すなわち、当該新たなブロックが当該ターゲットサブチェーンに記憶され得ると決定されたときに、ノードデバイスは、当該新たなブロックにブロック番号を追加することができる。オプションとして、ノードデバイスは、当該ターゲットサブチェーンにおいてブロック高さが最も高いブロックの順序番号を当該新たなブロックの順序番号として1を加算し、当該ターゲットサブチェーンのサブチェーン番号と当該新たなブロックの順序番号とをつなぎ合わせて、当該ターゲットブロックチェーンにおける当該新たなブロックのブロック番号を得ることができる。
【0059】
新たなブロックとは、最新の時点でブロックチェーンシステムにおいて生成されたいずれかのブロックを指すため、言い換えれば、ノードデバイスは、当該ターゲットサブチェーンにおいてブロック高さが最も高いブロックの順序番号を1つ加算して、そのいずれかのブロックの順序番号を得て、当該ターゲットサブチェーンのサブチェーン番号とそのいずれかのブロックの順序番号とをつなぎ合わせて、当該ターゲットブロックチェーンにおけるそのいずれかのブロックのブロック番号を得る。
【0060】
例えば、当該ターゲットサブチェーンのサブチェーン番号が2であり、当該ターゲットサブチェーンにおけるブロック高さが最も高いブロックの順序番号が3である場合、当該新たなブロックのブロック番号は2.4であり得る。ここで、当該順序番号は、当該ターゲットサブチェーンにおけるブロックの配列順序を示すために使用され、当該ブロック番号は、当該ターゲットブロックチェーンにおける当該新たなブロックの記憶位置を示すために使用される。本開示の実施例では、ブロック番号が生成された後、ブロックチェーンシステムにおけるコンセンサノードデバイスは、ブロック番号の生成ルールに基づいて、各ブロックのブロック番号を検証することができる。説明すべきものとして、ブロック番号構築方法に対する上記の説明は、例示的な説明にすぎず、本開示の実施例は、具体的にどのようなブロック番号構築方法を採用するかに対して限定しない。
【0061】
図5を参照すると、
図5は、本開示の実施例によって提供されるターゲットブロックチェーンデータ構造の概略図であり、
図5に示すターゲットブロックチェーンを例にしてブロック番号の生成プロセスを説明し、ターゲットブロックチェーンのルートブロック500には、時間区間が記憶されており、当該ブロックチェーンシステムにおいてブロック生成周期が1秒、ブロック平均コンセンサス時間長さが3秒に設定されると、当該ターゲットブロックチェーンに対応する第1ターゲット数は3であり、すなわち、含まれているサブチェーンの数は3である。
【0062】
当該時間区間内に第1ブロック501が生成されたとき、当該ターゲットブロックチェーンにおいてルートブロック以外のブロックがチェーンに追加されておらず、この場合、第1ブロック501は、それに対するコンセンサスが達成された後、当該ルートブロックに接続され、1つのサブチェーンを形成することができ、そのサブチェーン番号は1であり、当該第1ブロック501のブロック番号は1.1であり、第2ブロック502に対するコンセンサスが完成された後、第1ブロック501はすでにチェーンに追加されており、かつ、当該ターゲットブロックチェーンにおけるサブチェーンの数が第1ターゲット数に達しておらず、この場合、第2ブロック502は、当該ルートブロックに接続され、1つのサブチェーンを形成することができ、そのサブチェーン番号は2であり、当該第2ブロック502のブロック番号は2.1であり、第3ブロック503をチェーンに追加するプロセスは、第2ブロック502をチェーンに追加するプロセスと同様であり、ここでは詳しく説明しない。
【0063】
第4ブロック504が生成された後、ターゲットブロックチェーンには、ターゲット数のサブチェーンがすでに含まれており、各サブチェーンにおけるブロックの数は同じであり、この場合、当該第4ブロック504は、1つのサブチェーンをランダムに選択し、チェーンに追加する上記のステップを完了することができ、例えば、当該第4ブロック504は、サブチェーン番号が1であるサブチェーンを選択することができ、ブロック番号は1.2であり、第5ブロック505をチェーンに追加するプロセスは、第4ブロック504をチェーンに追加するプロセスと同様であり、ここでは詳しく説明しない。
【0064】
第6ブロック506が生成された後、現在のターゲットブロックチェーンでは、長さが最も短いサブチェーンは、サブチェーン番号が3であるサブチェーンである場合、当該第6ブロック506は、それに対するコンセンサスが完成された後、サブチェーン番号が3であるサブチェーンに追加される必要があり、第6ブロック506のコンセンサスプロセスは時間がかかるため、第7ブロック507に対するコンセンサスが達成された後にのみ、第6ブロック506に対するコンセンサスが完成され、したがって、第7ブロック507に対するコンセンサスが達成されたときに、現在のターゲットブロックチェーンのうち、長さが最も短いものは、依然として、サブチェーン番号が3であるサブチェーンであり、このため、当該第7ブロック507は、チェーンに追加することを先に完了し、サブチェーン番号が3であるサブチェーンに接続され、当該第7ブロック507のブロック番号は3.2であり、第6ブロック506に対するコンセンサスが完成された後、サブチェーン番号が3であるサブチェーンに同じように接続され、当該第6ブロック506のブロック番号は3.3である。
【0065】
本開示の実施例では、当該新たなブロックが当該ターゲットサブチェーンの末尾に追加された後、すなわち、当該新たなブロックがターゲットサブチェーンにおいてブロック高さが最も高いブロックに接続された後、当該新たなブロックの追加位置も検証され得る。1つの可能な実現形態では、ノードデバイスは、当該新たなブロックの1つ前のブロックを候補ブロックとして決定し、当該候補ブロックの順序番号を当該新たなブロックの順序番号と比較し、当該候補ブロックの順序番号と当該新たなブロックの順序番号とが連続的に逓増しない場合、すなわち当該新たなブロックが当該ターゲットサブチェーンの末尾に接続されていない場合、当該新たなブロックの追加位置を再び決定し、当該新たなブロックを当該ターゲットサブチェーンに追加するステップを実行する。このような検証メカニズムは、サブチェーンにおける各ブロックの順序番号が順次逓増することを確保し、サブチェーンに分岐が発生することを回避し、ブロックの乱序を回避することができる。
【0066】
新たなブロックとは、最新の時点でブロックチェーンシステムにおいて生成されたいずれかのブロックを指すため、言い換えれば、ノードデバイスの検証メカニズムとは、そのいずれかのブロックの1つ前のブロックを候補ブロックとして決定し、当該候補ブロックの順序番号とそのいずれかのブロックの順序番号とが連続的に逓増しないことに応答して、そのいずれかのブロックの追加位置を再び決定し、そのいずれかのブロックを当該ターゲットサブチェーンに追加するステップを実行することである。
【0067】
説明すべものとして、本開示の実施例は、当該新たなブロックを当該ターゲットサブチェーンに追加するための具体的な方法を限定しない。
【0068】
上記の技術的解決手段では、ブロックに順序番号を追加し、順序番号に基づいてブロックの記憶位置を検証することにより、サブチェーンにおけるブロックの乱序を効果的に回避し、サブチェーンの分岐を回避し、各ブロックの記憶位置が正確であることを確保することができ、これによって、ブロックチェーンシステムにおけるデータ検索、検査プロセスが順調に行われることが確保される。
【0069】
本開示の実施例によって提供される技術的解決手段では、いずれかの新たなブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、当該新たなブロックに含まれているトランザクションのトランザクション発生時間が時間区間内にある場合、当該ルートブロックに接続されている第1ターゲット数のサブチェーンを走査し、ターゲット条件に合致するサブチェーンをターゲットサブチェーンとし、当該新たなブロックに対するコンセンサスが達成されたことに応答して、当該新たなブロックを当該ターゲットブロックチェーンのターゲットサブチェーンに追加する。上記の技術的解決手段を応用すると、ブロックに対するコンセンサスが達成された時間に応じて、ブロックをブロックチェーンに接続することで、前に生成されたブロックに対するコンセンサスが完成されるのを待つ必要がなく、かつ、ブロックチェーンがツリー構造として構築され、複数のサブチェーンから構成され、複数のサブチェーンに同時にブロックを追加することが可能になり、これにより、ブロックの追加効率を向上させ、ブロックをタイムリーにチェーンに追加させることができ、ブロックチェーンシステムの正常な動作を確保することができる。
【0070】
通常、ブロックチェーンにおけるブロックが特定の数に達すると、システムにおけるデータ検索の効率に影響を与えて、システムの動作に影響を与える場合がある。上記のブロックチェーンシステムでは、各ブロックチェーンは、いずれも、1つのルートブロックと複数のサブチェーンとを含むツリー構造として構築されており、各ブロックチェーンのルートブロックに記憶されている時間区間により、各ブロックチェーンのブロック数を柔軟に制御することができ、これにより、1つのブロックチェーンに記憶されているブロック数が多すぎることによりデータ検索の難易度を向上させることを回避し、これにより、システムの良好な動作を確保することができる。上記の技術的解決手段に基づいて、各ルートブロックに対してインデックスを作成することもでき、すなわち、ブロックチェーンシステムにおいて、各ルートブロックの記憶位置、時間区間などの情報を記録するためのルートブロックインデックステーブルを維持することができる。本開示の実施例は、当該ルートブロックインデックステーブルの具体的な構築方法を限定しない。
【0071】
以上の実施例は、主に、複数のサブチェーンを含むツリー型ブロックチェーンを構築することにより、ブロックをチェーンに追加する効率を向上させ、ブロックチェーンシステムの並列処理能力を向上させることができるブロックチェーン構築方法を説明した。本開示の実施例では、ブロックチェーン構築において、ブロックチェーンシステムは、ターゲットブロックチェーンに関連付けられたブロックインデックステーブルを維持することができ、当該ブロックインデックステーブルは、ターゲットブロックチェーンにおける各ブロックの記憶位置情報を記録することができ、これにより、ターゲットブロックチェーンに対するデータ検索を容易にする。
【0072】
本開示の実施例では、当該新たなブロックに対するコンセンサスが達成されたことに応答して、ノードデバイスは、当該新たなブロックの記憶位置情報を当該ターゲットブロックチェーンのブロックインデックステーブルに記憶することができ、当該ブロックインデックステーブルは、当該ターゲットブロックチェーンにおける各ブロックのブロック情報を記録するために使用される。ここで、当該記憶位置情報は、ブロック番号であり得る。
【0073】
新たなブロックとは、最新の時点でブロックチェーンシステムにおいて生成されたいずれかのブロックを指すため、言い換えれば、ノードデバイスは、そのいずれかのブロックの記憶位置情報を当該ターゲットブロックチェーンのブロックインデックステーブルに記憶する。
【0074】
1つの可能な実現形態では、当該ブロックインデックステーブルは、第2ターゲット数のデータ記憶ユニットを含み、1つのデータ記憶ユニットは、1つの時間識別子に対応し、1つのデータ記憶ユニットには、固定長さのデータが記憶されることが可能であり、当該固定長さのデータには、ブロックの記憶位置情報などのブロック情報が記録されることが可能であり、ブロックインデックステーブルに記憶する必要のあるブロック情報が増加または減少されると、データ記憶ユニットに記憶されているデータの長さを調整することができる。ここで、当該第2ターゲット数の具体的な数値は、開発者によって設定されることが可能であり、当該固定長さは、開発者によって設定されることが可能であり、本開示の実施例は、これに対して限定しない。例えば、ブロック生成周期が1秒あたり1ブロックを生成する場合、当該第2ターゲット数は60に設定されることが可能であり、1つのブロックインデックステーブルには、60個のデータ記憶ユニットが含まれ、すなわち、1分間あたり生成されたブロックは、同一のブロックインデックステーブルに記憶されている。
【0075】
本開示の一実施例では、当該ブロックインデックステーブルにおけるいずれかのデータ記憶ユニットの時間識別子が、当該新たなブロックに含まれているトランザクションのトランザクション発生時間とマッチングする場合、ノードデバイスは、そのいずれかのデータ記憶ユニットをターゲットデータ記憶ユニットとして決定し、当該新たなブロックの記憶位置情報を当該ブロックインデックステーブルの当該ターゲットデータ記憶ユニットに記憶する。
【0076】
新たなブロックとは、最新の時点でブロックチェーンシステムにおいて生成されたいずれかのブロックを指すため、言い換えれば、ノードデバイスは、そのいずれかのブロックの記憶位置情報を当該ブロックインデックステーブルのターゲットデータ記憶ユニットに記憶し、ここで、当該ターゲットデータ記憶ユニットの時間識別子は、そのいずれかのブロックに含まれているトランザクションのトランザクション発生時間とマッチングする。
【0077】
1つの可能な実現形態では、当該時間識別子は、時間区間の開始時点に対する時間オフセットであってもよく、例えば、時間区間が23:00から24:00である場合、時間識別子は00:01であり、すなわち、23:00に対する時間オフセットが00:01である場合、トランザクション発生時間23:01は、当該時間識別子とマッチングすることができ、この場合、23:01に生成されたトランザクションデータが記憶されているブロックの記憶位置情報は、時間識別子が00:01である場合に対応するデータ記憶ユニットに記録され得る。
図6を参照すると、
図6は、本開示の実施例によって提供されるターゲットブロックチェーンとブロックインデックステーブルの構造概略図であり、時間区間が23:00から24:00である場合、ブロックインデックステーブル601のデータ記憶ユニット602には、23:01に生成されたブロック603の記憶位置情報が記憶され得る。説明すべきものとして、ブロック情報をブロックインデックステーブルに記憶する上記の方法に対する説明は、例示的な説明にすぎず、本開示の実施例は、具体的にどのような記憶方法を採用するかに対して限定しない。説明すべきものとして、当該時間識別子情報は、時間区間内のある時点として設定されてもよく、例えば、23:01などとして設定されてもよく、本開示の実施例は、当該時間識別子情報の具体的な形態に対して限定しない。
【0078】
もちろん、当該データ記憶ユニットには、ブロックのハッシュ値などのような、ブロックの他のデータ情報が記憶されてもよいし、本開示の実施例は、これに対して限定しない。
【0079】
ブロックチェーンシステムにおいてブロックインデックステーブルを維持することにより、ブロックに含まれているトランザクションのトランザクション発生時順に従って、各ブロックのブロック情報、例えば、ブロックの記憶位置などを記録することができ、これにより、ブロックチェーンシステムは、各ブロックに対して検索、検証を容易に行うことができる。
上記の技術的解決手段に基づいて、ターゲットブロックチェーンにおけるデータを検索する際に、ターゲットブロックチェーンに対応するブロックインデックステーブルに基づいて、検索されるブロック記憶位置を決定することができる。
図7は、本開示の実施例によって提供されるブロックチェーンに基づくデータ検索方法のフローチャートであり、
図7を参照すると、1つの可能な実現形態では、当該方法は、具体的には、ステップ701~703を含み得る。
【0080】
701で、ノードデバイスは、ターゲットブロックチェーンにおけるターゲットブロックへの検索命令に応答して、当該ターゲットブロックチェーンのブロックインデックステーブルを取得する。
【0081】
1つの可能な実現形態では、当該検索命令には、当該ターゲットブロックに含まれているトランザクションのトランザクション発生時間が付けられ、当該ブロックインデックステーブルにおける各データ記憶ユニットは、当該ターゲットブロックチェーンにおける各ブロックの記憶位置情報を記録するために使用され、1つのデータ記憶ユニットは、1つの時間識別子に対応する。説明すべきものとして、当該ブロックインデックステーブルの構築方式は、上記の実施例におけるブロックインデックステーブルの構築方式と同じであり、ここでは詳しく説明しない。
【0082】
702で、ノードデバイスは、当該各データ記憶ユニットの時間識別子を当該トランザクション発生時間とマッチングし、当該トランザクション発生時間とマッチングすることに成功した当該時間識別子に対応するデータ記憶ユニットを、ターゲットデータ記憶ユニットとして決定する。
【0083】
上記のステップ702は、ノードデバイスが当該ブロックインデックステーブルからターゲットデータ記憶ユニットを決定する可能な実施形態であり、ここで、当該ターゲットデータ記憶ユニットの時間識別子は、当該トランザクション発生時間とマッチングする。
【0084】
1つの可能な実現形態では、当該時間識別子は、時間区間の開始時間に対する時間オフセットとして設定されてもよい。時間識別子が、ブロックに含まれているトランザクションのトランザクション発生時間とマッチングした場合、ノードデバイスは、当該ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、当該時間区間の開始時間に対する当該トランザクション発生時間の時間オフセットを決定し、いずれかの時間識別子が当該時間オフセットと同じである場合、そのいずれかの時間識別子が当該発生時間とマッチングしたと決定し、そのいずれかの時間識別子が対応するデータ記憶ユニットを、当該ターゲットデータ記憶ユニットとして決定することができる。
【0085】
言い換えれば、上記のプロセスにおいて、ノードデバイスは、当該ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、当該時間区間の開始時間に対する当該トランザクション発生時間の時間オフセットを決定し、いずれかのデータ記憶ユニットの時間識別子が当該時間オフセットと同じであることに応答して、そのいずれかのデータ記憶ユニットを、当該ターゲットデータ記憶ユニットとして決定する。
【0086】
1つの可能な実現形態では、1つのデータ記憶ユニットには、固定長さのデータが記憶されることが可能であり、当該固定長さの具体的な値は、開発者によって設定され得る。ブロックインデックステーブルでは、各ブロックのブロック情報は、ブロックに含まれているトランザクションのトランザクション発生時順に従って記憶され、時間識別子がブロックのトランザクション発生時間とマッチングした場合、ノードデバイスは、当該時間区間の開始時点に対する当該トランザクション発生時間の時間オフセットを決定し、当該時間オフセットに当該固定長さを乗算することにより、当該ブロックインデックステーブルにおけるターゲットブロックのブロック情報の記憶位置、すなわち当該ブロック情報が記憶されているターゲットデータ記憶ユニットを決定することができる。
【0087】
説明すべきものとして、上記のターゲットデータ記憶ユニットの決定に対する説明は、例示的な説明にすぎず、本開示の実施例は、具体的にどのような方法で当該データ記憶ユニットを決定するかに対して限定しない。
【0088】
本開示の実施例では、1つのデータ記憶ユニットには、1つのブロックのブロック情報が記憶されており、ブロックに含まれているトランザクションのトランザクション発生時間によってデータ記憶ユニットが位置決められ、これにより、取得したブロック情報の正確性が確保され、すなわち、ブロックの記憶位置を正確に取得することが確保され、データ検索結果の正確性を向上させることができる。
【0089】
703で、ノードデバイスは、当該ターゲットデータ記憶ユニットにおける記憶位置情報に基づいて、当該ターゲットブロックチェーンにおいてターゲットブロックを検索する。
【0090】
1つの可能な実現形態では、当該記憶位置情報は、ブロック番号として表されてもよく、すなわち、ノードデバイスは、当該ブロック番号を取得した後、当該ブロック番号におけるサブチェーン番号に基づいて、当該ターゲットブロックが属するサブチェーンを決定し、当該ブロック番号における順序番号に基づいて、当該サブチェーンにおける当該ターゲットブロックの配置順序を決定することにより、当該サブチェーンにおいて当該ターゲットブロックの位置を特定し、当該ターゲットブロックにおけるデータ情報を取得することができる。
【0091】
もちろん、当該データ記憶ユニットには、ターゲットブロックのハッシュ値なども記憶されていてもよく、ノードデバイスは、当該ハッシュ値とターゲットブロックにおけるデータ情報とに基づいて、ターゲットブロックを検証することができる。
【0092】
上記の技術的解決手段において、ブロックチェーンに関連付けられたブロックインデックステーブルを介してブロックの記憶位置を記録することにより、ブロックチェーンにおけるブロックの乱序によるデータ検索の困難な問題を効果的に回避し、データ検索の効率および正確率を向上させることができる。
【0093】
上記のすべての選択可能な技術的解決手段は、任意に組み合わせて本開示の選択可能な実施例を形成することができるが、ここではこれ以上詳しく説明しない。
図8は、本開示の実施例によって提供されるブロック処理装置の構成概略図であり、
図8を参照すると、この装置は、下記のものを含み、即ち、
取得モジュール801は、いずれかの新たなブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得するために使用され、
つまり、この取得モジュール801は、いずれかのブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得するために使用される。
【0094】
サブチェーン決定モジュール802は、この新たなブロックに含まれているトランザクションのトランザクション発生時間が当該時間区間内にある場合、当該ルートブロックに接続されている第1ターゲット数のサブチェーンを走査し、ターゲット条件に合致するサブチェーンをターゲットサブチェーンとするために使用され、
つまり、このサブチェーン決定モジュール802は、このブロックに含まれているトランザクションのトランザクション発生時間が当該時間区間内にあることに応答して、当該ルートブロックに接続されている第1ターゲット数のサブチェーンから、ターゲット条件に合致するサブチェーンをターゲットサブチェーンとして決定するために使用される。
【0095】
追加モジュール803は、当該新たなブロックに対するコンセンサスが達成されたことに応答して、当該新たなブロックを当該ターゲットブロックチェーンの当該ターゲットサブチェーンに追加するために使用され、
つまり、この追加モジュール803は、当該ブロックに対するコンセンサスが達成されたことに応答して、当該ブロックを当該ターゲットブロックチェーンの当該ターゲットサブチェーンに追加するために使用される。
【0096】
1つの可能な実装形態では、当該第1ターゲット数は、当該ターゲットブロックチェーンが属するブロックチェーンシステムにおけるブロック平均コンセンサス時間長さおよびブロック生成周期に基づいて決定される。
【0097】
1つの可能な実装形態では、このサブチェーン決定モジュール802は、
各サブチェーンに含まれているブロックの数を決定し、
各サブチェーンに含まれているブロックの数が異なる場合、含まれているブロックの数が最も少ないサブチェーンをターゲットサブチェーンとして決定し、各サブチェーンに含まれているブロックの数が同じである場合、各サブチェーンの中から1つのサブチェーンをターゲットサブチェーンとしてランダムに決定するために使用される。
【0098】
つまり、このサブチェーン決定モジュール802は、
サブチェーンに含まれているブロックの数を決定し、
各サブチェーンに含まれているブロックの数が異なることに応答して、含まれているブロックの数が最も少ないサブチェーンをターゲットサブチェーンとして決定し、
各サブチェーンに含まれているブロックの数が同じであることに応答して、各サブチェーンにおいて、1つのサブチェーンをターゲットサブチェーンとしてランダムに決定するために使用される。
【0099】
1つの可能な実装形態では、この追加モジュール803は、
当該ターゲットサブチェーンのサブチェーン番号と、当該ターゲットサブチェーンにおけるブロックの順序番号とに基づいて、当該新たなブロックのブロック番号を決定し、当該順序番号は、当該ターゲットサブチェーンにおけるブロックの配列順序を示すために使用され、当該ブロック番号は、当該ターゲットブロックチェーンにおける当該新たなブロックの記憶位置を示すために使用され、
当該ブロック番号が付けられている当該新たなブロックを当該ターゲットサブチェーンに追加するために使用され、
つまり、この追加モジュール803は、
当該ターゲットサブチェーンのサブチェーン番号と、当該ターゲットサブチェーンにおけるブロックの順序番号とに基づいて、当該ブロックのブロック番号を決定し、、当該順序番号は、当該ターゲットサブチェーンにおけるブロックの配列順序を示すために使用され、当該ブロック番号は、当該ターゲットブロックチェーンにおける当該ブロックの記憶位置を示すために使用され、
当該ブロック番号が付けられている当該ブロックを当該ターゲットサブチェーンに追加するために使用される。
【0100】
1つの可能な実装形態では、この追加モジュール803は、
当該ターゲットサブチェーンにおいてブロック高さが最も高いブロックの順序番号を当該新たなブロックの順序番号として1を加算し、
当該ターゲットサブチェーンのサブチェーン番号と当該新たなブロックの順序番号とをつなぎ合わせて、当該ターゲットブロックチェーンにおける当該新たなブロックのブロック番号を得るために使用され、
つまり、この追加モジュール803は、
当該ターゲットサブチェーンにおいてブロック高さが最も高いブロックの順序番号を1つ加算して当該ブロックの順序番号を取得し、
当該ターゲットサブチェーンのサブチェーン番号と当該ブロックの順序番号とをつなぎ合わせて、当該ターゲットブロックチェーンにおける当該ブロックのブロック番号を得るために使用される。
【0101】
1つの可能な実装形態では、この装置は、また、下記のものを含み、即ち、
ブロック決定モジュールは、当該新たなブロックの1つ前のブロックを候補ブロックとして決定するために使用され、
つまり、このブロック決定モジュールは、当該ブロックの1つ前のブロックを候補ブロックとして決定するために使用される。
【0102】
比較モジュールは、当該候補ブロックの順序番号を当該新たなブロックの順序番号と比較し、当該候補ブロックの順序番号と当該新たなブロックの順序番号とが連続的に逓増しない場合、当該新たなブロックの追加位置を再び決定し、当該新たなブロックを当該ターゲットサブチェーンに追加するステップを実行するために使用され、
つまり、この比較モジュールは、当該候補ブロックの順序番号と当該ブロックの順序番号とが連続的に逓増しないことに応答して、当該ブロックの追加位置を再び決定し、当該ブロックを当該ターゲットサブチェーンに追加するステップを実行するために使用される。
【0103】
1つの可能な実装形態では、この装置は、また、下記のものを含み、即ち、
情報記憶モジュールは、当該新たなブロックの記憶位置情報を当該ターゲットブロックチェーンのブロックインデックステーブルに記憶するために使用され、当該ブロックインデックステーブルは、当該ターゲットブロックチェーンにおける各ブロックのブロック情報を記録するために使用され、
つまり、この情報記憶モジュールは、当該ブロックの記憶位置情報を当該ターゲットブロックチェーンのブロックインデックステーブルに記憶するために使用され、当該ブロックインデックステーブルは、当該ターゲットブロックチェーンにおける各ブロックのブロック情報を記録するために使用される。
【0104】
1つの可能な実装形態では、当該ブロックインデックステーブルは、第2ターゲット数のデータ記憶ユニットを含み、1つのデータ記憶ユニットは、1つの時間識別子に対応する。
【0105】
1つの可能な実装形態では、この情報記憶モジュールは、
当該ブロックインデックステーブルにおけるいずれかのデータ記憶ユニットの時間識別子が、当該新たなブロックに含まれているトランザクションのトランザクション発生時間とマッチングする場合、そのいずれかのデータ記憶ユニットをターゲットデータ記憶ユニットとして決定し、
当該新たなブロックの記憶位置情報を当該ブロックインデックステーブルの当該ターゲットデータ記憶ユニットに記憶するために使用され、
つまり、この情報記憶モジュールは、当該ブロックの記憶位置情報を、当該ブロックインデックステーブルのターゲットデータ記憶ユニットに記憶するために使用され、ターゲットデータ記憶ユニットの時間識別子が、当該ブロックに含まれているトランザクションのトランザクション発生時間とマッチングする。
【0106】
本開示の実施例によって提供される装置は、いずれかの新たなブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、当該新たなブロックに含まれているトランザクションのトランザクション発生時間が時間区間内にある場合、当該ルートブロックに接続されている第1ターゲット数のサブチェーンを走査し、ターゲット条件に合致するサブチェーンをターゲットサブチェーンとし、当該新たなブロックに対するコンセンサスが達成されたことに応答して、当該新たなブロックを当該ターゲットブロックチェーンのターゲットサブチェーンに追加する。上記の装置を応用すると、ブロックに対するコンセンサスが達成された時間に応じて、ブロックをブロックチェーンに接続することで、前に生成されたブロックに対するコンセンサスが完成されるのを待つ必要がなく、かつ、ブロックチェーンがツリー構造として構築され、複数のサブチェーンから構成され、複数のサブチェーンに同時にブロックを追加することが可能になり、これにより、ブロックの追加効率を向上させ、ブロックをタイムリーにチェーンに追加させることができ、ブロックチェーンシステムの正常な動作を確保することができる。
【0107】
説明すべきものとして、上記の実施例によって提供されるブロック処理装置は、ブロック処理を行う際に、上記の各機能モジュールの区分のみを例に挙げて説明したが、実際の応用では、異なる機能モジュールに完成させるように、必要に応じて上記の機能を割り当てることができ、つまり、装置の内部構成を異なる機能モジュールに区分することで、上記の機能の全部または一部を完成させることができる。なお、上記の実施例によって提供されるブロック処理装置は、ブロック処理方法の実施例と同一構想に属し、その具体的な実現過程について、ブロック処理方法の実施例を参照し、ここではこれ以上詳しく説明しない。
【0108】
図9は、本開示の実施例によって提供されるブロックチェーンに基づくデータ検索装置の構成概略図であり、
図9を参照すると、この装置は、下記のものを含み、即ち、
取得モジュール901は、ターゲットブロックチェーンにおけるターゲットブロックへの検索命令に応答して、当該ターゲットブロックチェーンのブロックインデックステーブルを取得するために使用され、当該検索命令には、当該ターゲットブロックにおけるトランザクションのトランザクション発生時間が付けられ、当該ブロックインデックステーブルにおける各データ記憶ユニットは、当該ターゲットブロックチェーンにおける各ブロックの記憶位置情報を記録するために使用され、1つのデータ記憶ユニットは、1つの時間識別子に対応し、つまり、当該ブロックインデックステーブルにおけるデータ記憶ユニットは、当該ターゲットブロックチェーンにおけるブロックの記憶位置情報を記録するために使用される。
【0109】
マッチングモジュール902は、当該各データ記憶ユニットの時間識別子を当該トランザクション発生時間とマッチングするために使用される。
【0110】
確定モジュール903は、当該トランザクション発生時間とマッチングすることに成功した当該時間識別子に対応するデータ記憶ユニットを、ターゲットデータ記憶ユニットとして決定するために使用され、
つまり、この確定モジュール903は、当該ブロックインデックステーブルからターゲットデータ記憶ユニットを決定するために使用され、当該ゲットデータ記憶ユニットの時間識別子が当該トランザクション発生時間とマッチングする。
【0111】
検索モジュール904は、当該ターゲットデータ記憶ユニットにおける記憶位置情報に基づいて、当該ターゲットブロックチェーンにおいてターゲットブロックを検索するために使用される。
【0112】
1つの可能な実装形態では、このマッチングモジュール902は、
当該ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、
当該時間区間の開始時間に対する当該トランザクション発生時間の時間オフセットを決定し、
いずれかの時間識別子が当該時間オフセットと同じである場合、そのいずれかの時間識別子が当該発生時間とマッチングしたと決定するために使用され、
つまり、このマッチングモジュール902は、
当該ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、
当該時間区間の開始時間に対する当該トランザクション発生時間の時間オフセットを決定し、
いずれかのデータ記憶ユニットの時間識別子が当該時間オフセットと同じであることに応答して、そのいずれかのデータ記憶ユニットを、当該ターゲットデータ記憶ユニットとして決定するために使用される。
【0113】
説明すべきものとして、上記の実施例によって提供されるブロックチェーンに基づくデータ検索装置は、ブロックチェーンに基づいてデータ検索を行う際に、上記の各機能モジュールの区分のみを例に挙げて説明したが、実際の応用では、異なる機能モジュールに完成させるように、必要に応じて上記の機能を割り当てることができ、つまり、装置の内部構成を異なる機能モジュールに区分することで、上記の機能の全部または一部を完成させることができる。なお、上記の実施例によって提供されるブロックチェーンに基づくデータ検索装置は、ブロックチェーンに基づくデータ検索方法の実施例と同一構想に属し、その具体的な実現過程について、ブロックチェーンに基づくデータ検索方法の実施例を参照し、ここではこれ以上詳しく説明しない。
【0114】
上記の技術的解決手段によって提供されるノードデバイスは、端末またはサーバとして実現されることが可能であり、例えば、
図10は、本開示の実施例によって提供される端末の構成概略図である。該端末1000は、スマートフォン、タブレットコンピュータ、MP3(Moving Picture Experts Group Audio Layer III、動画専門家圧縮標準オーディオレベル3)プレーヤー、MP4(Moving Picture Experts Group Audio Layer IV、動画専門家圧縮標準オーディオレベル4)プレーヤー、ラップトップコンピュータまたはデスクトップコンピュータであってもよい。端末1000は、ユーザ機器、携帯型端末、ラップトップ型端末、デスクトップ型端末などの他の名称と呼ばれることもある。
【0115】
一般的に、端末1000は、一つまたは複数のプロセッサ1001と、一つまたは複数のメモリ1002とを含む。
【0116】
プロセッサ1001は、1つまたは複数の処理コアを備えるようにしてよく、例えば、4コアプロセッサ、10コアプロセッサなどである。プロセッサ1001は、DSP(Digital Signal Processing、デジタル信号処理)、FPGA(Field-Programmable Gate Array、フィールドプログラマブルゲートアレイ)、PLA(Programmable Lplogic Array、プログラマブルロジックアレイ)のうちの少なくとも1つのハードウェア形式を採用して実現するようにしてもよい。プロセッサ1001は、メインプロセッサとコプロセッサとを備えるようにしてもよく、メインプロセッサは、起動状態でのデータを処理するためのプロセッサであり、CPU(central processing unit、中央プロセッサ)とも呼ばれ、コプロセッサは、待機状態でのデータを処理するための低消費電力プロセッサである。いくつかの実施形態では、プロセッサ1001は、GPU(Graphics Processing Unit、グラフィックスプロセッシングユニット)が集積されているようにしてもよく、GPUは、ディスプレイに表示する必要のあるコンテンツへのレンダリングおよび描画を担当するために使用される。いくつかの実施形態では、プロセッサ1001は、AI(Artiphicial Intelligence、人工知能)プロセッサを備えるようにしてもよく、このAIプロセッサは、マシン学習に関するコンピューティング動作を処理するために使用される。
【0117】
メモリ1002は、1つまたは複数のコンピュータ読み取り可能な記憶媒体を備えるようにしてよく、当該コンピュータ読み取り可能な記憶媒体は、非一時的なものであってもよい。メモリ1002はまた、高速ランダムアクセスメモリと、不揮発性メモリとを備えるようにしてもよく、例えば、1つまたは複数の磁気ディスク記憶デバイス、フラッシュメモリ記憶デバイスなどである。いくつかの実施形態では、メモリ1002における非一時的なコンピュータ読み取り可能な記憶媒体は、少なくとも1つのコンピュータプログラムを記憶するために使用され、当該少なくとも1つのコンピュータプログラムは、プロセッサ1001によって実行されることで、本開示の方法の実施例によって提供されるブロック処理方法およびブロックチェーンに基づくデータ検索方法を実現するために使用されるものである。
【0118】
いくつかの実施形態では、端末1000は、オプションとして、周辺デバイスインターフェース1003と、少なくとも1つの周辺デバイスとを備えるようにしてもよい。プロセッサ1001、メモリ1002、および周辺デバイスインターフェース1003の間では、バスまたは信号線によって接続されるようにしてもよい。各周辺デバイスは、バス、信号線、または回路ボードを介して周辺デバイスインターフェース1003と接続されるようにしてもよい。オプションとして、周辺デバイスには、無線周波数回路1004と、ディスプレイ1005と、カメラコンポーネント1006と、オーディオ回路1007と、位置決めコンポーネント1008と、電源1009とのうちの少なくとも1つが含まれる。
【0119】
周辺デバイスインターフェース1003は、I/O(Input /Output、入力/出力)に関連する少なくとも1つの周辺デバイスをプロセッサ1001およびメモリ1002に接続するために使用されてもよい。いくつかの実施形態では、プロセッサ1001、メモリ1002、および周辺デバイスインターフェース1003は、同一のチップまたは回路ボードに集積され、いくつかの他の実施形態では、プロセッサ1001、メモリ1002、および周辺デバイスインターフェース1003のうちのいずれかの1つまたは2つは、単独のチップまたは回路ボード上で実現されてもよいし、本実施形態は、これに対して限定しない。
【0120】
無線周波数回路1004は、RF(Radio Frequency、無線周波数)信号を送受信するために使用され、電磁信号とも呼ばれる。無線周波数回路1004は、電磁信号を介して通信ネットワークおよび他の通信デバイスと通信を行う。無線周波数回路1004は、電気信号を電磁信号に変換して送信を行うか、または、受信した電磁信号を電気信号に変換する。オプションとして、無線周波数回路1004は、アンテナシステム、RFトランシーバ、1つまたは複数の増幅器、チューナー、発振器、デジタル信号プロセッサ、コーデックチップセット、ユーザIDモジュールカードなどを備えている。無線周波数回路1004は、少なくとも1つの無線通信プロトコルによって他の端末と通信するようにしてよい。当該無線通信プロトコルは、都市規模ネットワーク、各世代移動通信ネットワーク(2G、3G、4Gおよび5G)、無線ローカルエリアネットワークおよび/またはWiFi(Wireless Fidelity、ワイヤレスフィディリティー)ネットワークを含むが、これらに限定されない。いくつかの実施形態では、無線周波数回路1004は、NFC(Near Field Communication、近距離無線通信)に関する回路を備えるようにしてもよいし、本開示は、これに対して限定しない。
【0121】
ディスプレイ1005は、UI(User Interface、ユーザインターフェース)を表示するために使用される。当該UIは、グラフィック、テキスト、アイコン、ビデオ、およびそれらの任意の組み合わせを含むようにしてもよい。スクリーン1005がタッチディスプレイである場合、スクリーン1005は、ディスプレイ1005の表面または表面の上方にあるタッチ信号を収集する能力をさらに持っている。当該タッチ信号は、制御信号として、プロセッサ1001に入力して処理されるようにしてもよい。このとき、ディスプレイ1005は、また、仮想ボタンおよび/または仮想キーボードを提供するために使用されるようにしてもよく、ソフトボタンおよび/またはソフトキーボードとも呼ばれる。いくつかの実施形態では、ディスプレイ1005は、1つであってもよく、端末1000のフロントパネルを設置されてもよいし、別のいくつかの実施形態では、ディスプレイ1005は、少なくとも2つであってもよく、端末1000の異なる表面にそれぞれ設置されてもよく、または折り畳みされた設計として表示されてもよいし、また、いくつかの実施形態では、ディスプレイ1005は、フレキシブルディスプレイであってもよく、端末1000の曲げ面または折りたたみ面に設けられてもよい。さらに、ディスプレイ1005は、さらに、非長方形の不規則な図形に設置されるようにしてもよく、つまり、異形のディスプレイとなる。ディスプレイ1005は、LCD(Liquid Crystal Display、液晶ディスプレイ)、OLED(Organic Light-Emitting Diode,有機発光ダイオード)などの材質で製造されるようにしてよい。
【0122】
カメラコンポーネント1006は、画像またはビデオを収集するために使用される。オプションとして、カメラコンポーネント1006は、フロントカメラおよびバックカメラを含む。通常、フロントカメラは、端末のフロントパネルに設置されており、バックカメラは、端末の背面に設置される。いくつかの実施形態では、バックカメラは、少なくとも2つがあり、それぞれが、メインカメラ、被写界深度カメラ、広角カメラ、望遠カメラのうちのいずれかであり、これによって、メインカメラと被写界深度カメラの融合による背景ボケ機能の実現、メインカメラと広角カメラの融合によるパノラマ撮影およびVR(Virtual Reality、仮想現実)撮影機能、またはその他の融合撮影機能が実現される。いくつかの実施形態では、カメラコンポーネント1006は、フラッシュをさらに備えるようにしてもよい。フラッシュは、単色温度フラッシュであってもよく、二色温度フラッシュであってもよい。二色温度フラッシュとは、暖かい光のフラッシュと冷たい光のフラッシュの組み合わせであり、異なる色温度での光線補償に使用されるようにしてもよい。
【0123】
オーディオ回路1007は、マイクロフォンとスピーカとを備えるようにしてもよい。マイクロフォンは、ユーザおよび環境の音波を収集して、音波を電気信号に変換してプロセッサ1001に入力して処理し、または無線周波数回路1004に入力して音声通信を実現するために使用される。ステレオの収集またはノイズ低減の目的から、マイクロフォンは、複数あってもよく、それぞれが端末1000の異なる部分に設けられてもよい。マイクロフォンは、アレイマイクロフォンまたは全方向性収集型マイクロフォンであってもよい。スピーカは、プロセッサ1001または無線周波数回路1004からの電気信号を音波に変換するために使用される。スピーカは、伝統的な薄膜スピーカであってもよく、圧電セラミックススピーカであってもよい。スピーカは、圧電セラミックススピーカであると、電気信号を人間の聞こえる音波に変換するだけでなく、電気信号を人間の聞こえない音波に変換することで距離測定などの用途のために使用されてもよい。いくつかの実施形態では、オーディオ回路1007は、ヘッドホンジャックを備えるようにしてもよい。
【0124】
位置決めコンポーネント1008は、端末1000の現在の地理的位置を位置決めることで、ナビゲーションまたはLBS(Location Based Service、位置に基づくサービス)を実現するために使用される。位置決めコンポーネント1008は、米国のGPS(Global Positioning System、グローバルポジショニングシステム)、中国の北斗システム、ロシアのグレナスシステムまたはEUのガリレオシステムの位置決めコンポーネントに基づくものであってよい。
【0125】
電源1009は、端末1000における各コンポーネントに電力を供給するために使用される。電源1009は、交流、直流、使い捨て電池、または充電式電池であってもよい。電源1009が充電式電池を含む場合、当該充電式電池は、有線充電または無線充電をサポートすることができる。当該充電式電池は、高速充電技術をサポートするために使用されるようにしてもよい。
【0126】
いくつかの実施形態では、端末1000は、1つまたは複数のセンサ1010をさらに備える。当該1つまたは複数のセンサ1010は、加速度センサ1011、ジャイロセンサ1012、圧力センサ1013、指紋センサ1014、光学センサ1015、および近接センサ1016を含むが、これらに限定されない。
【0127】
加速度センサ1011は、端末1000により確立された座標系の3つの座標軸での加速度の大きさを検出することができる。例えば、加速度センサ1011は、重力加速度の3つの座標軸での成分を検出するために使用されるようにしてもよい。プロセッサ1001は、加速度センサ1011によって収集された重力加速度信号に基づいて、ディスプレイ1005が横方向または縦方向のビューによってユーザインターフェースの表示を行うように制御することができる。加速度センサ1011は、さらに、ゲームまたはユーザの動きデータの収集にも使用され得る。
【0128】
ジャイロセンサ1012は、端末1000の本体方向および回転角度を検出することができ、ジャイロセンサ1012は、加速度センサ1011と協働して、ユーザによる端末1000への3D動作を収集することができる。プロセッサ1001は、ジャイロセンサ1012によって収集されたデータに基づいて、動作感知(例えば、ユーザの傾き操作に応じてUIを変化させる)、撮影時の画像の安定性、ゲーム制御、および慣性ナビゲーションなどの機能を実現することができる。
【0129】
圧力センサ1013は、端末1000のサイドフレームおよび/またはディスプレイ1005の下部に設けられてもよい。圧力センサ1013は、端末1000のサイドフレームに設けられる場合、ユーザによる端末1000への把持信号を検出することができ、プロセッサ1001は、圧力センサ1013によって収集された把持信号に基づいて、左手と右手の識別またはショートカット操作を行う。プロセッサ1001は、圧力センサ1013がディスプレイ1005の下部に設けられる場合、ユーザによるディスプレイ1005への圧力操作に応じて、UIインターフェース上の操作可能なコントロールに対する制御を実現する。操作可能なコントロールは、ボタンコントロール、スクロールバーコントロール、アイコンコントロール、メニューコントロールのうちの少なくとも1つを含む。
【0130】
指紋センサ1014は、ユーザの指紋を収集するために使用され、プロセッサ1001は、指紋センサ1014によって収集された指紋から、ユーザの身分を識別するか、または、指紋センサ1014は、収集した指紋から、ユーザの身分を識別する。ユーザの身分が信頼できる身分であると識別された場合、プロセッサ1001は、当該ユーザに対して、関連する敏感な操作を実行するように許可し、当該敏感な操作は、スクリーンのロック解除、暗号化情報の閲覧、ソフトウェアのダウンロード、支払い、および設定の変更などを含む。指紋センサ1014は、端末1000の正面、背面、または側面に設けられてもよい。端末1000に物理的なボタンまたはメーカのLogoが設けられている場合、指紋センサ1014は、物理的なボタンまたはメーカのLogoと一体化されてもよい。
【0131】
光学センサ1015は、環境光強度を収集するために使用される。一実施形態では、プロセッサ1001は、光学センサ1015によって収集された環境光強度に応じて、ディスプレイ1005の表示輝度を制御するようにしてよい。オプションとして、環境光強度が高い場合、ようにしてよい1005の表示輝度を高くし、環境光強度が低い場合、ディスプレイ1005の表示輝度を低くする。別の実施形態では、プロセッサ1001は、光学センサ1015によって収集された環境光強度に従って、カメラコンポーネント1006の撮影パラメータを動的に調整することもできる。
【0132】
近接センサ1016は、距離センサとも呼ばれ、通常、端末1000のフロントパネルに設けられている。近接センサ1016は、ユーザと端末1000の正面との間の距離を収集するために使用される。1つの実施形態では、近接センサ1016が、ユーザと端末1000の正面との間の距離が徐々に小さくなっていることを検出した場合、プロセッサ1001は、ディスプレイ1005が点灯状態から消灯状態に切り換えるように制御し、近接センサ1016が、ユーザと端末1000の正面との間の距離が徐々に大きくなっていることを検出した場合、プロセッサ1001は、ディスプレイ1005が消灯状態から点灯状態に切り替えるように制御する。
【0133】
当業者であれば、
図10に示す構造は、端末1000に対する限定を構成するものではなく、図示のものより多いかまたは少ないコンポーネントを含んだり、またはいくつかのコンポーネントを組み合わせたり、あるいは異なるコンポーネントのハイツを採用したりすることができる、ということを理解することができる。
【0134】
図11は、本開示の実施例によって提供されるサーバの構成概略図であり、このサーバ1100は、構成や性能によって比較的大きな差異が存在する場合があり、1つまたは複数のプロセッサ(CPU:Central Processing Units)1101と、1つまたは複数のメモリ1102とを含み得て、ここで、当該1つまたは複数のメモリ1102には、少なくとも1つのコンピュータプログラムが記憶されており、当該少なくとも1つのコンピュータプログラムは、上記の各方法の実施例によって提供される方法を実現するために、当該1つまたは複数のプロセッサ1101によってロードされて実行される。もちろん、このサーバ1100は、入出力を行うために、有線または無線ネットワークインターフェース、キーボード、および入出力インターフェースなどの構成要素を有していてもよく、さらに、このサーバ1100は、デバイス機能を実現するための他の構成要素を含んでいてもよいし、ここではこれ以上詳しく説明しない。
【0135】
いくつかの実施例では、上記のノードデバイスとは、コンピュータデバイスを指し、このコンピュータデバイスは、1つまたは複数のプロセッサと、1つまたは複数のメモリとを含み、当該1つまたは複数のメモリには、少なくとも1つのコンピュータプログラムが記憶されており、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
いずれかのブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、
このブロックに含まれているトランザクションのトランザクション発生時間が当該時間区間内にあることに応答して、当該ルートブロックに接続されている第1ターゲット数のサブチェーンから、ターゲット条件に合致するサブチェーンをターゲットサブチェーンとして決定し、
当該ブロックに対するコンセンサスが達成されたことに応答して、当該ブロックを当該ターゲットブロックチェーンの当該ターゲットサブチェーンに追加する。
【0136】
いくつかの実施例では、当該第1ターゲット数は、当該ターゲットブロックチェーンが属するブロックチェーンシステムにおけるブロック平均コンセンサス時間長さおよびブロック生成周期に基づいて決定される。
【0137】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
各サブチェーンに含まれているブロックの数を決定し、
各サブチェーンに含まれているブロックの数が異なることに応答して、含まれているブロックの数が最も少ないサブチェーンをターゲットサブチェーンとして決定し、
各サブチェーンに含まれているブロックの数が同じであることに応答して、各サブチェーンにおいて、1つのサブチェーンをターゲットサブチェーンとしてランダムに決定する。
【0138】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ターゲットサブチェーンのサブチェーン番号と、当該ターゲットサブチェーンにおけるブロックの順序番号とに基づいて、当該ブロックのブロック番号を決定し、当該順序番号は、当該ターゲットサブチェーンにおけるブロックの配列順序を示すために使用され、当該ブロック番号は、当該ターゲットブロックチェーンにおける当該ブロックの記憶位置を示すために使用され、
当該ブロック番号が付けられている当該ブロックを当該ターゲットサブチェーンに追加する。
【0139】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ターゲットサブチェーンにおいてブロック高さが最も高いブロックの順序番号を1つ加算して当該ブロックの順序番号を取得し、
当該ターゲットサブチェーンのサブチェーン番号と当該ブロックの順序番号とをつなぎ合わせて、当該ターゲットブロックチェーンにおける当該ブロックのブロック番号を得る。
【0140】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ブロックの1つ前のブロックを候補ブロックとして決定し、
当該候補ブロックの順序番号と当該ブロックの順序番号とが連続的に逓増しないことに応答して、当該ブロックの追加位置を再び決定し、当該ブロックを当該ターゲットサブチェーンに追加するステップを実行する。
【0141】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ブロックの記憶位置情報を当該ターゲットブロックチェーンのブロックインデックステーブルに記憶し、当該ブロックインデックステーブルは、当該ターゲットブロックチェーンにおける各ブロックのブロック情報を記録するために使用される。
【0142】
いくつかの実施例では、当該ブロックインデックステーブルは、第2ターゲット数のデータ記憶ユニットを含み、1つのデータ記憶ユニットは、1つの時間識別子に対応する。
【0143】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ブロックの記憶位置情報を、当該ブロックインデックステーブルのターゲットデータ記憶ユニットに記憶し、ターゲットデータ記憶ユニットの時間識別子が、当該ブロックに含まれているトランザクションのトランザクション発生時間とマッチングする。
【0144】
ほかのいくつかの実施例では、上記のノードデバイスとは、コンピュータデバイスを指し、このコンピュータデバイスは、1つまたは複数のプロセッサと、1つまたは複数のメモリとを含み、当該1つまたは複数のメモリには、少なくとも1つのコンピュータプログラムが記憶されており、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
ターゲットブロックチェーンにおけるターゲットブロックへの検索命令に応答して、当該ターゲットブロックチェーンのブロックインデックステーブルを取得し、当該検索命令には、当該ターゲットブロックにおけるトランザクションのトランザクション発生時間が付けられ、当該ブロックインデックステーブルにおける各データ記憶ユニットは、当該ターゲットブロックチェーンにおける各ブロックの記憶位置情報を記録するために使用され、1つのデータ記憶ユニットは、1つの時間識別子に対応し、
当該ブロックインデックステーブルからターゲットデータ記憶ユニットを決定し、当該ゲットデータ記憶ユニットの時間識別子が当該トランザクション発生時間とマッチングし、
当該ターゲットデータ記憶ユニットにおける記憶位置情報に基づいて、当該ターゲットブロックチェーンにおいてターゲットブロックを検索する。
【0145】
ほかのいくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、
当該時間区間の開始時間に対する当該トランザクション発生時間の時間オフセットを決定し、
いずれかのデータ記憶ユニットの時間識別子が当該時間オフセットと同じであることに応答して、そのいずれかデータ記憶ユニットを、当該ターゲットデータ記憶ユニットとして決定する。
【0146】
例示的な実施例では、少なくとも1つのコンピュータプログラムを含むメモリのようなコンピュータ読み取り可能な記憶媒体も提供され、前記少なくとも1つのコンピュータプログラムは、上記の実施例におけるブロック処理方法またはブロックチェーンに基づくデータ検索方法を完了するためにプロセッサによって実行され得る。例えば、このコンピュータ読み取り可能な記憶媒体は、読み取り専用メモリ(ROM :Read-ONly Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、読み取り専用ディスク(CD-ROM :Compact Disc Read-ONly Memory)、磁気テープ、フロッピーディスクおよび光データ記憶デバイスなどであってもよい。
【0147】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、プロセッサによってロードされて実行され、以下の動作を実現し、即ち、
いずれかのブロックの生成に応答して、ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、
このブロックに含まれているトランザクションのトランザクション発生時間が当該時間区間内にあることに応答して、当該ルートブロックに接続されている第1ターゲット数のサブチェーンから、ターゲット条件に合致するサブチェーンをターゲットサブチェーンとして決定し、
当該ブロックに対するコンセンサスが達成されたことに応答して、当該ブロックを当該ターゲットブロックチェーンの当該ターゲットサブチェーンに追加する。
【0148】
いくつかの実施例では、当該第1ターゲット数は、当該ターゲットブロックチェーンが属するブロックチェーンシステムにおけるブロック平均コンセンサス時間長さおよびブロック生成周期に基づいて決定される。
【0149】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
各サブチェーンに含まれているブロックの数を決定し、
各サブチェーンに含まれているブロックの数が異なることに応答して、含まれているブロックの数が最も少ないサブチェーンをターゲットサブチェーンとして決定し、
各サブチェーンに含まれているブロックの数が同じであることに応答して、各サブチェーンにおいて、1つのサブチェーンをターゲットサブチェーンとしてランダムに決定する。
【0150】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ターゲットサブチェーンのサブチェーン番号と、当該ターゲットサブチェーンにおけるブロックの順序番号とに基づいて、当該ブロックのブロック番号を決定し、当該順序番号は、当該ターゲットサブチェーンにおけるブロックの配列順序を示すために使用され、当該ブロック番号は、当該ターゲットブロックチェーンにおける当該ブロックの記憶位置を示すために使用され、
当該ブロック番号が付けられている当該ブロックを当該ターゲットサブチェーンに追加する。
【0151】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ターゲットサブチェーンにおいてブロック高さが最も高いブロックの順序番号を1つ加算して当該ブロックの順序番号を取得し、
当該ターゲットサブチェーンのサブチェーン番号と当該ブロックの順序番号とをつなぎ合わせて、当該ターゲットブロックチェーンにおける当該ブロックのブロック番号を得る。
【0152】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ブロックの1つ前のブロックを候補ブロックとして決定し、
当該候補ブロックの順序番号と当該ブロックの順序番号とが連続的に逓増しないことに応答して、当該ブロックの追加位置を再び決定し、当該ブロックを当該ターゲットサブチェーンに追加するステップを実行する。
【0153】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ブロックの記憶位置情報を当該ターゲットブロックチェーンのブロックインデックステーブルに記憶し、当該ブロックインデックステーブルは、当該ターゲットブロックチェーンにおける各ブロックのブロック情報を記録するために使用される。
【0154】
いくつかの実施例では、当該ブロックインデックステーブルは、第2ターゲット数のデータ記憶ユニットを含み、1つのデータ記憶ユニットは、1つの時間識別子に対応する。
【0155】
いくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ブロックの記憶位置情報を、当該ブロックインデックステーブルのターゲットデータ記憶ユニットに記憶し、ターゲットデータ記憶ユニットの時間識別子が、当該ブロックに含まれているトランザクションのトランザクション発生時間とマッチングする。
【0156】
ほかのいくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
ターゲットブロックチェーンにおけるターゲットブロックへの検索命令に応答して、当該ターゲットブロックチェーンのブロックインデックステーブルを取得し、当該検索命令には、当該ターゲットブロックにおけるトランザクションのトランザクション発生時間が付けられ、当該ブロックインデックステーブルにおける各データ記憶ユニットは、当該ターゲットブロックチェーンにおける各ブロックの記憶位置情報を記録するために使用され、1つのデータ記憶ユニットは、1つの時間識別子に対応し、
当該ブロックインデックステーブルからターゲットデータ記憶ユニットを決定し、当該ゲットデータ記憶ユニットの時間識別子が当該トランザクション発生時間とマッチングし、
当該ターゲットデータ記憶ユニットにおける記憶位置情報に基づいて、当該ターゲットブロックチェーンにおいてターゲットブロックを検索する。
【0157】
ほかのいくつかの実施例では、当該少なくとも1つのコンピュータプログラムは、1つまたは複数のプロセッサによってロードされて実行され、以下の動作を実現し、即ち、
当該ターゲットブロックチェーンのルートブロックに記憶されている時間区間を取得し、
当該時間区間の開始時間に対する当該トランザクション発生時間の時間オフセットを決定し、
いずれかのデータ記憶ユニットの時間識別子が当該時間オフセットと同じであることに応答して、そのいずれかデータ記憶ユニットを、当該ターゲットデータ記憶ユニットとして決定する。
【0158】
いくつかの実施形態では、少なくとも1つのプログラムコードを含むコンピュータプログラムまたはコンピュータプログラム製品も提供され、コンピュータデバイス上で実行されるとき、上記の各実施例によって提供されたブロック処理方法またはブロックチェーンに基づくデータ検索方法のいずれかの可能な実施形態をコンピュータデバイスに実行させ、ここではこれ以上詳しく説明しない。
【0159】
当業者であれば、上記の実施例の全てまたは一部のステップを実現することは、ハードウェアによって完成されてもよく、コンピュータ読み取り可能な記憶媒体に記憶され得るコンピュータプログラムによって、関連するハードウェアが完了するように指示してもよいし、上記の記憶媒体は、読み取り専用メモリ、磁気ディスクまたは光ディスクなどであってもよい、ということを理解されたい。
【0160】
当業者が理解できるように、上記実施例の全部または一部のステップの実現は、ハードウェアによって完了してもよく、コンピュータプログラムによって関連ハードウェアを指示して完了させてもよいし、前記コンピュータプログラムは、コンピュータ読み取り可能な記憶媒体に記憶されてもよく、上記で言及された記憶媒体は、読み取り専用メモリ、磁気ディスクまたは光ディスクなどであってもよい。
【0161】
上記は、本開示のオプションな実施例に過ぎず、本開示を制限するものではなく、本開示の精神および原則の範囲内に、実行されたいかなる修正、均等置換、改善などは、いずれも、本開示の保護範囲内に含まれるべきである。