(57)【特許請求の範囲】
【請求項１】
データ処理方法であって、
2つのスレッドを含むブロックチェーンノードによって、サービスコンセンサス段階において、現在のコンセンサス期間中に正当性確認の準備ができた前処理ブロックを取得するステップであって、前記ブロックチェーンノードは、プロセッサがサービス提案段階に関わる動作を行うように事前設定する、ステップと、
前記ブロックチェーンノードによって、前記2つのスレッドのうちの第1のスレッドを使用してサービスコンセンサス段階中に前記正当性確認の準備ができた前処理ブロックの正当性を確認するステップと、
前記ブロックチェーンノードによって、前記正当性が確認された前記正当性確認の準備ができた前処理ブロックに記憶されているサービスデータの処理と次の正当性確認の準備ができた前処理ブロックの正当性確認とを並列して行うステップと
を含む、方法。
【請求項２】
前記並列して前記正当性が確認された前記正当性確認の準備ができた前処理ブロック中のサービスデータに対してデータ処理を行うステップは、
所定のプロセッサを使用して並列して前記正当性が確認された前記正当性確認の準備ができた前処理ブロック中の前記サービスデータに対してデータ処理を行うステップを特に含む、請求項1に記載の方法。
【請求項３】
所定のプロセッサを使用して前記正当性が確認された前記正当性確認の準備ができた前処理ブロック中の前記サービスデータに対してデータ処理を行うステップは、
前記正当性が確認された前記正当性確認の準備ができた前処理ブロックについて、
記憶パラメータを取得するようにプロセッサを起動するステップであって、前記記憶パラメータは、記憶場所を含む、ステップと、
前記記憶パラメータに基づいて、前記記憶パラメータに対応する処理の準備ができた前処理ブロックを決定し、前記記憶場所に前記決定した処理の準備ができた前処理ブロックのサービスデータを記憶するステップと
を特に含む、請求項2に記載の方法。
【請求項４】
前記方法は、
前記前処理ブロックの正当性が確認されたと決定された後に、前記ブロックチェーンノードによって、前記前処理ブロックおよび前記前処理ブロックの前記記憶パラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータを決定し、前記次の隣接する正当性確認の準備ができた前処理ブロックの前記記憶パラメータを記憶するステップをさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記次の隣接する正当性確認の準備ができた前処理ブロックの前記記憶パラメータを記憶するステップは、
先入れ先出し(FIFO)キューに前記次の隣接する正当性確認の準備ができた前処理ブロックの前記記憶パラメータを記憶するステップを特に含む、請求項4に記載の方法。
【請求項６】
前記記憶パラメータを取得するようにプロセッサを起動するステップは、
前記FIFOキューから前記記憶パラメータを取得するように前記プロセッサを起動するステップを特に含む、請求項5に記載の方法。
【請求項７】
前記方法は、
前記前処理ブロックの正当性が確認されたと決定された場合には、前記ブロックチェーンノードによって、前記前処理ブロックに対応するコンセンサスパラメータを決定し、前記前処理ブロックに対応する前記決定したコンセンサスパラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックに対応するコンセンサスパラメータを取得するステップであって、前記コンセンサスパラメータは、前記正当性確認の準備ができた前処理ブロックの正当性を確認するように前記ブロックチェーンノードに命令するために使用される、ステップをさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記次の正当性確認の準備ができた前処理ブロックの正当性確認は、
前記次の隣接する正当性確認の準備ができた前処理ブロックに対応する前記コンセンサスパラメータを取得すると、前記取得したコンセンサスパラメータに基づいて、前記次の隣接する正当性確認の準備ができた前処理ブロックの正当性確認を開始することを含む、請求項7に記載の方法。
【請求項９】
複数のモジュールを含む装置であって、前記複数のモジュールは、請求項1から8のいずれか一項に記載の方法を行うように構成される、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、コンピュータ技術の分野に関し、詳細には、データ処理方法および装置に関する。
【背景技術】
【０００２】
コンピュータ技術の絶え間ない進歩に伴い、ブロックチェーン技術の適用範囲は拡大している。現時点、多くのサービスモデルは、ブロックチェーン技術の導入により、より効率的で安全なものとなっており、より効率的にユーザにサービスを提供している。
【０００３】
実際の適用においては、ブロックチェーン技術に関連しているサービス実行プロセスをおおよそ3つのプロセスに分割することができる。
【０００４】
1. サービスハンドリング段階: 本段階において、ブロックチェーンノードは、端末を使用してユーザによってまたはクライアントによって送信された、処理の準備ができたサービスデータ(トランザクションデータとも称し得る)を受信し、サービスデータを検証した後にサービスデータを記憶し得る。当然のことながら、本段階において、ブロックチェーンノードはまた、別のブロックチェーンノードによってブロードキャストされた、処理の準備ができたサービスデータを受信し、上記で記載した方式でサービスデータを記憶し得る。
【０００５】
2. サービスコンセンサス段階: 本段階において、ブロックチェーンノードがコンセンサスを開始するマスタノードとして使用される場合には、ブロックチェーンノードは、前処理ブロックの正当性を確認するために、保存されているサービスデータからサービスデータの一部を取得し、サービスデータの一部を前処理ブロックにまとめて、別のブロックチェーンノードに前処理ブロックをブロードキャストし得る。前処理ブロックを受信した後に、コンセンサスネットワーク内の別のブロックチェーンノードは、保存されているサービスデータに基づいてコンセンサス検証を前処理ブロック中のサービスデータに対して行い得る。当然のことながら、ブロックチェーンノードがマスタノードではない場合には、ブロックチェーンノードは、マスタノードによってブロードキャストされた前処理ブロックを受信し、ブロックチェーンノードのメモリに記憶されているサービス要求を使用してコンセンサス検証を前処理ブロック中のサービス要求に対して行い得る。
【０００６】
3. サービス提案段階: 本段階において、サービスコンセンサス段階において処理された前処理ブロックの正当性が確認されたと決定した後に、ブロックチェーンノードは、ブロックチェーン内の前処理ブロックのサービスデータを記憶し得る。加えて、ブロックチェーンノードは、指定のデータベースにサービスデータを記憶し得るし、ブロックチェーンノードの記憶領域から前処理ブロックのサービスデータを解放する。
【０００７】
既存の技術においては、サービスデータの同一部分については、ブロックチェーンノードは通常まずサービス提案段階に遷移する前にサービスコンセンサス段階を完遂する必要があり、ブロックチェーンノードは、サービス提案段階を完遂した後のみ次の正当性確認の準備ができた前処理ブロックの正当性を確認し得る。
【０００８】
しかしながら、既存の技術においては、サービスデータ処理プロセスにおいてサービスコンセンサス段階とサービス提案段階とは順次行われる。ブロックチェーンノードは、現在のサービスデータ処理のサービス提案段階を完遂した後に次のサービスデータ処理のサービスコンセンサス段階を開始し得る。結果として、サービスデータ処理間の時間間隔が必然的に増大するので、システム全体のサービス処理効率が低減することになる。
【発明の概要】
【課題を解決するための手段】
【０００９】
本出願の実施形態は、ブロックチェーン技術における低いサービス処理効率の現在の問題を解決するべく、データ処理方法を提供している。
【００１０】
本出願の実施形態は、データ処理方法を提供しており、方法は、ブロックチェーンノードによって、正当性確認の準備ができた前処理ブロックを取得し、前処理ブロックの正当性を確認するステップと、前処理ブロックの正当性が確認されたと決定された場合には、次の正当性確認の準備ができた前処理ブロックの正当性を確認することを開始するとともに、並列して正当性が確認された前処理ブロック中のサービスデータに対してデータ処理を行うステップとを含む。
【００１１】
本出願の実施形態は、比較的低いサービスコンセンサス効率の現在の問題を解決するべく、データ処理装置を提供している。
【００１２】
本出願の実施形態は、データ処理装置を提供しており、装置は、正当性確認の準備ができた前処理ブロックを取得し、前処理ブロックの正当性を確認するように構成される、獲得モジュールと、前処理ブロックの正当性が確認されたと決定された場合には、次の正当性確認の準備ができた前処理ブロックの正当性を確認することを開始するとともに、並列して正当性が確認された前処理ブロック中のサービスデータに対してデータ処理を行うように構成される、処理モジュールとを含む。
【００１３】
本出願の実施形態は、比較的低いサービスコンセンサス効率の現在の問題を解決するべく、データ処理装置を提供している。
【００１４】
本出願の実施形態は、データ処理装置を提供しており、装置は、メモリと、少なくとも1つのプロセッサとを含み、メモリは、プログラムを記憶し、プロセッサまたは複数のプロセッサは、正当性確認の準備ができた前処理ブロックを取得し、前処理ブロックの正当性を確認するステップと、前処理ブロックの正当性が確認されたと決定された場合には、次の正当性確認の準備ができた前処理ブロックの正当性を確認することを開始するとともに、並列して正当性が確認された前処理ブロック中のサービスデータに対してデータ処理を行うことを開始するステップとを行うように構成される。
【００１５】
本出願の実施形態において使用される説明した技術的ソリューションのうちの1つまたは複数は、以下の有益な効果を達成し得る。
【００１６】
本出願の実施形態においては、取得した前処理ブロックの正当性が確認されたと決定した後に、ブロックチェーンノードは、並列処理によって次の正当性確認の準備ができた前処理ブロックの正当性を確認することを開始するとともに、正当性が確認された前処理ブロック中のサービスデータに対してデータ処理を行う。すなわち、ブロックチェーンノードは、サービスコンセンサス段階とサービス提案段階とにおいて並列サービスデータ処理を実施する。ブロックチェーンノードは、サービス提案段階においてサービスデータの一部に対してデータ処理を行うことができるだけでなく、サービスコンセンサス段階においてサービスデータの他の一部に対してコンセンサス処理を行うこともできる。したがって、サービスコンセンサス段階におけるコンセンサス処理間の時間間隔を短縮することができ、システムのサービスデータ処理効率を効率的に改善している。
【００１７】
本明細書にて説明している図面は、本出願の更なる理解を提供するために使用され、本出願の一部を構成するものである。本出願の概略実施形態および説明は、本出願を説明するために使用しており、本出願への不適切な限定をもたらすものではない。図面は以下の通りである。
【図面の簡単な説明】
【００１８】
【図１】本出願の実施形態による、データ処理プロセスを図示している概略図である。
【図２】本出願の実施形態による、ブロックチェーンノードによって行われるデータ処理を図示している概略図である。
【図３】本出願の実施形態による、データ処理装置を図示している概略図である。
【図４】本開示の実施形態による、並列サービスデータ処理を使用してブロックチェーン技術の処理効率を向上させるためのコンピュータ実施方法の例を図示しているフローチャートである。
【発明を実施するための形態】
【００１９】
当業者に本出願における技術的ソリューションをより良く理解してもらうべく、本出願の実施形態における添付の図面を参照して本出願の実施形態における技術的ソリューションを以下に明確かつ十分に説明している。説明した実施形態が本出願の実施形態のすべてではなく一部に過ぎないことは明白であろう。創造的努力無しで本出願の実施形態に基づいて当業者によって得られるすべての他の実施形態は、本出願の保護範囲に含まれるものとする。
【００２０】
図1は、本出願の実施形態による、データ処理プロセスを図示している概略図である。データ処理プロセスは、以下のステップを含む。
【００２１】
S101. ブロックチェーンノードが、正当性確認の準備ができた前処理ブロックを取得し、前処理ブロックの正当性を確認する。
【００２２】
本出願の本実施形態においては、ブロックチェーンノードは、サービスコンセンサス段階において、現在のコンセンサス期間中に前処理ブロックを取得し得る(ここで、現時点で取得される前処理ブロックは現在のコンセンサスにおいて取得される前処理ブロックと称する)。前処理ブロックは、ブロックチェーンノードによって記憶されているサービスデータに基づいてブロックチェーンノードによって生成され得る、または別のブロックチェーンノードから取得され得る。
【００２３】
S102. 前処理ブロックの正当性が確認されたと決定された場合には、次の正当性確認の準備ができた前処理ブロックの正当性を確認することを開始するとともに、並列して正当性が確認された前処理ブロック中のサービスデータに対してデータ処理を行う。
【００２４】
現在の正当性確認の準備ができた前処理ブロックのコンセンサス検証が成功したと決定した後に、説明したブロックチェーンノードは、並列処理によって、正当性が確認された前処理ブロックに対してサービス提案段階におけるデータ処理を行い得る。したがって、サービスコンセンサス段階においてコンセンサス処理を次の前処理ブロックに対して行う場合には、サービス提案段階におけるデータ処理は、正当性が確認された前処理ブロックに対して効率的かつ同期的に行われ得る。
【００２５】
本出願の本実施形態においては、サービスデータ処理プロセス中に、サービスコンセンサスノードがサービスコンセンサス段階におけるコンセンサス処理とサービス提案段階におけるデータ処理とを同期的に行うことが理解できよう。すなわち、少なくとも2つの正当性確認の準備ができた前処理ブロックが存在していることを前提としている。したがって、本出願において提供した技術的ソリューションに基づいて、データ処理が、サービス提案段階において正当性が確認された前処理ブロックに対して行われる場合には、コンセンサス処理が、サービスコンセンサス段階において失敗したコンセンサスを有する前処理ブロックに対して同期的に行われ得る。
【００２６】
現在の正当性確認の準備ができた前処理ブロックについては、コンセンサス処理を現在の正当性確認の準備ができた前処理ブロックに対して行う場合に決定されることに留意されたい。コンセンサス処理を次の正当性確認の準備ができた前処理ブロックに対して行うことを開始するとともに、現在の正当性が確認された前処理ブロックの処理パラメータを取得する。したがって、サービスデータ処理プロセス中にサービス提案段階においてデータ処理を実施するように構成されるプロセッサ(以降、所定のプロセッサと称し得る)は、処理パラメータに基づいて、現在の正当性が確認された前処理ブロックに対してデータ処理を行う。
【００２７】
例えば、次の正当性確認の準備ができた前処理ブロックに対してコンセンサス処理を行うことを開始すると、所定のプロセッサは、生成した処理パラメータに基づいて、現在の正当性が確認された前処理ブロックに対してデータ処理を行う。ここで、現在の正当性確認の準備ができた前処理ブロックに対して行われるコンセンサス処理と次の正当性確認の準備ができた前処理ブロックに対して行われるコンセンサス処理との間の時間間隔を効率的に短縮するために、コンセンサス処理とデータ処理とがそれぞれ並列して次の正当性確認の準備ができた前処理ブロックと現在の正当性が確認された前処理ブロックとに対して行われることが理解できよう。
【００２８】
別の例では、次の正当性確認の準備ができた前処理ブロックに対してコンセンサス処理を行うことを開始すると、所定のプロセッサは、現在の正当性が確認された前処理ブロックに対してデータ処理を行い、その後、待機のために所定のキューに現在の正当性が確認された前処理ブロックを記憶する。所定のプロセッサは、ルールに基づいて(例えば、コンセンサス完遂時間シーケンスに基づいて)、キューに記憶されている正当性が確認された前処理ブロックに対してデータ処理を連続して行う。ここで、現在の正当性確認の準備ができた前処理ブロックのコンセンサス処理と前処理ブロックのデータ処理とを非同期的に完遂することが理解できよう。
【００２９】
例えば、A、B、およびCといった3つの前処理ブロックが存在すると仮定すると、3つの前処理ブロックは、コンセンサスのためにアルファベット順にブロックチェーンノードに連続して送信される。前処理ブロックAの正当性が確認されたと決定した後に、ブロックチェーンノードは、所定のプロセッサを使用して前処理ブロックAに対してデータ処理を行い得る。加えて、ブロックチェーンノードは、前処理ブロックBの正当性を確認し得る。前処理ブロックBの正当性が確認されたと決定した一方で前処理ブロックAに対して行われるデータ処理を完遂していないことが判明した後に、ブロックチェーンノードは、待機のために所定のキューに正当性が確認された前処理ブロックBを記憶し、引き続き前処理ブロックCの正当性を確認する。前処理ブロックAに対して行われるデータ処理を完遂していると決定すると、ブロックチェーンノードは、所定のプロセッサを使用して前処理ブロックBに対してデータ処理を行うために、所定のキューから前処理ブロックBを抽出し得る。
【００３０】
したがって、各前処理ブロックについては、前処理ブロックのコンセンサス処理とデータ処理とを非同期的に完遂する。異なる前処理ブロックについては、前処理ブロックのコンセンサス処理と別の正当性が確認された前処理ブロックデータ処理とが同期的に行われ得る。
【００３１】
現在の正当性確認の準備ができた前処理ブロックのコンセンサス検証が成功したとブロックチェーンノードが決定した後に、本出願の本実施形態は、以下の2つのタイプの動作を行うことを含むがこれらに限定されない。
【００３２】
1. 第1のタイプの動作: 現在の正当性が確認された前処理ブロックに対応する処理パラメータを決定する。処理パラメータは、前処理ブロック中のサービスデータを処理するために使用されるパラメータを含み、その結果、所定のプロセッサが処理パラメータに基づいて前処理ブロックを処理することが可能となり、それによって、サービス提案段階において関連動作を完遂している。以下に第1のタイプの動作を詳細に説明している。
【００３３】
処理パラメータは、記憶パラメータ、解放パラメータ、削除パラメータ、および相互連鎖パラメータを含み得るがこれらに限定されない。しかしながら、上記は、処理パラメータにおけるいくつかのパラメータを説明するために使用した単純化した例に過ぎない。実際の適用においては、処理パラメータは、他のパラメータをさらに含み得るし、これは、サービス提案段階においてブロックチェーンノードによって行われる特定の動作に基づいて決定され得る。
【００３４】
例えば、解放パラメータは、記憶領域から正当性が確認された前処理ブロックを解放するように命令するために使用される。
【００３５】
記憶パラメータは、指定の場所に正当性が確認された前処理ブロックのサービスデータを記憶するように命令するために使用される。異なる記憶パラメータは、異なる前処理ブロックについて決定される。記憶パラメータは、記憶場所を含む。
【００３６】
削除パラメータは、記憶圧縮を低減するためにサービスコンセンサス段階において正当性が確認された前処理ブロックによって生成されるメッセージ(例えば、PBFTコンセンサスにおける事前準備メッセージ、準備メッセージ、および確認応答メッセージ)を削除するように命令される。
【００３７】
相互連鎖パラメータは、前処理ブロック中の前のブロックのヘッダハッシュに基づくブロック形式で、前処理ブロックを、前のブロックが位置するブロックチェーンと相互連鎖するように命令するために使用される。
【００３８】
好ましくは、本出願の本実施形態においては、次の隣接する正当性確認の準備ができた前処理ブロックの正当性を確認する場合には、ブロックチェーンノードは、所定のプロセッサを使用して並列して現在の正当性が確認された前処理ブロック中のサービスデータをさらに処理し得る。
【００３９】
既存の技術における場合を仮定すると、ブロックチェーンノードが同一のスレッドを使用してサービスデータ処理プロセスにおいてサービスコンセンサス段階とサービス提案段階とを完遂することは理解できよう。ブロックチェーンノードは、スレッドを使用して本サービスデータ処理プロセスにおいてサービスコンセンサス段階をまず完遂する必要があり、その後、スレッドを使用して本サービスデータ処理プロセスにおいてサービス提案段階を行う。既存の技術においては、ブロックチェーンノードが、順次、サービスデータ処理プロセスにおいてサービスコンセンサス段階とサービス提案段階とを行っていることは明白であろう。結果として、隣接するサービスデータ処理間の時間間隔が増大するため、サービスデータ処理効率が低減することになる。
【００４０】
説明した問題を効率的に解決するために、本出願の本実施形態においては、ブロックチェーンノードは、プロセッサ(プロセッサは非同期処理によって動作し得るが、ここで具体的な限定を与えることは意図していない)を事前設定する。プロセッサは、サービス提案段階に関わる動作を行うように構成され得る。すなわち、本出願の本実施形態においては、ブロックチェーンノードは、2つのスレッドを使用してサービスデータ処理プロセス中にサービスコンセンサス段階におけるコンセンサス処理とサービス提案段階におけるデータ処理とをそれぞれ実施し得る。一方のスレッドが、正当性確認の準備ができた前処理ブロックに対してコンセンサス処理を行うために使用され、他方のスレッドが、正当性が確認された前処理ブロックに対してデータ処理を行うために使用される。したがって、同一の前処理ブロックについては、コンセンサス処理とデータ処理とを非同期的に完遂する。
【００４１】
そのため、ブロックチェーンノードが、プロセッサを使用して、サービス提案段階に関わる動作を行う場合には、ブロックチェーンノードは、影響を受けることなく、次の隣接する正当性確認の準備ができた前処理ブロックの正当性を確認することを開始し得る、すなわち、次のコンセンサスを行うことを開始し得る、その結果、隣接するコンセンサス間の時間間隔を大幅に短縮することになり、それによって、コンセンサス効率を改善している。
【００４２】
本出願の本実施形態においては、現在のコンセンサスにおいて決定されるすべての処理パラメータは、前のコンセンサスにおいて決定された処理パラメータを使用して取得され得る。
【００４３】
記憶パラメータを説明のための例として使用する。現在の正当性確認の準備ができた前処理ブロックの正当性が確認されたと決定した後に、ブロックチェーンノードは、現在の正当性が確認された前処理ブロックの記憶パラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータを決定し、次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータを記憶し得る。
【００４４】
例えば、現在の正当性が確認された前処理ブロック中のサービスデータが関連型データベースA中のテーブルに記憶されている必要があることを現在の正当性が確認された前処理ブロックに対応する記憶パラメータ(現在のコンセンサスに対応する記憶パラメータとしても理解することができる)が定義していると仮定する。したがって、ブロックチェーンノードは、関連型データベースA中の各テーブルのアルファベット順に基づいて、次の隣接する正当性が確認された前処理ブロックに対応する記憶パラメータが、関連型データベースA中のテーブルbに、現在のコンセンサス(すなわち、上記における次の隣接するコンセンサス)が成功した前処理ブロック中のサービスデータを記憶していると決定し得る。
【００４５】
ブロックチェーンノードは、次のコンセンサスの決定した記憶パラメータを記憶し得る。したがって、次の正当性確認の準備ができた前処理ブロックの正当性が確認されたと決定された場合には、所定のプロセッサは、取得した記憶パラメータに基づいて、正当性が確認された前処理ブロック中のサービスデータを記憶する必要があるテーブルとデータベースとを決定し得る。
【００４６】
好ましくは、本出願の本実施形態においては、現在の正当性確認の準備ができた前処理ブロックの正当性が確認されたと決定した後に、ブロックチェーンノードはまた、前処理ブロックおよび前処理ブロックの記憶パラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータを決定し、次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータを記憶し得る。
【００４７】
特に、記憶パラメータにおける記憶場所がベースポインタの形式で存在する場合には、ベースポインタによって示される場所は前処理ブロック中のサービスデータの記憶場所である。現在の正当性確認の準備ができた前処理ブロックの正当性が確認されたと決定した後に、ブロックチェーンノードは、開始点としてベースポインタの現在の位置を使用し、現在の正当性確認の準備ができた前処理ブロックのサイズに基づいてベースポインタの場所を移動させ、ベースポインタの新たな場所が次のコンセンサスに対応する記憶パラメータ、すなわち次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータであると決定し得る。
【００４８】
例えば、各コンセンサスの処理パラメータがベースポインタの形式で記憶パラメータを含むと仮定する。ベースポインタ(すなわち、記憶パラメータ)は、サービスデータの特定の記憶場所を指し示す。ベースポインタの初期値は0にされ得る。各コンセンサスの後に、ブロックチェーンノードは、正当性が確認された前処理ブロックのサイズおよび現在のコンセンサスに対応する処理パラメータにおけるベースポインタに基づいて、次の隣接するコンセンサスに対応する処理パラメータにおけるベースポインタの具体的な値を決定し得る。第1のコンセンサス中に、ブロックチェーンノードは、ブロックチェーンノードが、前処理ブロックの決定したサイズおよびベースポインタの初期値0に基づいて、第2のコンセンサスに対応する処理パラメータにおけるベースポインタが1024バイトであると決定してベースポインタを記憶することができるように、正当性が確認された前処理ブロックが1024バイトであると決定する。それに対応するように、第2のコンセンサスにおいては、ブロックチェーンノードは、プロセッサを使用して、1024バイトのベースポインタに対応する記憶場所に正当性が確認された前処理ブロックのサービスデータを記憶し得る。
【００４９】
第2のコンセンサスにおいては、ブロックチェーンノードは、ブロックチェーンノードが、正当性が確認された前処理ブロックの決定したサイズおよび前のコンセンサス(すなわち、第1のコンセンサス)に対応する処理パラメータにおける1024バイトのベースポインタに基づいて、第3のコンセンサスに対応する処理パラメータにおけるベースポインタが1034バイトであると決定してベースポインタを記憶することができるように、正当性が確認された前処理ブロックが10バイトであると決定する。それに対応するように、第3のコンセンサスにおいては、ブロックチェーンノードは、プロセッサを使用して、1034バイトのベースポインタに対応する記憶場所に正当性が確認された前処理ブロックのサービスデータを記憶し得るし、後続のコンセンサスも演繹的に導くことができる。
【００５０】
本出願の本実施形態においては、次のコンセンサスに対応する処理パラメータにおける記憶パラメータが、前処理ブロックに関する他の情報に加えて現在の正当性が確認された前処理ブロックのサイズに基づいて決定され得ることに留意されたい。記憶パラメータを決定するために使用されることになる情報は、ブロックチェーンノードの動作およびメンテナンスエンジニアによって決定され得る。ここで詳細を繰り返し説明することはしない。
【００５１】
処理パラメータにおける異なるパラメータについては、サービス提案段階においてブロックチェーンノードによって行われる動作が、それに応じてこれらのパラメータを各コンセンサスの後に変更する必要があるかどうかを決定することに留意されたい。例えば、説明した記憶パラメータについては、各コンセンサスに関わる前処理ブロック中のサービスデータを同一の記憶場所に記憶することはできないため、その結果、記憶パラメータは、各コンセンサスの後に変更する必要がある。説明した相互連鎖パラメータについては、どのコンセンサスが前処理ブロックに関連しているかにかかわらず、コンセンサスネットワークにおけるコンセンサスが成功すると、すべての前処理ブロックが、ブロック形式でブロックチェーンに記憶される必要がある。すなわち、前処理ブロックにかかわらず、すべてのプロセッサは、前処理ブロックの正当性が確認されると前処理ブロックに対して相互連鎖動作を行う必要がある。したがって、各コンセンサスの後に、相互連鎖パラメータはそれに応じて変更する必要はない。各コンセンサスに関して、相互連鎖パラメータが一致し得る。
【００５２】
好ましくは、本出願の本実施形態においては、ブロックチェーンノードは、所定のキューに次のコンセンサスの取得した処理パラメータを記憶し得る。例えば、次の隣接するサービスコンセンサスを受ける前処理ブロックの記憶パラメータは、所定のキューに記憶されている。
【００５３】
そのため、プロセッサは、所定のキューから処理パラメータを取得(すなわち、正当性が確認された前処理ブロックの処理パラメータを取得)して、処理パラメータにおける記憶パラメータに基づいて、記憶パラメータに対応する正当性が確認された前処理ブロック中のサービスデータを記憶し得る。
【００５４】
本明細書で述べる所定のキューは、先入れ先出し(FIFO)キューであり得るし、または別のタイプのキューであり得る。ここで具体的な限定を与えることは意図していない。プロセッサは、記憶パラメータに基づいて前処理ブロックのサービスデータを記憶するために、FIFOキューに記憶されている処理パラメータを取得し、処理パラメータにおける記憶パラメータに基づいて記憶されている正当性が確認された前処理ブロックから、記憶パラメータに対応する前処理ブロックを決定し得る。
【００５５】
特に、プロセッサは、説明したFIFOキューから記憶パラメータを取得し得るし、その後、プロセッサは、記憶パラメータに対応する処理の準備ができた前処理ブロックをさらに決定し得る。例えば、現在の正当性確認の準備ができた前処理ブロックの正当性が確認された場合には、ブロックチェーンノードは、前処理ブロックの記憶パラメータを生成し、前処理ブロックと記憶パラメータとの間の対応付けを決定する。したがって、プロセッサは、対応付けに基づいて、記憶パラメータに対応する処理の準備ができた前処理ブロックを決定し得る。別の例では、現在の正当性確認の準備ができた前処理ブロックの正当性が確認された場合には、ブロックチェーンノードは、前処理ブロックの記憶パラメータを生成し、記憶パラメータが生成された第1の時間を決定し、現在の正当性確認の準備ができた前処理ブロックの正当性が確認された第2の時間を決定し、第1の時間と第2の時間との間の対応付けを確立する。したがって、プロセッサは、記憶パラメータの生成時間に基づいて、生成時間において決定した条件を満足するコンセンサス処理に対応する前処理ブロック終了時間を探し求め得る。見つかった前処理ブロックが記憶パラメータに対応する処理の準備ができた前処理ブロックであると決定し得る。別の例では、プロセッサは、FIFOキューから、キューの出口の最前部にある記憶パラメータを取得する。したがって、プロセッサは、ブロックチェーンノードの記憶領域から先頭の記憶場所にある正当性が確認された前処理ブロックを探し求め、前処理ブロックが記憶パラメータに対応する前処理ブロックであると決定する。
【００５６】
記憶パラメータに対応する処理の準備ができた前処理ブロックを決定した後に、プロセッサは、記憶パラメータに基づいて、記憶パラメータによって指定される記憶場所に処理の準備ができた前処理ブロック中のサービスデータを記憶し得る。
【００５７】
本出願の本実施形態においては、FIFOキューを使用することに加えて、ブロックチェーンノードは、別のキュー、例えば、両端キューを使用して各処理パラメータをさらに記憶し得ることに留意されたい。ここで詳細を繰り返し説明することはしない。
【００５８】
プロセッサは、取得した処理パラメータにおける記憶パラメータに基づいて、記憶パラメータに対応する処理の準備ができた前処理ブロックのサービスデータを記憶し得る。加えて、プロセッサは、処理パラメータにおける別のパラメータに基づいて処理の準備ができた前処理ブロックに対して別の動作をさらに行い得る。
【００５９】
例えば、プロセッサは、処理パラメータにおける解放パラメータに基づいて記憶領域から処理の準備ができた前処理ブロック中のサービスデータを解放し得る。別の例では、プロセッサは、ブロックチェーンノードの記憶領域を節約するために、取得した処理パラメータにおける削除パラメータに基づいて、現在のコンセンサス中のサービスコンセンサス段階において生成された、事前準備メッセージ、準備メッセージ、確認応答メッセージなどを削除し得る。当然のことながら、プロセッサは、処理パラメータにおける別のパラメータに基づいて別の動作をさらに行い得るし、ここで詳細を繰り返し説明することはしない。
【００６０】
2. 第2のタイプの動作: 現在のコンセンサスに対応するコンセンサスパラメータに基づいて、次のコンセンサスに対応するコンセンサスパラメータを更新する。すなわち、ブロックチェーンノードは、現在の正当性が確認された前処理ブロックに対応するコンセンサスパラメータを決定し、決定したコンセンサスパラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックに対応するコンセンサスパラメータを取得し得る。
【００６１】
本出願の本実施形態においては、現在の否定において正当性を確認する必要がある前処理ブロックのコンセンサス検証の正当性が確認されたと決定した後に、ブロックチェーンノードが、現在のコンセンサスに対応する処理パラメータに基づいて、次のコンセンサスに対応する処理パラメータを取得および記憶する必要があることに留意されたい。加えて、ブロックチェーンノードは、現在のコンセンサスに対応するコンセンサスパラメータに基づいて、次のコンセンサスに対応するコンセンサスパラメータをさらに更新し得る。すなわち、ブロックチェーンノードは、現在の正当性が確認された前処理ブロックに対応するコンセンサスパラメータを決定し、決定したコンセンサスパラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックに対応するコンセンサスパラメータを取得し得る。
【００６２】
本明細書で述べるコンセンサスパラメータは、ワンタイムコンセンサスに対応する属性情報として理解することができる。例えば、PBFTコンセンサスを説明のための例として使用する。PBFTコンセンサスプロセスにおいては、ワンタイムコンセンサスは、通常、1つのビュー番号vに対応し、ビュー番号vは、本コンセンサスを一意に識別するために使用される。ワンタイムコンセンサスにおいては、コンセンサスネットワーク内のどのブロックチェーンノードがマスタノードとして使用されるかにかかわらず、ブロックチェーンノードによって生成された前処理ブロック中の前のブロックのヘッダハッシュは、通常、ブロックチェーン上の現在の最終ブロックのヘッダハッシュである。本明細書で述べるビュー番号vおよび前のブロックのヘッダハッシュは、現在のコンセンサスに対応するコンセンサスパラメータとして参照され得る。
【００６３】
当然のことながら、説明したビュー番号vおよび前のブロックのヘッダハッシュに加えて、コンセンサスパラメータは、他の情報をさらに含み得る。異なるコンセンサス方式については、コンセンサスパラメータにおける内容に特定の差が存在する。詳細は説明しない。
【００６４】
現在の正当性確認の準備ができた前処理ブロックのコンセンサス検証が成功したと決定した後に、ブロックチェーンノードは、現在のコンセンサスに対応するコンセンサスパラメータをさらに決定して、コンセンサスパラメータを更新することによって次のコンセンサスに対応するコンセンサスパラメータを取得し得る、すなわち、次の隣接する正当性確認の準備ができた前処理ブロックに対応するコンセンサスパラメータを取得し得る。
【００６５】
PBFTコンセンサス方式をそのまま例として使用する。現在のコンセンサスに対応するコンセンサスパラメータがビュー番号vおよび前のブロックのヘッダハッシュを含むと仮定する。ビュー番号vは16であり、前のブロックのヘッダハッシュは0929d9sldom23oix239xedである。現在の正当性確認の準備ができた前処理ブロックのコンセンサス検証が成功したと決定した後に、ブロックチェーンノードは、ビュー番号16を17に更新し得るし、次のコンセンサスのためのブロックのヘッダハッシュを、679xx9a9a8dfa23389xx34の前処理ブロックのヘッダハッシュに基づいて、679xx9a9a8dfa23389xx34に更新し得る。そのため、次のコンセンサスに対応するコンセンサスパラメータは、ビュー番号vが17であり、前のブロックのヘッダハッシュが679xx9a9a8dfa23389xx34であるものとなる。
【００６６】
ブロックチェーンノードは、現在のコンセンサスに対応するコンセンサスパラメータに基づいて、次のコンセンサスに対応するコンセンサスパラメータを取得し得る。そのため、ブロックチェーンノードは、次のコンセンサスに対応する取得したコンセンサスパラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックの正当性を確認することを開始し得る。本明細書で述べるコンセンサスパラメータは、メモリに記憶され得るし、ブロックチェーンノードに対応するデータベースに記憶され得るし、または当然のことながらグローバルで変更可能な方式で存在し得る。
【００６７】
本出願の本実施形態においては、コンセンサスパラメータが処理パラメータに対応する所定のキューにも記憶され得ることに留意されたい。そのため、コンセンサス処理を行うように構成されるプロセッサは、所定のキューからコンセンサスパラメータを取得し、コンセンサスパラメータに基づいて新規コンセンサス処理を開始し得る。データ処理を行うように構成されるプロセッサは、所定のキューから処理パラメータを取得し、取得した処理パラメータに基づいて、処理パラメータに対応する前処理ブロック中のサービスデータに対してデータ処理を行うことを開始する。
【００６８】
例えば、プロセッサが、FIFOキューから、処理パラメータおよび処理パラメータに対応するコンセンサスパラメータを取得し、コンセンサスパラメータがビュー番号vを含むと仮定すると、取得した処理パラメータに基づいて処理の準備ができた前処理ブロックを処理するために、プロセッサは、ブロックチェーンノードの記憶領域から、ビュー番号vに対応する処理の準備ができた前処理ブロックを決定し得る。
【００６９】
当然のことながら、本出願の本実施形態においては、処理パラメータは、説明した所定のキューに存在し得ない。例えば、処理パラメータは、ブロックチェーンノードのメモリに記憶され得るし、ブロックチェーンノードに対応するデータベースに記憶され得るし、またはブロックチェーンノードの別の場所に記憶され得る。ここで詳細を繰り返し説明することはしない。
【００７０】
取得した前処理ブロックの正当性が確認されたと決定した後に、ブロックチェーンノードが、並列処理によって次の正当性確認の準備ができた前処理ブロックの正当性を確認することを開始するとともに、正当性が確認された前処理ブロック中のサービスデータを処理することが前述の方法から理解できよう。すなわち、ブロックチェーンノードは、サービスコンセンサス段階とサービス提案段階とにおいて並列サービスデータ処理を実施する。ブロックチェーンノードは、サービス提案段階においてサービスデータの一部に対してデータ処理を行うことができるだけでなく、サービスコンセンサス段階においてサービスデータの他の一部に対してコンセンサス処理を行うこともできる。したがって、サービスコンセンサス段階における隣接するコンセンサス処理間の時間間隔を短縮することができ、システムのサービスデータ処理効率を効率的に改善している。
【００７１】
図2に示しているように、本出願において述べるデータ処理方法をさらに説明するために、データ処理方法に関わるすべてのプロセスを詳細な説明を以下に簡単にしている。
【００７２】
図2は、本出願の実施形態による、ブロックチェーンノードによって行われるデータ処理を図示している概略図である。
【００７３】
サービスハンドリング段階において、ユーザは、端末にインストールされたクライアントを使用してブロックチェーンノードにサービスデータを送信し得るし、ブロックチェーンノードは、受信したサービスデータを検証し、ブロックチェーンノードに対応する記憶領域に検証されたサービスデータを記憶し得る。
【００７４】
サービスコンセンサス段階において、ブロックチェーンノードは、現在の正当性確認の準備ができた前処理ブロックを取得し得る。ブロックチェーンノードを現在のコンセンサスが開始するマスタノードとして使用される場合には、ブロックチェーンノードは、その記憶領域からサービスデータの一部を取得し、サービスデータの一部を前処理ブロックにまとめ得る。本状況においては、ブロックチェーンノードは、現在のコンセンサスにおいて正当性を確認する必要がある前処理ブロックを取得する。加えて、ブロックチェーンノードは、別のブロックチェーンノードがコンセンサス検証を前処理ブロックに対して行うように、コンセンサスネットワーク内の別のブロックチェーンノードに前処理ブロックをブロードキャストする必要がある。
【００７５】
ブロックチェーンノードが現在のコンセンサスを開始するマスタノードではない場合には、ブロックチェーンノードは、現在のコンセンサスを開始するマスタノードから、本サービスコンセンサスにおいて正当性を確認する必要がある前処理ブロックを取得し、その後、前処理ブロックに対してコンセンサス検証を行い得る。
【００７６】
前処理ブロックのコンセンサス検証が成功したと決定した後に、ブロックチェーンノードは、現在のコンセンサスに対応するコンセンサスパラメータ(すなわち、前処理ブロックに対応するコンセンサスパラメータ)に基づいて更新することによって、次のコンセンサスを行うために、次のコンセンサスに対応するコンセンサスパラメータ(すなわち、次の隣接する正当性確認の準備ができた前処理ブロックに対応するコンセンサスパラメータ)を取得し得る。加えて、ブロックチェーンノードは、前処理ブロックおよび現在のコンセンサスに対応する処理パラメータ(すなわち、現在の正当性が確認された前処理ブロックに対応する処理パラメータ)に基づいて、次のコンセンサスに対応する処理パラメータ(すなわち、次の隣接する正当性確認の準備ができた前処理ブロックに対応する処理パラメータ)をさらに取得し、FIFOキューに、次のコンセンサスに対応する取得した処理パラメータを記憶し得る。
【００７７】
コンセンサスパラメータおよび次の隣接するコンセンサスに対応する処理パラメータを取得すると、ブロックチェーンノードは、次の隣接するコンセンサスにおいてサービスコンセンサス段階を行うことを開始し得る、すなわち、次の隣接する正当性確認の準備ができた前処理ブロックの正当性を確認することを開始し得る。加えて、次の隣接するコンセンサスにおいてサービスコンセンサス段階を行うことを開始すると、ブロックチェーンノードは、プロセッサを使用して並列して現在のコンセンサスにおいてサービス提案段階を行い得る。
【００７８】
すなわち、ブロックチェーンノードは、完遂を目的としてプロセッサにサービス提案段階に関わる動作を送信し、ブロックチェーンノードは、ワンタイムコンセンサスにおいてサービスコンセンサス段階およびサービス提案段階の並列処理を実施するために、次の隣接するコンセンサスを行い得る。したがって、隣接するコンセンサス間の時間間隔を短縮しており、コンセンサス効率を改善している。
【００７９】
プロセッサは、FIFOキューから、現在のコンセンサスに対応する処理パラメータを取得し、その後、処理パラメータにおける相互連鎖パラメータに基づいてブロック形式でブロックチェーンに現在の正当性が確認された前処理ブロックを記憶し得る。プロセッサは、処理パラメータにおけるyesまたはnoの二択パラメータおよび記憶パラメータに基づいて、ブロックチェーンの記憶領域から前処理ブロックのサービスデータを解放し、記憶パラメータにおける指定に基づいて対応する記憶場所に解放したサービスデータを記憶し得る。プロセッサは、ブロックチェーンノードの記憶領域を節約するために、この処理属性における削除パラメータに基づいて、例えば、サービスコンセンサス段階において生成されたPBFTコンセンサスの事前準備メッセージ、準備メッセージ、または確認応答メッセージを削除し得る。
【００８０】
上記は、本出願の実施形態において提供したデータ処理方法である。図3に示しているように、同じ着想に基づいて、本出願の実施形態は、データ処理装置をさらに提供する。
【００８１】
図3は、本出願の実施形態による、データ処理装置を図示している概略図である。装置は、正当性確認の準備ができた前処理ブロックを取得し、前処理ブロックの正当性を確認するように構成される、獲得モジュール301と、前処理ブロックの正当性が確認されたと決定された場合には、次の正当性確認の準備ができた前処理ブロックの正当性を確認することを開始するとともに、並列して正当性が確認された前処理ブロック中のサービスデータに対してデータ処理を行うように構成される、処理モジュール302とを含む。
【００８２】
処理モジュール302は、所定のプロセッサを使用して並列して正当性が確認された前処理ブロック中のサービスデータに対してデータ処理を行う。
【００８３】
正当性が確認された前処理ブロックについて、処理モジュール302は、記憶パラメータを取得するようにプロセッサを起動するステップであって、記憶パラメータは、記憶場所を含む、ステップと、記憶パラメータに基づいて、記憶パラメータに対応する処理の準備ができた前処理ブロックを決定するステップと、記憶場所に決定した処理の準備ができた前処理ブロックのサービスデータを記憶するステップといった動作を行う。
【００８４】
前処理ブロックの正当性が確認されたと決定された後に、獲得モジュール301は、前処理ブロックおよび前処理ブロックの記憶パラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータを決定し、次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータを記憶する。
【００８５】
獲得モジュール301は、先入れ先出し(FIFO)キューに次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータを記憶する。
【００８６】
処理モジュール302は、FIFOキューから記憶パラメータを取得するようにプロセッサを起動する。
【００８７】
前処理ブロックの正当性が確認されたと決定された場合には、獲得モジュール301は、前処理ブロックに対応するコンセンサスパラメータを決定し、前処理ブロックに対応する決定したコンセンサスパラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックに対応するコンセンサスパラメータを取得し、コンセンサスパラメータは、正当性確認の準備ができた前処理ブロックの正当性を確認するようにブロックチェーンノードに命令するために使用される。
【００８８】
次の隣接する正当性確認の準備ができた前処理ブロックに対応するコンセンサスパラメータを取得すると、処理モジュール302は、取得したコンセンサスパラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックの正当性を確認することを開始する。
【００８９】
同じ着想に基づいて、本出願の実施形態は、別のデータ処理装置をさらに提供する。装置は、メモリと、少なくとも1つのプロセッサとを特に含み、メモリは、プログラムを記憶し、少なくとも1つのプロセッサは、正当性確認の準備ができた前処理ブロックを取得し、前処理ブロックの正当性を確認するステップと、前処理ブロックの正当性が確認されたと決定された場合には、次の正当性確認の準備ができた前処理ブロックの正当性を確認することを開始するとともに、並列して正当性が確認された前処理ブロック中のサービスデータに対してデータ処理を行うステップとを行うように構成される。
【００９０】
メモリに記憶されているプログラムを使用してプロセッサによって行われる特定の動作については、説明した実施形態に記載した内容を参照されたい。詳細をここで繰り返すことはしない。
【００９１】
本出願の実施形態においては、取得した前処理ブロックの正当性が確認されたと決定した後に、ブロックチェーンノードは、並列して正当性が確認された前処理ブロック中のサービスデータに対してデータ処理を行うために、次の正当性確認の準備ができた前処理ブロックの正当性を確認することを開始し得る。取得した前処理ブロックの正当性が確認されたと決定した後に、ブロックチェーンノードは、並列処理によって次の正当性確認の準備ができた前処理ブロックの正当性を確認することを開始するとともに、正当性が確認された前処理ブロック中のサービスデータを処理する。すなわち、ブロックチェーンノードは、サービスコンセンサス段階とサービス提案段階とにおいて並列サービスデータ処理を実施する。ブロックチェーンノードは、サービス提案段階においてサービスデータの一部に対してデータ処理を行うことができるだけでなく、サービスコンセンサス段階においてサービスデータの他の一部に対してコンセンサス処理を行うこともできる。したがって、サービスコンセンサス段階におけるコンセンサス処理間の時間間隔を短縮することができ、システムのサービスデータ処理効率を効率的に改善している。
【００９２】
1990年代においては、技術改善がハードウェア改善(例えば、ダイオード、トランジスタ、またはスイッチなどの回路構造の改善)であるかソフトウェア改善(方法の手順の改善)であるかは明確に区別し得た。しかしながら、技術が進歩するにつれて、多くの今日の方法の手順の改善をハードウェア回路構造の直接的な改善として扱うことができるようになった。設計者は、通常、改善した方法の手順をハードウェア回路にプログラムして、対応するハードウェア回路構造を得る。したがって、ハードウェアエンティティモジュールは方法の手順を改善し得る。例えば、プログラマブルロジックデバイス(PLD)(例えば、フィールドプログラマブルゲートアレイ(FPGA))はそのような集積回路であり、プログラマブルロジックデバイスの論理機能はデバイスプログラミングによってユーザによって決定される。設計者は、チップ製造業者に特定用途向け集積回路チップを設計および製造するように要求することなく、プログラミングを行い、デジタルシステムをPLDに「統合」する。加えて、プログラミングは、集積回路チップを手動で製造する代わりに、「ロジックコンパイラ」というソフトウェアを変更することによってほとんどが実施される。このことはプログラムを開発および作成するために使用されるソフトウェアコンパイラと同様である。しかしながら、コンパイル処理の前に得られる元のコードはまた、特定のプログラミング言語で書かれており、この言語は、ハードウェア記述言語(HDL)と称する。しかしながら、ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java(登録商標) Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)といった、様々なHDLが存在する。現時点、VHDL(Very-High-Speed Integrated Circuit Hardware Description Lan
guage)およびVerilogが最もポピュラーである。
【００９３】
説明したいくつかのハードウェア記述言語を使用して方法の手順に対してロジックプログラミングを行う必要があるだけで、いくつかのハードウェア記述言語が集積回路にプログラムされるため、論理的な方法の手順を実装するハードウェア回路を容易に得ることができることも当業者は理解されたい。
【００９４】
コントローラは、任意の適切な方式で実装され得る。例えば、コントローラは、マイクロプロセッサまたはプロセッサを使用し得るし、コンピュータ可読媒体、ロジックゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブルロジックコントローラ、および組み込みマイクロコントローラについての(マイクロ)プロセッサによって実行することができるコンピュータ可読プログラムコード(例えば、ソフトウェアまたはハードウェア)の形態を記憶し得る。コントローラの例としては、ARC625D、Atmel AT91SAM、Microchip PIC18F26K20、またはSilicone Labs C8051F320といったマイクロコントローラを含むがこれらに限定されない。メモリコントローラはまた、メモリの制御ロジックの一部として実装され得る。純粋なコンピュータ可読プログラムコード方式でコントローラを実装することに加えて、コントローラが、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラ、組み込みマイクロコントローラなどの形式で同一の機能を実装するように、ロジックプログラミングが、方法のステップを使用して全面的に行われ得ることも当業者は知っていよう。したがって、コントローラは、ハードウェアコンポーネントとみなされ得るし、コントローラにおける様々な機能を実施するための装置も、ハードウェアコンポーネントにおける構造とみなされ得る。あるいは、様々な機能を実施するように構成された装置は、方法を実施し得るソフトウェアモジュールまたはハードウェアコンポーネントにおける構造とみなされ得る。
【００９５】
説明した実施形態において説明したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティによって特に実装され得る、または機能を有する製品によって実装され得る。典型的な実施デバイスがコンピュータである。特に、コンピュータは、例えば、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲームコンソール、タブレットコンピュータ、もしくはウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【００９６】
説明を簡潔にするために、説明した装置は、機能を様々なユニットに分割することによって説明している。当然のことながら、本出願を実施する際には、各ユニットの機能は、ソフトウェアおよび/またはハードウェアの1つまたは複数の要素において実施され得る。
【００９７】
本発明の実施形態が方法、システム、またはコンピュータプログラム製品として提供され得ることを当業者は理解されたい。したがって、本発明は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、またはソフトウェアとハードウェアとの組合せを用いた実施形態の形式を使用し得る。加えて、本発明は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(ディスクメモリ、CD-ROM、光学メモリなどを含むがこれらに限定されない)上で実施されるコンピュータプログラム製品の形式を使用し得る。
【００９８】
本発明は、本発明の実施形態による、方法のフローチャートおよび/またはブロック図、デバイス(システム)、ならびにコンピュータプログラム製品を参照して説明している。コンピュータプログラム命令がフローチャートおよび/またはブロック図中の各プロセスおよび/または各ブロックならびにフローチャートおよび/またはブロック図中のプロセスおよび/またはブロックの組合せを実施するために使用され得ることを理解されたい。このようなコンピュータプログラム命令は、コンピュータまたは任意の他のプログラマブルデータ処理デバイスのプロセッサによって実行された命令がフローチャート中の1つまたは複数のプロセスにおけるまたはブロック図中の1つまたは複数のブロックにおける特定の機能を実施する装置を生成するように、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または任意の他のプログラマブルデータ処理デバイスのプロセッサに提供され、機構を生成し得る。
【００９９】
このようなコンピュータプログラム命令は、コンピュータ可読メモリに記憶されている命令が命令装置を含むアーチファクトを生成することができるように、コンピュータまたは任意の他のプログラマブルデータ処理デバイスが特定の方式で動作するように命令し得るコンピュータ可読メモリに記憶され得る。命令装置は、フローチャート中の1つまたは複数のプロセスにおけるおよび/またはブロック図中の1つまたは複数のブロックにおける特定の機能を実施する。
【０１００】
このようなコンピュータプログラム命令は、コンピュータまたは別のプログラマブルデータ処理デバイスにロードされ得る、その結果、一連の動作およびステップがコンピュータまたは別のプログラマブルデバイス上で行われ、それによって、コンピュータ実施処理を生成している。したがって、コンピュータまたは別のプログラマブルデバイス上で実行される命令は、フローチャート中の1つまたは複数のプロセスにおけるまたはブロック図中の1つまたは複数のブロックにおける特定の機能を実施するためのステップを提供する。
【０１０１】
典型的な設定においては、コンピューティングデバイスは、1つまたは複数のプロセッサ(CPU)、入力/出力インターフェース、ネットワークインターフェース、およびメモリを含む。
【０１０２】
メモリは、リードオンリーメモリ(ROM)またはフラッシュメモリ(フラッシュRAM)などといった、コンピュータ可読媒体に存在する、揮発性メモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリなどの形式を含み得る。メモリは、コンピュータ可読媒体の一例である。
【０１０３】
コンピュータ可読媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブルメディアを含み、任意の方法または技術を使用して情報を記憶し得る。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータであり得る。コンピュータ記憶媒体は、パラメータランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別のタイプのランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリ、もしくは別のメモリ技術と、コンパクトディスクリードオンリーメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、もしくは別の光学ストレージと、磁気テープ、磁気ディスクストレージ、別の磁気ストレージデバイスと、または任意の他の非伝送媒体とを含むがこれらに限定されない。コンピュータ記憶媒体は、コンピューティングデバイスによってアクセスされ得る情報を記憶するために使用され得る。本明細書において説明しているように、コンピュータ可読媒体は、例えば、変調データ信号およびキャリアといった、一時的媒体は含まない。
【０１０４】
「含む」、「備える」といった用語、またはそれらの任意の他の類型は、一連の要素を含むプロセス、方法、物品、またはデバイスが、まさにこれらの要素だけでなく明示的に記載していない他の要素も含むように、またはそのようなプロセス、方法、物品、もしくはデバイスに本来備わっている要素をさらに含むように、非排他的な包含をカバーすることを意図していることをさらに留意されたい。「・・・を含む」で終わる要素は、さらなる制約がない状態で、要素を含むプロセス、方法、物品、またはデバイスにおける追加の同一要素の存在を除外することはしない。
【０１０５】
本出願の実施形態が方法、システム、またはコンピュータプログラム製品として提供され得ることを当業者は理解されたい。したがって、本出願は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、またはソフトウェアとハードウェアとの組合せを有する実施形態の形式を使用し得る。加えて、本出願は、コンピュータ使用可能プログラムコードを含む(ディスクメモリ、CD-ROM、光学メモリなどを含むがこれらに限定されない)1つまたは複数のコンピュータ使用可能記憶媒体上で実施されるコンピュータプログラム製品の形式を使用し得る。
【０１０６】
本出願は、プログラムモジュールなどの、コンピュータによって実行されるコンピュータ実行可能命令の一般的な状況において説明することができる。一般的に、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データタイプを実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本出願はまた、分散コンピューティング環境において実施することができる。これらの分散コンピューティング環境においては、タスクは、通信ネットワークを使用して接続されたリモート処理デバイスによって実行される。分散コンピューティング環境においては、プログラムモジュールは、ストレージデバイスを含むローカルコンピュータ記憶媒体およびリモートコンピュータ記憶媒体に位置し得る。
【０１０７】
本明細書中の実施形態はすべて漸進的な方式で説明しており、または実施形態における同一または同様の部分については、これらの実施形態を参照することが可能であり、各実施形態は、他の実施形態とは異なる部分に焦点を置いている。特に、システム実施形態は、方法の実施形態と基本的に同様であるため、したがって、簡潔に説明しており、関連する部分については、方法の実施形態における説明の一部を参照することが可能である。
【０１０８】
上記の説明は、本出願の実施形態に過ぎず、本出願を限定することを意図していない。当業者のために、本出願は様々な修正および変更を有し得る。本出願の精神および原理内でなされた任意の修正、均等物との置換、改善などは、本出願の保護範囲に含まれるものとする。
【０１０９】
図4は、本開示の実施形態による、並列サービスデータ処理を使用してブロックチェーン技術の処理効率を向上させるためのコンピュータ実施方法400の例を図示しているフローチャートである。提示を明確にするために、以下の説明は、本説明における他の図に即して方法400を一般的に説明している。しかしながら、方法400が、例えば、任意のシステム、環境、ソフトウェア、およびハードウェアによって、または、必要に応じて、システムと、環境と、ソフトウェアと、ハードウェアとの組合せによって、行われ得ることは理解されよう。いくつかの実施形態においては、方法400の様々なステップは、並列して、組み合わせて、ループして、または任意の順序で動作され得る。
【０１１０】
402において、現在のコンセンサス期間中に正当性確認の準備ができた前処理ブロックが、ブロックチェーンノードによって、サービスコンセンサス段階において取得される。いくつかの実施形態においては、正当性確認の準備ができた前処理ブロックを取得することは、ブロックチェーンノードがブロックチェーンノードによって記憶されているサービスデータに基づいて正当性確認の準備ができた前処理ブロックを生成することまたは別のブロックチェーンノードから正当性確認の準備ができた前処理ブロックを取得することを含む。402から、方法400は404に進む。
【０１１１】
404において、正当性確認の準備ができた前処理ブロックの正当性が確認される。404から、方法400は406に進む。
【０１１２】
406において、決定は、正当性確認の準備ができた前処理ブロックの正当性が確認されたかどうかに関してなされる。正当性確認の準備ができた前処理ブロックの正当性が確認されなかったと決定された場合には、方法400は404に戻る。さもなければ、正当性確認の準備ができた前処理ブロックの正当性が確認されたと決定された場合には、方法400は並列して408および410の両方に進む。
【０１１３】
408において、次の正当性確認の準備ができた前処理ブロックに対して正当性確認が開始される。いくつかの実施形態においては、正当性確認の準備ができた前処理ブロックの正当性が確認されたと決定された後に、1)正当性確認の準備ができた前処理ブロックおよび正当性確認の準備ができた前処理ブロックの記憶パラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータを決定し、2)次の隣接する正当性確認の準備ができた前処理ブロックの記憶パラメータを記憶する。いくつかの実施形態においては、正当性確認の準備ができた前処理ブロックの正当性が確認されたと決定された場合には、1)正当性確認の準備ができた前処理ブロックに対応するコンセンサスパラメータを決定し、2)コンセンサスパラメータに基づいて、次の隣接する正当性確認の準備ができた前処理ブロックに対応するコンセンサスパラメータを取得し、コンセンサスパラメータは、次の隣接する正当性確認の準備ができた前処理ブロックの正当性を確認するようにブロックチェーンノードに命令するために使用される。いくつかの実施形態においては、次の隣接する正当性確認の準備ができた前処理ブロックに対応するコンセンサスパラメータを取得すると、次の隣接する正当性確認の準備ができた前処理ブロックに対して正当性確認が開始される。
【０１１４】
410において、並列データ処理を正当性が確認された正当性確認の準備ができた前処理ブロックに記憶されているサービスデータに対して行う。いくつかの実施形態においては、並列データ処理を所定のプロセッサを使用して正当性が確認された正当性確認の準備ができた前処理ブロックに記憶されているサービスデータに対して行う。いくつかの実施形態においては、所定のプロセッサを使用する並列データ処理は、正当性が確認された正当性確認の準備ができた前処理ブロックのために、1)プロセッサを呼び出して記憶場所を含む記憶パラメータを取得し、2)記憶パラメータに基づいて、記憶パラメータに対応する処理の準備ができた前処理ブロックを決定し、3)記憶場所に、処理の準備ができた前処理ブロックのサービスデータを記憶することを含む。
【０１１５】
本明細書において説明した発明特定事項の実施形態は、特定の利点または技術的効果を実現するために実施され得る。例えば、説明した発明特定事項の実施形態は、並列サービスデータ処理を使用するブロックチェーン技術の増進された処理効率を可能にする。そして、より効率的な処理は、全体的なデータセキュリティを増進させることを支援し得る。説明した並列サービスデータ処理は、より高速な処理だけでなく、コンピュータリソースのより効率的な使用方法(例えば、処理サイクルまたはメモリ使用量)も可能にする。少なくともこれらのアクションは、ブロックチェーンベースのトランザクションに関する利用可能なコンピュータリソースの浪費を最小化または防ぐことを可能にする。いくつかのケースにおいては、ネットワークトランザクション速度が、より効率的なブロックチェーン処理に起因して増大され得る。
【０１１６】
いくつかの実施形態においては、ブロックチェーンデータは、コンピューティングデバイス間で送信され得るし、(例えば、グラフィックユーザインターフェース上で使用されることになる)グラフィカル情報を含み得る。これらの実施形態においては、1つまたは複数のコンピューティングデバイス上で実行されるグラフィックユーザインターフェースの要素は、ユーザにとって極力邪魔にならないように配置され得る。例えば、要素は、最も少ない量のデータを覆い隠すだけで済み、いかなる重要なまたは頻繁に使用されるグラフィックユーザインターフェース要素も覆うことがないようにする方法で配置され得る。
【０１１７】
本明細書において説明した実施形態および動作は、本明細書において開示した構造またはそれらのうちの1つまたは複数の組合せを含む、デジタル電子回路の形式で、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアの形式で実装され得る。動作は、1つまたは複数のコンピュータ可読ストレージデバイス上に記憶されるまたは他のソースから受信されるデータに対してデータ処理装置によって行われる動作として実装され得る。データ処理装置、コンピュータ、またはコンピューティングデバイスは、例として、プログラマブルプロセッサ、コンピュータ、システム・オン・チップ、または前述したもののうちの複数もしくは組合せを含む、処理データのための装置、デバイス、マシンを含み得る。装置は、例えば、中央処理ユニット(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)といった、特殊用途ロジック回路を含み得る。装置はまた、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(例えばオペレーティングシステムもしくはオペレーティングシステムの組合せ)、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードといった、当該コンピュータプログラムのための実行環境を作成するコードを含み得る。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラなどといった、様々な異なるコンピューティングモデルインフラを実現し得る。
【０１１８】
コンピュータプログラム(例えば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタプリタ型言語、宣言型または手続き型言語を含む、任意の形式のプログラミング言語で書かれ得るし、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境における使用に適した他のユニットとしてといったことを含む、任意の形式でデプロイされ得る。プログラムは、他のプログラムまたはデータを保持しているファイルの一部(例えば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプト)に、当該のプログラム専用の単一のファイルに、または複数の協調ファイル(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1つのサイトに位置しもしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された、複数のコンピュータ上で実行され得る。
【０１１９】
コンピュータプログラムの実行のためのプロセッサは、例として、汎用および特殊用途マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの必須の要素は、命令に従ってアクションを行うためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般的に、コンピュータはまた、データを記憶するための1つまたは複数のマスストレージデバイスを含むことになる、または、そのようなマスストレージデバイスからデータを受信もしくはそのようなマスストレージデバイスにデータを送信もしくはその両方を行うことが動作可能なように結合されることになる。コンピュータは、例えば、モバイルデバイス、携帯情報端末(PDA)、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイスといった、別のデバイスに組み込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、磁気ディスク、および光磁気ディスクといった、不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、殊用途ロジック回路によって補完され得る、またはそれに組み込まれ得る。
【０１２０】
モバイルデバイスは、ハンドセット、ユーザ機器(UE)、モバイル電話(例えば、スマートフォン)、タブレット、ウェアラブルデバイス(例えば、スマートウォッチおよびスマートメガネ)、人体内部の埋め込みデバイス(例えば、バイオセンサ、人工内耳)、または他のタイプのモバイルデバイスを含み得る。モバイルデバイスは、様々な通信ネットワーク(以下で説明)と無線で(例えば、無線周波数(RF)信号を使用して)通信し得る。モバイルデバイスは、モバイルデバイスの現在の環境の特性を決定するためのセンサを含み得る。センサは、カメラ、マイクロフォン、近接センサ、GPSセンサ、モーションセンサ、加速度計、照度センサ、水分センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認識システム、RFセンサ(例えば、Wi-Fiおよびセルラ無線)、熱センサ、または他のタイプのセンサを含み得る。例えば、カメラは、可動または固定レンズ、フラッシュ、画像センサ、および画像プロセッサを有する、前面または背面カメラを含み得る。カメラは、顔および/または虹彩認識のために細部をキャプチャすることが可能なメガピクセルカメラであり得る。データプロセッサ、およびメモリに記憶されているまたはリモートでアクセスされる認証情報とともに、カメラは、顔認識システムを形成し得る。顔認識システム、または、例えば、マイクロフォン、モーションセンサ、加速度計、GPSセンサ、もしくはRFセンサといった、1つまたは複数のセンサが、ユーザ認証のために使用され得る。
【０１２１】
ユーザとのインタラクションを提供するために、実施形態は、例えば、情報を表示するための液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイと、ユーザがコンピュータに入力を提供することを可能にするタッチスクリーン、キーボード、およびポインティングデバイスといった、表示デバイスと入力デバイスとを有するコンピュータ上で実施され得る。同様に、他の種類のデバイスもユーザとのインタラクションを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった、任意の形式の感覚フィードバックのであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形式で受信され得る。加えて、コンピュータは、例えば、ウェブブラウザから受信した要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザによって使用されるデバイスにドキュメントを送信することおよびそのようなデバイスからドキュメントを受信することによってユーザとやりとりし得る。
【０１２２】
実施形態は、例えば、通信ネットワークといった、任意の形式または媒体の有線または無線デジタルデータ通信(またはその組合せ)によって相互接続されたコンピューティングデバイスを使用して実施され得る。相互接続されたデバイスの例としては、通信ネットワークを介して通常はやりとりする、一般的に互いにリモートに存在するクライアントとサーバとがある。例えば、モバイルデバイスといった、クライアントは、購入、売却、支払、贈与、送付、もしくは貸付のトランザクションを行うもしくはこれらを許可するサーバとのトランザクションを、またはそのようなサーバを介したトランザクションを、それ自身で実行し得る。そのようなトランザクションは、アクションとレスポンスとが時間的にほぼ同じであるリアルタイムであり得る。例えば、個人が、アクションとレスポンスとが実質的に同時に知覚し、個人のアクションの後のレスポンスについての時間差が1ミリ秒(ms)または1秒未満である、またはレスポンスは、システムの処理限界を考慮しつつも意図的な遅延は有していない。
【０１２３】
通信ネットワークの例としては、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、およびワイドエリアネットワーク(WAN)を含む。通信ネットワークは、インターネット、別の通信ネットワーク、または通信ネットワークの組合せのすべてまたは一部を含み得る。情報は、ロング・ターム・エボリューション(LTE)、5G、IEEE802、インターネットプロトコル(IP)、または他のプロトコルもしくはプロトコルの組合せを含む、様々なプロトコルおよび標準に準拠した通信ネットワーク上で送信され得る。通信ネットワークは、接続されたコンピューティングデバイス間で、音声、ビデオ、生体、もしくは認証データ、または他の情報を送信し得る。
【０１２４】
別個の実施形態として説明した特徴を、組合せで、単一の実施形態で実施し得る一方で、単一の実施形態として説明した特徴を、複数の実施形態で、別々に、または任意の適切なサブコンビネーションで実施し得る。特定の順序で説明および主張した動作は、その特定の順序を必要とするものとして理解されるべきではないし、図示した動作のすべてを行う必要があると理解すべきではない(いくつかの動作がオプションであり得る)。必要に応じて、マルチタスク処理または並列処理(またはマルチタスク処理と並列処理との組合せ)が行われ得る。
【符号の説明】
【０１２５】
301  獲得モジュール
302  処理モジュール
【図１】
0006859509.tif 000002
【図２】
0006859509.tif 000003
【図３】
0006859509.tif 000004
【図４】
0006859509.tif 000005