(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-02
(45)【発行日】2022-05-13
(54)【発明の名称】ブロックチェーンによるデータ処理方法、装置、デバイス、媒体、及びプログラム
(51)【国際特許分類】
G06F 16/28 20190101AFI20220506BHJP
【FI】
G06F16/28
(21)【出願番号】P 2021025257
(22)【出願日】2021-02-19
【審査請求日】2021-02-19
(31)【優先権主張番号】202010102672.9
(32)【優先日】2020-02-19
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】512015127
【氏名又は名称】バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】シャオ,ウェイ
【審査官】白石 圭吾
(56)【参考文献】
【文献】特開2020-010267(JP,A)
【文献】特開2018-117287(JP,A)
【文献】特開2019-029933(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00 - 16/958
(57)【特許請求の範囲】
【請求項1】
ブロックチェーンノードに実行されるブロックチェーンによるデータ処理方法であって、
ローカルに生成されたデータ処理トランザクション要求を取得することと、
前記データ処理トランザクション要求に対してプリプロセスを行って、書き込みデータを含むプリプロセス結果を決定することと、
前記書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、前記データオブジェクトの更新後データを未確認状態であるデータとしてマークすることと、
前記プリプロセス結果を前記データ処理トランザクション要求にカプセル化し、カプセル化されたデータ処理トランザクション要求をブロックチェーンネットワークに転送し、カプセル化された前記データ処理トランザクション要求を処理するように他のブロックチェーンノードに要求することと、
前記ブロックチェーンネットワークがカプセル化された前記データ処理トランザクション要求の実行を拒否したと判断する場合、前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定し、又は、ブロックチェーンネットワークがカプセル化された前記データ処理トランザクション要求を実行したと判断する場合、前記データ処理トランザクション要求に関連つける前記更新後データを確認状態であるデータとしてマークすることと、を含む、
ことを特徴とするブロックチェーンによるデータ処理方法。
【請求項2】
前記ブロックチェーンネットワークがカプセル化された前記データ処理トランザクション要求の実行を拒否したと判断することは、
前記他のブロックチェーンノード
のうちの1つ又は複数のブロックチェーンノードからフィードバックした、カプセル化された前記データ処理トランザクション要求の実行を拒否する通知を受信したこと、を含む、
ことを特徴とする請求項1に記載のブロックチェーンによるデータ処理方法。
【請求項3】
カプセル化された前記データ処理トランザクション要求に関連つける前記更新後データが無効データであると決定することは、
カプセル化された前記データ処理トランザクション要求に関連つける前記更新後データを削除するか、又は無効状態であるデータとしてマークすること、を含む、
ことを特徴とする請求項1に記載のブロックチェーンによるデータ処理方法。
【請求項4】
カプセル化された前記データ処理トランザクション要求に関連つける前記更新後データが無効データであると決定した後、
前記無効データに依存する他の未確認状態であるデータがローカルデータベースに存在すると決定した場合、前記他の未確認状態であるデータが無効データであると決定し、前記他の未確認状態であるデータに関連つける他のデータ処理トランザクション要求が無効要求であると決定すること、をさらに含む、
ことを特徴とする請求項1に記載のブロックチェーンによるデータ処理方法。
【請求項5】
カプセル化された前記データ処理トランザクション要求に関連つける前記更新後データが無効データであると決定した後、
カプセル化された前記データ処理トランザクション要求を破棄すること、又は
カプセル化された前記データ処理トランザクション要求の内容に基づいて、更新データ処理トランザクション要求を生成して前記更新データ処理トランザクション要求に対するプリプロセスを行うこと、をさらに含む、
ことを特徴とする請求項1に記載のブロックチェーンによるデータ処理方法。
【請求項6】
データアクセス要求を受信する場合、前記ローカルデータベースにおける確認状態であるデータと未確認状態であるデータに対する応答処理を行うこと、をさらに含む、
ことを特徴とする請求項1に記載のブロックチェーンによるデータ処理方法。
【請求項7】
前記他のブロックチェーンノードによって転送された複数のデータ処理トランザクション要求を取得して、複数の前記データ処理トランザクション要求を検証すべきデータ処理トランザクション要求としてマークすることと、
各前記検証すべきデータ処理トランザクション要求を実行し、前記検証すべきデータ処理トランザクション要求間の競合を識別することと、
競合している検証すべきデータ処理トランザクション要求が識別された場合、チェイニングを拒否することと、を含む、
ことを特徴とする請求項1に記載のブロックチェーンによるデータ処理方法。
【請求項8】
各前記検証すべきデータ処理トランザクション要求を実行し、前記検証すべきデータ処理トランザクション要求間の競合を識別することは、
設定された順序に従い、各前記検証すべきデータ処理トランザクション要求を1つずつ実行することと、
現在実行されている検証すべきデータ処理トランザクション要求が、過去に実行された検証すべきデータ処理トランザクション要求と競合している場合、現在実行されている検証すべきデータ処理トランザクション要求が競合しているデータ処理トランザクション要求であると決定することと、を含む、
ことを特徴とする請求項7に記載のブロックチェーンによるデータ処理方法。
【請求項9】
各前記検証すべきデータ処理トランザクション要求を実行し、前記検証すべきデータ処理トランザクション要求間の競合を識別することは、
各前記検証すべきデータ処理トランザクション要求のプリプロセス結果により依存関係の識別を実行し、識別結果に基づくトポロジカルソートを実行することと、
前記トポロジカルソートの期間において2つ以上の検証すべきデータ処理トランザクション要求間に競合が存在すると決定した場合、前記2つ以上の検証すべきデータ処理トランザクション要求における1つの検証すべきデータ処理トランザクション要求を受け入れ、前記2つ以上の検証すべきデータ処理トランザクション要求における他の検証すべきデータ処理トランザクション要求が競合しているデータ処理トランザクション要求であると決定することと、をさらに含む、
ことを特徴とする請求項7に記載のブロックチェーンによるデータ処理方法。
【請求項10】
各前記検証すべきデータ処理トランザクション要求を実行し、前記検証すべきデータ処理トランザクション要求間の競合を識別することは、
各前記検証すべきデータ処理トランザクション要求のプリプロセス結果により依存関係の識別を実行し、識別結果に基づくトポロジカルソートを実行することと、
前記トポロジカルソートの結果に従い、各前記検証すべきデータ処理トランザクション要求を実行することと、
現在実行されている検証すべきデータ処理トランザクション要求が、過去に実行された検証すべきデータ処理トランザクション要求と競合していると識別する場合、現在実行されている検証すべきデータ処理トランザクション要求が競合しているデータ処理トランザクション要求であると決定することと、をさらに含む、
ことを特徴とする請求項7に記載のブロックチェーンによるデータ処理方法。
【請求項11】
前記ローカルに生成されたデータ処理トランザクション要求は、データ書き込み処理トランザクション要求であり、前記ブロックチェーンノード
のうちの1つ又は複数のブロックチェーンノードに対応するデータオブジェクトは、
前記他のブロックチェーンノード
のうちの1つ又は複数のブロックチェーンノードに対応するデータオブジェクトと同じである、
ことを特徴とする請求項1に記載のブロックチェーンによるデータ処理方法。
【請求項12】
前記ブロックチェーンノード
のうちの1つのブロックチェーンノード及び前記他のブロックチェーンノードのうちの1つのブロックチェーンノードのそれぞれは、病院のデータセンター
及び料金所のデータセンター
のいずれか一方に配置されており、
前記ブロックチェーンノードのうちの複数のブロックチェーンノード及び前記他のブロックチェーンノードのうちの複数のブロックチェーンノードのそれぞれは、病院のデータセンター及び料金所のデータセンターのいずれか一方又は両方に配置されている、
ことを特徴とする請求項11に記載のブロックチェーンによるデータ処理方法。
【請求項13】
ブロックチェーンノードに配置されたブロックチェーンによるデータ処理装置であって、
ローカルに生成されたデータ処理トランザクション要求を取得するデータ処理トランザクション要求取得モジュールと、
前記データ処理トランザクション要求に対してプリプロセスを行って、書き込みデータを含むプリプロセス結果を決定するデータ処理トランザクション要求プリプロセスモジュールと、
前記書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、前記データオブジェクトの更新後データを未確認状態であるデータとしてマークする未確認状態マーキングモジュールと、
前記プリプロセス結果を前記データ処理トランザクション要求にカプセル化し、カプセル化されたデータ処理トランザクション要求をブロックチェーンネットワークに転送し、カプセル化された前記データ処理トランザクション要求を処理するように他のブロックチェーンノードに要求するプリプロセス結果カプセル化モジュールと、
前記ブロックチェーンネットワークがカプセル化された前記データ処理トランザクション要求の実行を拒否したと判断する場合、前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定する第1の更新後データ処理モジュール、又は、ブロックチェーンネットワークがカプセル化された前記データ処理トランザクション要求を実行したと判断する場合、前記データ処理トランザクション要求に関連つける前記更新後データを確認状態であるデータとしてマークする第2の更新後データ処理モジュールと、を備える、
ことを特徴とするブロックチェーンによるデータ処理装置。
【請求項14】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信接続されたメモリと、を備え、
前記メモリは、前記少なくとも1つのプロセッサによって実行可能な命令を記憶し、前記命令は、前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサに請求項1~12のいずれか一項に記載のブロックチェーンによるデータ処理方法を実行させる、
ことを特徴とする電子デバイス。
【請求項15】
コンピュータに請求項1~12のいずれか一項に記載のブロックチェーンによるデータ処理方法を実行させるためのコンピュータ命令を格納した非一過性のコンピュータ可読記憶媒体。
【請求項16】
コンピュータにおいて、プロセッサにより実行される場合、請求項1~12のいずれか一項に記載のブロックチェーンによるデータ処理方法を実現することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ技術の分野に関し、特にブロックチェーン技術に関する。
【背景技術】
【0002】
ブロックチェーン技術は、急速に普及しており、データの処理と記憶という問題を解決するために、より多くのシーンに応用されている。ここで、代表的な応用シーンの1つは、全ネットワーク統合のデータの集計と記憶を行うものである。
【0003】
全ネットワーク統合とは、通常、複数のデータセンターを含み、かつ各データセンターにデータの生成、削除、更新、読み取り等の需要が存在するネットワーク全体に対し、各データセンターのデータを集計統計してから記憶する必要があることを指す。例えば、病院システムを例とすると、病院ごとに独自のデータセンターがあるため、複数の病院のデータを上位機関に集計する必要がある。
【0004】
既存の全ネットワーク統合のデータの集計と記憶においては、ネットワーク通信による複数のデータセンターからのデータ報告の競合、遅延等の問題があるため、データ集計の適時性が劣り、個々のデータセンターのデータ及び集計データの使用の適時性も劣ってしまう。
【発明の概要】
【0005】
本発明は、全ネットワーク統合のデータ集計システムにおけるデータ処理の適時性の改善を可能にするために、ブロックチェーンによるデータ処理方法、装置、デバイス、及び媒体を提供する。
【0006】
第1の側面において、本発明の実施形態は、ブロックチェーンによるデータ処理方法を提供し、当該方法は、ローカルに生成されたデータ処理トランザクション要求を取得することと、前記データ処理トランザクション要求に対してプリプロセスを行って、書き込みデータを含むプリプロセス結果を決定することと、前記書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、当該データオブジェクトの更新後データを未確認状態であるデータとしてマークすることと、前記プリプロセス結果を前記データ処理トランザクション要求にカプセル化し、カプセル化されたデータ処理トランザクション要求をブロックチェーンネットワークに転送し、カプセル化された前記データ処理トランザクション要求を処理するように他のブロックチェーンノードに要求することと、ブロックチェーンネットワークがカプセル化された前記データ処理トランザクション要求の実行を拒否したと判断した場合、前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定し、ブロックチェーンネットワークがカプセル化されたデータ処理トランザクション要求を実行したと判断した場合、データ処理トランザクション要求に関連つける前記更新後データを確認状態であるデータとしてマークすることと、を含む。
【0007】
本発明の実施形態では、取得したデータ処理トランザクション要求に対してプリプロセスを行って、書き込みデータを含むプリプロセス結果を取得し、その後、書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、該データオブジェクトの更新後データを未確認状態であるデータとしてマークし、プリプロセス結果をデータ処理トランザクション要求にカプセル化し、カプセル化されたデータ処理トランザクション要求をブロックチェーンネットワークに転送し、このカプセル化されたデータ処理トランザクション要求を処理するように他のノードに要求し、且つ、処理結果に基づいてこのカプセル化されたデータ処理トランザクション要求に関連つける更新後データを無効とすると決定する、又は確定状態としてマークすることにより、既存のブロックチェーン技術をデータ集計システムに応用した場合に存在するデータ処理の適時性が劣るという問題を解決し、全ネットワーク統合のデータ集計システムにおけるデータ処理の適時性の向上を実現することができる。
【0008】
また、本発明の上記実施形態におけるブロックチェーンによるデータ処理方法は、さらに以下の追加の技術的特徴を有してもよい。
【0009】
選択的に、カプセル化された前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定することは、カプセル化された前記データ処理トランザクション要求に関連つける更新後データを削除するか、又は無効状態であるデータとしてマークすることを含む。
【0010】
上記の本発明の実施形態によれば、更新後データに対する無効処理を行い、すなわち、無効な更新後データに対する無効処理を行うことにより、エラーデータのスクリーニング及び処理を実現でき、データ処理の精度を向上できるという利点又は有益な効果を有する。
【0011】
選択的に、カプセル化された前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定された後、さらに、前記無効データに依存する他の未確認状態であるデータがローカルデータベースに存在することが確認された場合、当該他の未確認状態であるデータが無効データであると決定され、前記他の未確認状態であるデータに関連つける他のデータ処理トランザクション要求が無効要求であると決定されることを含む。
【0012】
上記の本発明の実施形態によれば、後続のデータ処理トランザクション要求に対する依存性のあるデータの継続的な影響を効果的に回避でき、ブロックチェーンノードのローカルデータにおけるバルクエラーを回避できるという利点又は有益な効果を有する。
【0013】
選択的に、カプセル化された前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定された後、さらに、カプセル化された前記データ処理トランザクション要求を破棄すること、又は、カプセル化された前記データ処理トランザクション要求の内容に基づいて、更新データ処理トランザクション要求を生成して前記更新データ処理トランザクション要求に対するプリプロセスを行うことを含む。
【0014】
上記の本発明の実施形態によれば、データ処理トランザクション要求が効率的かつ正確に処理されることを確保できるという利点又は有益な効果を有する。
【0015】
選択的に、ブロックチェーンによるデータ処理は、さらに、データアクセス要求を受信する場合、ローカルデータベースにおける確認状態であるデータと未確認状態であるデータに対する応答処理を行うことを含む。
【0016】
上記の本発明の実施形態によれば、データの共有と相互通信を実現できるという利点又は有益な効果を有する。
【0017】
選択的に、ブロックチェーンによるデータ処理は、さらに、他のブロックチェーンノードによって転送された複数のデータ処理トランザクション要求を取得して、複数のデータ処理トランザクション要求を検証すべきデータ処理トランザクション要求としてマークすることと、各前記検証すべきデータ処理トランザクション要求を実行し、検証すべきデータ処理トランザクション要求間の競合を識別することと、競合する検証すべきデータ処理トランザクション要求が識別された場合、チェイニングを拒否することとを含む。
【0018】
上記の本発明の実施形態によれば、データ処理トランザクション要求間の競合が確認された場合にチェイニングを拒否することにより、ブロックデータの精度が保証されるという利点又は有益な効果を有する。
【0019】
選択的に、各前記検証すべきデータ処理トランザクション要求を実行し、検証すべきデータ処理トランザクション要求間の競合を識別することは、設定された順序に従い、各前記検証すべきデータ処理トランザクション要求を1つずつ実行することと、現在実行されている検証すべきデータ処理トランザクション要求が、過去に実行された検証すべきデータ処理トランザクション要求と競合している場合、現在実行されている検証すべきデータ処理トランザクション要求が競合しているデータ処理トランザクション要求であると決定することとを含む。
【0020】
上記の本発明の実施形態によれば、各検証すべきデータ処理トランザクション要求の間に競合が存在するか否かを効果的に識別できるという利点又は有益な効果を有する。
【0021】
選択的に、各前記検証すべきデータ処理トランザクション要求を実行し、検証すべきデータ処理トランザクション要求間の競合を識別することは、各前記検証すべきデータ処理トランザクション要求のプリプロセス結果により依存関係の識別を実行し、識別結果に基づいてトポロジカルソートを実行することと、トポロジカルソートの期間において2つ以上の検証すべきデータ処理トランザクション要求間に競合が存在すると決定した場合、2つ以上の検証すべきデータ処理トランザクション要求における1つの検証すべきデータ処理トランザクション要求を受け入れ、前記2つ以上の検証すべきデータ処理トランザクション要求における他の検証すべきデータ処理トランザクション要求が競合しているデータ処理トランザクション要求であると決定することと、を含む。
【0022】
上記の本発明の実施形態によれば、各検証すべきデータ処理トランザクション要求の間に競合が存在するか否かを効率的に識別できるという利点又は有益な効果を有する。
【0023】
選択的に、各前記検証すべきデータ処理トランザクション要求を実行し、検証すべきデータ処理トランザクション要求間の競合を識別することは、各前記検証すべきデータ処理トランザクション要求のプリプロセス結果により依存関係の識別を実行し、識別結果に基づいてトポロジカルソートを実行することと、トポロジカルソートの結果に従い、各前記検証すべきデータ処理トランザクション要求を実行することと、現在実行されている検証すべきデータ処理トランザクション要求が、過去に実行された検証すべきデータ処理トランザクション要求と競合していると識別する場合、現在実行されている検証すべきデータ処理トランザクション要求が競合しているデータ処理トランザクション要求であると決定することと、をさらに含む。
【0024】
上記の本発明の実施形態によれば、各検証すべきデータ処理トランザクション要求の間に競合が存在するか否かを効率的に識別できるという利点又は有益な効果を有する。
【0025】
選択的に、ローカルに生成されたデータ処理トランザクション要求は、データ書き込み処理トランザクション要求であり、前記ブロックチェーンノードにおける1つ又は複数のブロックチェーンノードに対応されるデータオブジェクトは前記ブロックチェーンノードにおける他のブロックチェーンノードに対応するデータオブジェクトと同じである。
【0026】
上記の本発明の実施形態によれば、各ブロックチェーンノードに対応するデータオブジェクトに共通部分が存在することを特定し、各ブロックチェーンノードのデータ処理トランザクション要求間のリンクを確立することにより、ブロックチェーンネットワークの全ネットワーク統合要件を達成できるという利点又は有益な効果を有する。
【0027】
第2の側面において、本発明の実施形態は、さらに、ブロックチェーンによるデータ処理装置を提供し、当該装置は、ローカルに生成されたデータ処理トランザクション要求を取得するデータ処理トランザクション要求取得モジュールと、前記データ処理トランザクション要求に対してプリプロセスを行って、書き込みデータを含むプリプロセス結果を決定するデータ処理トランザクション要求プリプロセスモジュールと、前記書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、当該データオブジェクトの更新後データを未確認状態であるデータとしてマークする未確認状態マーキングモジュールと、前記プリプロセス結果を前記データ処理トランザクション要求にカプセル化し、カプセル化されたデータ処理トランザクション要求をブロックチェーンネットワークに転送し、カプセル化された前記データ処理トランザクション要求を処理するように他のブロックチェーンノードに要求するプリプロセス結果カプセル化モジュールと、ブロックチェーンネットワークがカプセル化された前記データ処理トランザクション要求の実行を拒否したと判断する場合、前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定する第1の更新後データ処理モジュールと、ブロックチェーンネットワークがカプセル化されたデータ処理トランザクション要求を実行したと判断する場合、前記データ処理トランザクション要求に関連つける前記更新後データを確認状態であるデータとしてマークする第2の更新後データ処理モジュールと,を備える。
【0028】
第3の側面において、本発明の実施形態は、さらに、電子デバイスを提供し、当該電子デバイスは、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサに通信接続されたメモリとを備え、ここで、前記メモリは、前記少なくとも1つのプロセッサによって実行可能な命令を記憶し、前記命令は、前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサに第1の側面の実施形態に提供されたブロックチェーンによるデータ処理方法を実行させる。
【0029】
第4の側面において、本発明の実施形態は、コンピュータに第1の側面の実施形態に提供されたブロックチェーンによるデータ処理方法を実行させるためのコンピュータ命令を格納した非一過性のコンピュータ可読記憶媒体を提供している。
【0030】
上記任意の実施形態が有する他の効果については、以下に特定の実施形態に関連して後述する。
【図面の簡単な説明】
【0031】
添付の図面は、本実施形態をより良く理解するために使用され、本発明に対する限定を構成するものではない。
【
図1】本発明の第1実施形態に提供されるブロックチェーンによるデータ処理方法のフローチャートである。
【
図2】本発明の第2実施形態に提供されるブロックチェーンによるデータ処理方法のフローチャートである。
【
図3】本発明の第3実施形態に提供されるブロックチェーンによるデータ処理装置の構成図である。
【
図4】本発明の実施形態のブロックチェーンによるデータ処理方法を実施するためのコンピュータデバイスのブロック図である。
【発明を実施するための形態】
【0032】
以下、図面を参照し、本発明の例示的な実施形態を説明し、理解を容易にするために本発明の実施形態の様々な詳細を含んでいるが、これらは単に例示的なものとみなされるべきである。したがって、当業者は、本発明の範囲及び要旨から逸脱することなく、本明細書に記載された実施形態に様々な変更及び修正を加えることができることを認識すべきである。同様に、以下の説明では、明瞭で簡潔にするために、既知の機能と構造の説明を省略している。
【0033】
第1実施形態
図1は、本発明の第1実施形態において提供されるブロックチェーンによるデータ処理方法のフローチャートである。本発明の実施形態は、ブロックチェーン中のデータに対する効率的な処理に応用されることができる。この方法は、ブロックチェーンによるデータ処理装置によって実行されてもよく、この装置はソフトウェア及び/又はハードウェアによって実現されてもよく、一般的にコンピュータデバイスに統合されることができる。当該コンピュータデバイスは、ブロックチェーンノード装置であってもよい。したがって、
図1に示すように、当該方法は以下のステップを含む。
【0034】
S110では、ローカルに生成されたデータ処理トランザクション要求を取得する。
【0035】
ここで、データ処理トランザクション要求は、ブロックチェーンノードによって生成され、データを処理するために用いられるトランザクション要求であってもよい。選択的に、ブロックチェーンノードは、病院のデータセンター及び/又は料金所のデータセンター等の電子デバイスに配置されてもよい。本発明の実施形態は、ブロックチェーンノードの応用シーンに限定されるものではない。
【0036】
本発明の実施形態では、各データセンターは、ブロックチェーン技術を介して各データセンターの全ネットワーク統合を達成するために、ブロックチェーンノードとしてブロックチェーンネットワーク運用に参加してもよい。ブロックチェーンノードは、ブロックチェーンネットワーク内の各データオブジェクトに対してデータ処理トランザクション要求を生成してもよく、データ処理には、生成、削除、更新、読み取り等のアクセス操作が含まれてもよい。
【0037】
各データセンターは、データに対して独自の管理ニーズを持っているため、データオブジェクトを、快速検索を便利にするようにローカルに保存する。データセンターからなるブロックチェーンネットワークについて、各データセンターは一般的にオフライン運用に基づいて新たなデータを生成する。例えば、病院のデータセンターでは、新規症例、新規薬剤投与量の情報等が生成されるため、ローカルにこれらのデータに対するデータ処理トランザクション要求が生成されてもよい。
【0038】
各ブロックチェーンノードがローカルの必要に応じて格納するデータオブジェクトは、同じであっても異なっていてもよい。例えば、異なる病院のデータセンターは、自分の病院に関係する患者情報のみに関心を持っているかもしれないので、自分の病院に関連する患者のデータオブジェクトのみが格納されている。また、異なる病院のデータセンターは、他の病院の一部のデータ、例えば薬剤在庫、血液在庫等にも興味があるかもしれない。しかし、これらの情報はすべてデータオブジェクトとしてチェイニングされて格納され、チェイニングされて格納された情報に基づいて集計することができる。例えば、すべての病院の薬剤在庫、ある日の各病院の新規症例、新患死亡数等を集計、統計する必要がある。
【0039】
S120では、前記データ処理トランザクション要求に対してプリプロセスを行い、書き込みデータを含むプリプロセス結果を決定する。
【0040】
ここで、プリプロセスは、ブロックチェーンノードがデータ処理トランザクション要求をローカルに処理することと理解することができる。プリプロセス結果は、ブロックチェーンノードがデータ処理トランザクション要求をローカルに処理した結果として理解することができる。プリプロセス結果は、通常、既存のデータオブジェクトに対する読み取り操作と、既存のデータオブジェクトに対する書き込み操作又は新規データオブジェクトに対する書き込み操作とを含む。読み取り操作に関与するデータオブジェクトは読み取りデータであり、書き込み操作に関与するデータオブジェクトは書き込みデータである。
【0041】
相応的に、ブロックチェーンノードは、ローカルに生成されたデータ処理トランザクション要求を取得した後、対応するスマートコントラクトを呼び出して、データ処理トランザクション要求に対してプリプロセスを行うことにより、書き込みデータを含むプリプロセス結果を取得することができる。
【0042】
S130では、前記書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、当該データオブジェクトの更新後データを未確認状態であるデータとしてマークする。
【0043】
ここで、未確認状態は、ブロックチェーンノードのローカルに格納されたデータに対してマークした状態のタイプであってもよい。
【0044】
従来のブロックチェーンネットワークでは、データ処理トランザクション要求の実行結果は、すべてのノードに検証・確認されたまでチェイニングすることができなかった。チェイニングされていないデータはローカルデータベースに更新されない。ネットワーク通信、トランザクション要求の同時実行数等の問題により、データ処理のトランザクション要求がタイムリーにチェイニングされない場合、これらのデータは、ローカルにおいて利用することができない。例えば、該病院のデータセンターでは、このチェイニングされていないデータに対する検索を内部スタッフに提供することができず、さらに外部の人にも提供できないため、適時性が劣ることとなる。
【0045】
この問題を解決するために、本発明の実施形態では、ブロックチェーンノードは、データ処理トランザクション要求のプリプロセス結果を取得した後、プリプロセス結果中の書き込みデータに基づいてローカルデータベース内のデータオブジェクトを直ちに更新することができる。具体的な例では、データオブジェクトが確定症例の合計である場合、該データオブジェクトの対応する値は100例である。プリプロセス結果に含まれる書き込みデータが5例の新規確定症例である場合、プリプロセス結果に含まれる書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新することにより、確定症例の合計を105例に更新することができる。
【0046】
なお、プリプロセス結果はブロックチェーンノードのローカル実行結果のみであり、他のブロックチェーンノードのコンセンサスを通過していないため、その有効性を確認できない。しかしながら、ローカルデータに対するブロックチェーンノードの生成、削除、更新、読み取り機能を実現するために、プリプロセス結果に応じてローカルデータベース内のデータオブジェクトを更新し、該データオブジェクトの更新後データを未確認状態であるデータとしてマークすることにより、該データオブジェクトの更新後データがコンセンサスを通過していないことを確認する。ブロックチェーンノードのローカルデータベース内のデータを検索・アクセスすることが可能であるとともに、データオブジェクトがチェイニングされたという確認状態、又はチェイニングされていないという未確認状態が知ることができる。
【0047】
S140では、前記データ処理トランザクション要求に前記プリプロセス結果をカプセル化し、カプセル化されたデータ処理トランザクション要求をブロックチェーンネットワークに転送し、カプセル化された前記データ処理トランザクション要求を処理するように他のブロックチェーンノードに要求する。
【0048】
相応的に、ブロックチェーンノードは、データ処理トランザクション要求のプリプロセス結果を取得した後、プリプロセス結果を当該データ処理トランザクション要求にカプセル化し、カプセル化された当該データ処理トランザクション要求をブロックチェーンネットワークに転送し、当該カプセル化されたデータ処理トランザクション要求を処理するように他のノードに要求することができる。他のノードは、データ処理トランザクション要求を取得した後、同様に当該カプセル化されたデータ処理トランザクション要求を実行して検証を完了することができる。実行結果がプリプロセスの結果と一致する場合、チェイニングすることができる。
【0049】
S150では、ブロックチェーンネットワークがカプセル化された前記データ処理トランザクション要求の実行を拒否したと判断した場合、カプセル化された前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定する。
【0050】
本発明の任意の実施形態では、ブロックチェーンネットワークが前記データ処理トランザクション要求の実行を拒否したと判断することは、他のブロックチェーンノードにおける1つ又は複数のブロックチェーンノードからフィードバックした、前記データ処理トランザクション要求の実行を拒否する通知を受信したことを含んでもよい。
【0051】
ブロックチェーンネットワーク内の各ブロックチェーンノードは、受信したデータ処理トランザクション要求に基づいて処理を行うが、処理結果がコンセンサスを通過しない、例えば、処理結果がデータ処理トランザクション要求に含まれるプリプロセス結果と競合した場合、データ処理トランザクション要求の実行拒否通知を生成する。選択的に、他のブロックチェーンノードは、データ処理トランザクション要求の実行拒否通知をユニキャスト又はブロードキャストでフィードバックする。
【0052】
なお、ある場合には、ブロックチェーンネットワーク内の各ブロックチェーンノードは、受信したデータ処理トランザクション要求に基づいて処理を行い、且つ、処理結果がコンセンサスを通過するとき、他のブロックチェーンノードはデータ処理トランザクション要求の実行拒否通知をフィードバックしない。しかし、メッセージの損失や遅延につながるネットワーク通信の品質低下等、多くの要因により、ブロックチェーンネットワークが設定時間内に対応するブロックを生成しなかったり、チェイニング操作を生成しなかったりすると、ブロックチェーンネットワークがデータ処理トランザクション要求の実行を拒否したと見なすことができる。すなわち、データ処理トランザクション要求の実行が拒否される理由は様々であるが、本発明の実施形態に限定されない。
【0053】
本発明の実施形態では、ブロックチェーンノードは、データ処理トランザクション要求の実行をブロックチェーンネットワークが拒否したと判断すると、該データ処理トランザクション要求のプリプロセス結果が無効データであると決定する場合、データ処理トランザクション要求に関連つける更新後データが無効であると決定すればよい。
【0054】
本発明の任意の実施形態では、前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定することは、前記データ処理トランザクション要求に関連つける更新後データを削除する、又は無効状態としてマークすることを含んでもよい。無効な更新後データに無効処理を行い、すなわち、無効操作を行うことで、エラーデータに対するスクリーニング及び処理を行うことができ、さらにデータ処理の精度を向上させることができる。
【0055】
本発明の任意の実施形態では、前記データ処理トランザクション要求に関連つける更新後データが無効であると決定した後、さらに、当該無効データ又は現在の無効データに依存する他の未確認状態であるデータがローカルデータベースに存在することが確認されると、当該他の未確認状態であるデータが無効であると決定し、対応する他のデータ処理トランザクション要求が無効データであると決定することをさらに含んでもよい。
【0056】
各データ処理トランザクション要求は、互いに依存関係を有することがあると理解できる。例示的には、データ処理トランザクション要求1とデータ処理トランザクション要求2は、いずれも合計確定症例を算出する。ブロックチェーンノードは、データ処理トランザクション要求1に対する処理を完了した後、データ処理トランザクション要求1の処理結果に基づいてデータ処理トランザクション要求2を処理する必要がある。このように、データ処理トランザクション要求2は、データ処理トランザクション要求1の処理データに依存する必要がある。この場合、データ処理トランザクション要求1の処理データが無効データ、すなわちブロックチェーン上のコンセンサスで確認されていない場合、データ処理トランザクション要求1の処理データに基づいて得られたデータ処理トランザクション要求2の未確認状態であるデータも無効であるため、データ処理トランザクション要求2の未確認状態であるデータを無効と決定し、データ処理トランザクション要求2を無効と決定する必要がある。このような設定の利点は、後続のデータ処理トランザクション要求に対する依存データの継続的な影響を効果的に回避でき、ブロックチェーンノードのローカルデータのバルクエラーを回避できることである。
【0057】
本発明の任意の実施形態では、前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定した後、さらに、前記データ処理トランザクション要求を破棄すること、又は、前記データ処理トランザクション要求の内容に基づいて、更新データ処理トランザクション要求を生成し、前記データ処理トランザクション要求をプリプロセスすることを含んでもよい。
【0058】
相応的に、データ処理トランザクション要求に関連つける更新後データが無効であると判断した場合には、データ処理トランザクション要求を直接破棄してもよい。あるいは、データ処理トランザクション要求が効率的かつ正確に処理されるように、データ処理トランザクション要求の内容に基づいて、更新データ処理トランザクション要求を生成し、プリプロセスしてもよい。
【0059】
具体的な例では、データオブジェクトを確定症例数の合計とすると、該データオブジェクトの値を100例とする。データオブジェクトが確定症例の総数であり、データオブジェクトが100症例の値に対応しているとする。データ処理トランザクション要求1は、「新規確定症例数が5例であり、確定症例の合計を算出する」(実際には新規確定症例10例)ということであってもよい。データ処理トランザクション要求1のプリプロセス結果に含まれる書き込みデータは、新規確定症例5例(実際の書き込みデータは新規確定症例が10件であるはず)であり、プリプロセス結果中の書き込みデータに応じてローカルデータベース内のデータオブジェクトを更新することは、確定症例の合計が105例に更新され、該データオブジェクトの更新後データが無効であると決定されることでもよい。あるいは、データ処理トランザクション要求1「新規確定症例が5例であり、確定症例の総数を算出する」の内容に基づいて、更新データ処理トランザクション要求2「確定症例が10例であり、確定症例の合計を算出する」を生成し、プリプロセスするようにしてもよい。
【0060】
S160では、ブロックチェーンネットワークがカプセル化されたデータ処理トランザクション要求を実行したと判断した場合、カプセル化されたデータ処理トランザクション要求に関連つける前記更新後データが確認状態であるデータとしてマークされる。
【0061】
本発明の実施形態では、ブロックチェーンノードは、ブロックチェーンネットワークがデータ処理トランザクション要求を実行する又は実行したと判断した場合、プリプロセスの結果がチェイニングされていると確認されたことを示し、これにより、更新後のデータは、確認状態であるデータとしてマークされてもよい。確認状態がマークされた更新後データは、データ処理トランザクション要求に対応する処理データと同じであってもよい。
【0062】
本発明の任意の実施形態では、ブロックチェーンによるデータ処理方法は、さらに、データアクセス要求を受信すると、ローカルデータベースの確認済み状態と未確認状態のデータ中で応答処理を行うことを含む。
【0063】
ここで、データアクセス要求は、ブロックチェーンノードのローカルデータベースに格納されているデータにアクセスするために、別のブロックチェーンノード又はブロックチェーンノード内のユーザによって送信される要求であってもよい。
本発明の実施形態では、ブロックチェーンノードによってローカルデータベースに格納されている確認済み状態のデータと未確認状態のデータの両方がアクセスクエリ機能を提供でき、データの共有と相互通信を実現できる。
【0064】
本発明の実施形態では、取得したデータ処理トランザクション要求に対してプリプロセスを行うことにより、書き込みデータを含むプリプロセス結果を取得し、後に、書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、該データオブジェクトの更新後データを未確認状態であるデータとしてマークし、且つ、プリプロセス結果をデータ処理トランザクション要求にカプセル化してカプセル化されたデータ処理トランザクション要求をブロックチェーンネットワークに送信し、他のノードにカプセル化されたデータ処理トランザクション要求の処理を要求して、また、処理結果に基づいて、カプセル化されたデータ処理トランザクション要求に関連つける更新後データを無効データと決定し、又は確定状態であるデータとしてマークし、既存のブロックチェーン技術をデータ集計システムに応用した場合のデータ処理の適時性が劣るという問題を解決して、全ネットワーク統合のデータ集計システムにおけるデータ処理の適時性の向上を実現できる。
【0065】
第2実施形態
図2は、本発明の第2実施形態において提供される、ブロックチェーンによるデータ処理方法のフローチャートであり、上記の各実施形態の技術案に基づいてさらに最適化され、改良されており、ブロックチェーン内の競合を含むデータ処理トランザクション要求の処理方法を提供する。
【0066】
図2に示すようなブロックチェーンによるデータ処理方法、以下を含む。
【0067】
S210では、ローカルに生成されたデータ処理トランザクション要求を取得する。
【0068】
S220では、前記データ処理トランザクション要求に対してプリプロセスを行い、書き込みデータを含むプリプロセス結果を決定する。
【0069】
S230では、前記書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、当該データオブジェクトの更新後データを未確認状態であるデータとしてマークする。
【0070】
S240では、前記データ処理トランザクション要求に前記プリプロセス結果をカプセル化して、カプセル化されたデータ処理トランザクション要求をブロックチェーンネットワークに送信することで、カプセル化された前記データ処理トランザクション要求を処理するように他のブロックチェーンノードに要求する。
【0071】
S250では、ブロックチェーンネットワークがデータ処理トランザクション要求の実行を拒否するか否かを判断し、ブロックチェーンネットワークがデータ処理トランザクション要求の実行を拒否する場合にはS260を実行し、ブロックチェーンネットワークがデータ処理トランザクション要求の実行を拒否しない場合にはS270を実行する。
【0072】
S260では、前記データ処理トランザクション要求に関連つける更新後データを無効データとして決定する。
【0073】
S270では、前記更新後データを確認状態であるデータとしてマークする。
【0074】
S280では、他のブロックチェーンノードによって送信された複数のデータ処理トランザクション要求を取得し、複数のデータ処理トランザクション要求を検証すべきデータ処理トランザクション要求としてマークする。
【0075】
本発明の実施形態では、ブロックチェーンノードは、ローカルにトランザクション要求を開始してもよく、また、他のノードによって開始されたトランザクション要求を取得して、トランザクション要求を検証・確認してもよい。他のノードから取得したトランザクション要求は、検証すべきデータ処理トランザクション要求としてマークされている。通常、現在のブロックアウトノードによってトランザクション要求が処理され、パッケージ化され、ブロックを形成し、他のノードにブロードキャストされる。他のノードは、受信したトランザクション要求に基づいて検証を行い、ブロックの正確性を検証する。
【0076】
S290では、各前記検証すべきデータ処理トランザクション要求が実行され、検証すべきデータ処理トランザクション要求間の競合が識別される。
【0077】
データオブジェクトが複数の当事者によって同時に更新される場合、ネットワークの通信品質等の影響により、データ処理トランザクション要求の間に競合が生じることがあることは理解されるべきである。競合は主に、複数の当事者が同時に同じデータオブジェクトへの書き込み操作を開始した場合に発生する。
【0078】
したがって、ブロックチェーンノードは、ブロック処理権限を取得すると、受信した各検証すべきデータ処理トランザクション要求をスマートコントラクトで実行でき、検証すべきデータ処理トランザクション要求の間の競合を識別できる。
【0079】
本発明の任意の実施形態では、各前記検証すべきデータ処理トランザクション要求をそれぞれ実行し、検証すべきデータ処理トランザクション要求間の競合を識別することは、設定された順序に従い、各前記検証すべきデータ処理トランザクション要求を1つずつ実行することと、現在実行されている検証すべきデータ処理トランザクション要求が、過去に実行された検証すべきデータ処理トランザクション要求と競合している場合、現在実行されている検証すべきデータ処理トランザクション要求は、競合しているデータ処理トランザクション要求として決定することと、を含んでもよい。
【0080】
ここで、設定順序は、検証すべきデータ処理トランザクション要求を受信する時系列的な順序であってもよく、本発明の実施形態では、設定順序の具体的な順序付け方法は特に限定しない。過去に実行された検証すべきデータ処理トランザクション要求は、現在実行されている検証すべきデータ処理トランザクション要求よりも前に受信された任意の検証すべきデータ処理トランザクション要求であってもよい。
【0081】
本発明の実施形態では、設定された順序に従い、各検証すべきデータ処理トランザクション要求を1つずつ実行してもよい。また、現在実行されている検証すべきデータ処理トランザクション要求と、過去的に実行されている検証すべきデータ処理トランザクション要求とが競合していると決定した場合には、現在実行されている検証すべきデータ処理トランザクション要求が競合しているデータ処理トランザクション要求として決定することができる。これにより、各検証すべきデータ処理トランザクション要求の間に競合があるか否かを効果的に識別することができる。
【0082】
具体例では、データオブジェクト「合計の確定症例」は、集計のために地区病院1と地区病院2により報告される必要がある。仮に、地区病院1のデータセンターが、バージョン番号Pのデータオブジェクトに対して「新規確定症例5例、総確定症例数の算出」というデータ処理トランザクション要求1を生成し、地区病院2のデータセンターが、バージョン番号Pのデータオブジェクトに対して「新規確定症例3例、総確定症例数の算出」というデータ処理トランザクション要求2を生成したとする。地区病院2のデータセンターでは、ネットワークの通信品質の影響を受けて、データ処理トランザクション要求2の送信が遅れてしまう。ブロックチェーンノードは、最初にデータ処理トランザクション要求1を受信して実行し、その時点でデータオブジェクトのバージョン番号がTに変化し、その後、データ処理トランザクション要求2を受信するが、この時点でデータオブジェクトが既に更新されているので、データ処理トランザクション要求1とデータ処理トランザクション要求2との間には競合又は競合関係が存在する。
【0083】
なお、各検証すべきデータ処理トランザクション要求の間に競合が存在するか否かを識別する場合、現在の処理ブロックに対応する検証すべきデータ処理トランザクション要求に限定されない。ブロックが短時間で生成された場合、現在処理されているブロックに含まれている検証すべきデータ処理トランザクション要求は、既に生成されたブロック内の検証すべきデータ処理トランザクション要求と競合する可能性もある。例えば、ブロック1は、値10、バージョン番号A、ブロック識別子1のデータオブジェクトaをロードし、ブロック2は、値20、バージョン番号B、ブロック識別子2となるようにデータオブジェクトaを更新する。このとき、ブロック3の検証すべきデータ処理トランザクション要求が、バージョン番号Aのデータオブジェクトaのデータを修正したい場合、該検証すべきデータ処理トランザクション要求は、ブロック2中のデータオブジェクトaを更新する検証すべきデータ処理トランザクション要求と競合する。
【0084】
本発明の任意の実施形態では、各前記検証すべきデータ処理トランザクション要求をそれぞれ実行し、検証すべきデータ処理トランザクション要求間の競合を識別することは、各前記検証すべきデータ処理トランザクション要求のプリプロセス結果に応じて依存関係の識別を実行し、識別結果に基づいてトポロジカルソートを実行することと、トポロジカルソートで2つ以上の検証すべきデータ処理トランザクション要求間が競合すると決定した場合、1つの検証すべきデータ処理トランザクション要求が受け入れられ、他の検証すべきデータ処理トランザクション要求が競合しているデータ処理トランザクション要求として決定されることと、を含んでもよい。
【0085】
ここで、トポロジカルソートは、プリプロセス結果間の書き込みデータの依存関係によって決定されるトランザクション要求間の実行順序であってもよい。
【0086】
本発明の実施形態では、ブロックチェーンノードは、検証対象データ処理トランザクション要求間の競合を識別する時に、さらに、設定期間内に受信したすべての検証すべき対象データ処理トランザクション要求のプリプロセス結果に応じて依存関係を識別し、識別結果に基づいてトポロジカルソートを行ってもよい。ここで、設定期間は、必要に応じて設定することができ、例えば、ブロック生成時間が対応する期間を設定できる。トポロジカルソートにおいて、ブロックチェーンノードが2つ以上の検証すべきデータ処理トランザクション要求の間に競合が見つかった場合、検証すべきデータ処理トランザクション要求のうちの1つを受け入れてもよいが、他の検証すべきデータ処理トランザクション要求が競合しているデータ処理トランザクション要求として決定されてもよい。
【0087】
本発明の任意の実施形態では、各前記検証すべきデータ処理トランザクション要求をそれぞれ実行し、検証すべきデータ処理トランザクション要求間の競合を識別することは、各前記検証すべきデータ処理トランザクション要求のプリプロセス結果に応じて依存関係の識別を実行し、識別結果に基づいてトポロジカルソートを実行することと、トポロジカルソートの結果に従い、各前記検証すべきデータ処理トランザクション要求を実行することと、現在実行されている検証すべきデータ処理トランザクション要求が、過去に実行された検証すべきデータ処理トランザクション要求と競合している場合、現在実行されている検証すべきデータ処理トランザクション要求は、競合しているデータ処理トランザクション要求として決定することと、を含んでもよい。
【0088】
本発明の実施形態では、ブロックチェーンノードは、検証すべきデータ処理トランザクション要求間の競合を識別する時に、さらに、設定期間内に受信したすべての検証すべき対象データ処理トランザクション要求のプリプロセス結果に応じて依存関係を識別し、識別結果に基づいてトポロジカルソートを行ってもよい。ここで、設定期間は、必要に応じて設定することができ、例えば、ブロック生成時間が対応する期間を設定できる。そして、トポロジカルソートの結果に従って、各検証データ処理トランザクション要求を実行できる。例えば、設定順序に従いトポロジカルソート後の各検証すべきデータ処理トランザクション要求を1つずつ実行する。現在実行されている検証すべきデータ処理トランザクション要求と、過去に実行された検証すべきデータ処理トランザクション要求とが競合しているようであれば、現在実行されている検証すべきデータ処理トランザクション要求が競合していると決定している。
【0089】
なお、トポロジカルソートの結果に応じて各検証すべきデータ処理トランザクション要求を実行した後、現在実行されている検証すべきデータ処理トランザクション要求が競合しているデータ処理トランザクション要求であると判断されても、現在実行されている検証すべきデータ処理トランザクション要求が過去に実行された検証すべきデータ処理トランザクション要求の更新後データに書き込みを行う結果が依然として正しい場合には、現在実行されている検証すべきデータ処理トランザクションは拒否されない。例えば、両方のデータ処理トランザクション要求が薬の価格を全て100元に変更した場合、それらは同じデータオブジェクトに対する修正ではあるが、修正結果は同じであるため、それらは競合とは見なされない。
【0090】
S2A0では、競合が発生している検証すべきデータ処理トランザクション要求が識別されたか否かを判断し、識別されている場合にはS2B0を実行し、識別されていない場合にはS2C0を実行する。
【0091】
S2B0では、チェイニングを拒否する。
【0092】
S2C0では、チェイニングを許可する。
【0093】
したがって、ブロックチェーンノードは、競合する検証すべきデータ処理トランザクション要求を識別した場合、ブロックデータの正確性を確保するためにチェイニングを拒否する。ここで、チェイニングを拒否することは、競合している検証すべきデータ処理トランザクション要求のブロークチェーンへの接続を拒否することを指し、チェイニングを許可することは、競合している検証すべきデータ処理トランザクション要求のブロークチェーンへの接続を許可することを指す。
【0094】
上記の技術案を用いれば、各データ処理トランザクション要求間の競合を識別し、データ処理トランザクション要求が競合していると識別した場合にチェイニングを拒否することで、ブロックデータの精度を確保することができる。
【0095】
第3実施形態
図3は、本発明の第3実施形態に提供されるブロックチェーンによるデータ処理装置の構造図であり、当該装置はブロックチェーンノードに配置されている。本発明の実施形態は、ブロックチェーンにおけるデータの効率的な処理に応用可能であり、該装置は、ソフトウェア及び/又はハードウェアによって実装され、具体的にコンピュータデバイスに配置されている。該コンピュータデバイスは、ブロックチェーンノードデバイスであってもよい。
【0096】
図3に示すようなブロックチェーンによるデータ処理装置300は、データ処理トランザクション要求取得モジュール310と、データ処理トランザクション要求プリプロセスモジュール320と、未確認状態マーキングモジュール330と、プリプロセス結果カプセル化モジュール340と、第1の更新後データ処理モジュール350と、第2の更新後データ処理モジュール360と、を備える。
【0097】
データ処理トランザクション要求取得モジュール310は、ローカルに生成されたデータ処理トランザクション要求を取得することに用いられる。
【0098】
データ処理トランザクション要求プリプロセスモジュール320は、前記データ処理トランザクション要求に対してプリプロセスを行い、書き込みデータを含むプリプロセス結果を決定することに用いられる。
【0099】
未確認状態マーキングモジュール330は、前記書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、当該データオブジェクトの更新後データを未確認状態であるデータとしてマークすることに用いられる。
【0100】
プリプロセス結果カプセル化モジュール340は、前記データ処理トランザクション要求に前記プリプロセス結果をカプセル化して、カプセル化されたデータ処理トランザクション要求をブロックチェーンネットワークに転送し、カプセル化された前記データ処理トランザクション要求を処理するように他のブロックチェーンノードに要求することに用いられる。
【0101】
第1の更新後データ処理モジュール350は、ブロックチェーンネットワークが前記データ処理トランザクション要求の実行を拒否したと判断した場合、カプセル化された前記データ処理トランザクション要求に関連つける更新後データが無効データであると決定することに用いられる。
【0102】
第2の更新後データ処理モジュール360は、ブロックチェーンネットワークがカプセル化されたデータ処理トランザクション要求を実行したと判断した場合、カプセル化された前記データ処理トランザクション要求に関連つける前記更新後データが確認状態であるデータとしてマークする。
【0103】
本発明の実施形態では、取得したデータ処理トランザクション要求をプリプロセスすることにより、書き込みデータを含むプリプロセス結果を取得し、後に、書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、該データオブジェクトの更新後データを未確認データとしてマークし、プリプロセス結果をデータ処理トランザクション要求にカプセル化してブロックチェーンネットワークに送信し、データ処理トランザクション要求を処理するように他のノードに要求し、また、データ処理トランザクション要求に関連つける更新後データを、処理結果に基づいて無効データとして決定し、又は確定状態であるデータとしてマークすることにより、既存のブロックチェーン技術をデータ集計システムに応用した場合に存在するデータ処理の適時性が劣るという問題を解決し、全ネットワーク統合のデータ集計システムにおけるデータ処理の適時性の向上を実現することができる。
【0104】
選択的に、第1の更新後データ処理モジュール350は、他のブロックチェーンノードにおける1つ又は複数のブロックチェーンノードからフィードバックした、カプセル化された前記データ処理トランザクション要求の実行拒否という通知を受信するための通知受信ユニットを有する。
【0105】
選択的に、第1の更新後データ処理モジュール350は、カプセル化された前記データ処理トランザクション要求に関連つける更新後データを削除するか、又は無効状態であるデータとしてマークするための第1の更新後データ処理ユニットを有する。
【0106】
選択的に、ブロックチェーンによるデータ処理装置は、前記無効データに依存する他の未確認状態であるデータがローカルデータベースに存在すると確認した場合、当該他の未確認状態であるデータが無効データであると決定し、前記他の未確認状態であるデータに関連つける他のデータ処理トランザクション要求が無効要求データであると決定するための第1のデータ要求処理モジュールをさらに有する。
【0107】
選択的に、ブロックチェーンによるデータ処理装置は、カプセル化された前記データ処理トランザクション要求を破棄するか、又は、カプセル化された前記データ処理トランザクション要求の内容に基づいて、更新データ処理トランザクション要求を生成し、前記更新データ処理トランザクション要求に対するプリプロセスを行うための第2のデータ要求処理モジュールを有する。
【0108】
選択的に、ブロックチェーンによるデータ処理装置は、データアクセス要求を受信する場合、ローカルデータベースにおける確認状態であるデータと未確認状態であるデータに対する応答処理を行うためのデータアクセス要求応答処理モジュールをさらに有する。
【0109】
選択的に、ブロックチェーンによるデータ処理装置は、他のブロックチェーンノードによって転送された複数のデータ処理トランザクション要求を取得し、複数のデータ処理トランザクション要求を検証すべきデータ処理トランザクション要求としてマークするための検証すべきデータ処理トランザクション要求取得モジュールと、各前記検証すべきデータ処理トランザクション要求をそれぞれ実行し、検証すべきデータ処理トランザクション要求間の競合を識別するための競合識別モジュールと、競合している検証すべきデータ処理トランザクション要求が存在すると識別した場合、チェイニングを拒否するためのチェイニング処理モジュールと、をさらに備える。
【0110】
選択的に、競合識別モジュールは、設定された順序に従い、各前記検証すべきデータ処理トランザクション要求を1つずつ実行するための第1の検証すべきデータ処理トランザクション要求実行ユニットと、現在実行されている検証すべきデータ処理トランザクション要求が、過去に実行された検証すべきデータ処理トランザクション要求と競合している場合、現在実行されている検証すべきデータ処理トランザクション要求を競合しているデータ処理トランザクション要求として決定するための第1の競合識別ユニットと、を備える。
【0111】
選択的に、競合識別モジュールは、各前記検証すべきデータ処理トランザクション要求のプリプロセス結果に応じて依存関係の識別を実行し、識別結果に基づいてトポロジカルソートを実行するための第1のプリプロセス結果識別ユニットと、トポロジカルソートの期間において2つ以上の検証すべきデータ処理トランザクション要求間が競合していると決定した場合、2つ以上の検証すべきデータ処理トランザクション要求における1つの検証すべきデータ処理トランザクション要求を受け入れ、2つ以上の検証すべきデータ処理トランザクション要求における他の検証すべきデータ処理トランザクション要求が競合していると決定するための第2の競合識別ユニットと、をさらに備える。
【0112】
選択的に、競合識別モジュールは、各前記検証すべきデータ処理トランザクション要求のプリプロセス結果に応じて依存関係の識別を実行し、識別結果に基づいてトポロジカルソートを実行するための第2のプリプロセス結果識別ユニットと、トポロジカルソートの結果に従い、各前記検証すべきデータ処理トランザクション要求を実行するための第2の検証すべきデータ処理トランザクション要求実行ユニットと、現在実行されている検証すべきデータ処理トランザクション要求が、過去に実行された検証すべきデータ処理トランザクション要求と競合している場合、現在実行されている検証すべきデータ処理トランザクション要求を、競合しているデータ処理トランザクション要求として決定する第3の競合識別ユニットと、をさらに備える。
【0113】
選択的に、ローカルに生成されたデータ処理トランザクション要求がデータ書き込み処理トランザクション要求であり、ブロックチェーンノードにおける1つ又は複数のブロックチェーンノードに対応するデータオブジェクトは前記ブロックチェーンノードにおける他のブロックチェーンノードに対応するデータオブジェクトと同じである。
【0114】
選択的に、前記ブロックチェーンノードが病院データセンター及び/又は料金所データセンターに配置されている。
【0115】
前記ブロックチェーンによるデータ処理装置は、本発明のいずれかの実施形態に提供されたブロックチェーンによるデータ処理方法を実行でき、ブロックチェーンによるデータ処理方法に対応する機能モジュール及び有益な効果を有する。
【0116】
実施形態4
本発明の実施形態によれば、本発明はまた、コンピュータデバイス及び可読記憶媒体を提供する。
【0117】
図4に示すように、本発明の実施形態のブロックチェーンによるデータ処理方法を実施するためのコンピュータデバイスのブロック図である。コンピュータデバイスは、様々な形態のデジタルコンピュータ、例えば、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の好適なコンピュータを表すことが意図されている。また、コンピュータデバイスはまた、様々な形態のモバイルデバイス、例えば、パーソナルデジタル処理、携帯電話、スマートフォン、ウェアラブルデバイス、及び他の類似のコンピューティングデバイスを表すことができる。本明細書に示されたコンポーネント、それらの接続及び関係、ならびにそれらの機能は、例としてのみ意図されており、本明細書に記載及び/又は請求された本発明の実施形態の実現を限定することを意図するものではない。
【0118】
図4に示すように、該コンピュータデバイスは、1つ以上のプロセッサ401、メモリ402、及び各コンポーネントを接続するための、高速インタフェース及び低速インタフェースを含むインタフェースを有する。様々なコンポーネントは、異なるバスを用いて相互に接続されており、共通のマザーボード上に実装されてもよいし、所望のように他の方式で実装されてもよい。プロセッサは、電子装置内で実行するための命令を処理してもよく、当該命令はメモリに記憶された命令又はメモリ上に外部入出力装置(例えば、インタフェースに結合されたディスプレイ装置)にGUIのグラフィカル情報を表示させるための命令を含む。他の実施形態では、複数のプロセッサ及び/又は複数のバス及び複数のメモリが、所望に応じて、複数のメモリと一緒に使用されてもよい。同様に、複数のコンピュータデバイスが接続されていてもよく、個々のデバイスが必要な操作の一部(例えば、サーバアレイ、ブレードサーバのグループ、又はマルチプロセッサシステム)を提供する。1つのプロセッサ401を一例として
図4に示す。
【0119】
メモリ402は、本発明によって提供される非一過性のコンピュータ可読記憶媒体である。ここで、前記メモリは、本発明に提供されるブロックチェーンによるデータ処理方法を前記少なくとも1つのプロセッサに実行させるために、前記少なくとも1つのプロセッサにより実行可能な命令を記憶している。本発明の非一過性のコンピュータ可読記憶媒体は、本発明によって提供されるブロックチェーンによるデータ処理方法をコンピュータに実行させるために使用されるコンピュータ命令を記憶している。
【0120】
メモリ402は、非一過性のコンピュータ可読記憶媒体として、非瞬間的なソフトウェアプログラム、非瞬間的なコンピュータ実行可能プログラム、及びモジュール、例えば、本発明の実施形態におけるブロックチェーンによるデータ処理方法に対応するプログラム命令/モジュール(例えば、
図3に示すデータ処理トランザクション要求取得モジュール310、データ処理トランザクション要求プリプロセスモジュール320、未確認状態マーキングモジュール330、プリプロセス結果カプセル化モジュール340、第1の更新後データ処理モジュール350、第2の更新後データ処理モジュール360)に使用することができる。プロセッサ401は、メモリ402に記憶された非瞬間的なソフトウェアプログラム、命令、及びモジュールを実行することにより、サーバの各種機能アプリケーション及びデータ処理を実行して、上述した方法の実施形態におけるブロックチェーンによるデータ処理方法を実施する。
【0121】
メモリ402は、プログラム記憶領域とデータ記憶領域とを含んでもよく、プログラム記憶領域は、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを格納してもよく、データ記憶領域は、ブロックチェーンによるデータ処理方法を実装するコンピュータデバイスの使用により作成されたデータ等を格納してもよい。さらに、メモリ402は、高速ランダムアクセスメモリを含んでもよく、また、少なくとも1つのディスクメモリ装置、フラッシュメモリ装置、又は他の非瞬間的な固体状態のメモリ装置等の非瞬間的なメモリを含んでもよい。いくつかの実施形態では、メモリ402は、選択的に、プロセッサ401に対して相対的に遠隔に配置されたメモリを含み、これらの遠隔メモリは、ネットワークを介して、本発明の実施形態のブロックチェーンによるデータ処理方法を実装するためのコンピュータデバイスに接続されてもよい。前記ネットワークの例としては、インターネット、企業のイントラネット、ローカルエリアネットワーク、移動体通信ネットワーク、及びそれらの組合せが挙げられるが、これらに限定されるものではない。
【0122】
本発明の実施形態中のブロックチェーンによるデータ処理方法を実装するためのコンピュータデバイスはまた、入力装置403と出力装置404を含んでもよい。プロセッサ401、メモリ402、入力装置403及び出力装置404は、バスを介して接続されていてもよく、他の方式で接続されていてもよく、
図4ではバスを介した接続を例に挙げている。
【0123】
入力装置403は、入力された数値情報又は文字情報を受信するとともに、ブロックチェーンによるデータ処理方法を生成・実装するためのコンピュータデバイスのユーザ設定及び機能制御に関連するキー信号入力を生成してもよく、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、インジケータスティック、1つ以上のマウスボタン、トラックボール、ジョイスティック等の入力装置等が挙げられる。出力装置404は、表示装置、補助照明装置(例えば、LED)、ハプティックフィードバック装置(例えば、振動モータ)等を含んでもよい。当該表示装置としては、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ等が挙げられるが、これらに限定されるものではない。いくつかの実施形態では、表示装置はタッチスクリーンであってもよい。
【0124】
本明細書に記載されたシステム及び技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、専用ASIC(専用集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組合せで実施することができる。これらの様々な実施形態は、以下を含み得る:1つ以上のコンピュータプログラムで実施し、当該1つ以上のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行及び/又は解釈され、当該プログラマブルプロセッサは、記憶システム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び指示を受信し、且つデータ及び指示を当該記憶システム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置へ転送することができる専用又は汎用のプログラマブルプロセッサであってもよい。
【0125】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサのための機械命令を含み、高レベル手順及び/又はオブジェクト指向のプログラミング言語、及び/又はアセンブリ/機械語を使用してこれらのコンピュータプログラムを実装することができる。本明細書で使用されるように、「機械可読媒体」及び「コンピュータ可読媒体」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、デバイス、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械読取信号である機械命令を受け取る機械読取媒体を含む。「機械可読信号」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0126】
ユーザとの相互作用を提供するために、本明細書に記載されているシステム及び技術は、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、ユーザがコンピュータに入力を提供するためのキーボード及びポインティング装置(例えば、マウス又はトラックボール)とを有するコンピュータ上に実装されてもよい。他の種類の装置もまた、ユーザとの相互作用を提供するために使用されてもよく、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又はハプティックフィードバックであってもよく、ユーザからの入力は、任意の形態、例えば、音響入力、音声入力、又はハプティック入力等で受信されてもよい。
【0127】
本明細書に記載されているシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバー)、ミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバー)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインターフェイス又はWebブラウザーを備えたユーザコンピューター。当該グラフィカルユーザインターフェイス又は当該Webブラウザーを介して、ユーザはここで説明するシステム及び技術の実施方式と対話できる)、又はそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、又はフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムで実装されてもよい。システムのコンポーネントは、任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)を介して相互に接続されていてもよい。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネットがある。
【0128】
コンピュータシステムは、クライアントとサーバを含むことができる。クライアントとサーバは一般的に互いに遠隔地にあり、通常は通信ネットワークを介して相互に作用する。クライアント-サーバ関係は、対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生成される。
【0129】
本発明の実施形態では、取得されたデータ処理トランザクション要求に対してプリプロセスを行うことにより、書き込みデータを含むプリプロセス結果を取得し、後に、書き込みデータに基づいてローカルデータベース内のデータオブジェクトを更新し、該データオブジェクトの更新後データを未確認状態であるデータとしてマークし、且つプリプロセス結果をデータ処理トランザクション要求にカプセル化してブロックチェーンネットワークに送信し、データ処理トランザクション要求を処理するように他のノードに要求して、また、処理結果に基づいて、データ処理トランザクション要求に関連つける更新後データを無効として決定し、又は確定状態としてマークし、既存のブロックチェーン技術をデータ集計システムに応用した場合に存在するデータ処理の適時性が劣るという問題を解決して、さらに、全ネットワーク統合のデータ集計システムにおけるデータ処理の適時性の向上を実現する。
【0130】
上述した処理の様々な実施形態を用いて、順序を変えたり、ことを追加/削除したりすることができることが理解されるべきである。例えば、本発明に開示された技術案の所望の結果が達成される限り、本発明に記載された各ことは、本明細書に限定されるものではなく、並行して実行されてもよいし、順次実行されてもよいし、異なる順序で実行されてもよい。
【0131】
上記の具体的な実施形態は、本発明の保護範囲の制限を構成するものではない。設計要件及び他の要因に応じて、様々な変更、組み合わせ、サブ組み合わせ及び置換が行われ得ることは、当業者によって理解されるべきである。本発明の要旨及び原則の範囲内で行われた修正、同等の代替、改良等は、本発明の保護範囲に含まれるものとする。