JP6921206B2 - データベース状態決定方法およびデバイスならびに整合性検証方法およびデバイス - Google Patents

データベース状態決定方法およびデバイスならびに整合性検証方法およびデバイス Download PDF

Info

Publication number
JP6921206B2
JP6921206B2 JP2019538236A JP2019538236A JP6921206B2 JP 6921206 B2 JP6921206 B2 JP 6921206B2 JP 2019538236 A JP2019538236 A JP 2019538236A JP 2019538236 A JP2019538236 A JP 2019538236A JP 6921206 B2 JP6921206 B2 JP 6921206B2
Authority
JP
Japan
Prior art keywords
state
data
value
database
state value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019538236A
Other languages
English (en)
Other versions
JP2020509451A (ja
Inventor
ボラン・ジャオ
Original Assignee
アドバンスド ニュー テクノロジーズ カンパニー リミテッド
アドバンスド ニュー テクノロジーズ カンパニー リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アドバンスド ニュー テクノロジーズ カンパニー リミテッド, アドバンスド ニュー テクノロジーズ カンパニー リミテッド filed Critical アドバンスド ニュー テクノロジーズ カンパニー リミテッド
Publication of JP2020509451A publication Critical patent/JP2020509451A/ja
Application granted granted Critical
Publication of JP6921206B2 publication Critical patent/JP6921206B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本出願はコンピュータ技術の分野に関し、詳細には、データベース状態決定方法およびデバイスならびにデータベース整合性検証方法およびデバイスに関する。
データを格納するとき、コンピュータは複数の異なるデータベースに同一のデータを格納する場合がある。これらの異なるデータベースに格納されたデータは通常サービス要件に基づいて同期される必要があり、すなわち、データベースに格納されたデータは通常整合していることを要する。一例として、ブロックチェーン技術が用いられる。検証が実行された後、ブロックチェーンデータを格納するすべてのノード(ノードに対応するデータベース)に複数のトランザクション記録が書き込まれる。すべてのノードに受け入れられる新たなブロックが生成されることを確実にするために、すべてのノードに対応するすべてのデータベースに格納されたデータは整合していなければならない。別の例として、分散型ストレージ内のプライマリ/セカンダリデータベースの場合、プライマリデータベース内のデータにエラーが生じたときに別のデータベース(セカンダリデータベース)からデータを復元するのを助けるために、プライマリデータベースに格納されたデータとセカンダリデータベースに格納されたデータとが整合していることも通常必要である。
複数のデータベースに格納されたデータが整合していることを確実にするために、複数のデータベース内のデータ上で整合性の照合が行われ得、データが整合していないと分かったときに時宜を得て改善策が講じられ得る。データベースは通常多くのデータを含むので、データベースの整合性の照合は、複数のデータベース内のすべてのデータを一つ一つ比較するのではなく、データベース内のデータの状態を表わすために用いられる状態値を比較することによって実行されるのが通常である。説明しやすくするために、データベース内のデータの状態はデータベース状態と呼ばれ得る。
既存技術では、データベース内のデータが変化した後毎回、データベースの状態値は再決定されることを要する。この状態値が決定されるとき、状態値は通常データベース内のすべてのデータを用いて算出される。たとえば、状態値はデータベース内のデータのハッシュ値であってよい。この場合、ハッシュ値が決定されるとき、ストリングを得るためにデータベース内のすべてのデータが接合されることを要する。次に、このストリングはハッシュ関数の入力として用いられ、このハッシュ関数を用いることによってハッシュ値が算出される。この場合、データベースが比較的大量のデータを含むと、データベース状態値が決定されるときに比較的多くのコンピューティングリソースが消費される。
本出願の実施形態は、データベース状態値が決定されるときに比較的多くのコンピューティングリソースが消費されるという既存技術の問題点を改善するために、データベース状態決定方法を提供する。
本出願の実施形態において、以下の技術的解決法が用いられる。
データベース状態決定方法が提供される。この方法は、対象データベース上で実行される状態遷移動作を決定するステップと、この決定された状態遷移動作および対象データベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値を決定するステップとを含み、ここで、状態値は対象データベースの状態を表わすために用いられる。
本出願の実施形態は、データベース状態値が決定されるときに比較的多くのコンピューティングリソースが消費されるという既存技術の問題点を改善するために、データベース状態決定デバイスをさらに提供する。
データベース状態決定デバイスが提供される。このデバイスは、対象データベース上で実行される状態遷移動作を決定するように構成された第1の決定ユニットと、この決定された状態遷移動作および対象データベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値を決定するように構成された第2の決定ユニットとを含み、ここで、状態値は対象データベースの状態を表わすために用いられる。
データベース整合性検証方法が提供される。この方法は、照合されるべき第1のデータベースの状態値と照合されるべき第2のデータベースの状態値とが同一であるか否かを判定するステップを含み、ここで、第1のデータベースの状態値および第2のデータベースの状態値は本出願において提供されるデータベース状態決定方法を用いて決定され、また、第1のデータベースの状態値と第2のデータベースの状態値とが同一である場合、第1のデータベースの状態と第2のデータベースの状態は整合していると判定するステップを含む。
データベース整合性検証デバイスが提供される。このデバイスは、照合されるべき第1のデータベースの状態値と照合されるべき第2のデータベースの状態値とが同一であるか否かを判定するように構成された状態判定ユニットを含み、ここで、第1のデータベースの状態値および第2のデータベースの状態値は本出願において提供されるデータベース状態決定デバイスを用いて決定され、また、第1のデータベースの状態値と第2のデータベースの状態値とが同一であると判定されたとき、第1のデータベースの状態と第2のデータベースの状態は整合していると判定するように構成された整合性判定ユニットを含む。
本出願の実施形態において用いられる前述の技術的解決法の少なくとも1つは、以下の有益な効果をもたらすことができる。
状態遷移動作に起因してそのデータが変化するデータベースの状態値が決定されるとき、対象データベース上で実行される状態遷移動作が決定され、次に、この決定された状態遷移動作およびデータベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、データベースの状態値であり状態遷移動作の実行後に存在する状態値が決定される。既存技術と比較して、データベース全体のすべてのデータ上で動作を実行する必要はなく、それによって、過度のコンピューティングリソースの消費を低減させる。
本明細書において示される添付の図面は、本出願に対するさらなる理解を与え、また、本出願の一部分を成すことを意図する。本出願の例示の実施形態および実施形態に関する記述は、本出願について説明することを意図し、本出願に対する制限となるものではない。
本出願による、ハッシュツリーのデータ構造を示す概略図である。 本出願による、データベース状態決定方法を示す概略的な実施形態の流れ図である。 本出願による、データベース整合性検証方法を示す概略的な実施形態の流れ図である。 本出願による、データベース状態決定方法を示す概略的な実施形態の流れ図である。 本出願による、データベース状態決定デバイスの特定の構造を示す概略図である。 本出願による、データベース整合性検証デバイスの特定の構造を示す概略図である。
本出願の目的、技術的解決法および利点をより明確にするため、以下は、本出願の特定の実施形態および対応する添付の図面を参照して本出願の技術的解決法について明確かつ包括的に記述するものである。記述される実施形態は、本出願の実施形態の全部ではなく一部にすぎないことは明らかである。創造的な努力を要することなく本出願の実施形態に基づいて当業者によって得られる他のすべての実施形態は、本出願の保護の範囲内にあるものとする。
添付の図面を参照して、本出願の実施形態において提供される技術的解決法が以下で詳細に記述される。
コンピュータ技術の発展に伴って、すべてのデータベース内のデータが整合しているか否かを検証することがますます一般的になっている。一例として、ブロックチェーンが用いられる。このブロックチェーンは分散型データベースであり、ブロックチェーン内の各データの変化はネットワーク全体の各ブロックチェーンノードに送られ、すべてのノードは完全かつ整合性のあるデータを有する必要がある。データは通常、各ノード上の複数のデータユニットに格納される。データユニットはブロックチェーン内のブロックであってよく、または、複数のブロックを含むデータユニットであってよい。ノードの状態値が決定されるとき、マークルツリー等のハッシュツリーはリーフノードとしての各データユニット内のデータのハッシュ値を用いることによって構築され、次にハッシュツリーのルートノードのハッシュ値がデータベースの状態値として用いられ、その結果、状態値はデータベースの状態を一意的に表わすために用いられる。
図1は、あるデータベースのために構築されたハッシュツリーのデータ構造を示す概略図である。ハッシュツリーのルートノードのハッシュ値が算出されるとき、まず各データユニット内のデータのハッシュ値が算出され、次にこの得られたハッシュ値がハッシュツリーのリーフノードの値として用いられ、各リーフノードの親ノードのハッシュ値が算出され、そして最後にハッシュツリーのルートノードのハッシュ値が得られる。データベース内のデータが変化すると、データベースの状態値は再決定される必要がある。このようにして、ハッシュツリーのルートノードのハッシュ値を算出する前述のプロセスが繰り返されることを要する。データベース内に大量のデータがある場合、ハッシュ動作は大量のデータ上で実行される必要がある。このことは、多くのコンピューティングリソースを消費する。
いくつかの同様のシナリオでは、データベースの状態値が決定されるとき、比較的多くのコンピューティングリソースもまた消費される。簡潔にするため、ここでは詳細を省略する。問題点を改善するために、本出願はデータベース状態決定方法を提供し、これによって、対象データベース上で実行される状態遷移動作に基づいて対象データベースの状態が決定される。
以下は、本出願において提供されるデータベース状態決定方法について詳細に記述するものである。この方法は、たとえば分散型データベース内のデータベースノードまたはブロックチェーン内のノード等のコンピューティングデバイスによって実行され得る。さらに、この方法は、本出願において提供されるデータベース状態決定方法を実施するアプリケーションプログラムによって実行されてもよい。説明しやすくするために、方法の一実施形態は、この方法がコンピューティングデバイスによって実行される例を用いて以下に記述される。この方法がコンピューティングデバイスによって実行されるということは説明するための一例にすぎず、この方法に対する制限であると考えられるべきではないことが理解されるであろう。
図2は、本出願によるデータベース状態決定方法を示す概略的な実施形態の流れ図である。この方法は、以下のステップを含む。
ステップS101:対象データベース上で実行される状態遷移動作を決定する。
ここで、状態遷移動作はデータベースの状態変化を生じさせるデータベース動作であり得、また、具体的にはデータ書込み動作、データ更新動作またはデータ削除動作等の動作であり得る。この状態遷移動作は、処理データ、およびデータを処理する方法を含むことができる。たとえば、データ書込み動作は書き込まれる予定のデータ、およびこのデータが書き込まれるべきデータベース内の特定の場所を含む。ここで、対象データベースは状態遷移動作が実行されるデータベースであり得、また、対象データベースはその状態値が決定されることになる任意のデータベースであり得る。
実際の適用において、状態遷移動作を決定する方法は多数あり得る。たとえば、オブジェクト指向アプリケーションプログラムでは、オブジェクトによって状態遷移動作が実施される場合、状態遷移動作は状態遷移動作に対応するデータ動作オブジェクトを決定することによって決定され得、または、状態遷移動作は状態遷移動作に対応するデータベース動作命令文に基づいて決定され得る。ここで、データ動作オブジェクトは、オブジェクト指向アプリケーションプログラム内のデータオブジェクトでありデータベース動作を実行するために用いられるデータオブジェクトである。オブジェクト指向アプリケーションプログラムにおいては、「オブジェクト」はそのクラスがメモリにロードされるインスタンスであるのが一般的であり、関連するメンバー変数およびメンバー関数を有する。
状態遷移動作はデータベース内のデータの変化を生じさせるので、状態遷移動作が決定された後、データベースの状態であり状態遷移動作の実行後に存在する状態が決定され得る。
ステップS102:決定された状態遷移動作および対象データベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値を決定する。
ここで、状態値は対象データベースの状態を表わすために用いられる。状態値は対象データベース上で整合性の照合を行うために用いられ得るので、状態値は対象データベースに格納されたデータの特性を一意的に表わすために用いられ得る。たとえば、状態値はハッシュ値であってよく、またはグローバル一意識別子であってよい。ハッシュ値は、ハッシュ関数を用いて入力パラメータ上でハッシュ動作を実行することによって得られる。グローバル一意識別子は、システムによって割り当てられ、かつこのシステムにおいてデータベース状態を一意的に識別するために用いられる識別子であり得る。
当業者であれば、「一意的に表わす」とは完全な一意性という意味に解釈されるべきではなく、許容される誤差範囲内の一意性を意味すると知っているべきであるということに留意されたい。今日最も広く用いられているハッシュアルゴリズムに関しては、理論上、異なる入力データが同一の出力ハッシュ値を有する、いわゆるハッシュの衝突が存在する。
データベース内のデータが変化した後に存在する状態は、データが変化する前に存在する状態および状態遷移動作と関連している。そのため、対象データベース上で実行される状態遷移動作が決定された後、この決定された状態遷移動作および対象データベースの状態値であり動作実行前に存在する状態値に基づいて、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値は決定され得る。
実際の適用において、ステップS101で記述したように、オブジェクト指向アプリケーションプログラムでは、状態遷移動作は状態遷移動作に対応するデータ動作オブジェクトを決定することによって決定され得る。続いて、この決定されたデータ動作オブジェクトおよび対象データベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値は決定され得る。
短い識別子を用いて異なる状態遷移動作を区別するのを助けるために、状態遷移動作は一定の特性値を用いて一意的に表わされてもよい。この状態遷移動作の特性値はハッシュ値であってよく、または、状態遷移動作を一意的に識別するために用いられるグローバル一意識別子であってよい。簡潔にするため、ここでは詳細を省略する。状態遷移動作の特性値および対象データベースの状態値を算出して、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値を得るのを助けるために、特性値のデータ形式は、対象データベースの状態値のデータ形式と同一または類似するものであってよい。
実際の適用において、オブジェクト指向アプリケーションプログラムについては、データ動作オブジェクトのハッシュ値が決定され得、次にこのデータ動作オブジェクトの決定されたハッシュ値および対象データベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値が決定される。
以下は、本出願のこの実施形態においてデータ動作オブジェクトのハッシュ値を決定するプロセスについて具体的に記述するものである。
データ動作オブジェクトのハッシュ値が決定されるとき、このデータ動作オブジェクトのデータ形式をハッシュアルゴリズムの入力にサポートされる形式に変換するために、データ動作オブジェクト上でシリアル化動作が実行され得る。このシリアル化動作は、オブジェクトの状態情報を格納または送信可能な形式に変換することができる。データ動作オブジェクト上でシリアル化動作が実行された後、データ動作オブジェクトに対応するシリアル化されたデータが得られ得る。たとえば、シリアル化されたデータのデータ形式はバイナリ形式であってよく、このバイナリ形式のデータはハッシュアルゴリズムの入力として用いられてよい。
データ動作オブジェクトに対応するシリアル化されたデータが得られた後、シリアル化されたデータ上でハッシュ動作が実行されてシリアル化されたデータのハッシュ値を得ることができ、このシリアル化されたデータのハッシュ値はデータ動作オブジェクトのハッシュ値として用いられてよい。
単一の状態遷移動作は複数のデータ動作オブジェクトに対応するのが通常であり、たとえば、ブロックチェーン内のノードに対して実行される各状態遷移動作は、通常複数のデータ動作オブジェクトに対応することに留意されたい。そのため、状態遷移動作に対応するデータ動作オブジェクトがシリアル化されるとき、すべてのデータ動作オブジェクトは別々にシリアル化され得、次に、すべての得られたシリアル化されたデータは順次接合され、最後に、得られた接合されシリアル化されたデータは状態遷移動作に対応するシリアル化されたデータとして用いられる。
すべての得られたシリアル化されたデータが順次接合されるとき、すべてのデータ動作オブジェクトによって状態遷移動作を実行するシーケンスが固定されている場合、すべてのデータ動作オブジェクトに対応するシリアル化されたデータは状態遷移動作を実行するシーケンスに基づいて接合されて、接合されシリアル化されたデータを得る。別法として、すべてのデータ動作オブジェクトによって状態遷移動作を実行するシーケンスが固定されていない場合、すべてのデータ動作オブジェクトに対応するシリアル化されたデータは第1の所定のシーケンスに基づいて接合されて、接合されシリアル化されたデータを得る。次に、接合されシリアル化されたデータのハッシュ値はハッシュ関数を用いて算出され得、この接合されシリアル化されたデータのハッシュ値は状態遷移動作に対応するデータ動作オブジェクトのハッシュ値として用いられる。
第1の所定のシーケンスは所定の接合化シーケンスであってよい。たとえば、各データ動作オブジェクトのデータの形式がキー/値形式である場合、すべてのデータ動作オブジェクトに対応するシリアル化されたデータは、キー値の降順で接合され得る。
状態遷移動作に対応するデータ動作オブジェクトのハッシュ値が決定された後、このデータ動作オブジェクトの決定されたハッシュ値および対象データベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値が決定され得る。具体的には、データ動作オブジェクトのハッシュ値および対象データベースの状態値であり状態遷移動作の実行前に存在する状態値が第2の所定のシーケンスに基づいて接合されて、接合されたデータを得ることができる。接合されたデータのハッシュ値が決定される。この接合されたデータのハッシュ値は、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値として用いられる。
ここで、第1の所定のシーケンスおよび第2の所定のシーケンスは、それぞれ所定の接合化シーケンスであってよい。すべてのデータベースの状態値が算出されるとき、データが接合されるときに同一の接合化シーケンスが用いられるべきである。そうでなければ、たとえすべてのデータベース内のデータが整合していても、算出される状態値は異なり、データベース間の整合性は正確に照合され得ない。
場合によっては、異なるデータを持つ2つのグループが、接合化が実行された後に同一の接合されたデータとなる可能性があることに留意されたい。たとえば、データ「hello」と「world」とが接合されて、接合されたデータ「helloworld」を得ることができ、同様に、データ「he」と「lloworld」とが接合されて「helloworld」が得られる。接合化が実行される前は2つのグループのデータが異なるデータであることは明らかである。この場合、接合化が実行された後に異なるデータが同一のデータになるのを防止するために、接合化動作が実行されるとき、接合されたデータの一意性を確保するためにセパレータが用いられてよい。具体的には、データを接合する箇所に所定のセパレータが配置され得る。この所定のセパレータは、開発者によって予め定められてよい。たとえば、セパレータは123である。この場合、データ「hello」と「world」とが接合されて「hello123world」を得ることができ、データ「he」と「lloworld」とが接合されて「he123lloworld」を得ることができる。このようにして、接合化が実行された後に2つのデータが異なるデータであることを確保することができる。
セパレータを用いてデータを接合する前述の方法に基づいて、すべてのデータ動作オブジェクトに対応するシリアル化されたデータが接合されるとき、所定のセパレータは、接合されることになる少なくとも2つのシリアル化されたデータの間に配置され得、所定のセパレータが配置された後に得られるすべてのシリアル化されたデータは接合されて、接合されシリアル化されたデータを得る。セパレータを用いてデータが接合される前に、まず、接合化が実行された後に異なるグループのデータが同一のデータであるかどうかについて判定され得ることは確かである。接合されたデータは同一であるという判定結果のとき、各グループのデータはセパレータを用いて接合されて、接合されシリアル化されたデータを得る。
本出願のこの実施形態において提供されるデータベース状態決定方法によれば、そのデータが変化するデータベースの状態値が決定されるとき、対象データベース上で実行される状態遷移動作が決定され、次に、この決定された状態遷移動作およびデータベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、データベースの状態値であり状態遷移動作の実行後に存在する状態値が決定され得る。既存技術と比較して、データベース全体のすべてのデータ上で動作を実行する必要はなく、それによって、過度のコンピューティングリソースの消費を低減させる。加えて、既存のブロックチェーン技術においてハッシュツリーのようなツリー構造を用いてノードのハッシュ値が算出されることと比較して、本出願のこの実施形態においては、ツリー構造は構築される必要がなく、また、ツリー構造内の各ノードのハッシュ値は算出される必要がなく、それによって、過度のコンピューティングリソースの整合性照合消費を低減させる。
本出願のこの実施形態において提供されるいくつかの好ましい解決法では、データ動作オブジェクト上でシリアル化動作が実行され、シリアル化されたデータ上でハッシュ動作が実行され、このことはかなりの量のコンピューティングリソースを消費する。しかしながら、分散型データベース、とりわけブロックチェーンにおいては、データベースは通常非常に多くの量のデータを格納し、データベース内のデータ上でハッシュ動作を実行することによって消費されるコンピューティングリソースは、本出願のこの実施形態における前述の動作によって消費されるコンピューティングリソースに比べてはるかに大きい。
前述のデータベース状態決定方法によれば、データベースの状態値が決定され得る。続いて、この決定された状態値に基づいて、データベース上で整合性の照合が行われ得る。以下は、本出願において提供されるデータベース整合性検証方法について詳細に記述するものである。
図3は、データベース整合性検証方法を示す概略的な実施形態の流れ図である。この方法は、以下のステップを含む。
ステップS201:照合されるべき第1のデータベースの状態値と照合されるべき第2のデータベースの状態値とが同一であるか否かを判定する。
ここで、第1のデータベースと第2のデータベースとは、照合されるべきデータベースである。この場合、第1のデータベースの状態値と第2のデータベースの状態値は、本出願のこの実施形態において提供されるデータベース状態決定方法に基づいて別々に決定され得る。特定の決定プロセスについては、本出願中の関連する記述を参照することができる。簡潔にするため、ここでは詳細を省略する。
ステップS202:第1のデータベースの状態値と第2のデータベースの状態値とが同一である場合、第1のデータベースの状態と第2のデータベースの状態は整合していると判定する。
第1のデータベースの状態値と第2のデータベースの状態値とが異なる場合、第1のデータベースの状態と第2のデータベースの状態は整合していないと判定される。
本出願の前述の発明概念に基づいて、本出願の技術的特徴、手段および効果をより理解しやすくするために、以下は、対象データベースがブロックチェーン技術においてノードのデータベースとして用いられる例を挙げて、本出願のデータベース状態決定方法についてさらに記述するものである。
本出願のこの実施形態においては、ブロックチェーンアプリケーションは構造ブロックチェーンアプリケーションであり、対象データベースはLevelDBデータベースであり、データベース状態値はハッシュ値である例が説明のために用いられる。状態遷移動作は、データ動作オブジェクトを用いてLevelDBデータベース上で実行され得る。データ動作オブジェクトは、キー/値形式のデータをLevelDBデータベースに書き込むことができる。ブロックチェーンにおいて状態遷移動作が実行されるとき、状態遷移動作がすべてのノード間で整合していて、かつ状態遷移が同じ順序で実行されることを確実にするためにコンセンサスアルゴリズムが用いられる。
各ブロックチェーンノードについて、データベースに書き込まれるデータがないとき、各データベースの初期状態Sinitは空である。この場合、ハッシュ値が与えられ得る。ここで、データベースの初期状態のハッシュ値はHinitで表される。
この場合、ith状態遷移動作Transitioniが対象データベース上で実行されると決定されるとき、対象データベースのハッシュ値はこの動作に基づいて再算出され得る。図4は、プロセスを示す概略的な実施形態の流れ図であり、このプロセスは以下のステップを含む。
ステップS301:状態遷移動作に対応するデータ動作オブジェクトを決定する。
単一の状態遷移動作は複数のデータ動作オブジェクトに対応するのが通常であり、ノードに対するith 状態遷移動作Transitioniは{op1, op2... opN}の組で表され得、ここで「op」は「動作(operation)」の略であり、単一のデータ動作オブジェクトを指し、単一のキー/値のペアに関する一つの書込み動作を意味する。各opの形式は、Key := NewValである。このように、{op1, op2... opN}は、ith 状態遷移動作の間のN個のキー/値のペアに関する書込み動作を指す。
ステップS302:各データ動作オブジェクトをバイナリ形式のシリアル化されたデータにシリアル化する。
ステップS303:すべてのデータ動作オブジェクトによって状態遷移動作を実行するシーケンスが固定されているか否かを判定し、固定されている場合(yesの場合)はステップS304を実行し、固定されていない場合(noの場合)はステップS305を実行する。
ステップS304:すべてのデータ動作オブジェクトによって状態遷移動作を実行するシーケンスが固定されている場合、この状態遷移動作を実行するシーケンスに基づいてすべてのデータ動作オブジェクトに対応するシリアル化されたデータを接合して、接合されシリアル化されたデータを得、ステップS306を実行する。
ステップS305:すべてのデータ動作オブジェクトによって状態遷移動作を実行するシーケンスが固定されていない場合、第1の所定のシーケンスに基づいてすべてのデータ動作オブジェクトに対応するシリアル化されたデータを接合して、接合されシリアル化されたデータを得る。
ここで、第1の所定のシーケンスはキー値の降順であってよい。
ステップS306:接合されシリアル化されたデータのハッシュ値を決定し、このハッシュ値を状態遷移動作に対応するハッシュ値として用いる。
接合されシリアル化されたデータはハッシュアルゴリズムの入力として用いられてハッシュ動作を実行し、その結果、接合されシリアル化されたデータのハッシュ値、すなわち状態遷移動作Transitioniのハッシュ値Hash(Transitioni)を得る。
ステップS307:第2の所定のシーケンスに基づいて、状態遷移動作に対応するハッシュ値と対象データベースのハッシュ値Hi-1であり状態遷移動作の実行前に存在するハッシュ値Hi-1とを接合して、接合されたデータを得る。
ステップS308:接合されたデータのハッシュ値を決定し、この接合されたデータのハッシュ値を、対象データベースのハッシュ値Hiであり状態遷移動作Transitioni実行後に存在するハッシュ値Hiとして用いる。
対象データベースの最終的に得られたハッシュ値Hiであり状態遷移動作Transitioni実行後に存在する最終的に得られたハッシュ値Hiは、次の等式すなわちHi := Hash(Hi-1 || Hash (Transitioni))で表わすことができる。
H0=Hinit、ここで、||は接合化動作を意味し、Hash(x)はハッシュ関数であり、ハッシュ動作が入力データx上で実行されることを示し、ハッシュ関数はたとえばSHA3であってよい。
本出願のこの実施形態において提供されるデータベース状態決定方法によれば、そのデータが変化するデータベースのハッシュ値が決定されるとき、対象データベース上で実行される状態遷移動作Transitioniが決定され、次に、状態遷移動作に対応するハッシュ値Hash (Transitioni)が決定され、データベースのハッシュ値Hi-1であり状態遷移動作の実行前に存在するハッシュ値Hi-1に基づいて、データベースの状態値Hiであり状態遷移動作の実行後に存在する状態値Hiが決定され得る。既存技術と比較して、ハッシュ値を得るためにノード全体のデータベース内のすべてのデータ上で動作を実行する必要はなく、それによって、過度のコンピューティングリソースの消費を低減させる。加えて、既存のブロックチェーン技術においてハッシュツリーのようなツリー構造を用いてノードのハッシュ値が算出されることと比較して、本出願のこの実施形態においては、ツリー構造は構築される必要がなく、また、ツリー構造内の各ノードのハッシュ値は算出される必要がなく、そのため、コンピューティングリソースの消費はさらに低減される。
本出願の実施形態において提供されるデータベース状態決定方法が上記に記述される。図5に示されるように、同じ考えに基づき、本出願の一実施形態は対応するデータベース状態決定デバイスをさらに提供する。このデバイスは、対象データベース上で実行される状態遷移動作を決定するように構成された第1の決定ユニット401と、この決定された状態遷移動作および対象データベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値を決定するように構成された第2の決定ユニット402とを特に含み、ここで、状態値は対象データベースの状態を表わすために用いられる。
本出願のこの実施形態において、データベース状態を決定する特定の実施形態はまだ多数ある。一実施形態において、第1の決定ユニット401は対象データベース上で状態遷移動作を実行するために用いられるデータ動作オブジェクトを決定するように構成される。
第2の決定ユニット402は、決定されたデータ動作オブジェクトおよび対象データベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値を決定するように構成される。
一実施形態において、第2の決定ユニット402は、第1のハッシュ値決定サブユニット403および第1の状態値決定サブユニット404を特に含む。
第1のハッシュ値決定サブユニット403は、データ動作オブジェクトのハッシュ値を決定するように構成される。
第1の状態値決定サブユニット404は、データ動作オブジェクトの決定されたハッシュ値および対象データベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、対象データベースの状態値であり状態遷移動作の実行後に存在する状態値を決定するように構成される。
一実施形態において、第1のハッシュ値決定サブユニット403は、シリアル化されたデータ決定サブユニット405および第2のハッシュ値決定サブユニット406を特に含む。
シリアル化されたデータ決定サブユニット405は、データ動作オブジェクトをシリアル化してシリアル化されたデータを得るように構成される。
第2のハッシュ値決定サブユニット406は、シリアル化されたデータのハッシュ値を決定し、かつこのシリアル化されたデータのハッシュ値をデータ動作オブジェクトのハッシュ値として用いるように構成される。
一実施形態において、シリアル化されたデータ決定サブユニット405は、第1の接合化サブユニット407および第2の接合化サブユニット408を特に含む。
一実施形態において、第1の接合化サブユニット407は、対象データベース上で状態遷移動作を実行するために用いられるデータ動作オブジェクトが複数であり、かつすべてのデータ動作オブジェクトによって状態遷移動作を実行するシーケンスが固定されているとき、この状態遷移動作を実行するシーケンスに基づいてすべてのデータ動作オブジェクトに対応するシリアル化されたデータを接合して、接合されシリアル化されたデータを得るように構成される。
第2の接合化サブユニット408は、対象データベース上で状態遷移動作を実行するために用いられるデータ動作オブジェクトが複数であり、かつすべてのデータ動作オブジェクトによって状態遷移動作を実行するシーケンスが固定されていないとき、第1の所定のシーケンスに基づいてすべてのデータ動作オブジェクトに対応するシリアル化されたデータを接合して、接合されシリアル化されたデータを得るように構成される。
接合化が実行された後に異なるグループのデータが同一のデータになるのを防止するために、一実施形態において、第2の接合化サブユニット408は、少なくとも2つのシリアル化されたデータの間に所定のセパレータを配置し、所定のセパレータが配置された後に得られるすべてのシリアル化されたデータを接合して、接合されシリアル化されたデータを得るように構成される。
一実施形態において、第1の状態値決定サブユニット404は、第2の所定のシーケンスに基づいて、データ動作オブジェクトのハッシュ値と対象データベースの状態値であり状態遷移動作の実行前に存在する状態値とを接合して、接合されたデータを得、また、この接合されたデータのハッシュ値を決定し、かつこの接合されたデータのハッシュ値を対象データベースの状態値であり状態遷移動作の実行後に存在する状態値として用いるように構成される。
一実施形態において、対象データベースはブロックチェーン内の任意のノードに対応するデータベースである。
一実施形態において、状態値は、対象データベースに格納されたデータの特性を一意的に表わすために用いられる。
本出願のこの実施形態において提供されるデータベース状態決定デバイスによれば、そのデータが変化するデータベースの状態値が決定されるとき、対象データベース上で実行される状態遷移動作が決定され、ここで、状態遷移動作はデータの変化を生じさせる状態遷移動作である。次に、この決定された状態遷移動作およびデータベースの状態値であり状態遷移動作の実行前に存在する状態値に基づいて、データベースの状態値であり状態遷移動作の実行後に存在する状態値が決定される。既存技術と比較して、データベース全体のすべてのデータ上で動作を実行する必要はなく、それによって、過度のコンピューティングリソースの消費を低減させる。
本出願の一実施形態は対応するデータベース整合性検証デバイスをさらに提供する。図6に示されるように、このデバイスは、照合されるべき第1のデータベースの状態値と照合されるべき第2のデータベースの状態値とが同一であるか否かを判定するように構成された判定ユニット501であって、第1のデータベースの状態値と第2のデータベースの状態値とは本出願の前述の実施形態において提供されるデバイスを用いて決定されるユニットと、第1のデータベースの状態値と第2のデータベースの状態値とが同一であると判定されたとき、第1のデータベースの状態と第2のデータベースの状態は整合していると判定するように構成された整合性判定ユニット502とを特に含む。
1990年代、技術の改良は、ハードウェアの改良(たとえば、ダイオード、トランジスタ、スイッチ等の回路構造に対する改良)であるかソフトウェアの改良(方法手順に対する改良)であるかは明確に区別され得たことに留意されたい。しかしながら、技術の発展に伴って、多くの方法手順の今日における改良は、ハードウェア回路構造の直接的改良と考えることができる。設計者は通常、対応するハードウェア回路構造を得るために、改良された方法手順をハードウェア回路にプログラムする。それゆえ、方法手順は、ハードウェアエンティティモジュールを用いることによって改良され得る。たとえば、プログラマブル論理デバイス(PLD)(たとえば、フィールドプログラマブルゲートアレイ(FPGA))はそのような集積回路であり、PLDの論理機能は、ユーザによるデバイスのプログラミングを介して決まる。設計者は、特定用途向け集積回路チップを設計および製造するようチップ製造業者に要請することなく、プログラミングを行ってデジタルシステムをPLDに「統合」する。さらに、現在、集積回路チップを手動で製造する代わりに、このようなプログラミングはほとんどの場合「論理コンパイラ」ソフトウェアを用いて実施される。この論理コンパイラソフトウェアは、プログラムを開発し、書くために用いられるソフトウェアコンパイラに類似する。オリジナルのコードは、コンパイルのために特定のプログラミング言語で書き込まれることを要する。この言語はハードウェア記述言語(HDL)と呼ばれる。多数のHDLがあり、たとえば、Advanced Boolean Expression Language (ABEL)、Altera Hardware Description Language (AHDL)、 Confluence、 Cornell University Programming Language (CUPL)、 HDCal、 Java Hardware Description Language (JHDL)、 Lava、 Lola、 MyHDL、 PALASM、 Ruby Hardware Description Language (RHDL)等である。Very-high-speed integrated circuit hardware description langua
ge (VHDL)およびVerilogが最も一般的に用いられる。当業者であれば、一旦、いくつか述べられたハードウェア記述言語を用いて方法手順が論理的にプログラムされ、かつ集積回路にプログラムされると、論理的な方法手順を実施するハードウェア回路が容易に得られ得ることも理解するであろう。
コントローラは、任意の適切な方法を用いることによって実装され得る。たとえば、コントローラは、マイクロプロセッサもしくはプロセッサ、または、マイクロプロセッサもしくはプロセッサによって実行可能なコンピュータ可読プログラムコード(たとえば、ソフトウェアまたはファームウェア)を格納するコンピュータ可読媒体、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブル論理コントローラもしくは内蔵マイクロプロセッサであってよい。コントローラの例として、以下のマイクロプロセッサ、すなわち、ARC 625D、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)または他の光学式記憶装置、カセット磁気テープ、磁気テープ/磁気ディスク記憶装置または他の磁気記憶デバイスを含むが、これらに限定されるわけではない。コンピュータ記憶媒体は、算出デバイスによりアクセス可能な情報を格納するために用いられてよい。本明細書における定義に基づいて、コンピュータ可読媒体は、たとえば変調されたデータ信号および搬送波等の一時的媒体(一時的媒体)を含まない。
「含む(include)、「含む(comprise)」といった用語、またはこれらの任意の他の変形用語は非排他的な包含をカバーすることを意図し、そのため、要素の一覧を含むプロセス、方法、製品またはデバイスは、これらの要素だけでなく明示的に挙げられていない他の要素も含むこと、または、このようなプロセス、方法、製品またはデバイスに固有の要素をさらに含むことにさらに留意されたい。「〜を含む(include a ...)」で始まる要素は、さらなる制約がなければ、その要素を含むプロセス、方法、製品またはデバイスにおいて追加的同一要素が存在することを排除するものではない。
本出願は、コンピュータ、たとえばプログラムモジュールによって実行されるコンピュータ実行可能命令の一般的なコンテキスト内に記述されてよい。プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実施するルーティン、プログラム、オブジェクト、コンポーネント、データ構造等を含むのが一般的である。本出願は、分散コンピューティング環境において実施されてもよい。分散コンピューティング環境において、タスクは、通信ネットワークを介して接続されるリモート処理デバイスによって実行される。分散コンピューティング環境において、プログラムモジュールは、記憶デバイスを含むローカルおよびリモートコンピュータ記憶媒体の両方に配置されてよい。
本明細書における実施形態は、進歩的な方法で記述される。実施形態の同一または類似の部分に関しては、実施形態を参照することができる。それぞれの実施形態は、他の実施形態との違いに焦点を合わせる。特に、システムの実施形態は基本的に方法の実施形態に類似し、それゆえ簡潔に記述される。関連する部分に関しては、方法の実施形態における関連のある記述を参照することができる。
前述の実施形態は単に本出願の実施形態であるにすぎず、本出願を限定するよう意図されるものではない。当業者は、本出願にさまざまな修正および変更を加えることができる。本出願の精神および原理から逸脱することなく加えられる任意の修正、等価的置換または改良は、本出願の特許請求の範囲の範囲内にあるものとする。
401 第1の決定ユニット
402 第2の決定ユニット
403 第1のハッシュ値決定サブユニット
404 第1の状態値決定サブユニット
405 シリアル化されたデータ決定サブユニット
406 第2のハッシュ値決定サブユニット
407 第1の接合化サブユニット
408 第2の接合化サブユニット
501 判定ユニット
502 整合性判定ユニット

Claims (11)

  1. 対象データベースのデータ動作オブジェクト上で実行される状態遷移動作を、デバイスの第1の決定ユニットによって決定するステップと、
    前記状態遷移動作および前記対象データベースの前状態値であり前記状態遷移動作の実行前に存在する前状態値に基づいて、前記対象データベースの状態値であり前記状態遷移動作の実行後に存在する状態値を、前記デバイスの第2の決定ユニットによって決定するステップとを含み、
    前記状態値は前記対象データベースの状態を表わすために用いられ、
    前記状態遷移動作は、複数のデータ動作オブジェクトに対応し、
    前記対象データベースの前記状態値であり前記状態遷移動作の実行後に存在する前記状態値を決定するステップは、
    前記第2の決定ユニットの第1のハッシュ値決定サブユニットによって、前記複数のデータ動作オブジェクトの各々をシリアル化して、複数のシリアル化されたデータを得るステップと、
    前記第2の決定ユニットによって、前記複数のデータ動作オブジェクトによって前記状態遷移動作を実行するシーケンスが固定されているかどうかを判定するステップと、
    前記第1のハッシュ値決定サブユニットのシリアル化されたデータ決定サブユニットの第1の接合化サブユニットによって、前記複数のデータ動作オブジェクトによって前記状態遷移動作を実行する前記シーケンスが固定されている場合、前記状態遷移動作を実行するシーケンスに基づいて前記複数のシリアル化されたデータを接合して、接合されシリアル化されたデータを得るステップと、
    前記シリアル化されたデータ決定サブユニットの第2の接合化サブユニットによって、前記複数のデータ動作オブジェクトによって前記状態遷移動作を実行する前記シーケンスが固定されていない場合、第1の所定のシーケンスに基づいて前記複数のシリアル化されたデータを接合して、接合されシリアル化されたデータを得るステップと、
    前記第2の決定ユニットの第1の状態値決定サブユニットによって、前記接合されシリアル化されたデータのハッシュ値を決定し、該ハッシュ値を前記状態遷移動作に対応するハッシュ値として用いるステップとを含
    前記対象データベースの状態値であり前記状態遷移動作の実行後に存在する状態値を決定するステップは、前記状態遷移動作に対応するハッシュ値および前記状態遷移動作の実行前に存在する前記対象データベースのハッシュ値に基づいて、前記対象データベースの状態値であり前記状態遷移動作の実行後に存在する状態値を、前記第1の状態値決定サブユニットによって決定するステップを含む、
    データベース状態を決定する方法。
  2. 前記データ動作オブジェクトは、そのクラスが前記対象データベースのメモリにロードされ、かつ関連するメンバー変数およびメンバー関数を有するインスタンスを含む、請求項1に記載の方法。
  3. 前記対象データベースの前記状態値であり前記状態遷移動作の実行後に存在する前記状態値を決定するステップは、
    前記データ動作オブジェクトおよび前記対象データベースの前記状態値であり前記状態遷移動作の実行前に存在する前記状態値に基づいて、前記対象データベースの前記状態値であり前記状態遷移動作の実行後に存在する前記状態値を、前記第2の決定ユニットによって決定するステップを含む、請求項2に記載の方法。
  4. 前記対象データベースはブロックチェーンデータベースである、請求項3に記載の方法。
  5. 前記対象データベースの前記状態値であり前記状態遷移動作の実行後に存在する前記状態値を決定するステップは、
    前記データ動作オブジェクトのハッシュ値を、前記第1のハッシュ値決定サブユニットによって決定するステップと、
    前記データ動作オブジェクトの前記ハッシュ値および前記対象データベースの前記状態値であり前記状態遷移動作の実行前に存在する前記状態値に基づいて、前記対象データベースの前記状態値であり前記状態遷移動作の実行後に存在する前記状態値を、前記第1の状態値決定サブユニットによって決定するステップとを含む、請求項4に記載の方法。
  6. 前記接合されシリアル化されたデータを得る前記ステップは、
    前記第2の接合化サブユニットによって、少なくとも2つの前記シリアル化されたデータの間に所定のセパレータを配置するステップと、
    前記第2の接合化サブユニットによって、前記所定のセパレータが配置された後に得られるすべての前記シリアル化されたデータを接合して、前記接合されシリアル化されたデータを得るステップとを含む、請求項1に記載の方法。
  7. 前記対象データベースの前記状態値であり前記状態遷移動作の実行後に存在する前記状態値を決定するステップは、
    前記第1の状態値決定サブユニットによって、第2の所定のシーケンスに基づいて、前記データ動作オブジェクトの前記ハッシュ値と前記対象データベースの前記状態値であり前記状態遷移動作の実行前に存在する前記状態値とを接合して、接合されたデータを得るステップと、
    前記第1の状態値決定サブユニットによって、前記接合されたデータのハッシュ値を決定し、かつ前記接合されたデータの前記ハッシュ値を前記対象データベースの前記状態値であり前記状態遷移動作の実行後に存在する前記状態値として用いるステップとを含む、請求項5に記載の方法。
  8. 前記対象データベースは、ブロックチェーン内の任意のノードに対応するデータベースである、請求項1から5のいずれか一項に記載の方法。
  9. 前記状態値は前記対象データベースに格納されたデータの特性を一意的に表わすために用いられる、請求項1に記載の方法。
  10. 照合されるべき前記対象データベースの前記前状態値が前記状態値と同一である否かを、前記デバイスの判定ユニットによって判定するステップと、
    前記前状態値が前記対象データベースの前記状態値と同一であるとの判定に応じて、前記対象データベースの前状態と前記状態は整合していると、前記デバイスの整合性判定ユニットによって判定するステップとをさらに含む、請求項1に記載の方法。
  11. 請求項1から10のいずれか一項に記載の方法を実行するように構成された複数のモジュールを含む、データベース状態を決定するデバイス。
JP2019538236A 2017-05-25 2018-05-23 データベース状態決定方法およびデバイスならびに整合性検証方法およびデバイス Active JP6921206B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710377721.8 2017-05-25
CN201710377721.8A CN107247749B (zh) 2017-05-25 2017-05-25 一种数据库状态确定方法、一致性验证方法及装置
PCT/CN2018/087966 WO2018214897A1 (zh) 2017-05-25 2018-05-23 一种数据库状态确定方法、一致性验证方法及装置

Publications (2)

Publication Number Publication Date
JP2020509451A JP2020509451A (ja) 2020-03-26
JP6921206B2 true JP6921206B2 (ja) 2021-08-18

Family

ID=60017352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019538236A Active JP6921206B2 (ja) 2017-05-25 2018-05-23 データベース状態決定方法およびデバイスならびに整合性検証方法およびデバイス

Country Status (14)

Country Link
US (1) US10789243B2 (ja)
EP (1) EP3557452B1 (ja)
JP (1) JP6921206B2 (ja)
KR (1) KR102231058B1 (ja)
CN (1) CN107247749B (ja)
AU (1) AU2018274424B2 (ja)
BR (1) BR112019014478A2 (ja)
CA (1) CA3049831C (ja)
MX (1) MX2019008383A (ja)
PH (1) PH12019501637A1 (ja)
RU (1) RU2725760C1 (ja)
SG (1) SG11201906495TA (ja)
TW (1) TWI710916B (ja)
WO (1) WO2018214897A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107247749B (zh) * 2017-05-25 2020-08-25 创新先进技术有限公司 一种数据库状态确定方法、一致性验证方法及装置
GB201713046D0 (en) * 2017-08-15 2017-09-27 Nchain Holdings Ltd Computer-implemented system and method
CN107807982B (zh) * 2017-10-27 2020-09-18 中国农业银行股份有限公司 一种异构数据库的一致性校验方法及装置
CN107729541A (zh) * 2017-10-31 2018-02-23 咪咕数字传媒有限公司 一种数据处理方法、装置及计算机可读存储介质
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US11146407B2 (en) 2018-04-17 2021-10-12 Digicert, Inc. Digital certificate validation using untrusted data
CN108615156A (zh) * 2018-05-09 2018-10-02 上海魅联信息技术有限公司 一种基于区块链的数据结构
CN109345159A (zh) * 2018-08-21 2019-02-15 深圳市口袋网络科技有限公司 一种数据写入方法及装置、设备、存储介质
CN109446211B (zh) * 2018-10-08 2020-08-14 联动优势科技有限公司 一种一致性校验方法及装置
TWI710238B (zh) * 2018-12-17 2020-11-11 財團法人國家實驗研究院 分散式儲存系統之同步刪除方法
US11044096B2 (en) * 2019-02-04 2021-06-22 Accenture Global Solutions Limited Blockchain based digital identity generation and verification
US11122091B2 (en) * 2019-04-16 2021-09-14 FireMon, LLC Network security and management system
CN110175758A (zh) * 2019-05-08 2019-08-27 杭州宇链科技有限公司 一种基于区块链的链上多层自动分润方法
KR102620584B1 (ko) * 2019-05-17 2024-01-02 삼성에스디에스 주식회사 블록체인 기반 시스템에서 상태 db의 무결성을 보장하는 장치 및 그 방법
WO2019179540A2 (en) 2019-07-11 2019-09-26 Alibaba Group Holding Limited Shared blockchain data storage
EP3669281B1 (en) * 2019-07-11 2024-04-03 Advanced New Technologies Co., Ltd. Shared blockchain data storage
CN111108478B (zh) 2019-07-11 2023-11-21 创新先进技术有限公司 一种用于通信和共享区块链数据的方法、系统、和装置
CN112559484A (zh) * 2019-09-25 2021-03-26 伊姆西Ip控股有限责任公司 用于管理数据对象的方法、设备和计算机程序产品
CN111639952A (zh) * 2020-05-28 2020-09-08 深圳壹账通智能科技有限公司 基于区块链的退货核验方法、系统、服务器及终端
CN112463132B (zh) * 2020-11-13 2023-06-06 四川新网银行股份有限公司 一种数据库切换工具及切换方法
CN113420036A (zh) * 2021-06-22 2021-09-21 南方电网数字电网研究院有限公司 一种电网监控系统内存库关系库一致性校验方法
US20230185670A1 (en) * 2021-12-13 2023-06-15 Scality, S.A. Method and apparatus for monitoring storage system replication

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03152992A (ja) 1989-10-27 1991-06-28 W R Grace & Co 印刷回路板及びその製造方法
CN1054886A (zh) 1990-03-19 1991-10-02 湖南省森林植物园 一种固体碳酸饮料的生产工艺
US9824107B2 (en) * 2006-10-25 2017-11-21 Entit Software Llc Tracking changing state data to assist in computer network security
CN101957858A (zh) * 2010-09-27 2011-01-26 中兴通讯股份有限公司 数据比对方法和装置
CN102354292A (zh) * 2011-09-21 2012-02-15 国家计算机网络与信息安全管理中心 主、备数据库记录一致性校验方法及系统
CN102662946B (zh) * 2012-02-20 2015-10-07 北京地拓科技发展有限公司 一种自动监测数据库中记录变化的方法和系统
US9697238B2 (en) * 2012-03-01 2017-07-04 Microsoft Technology Licensing, Llc Drift detection and notification
US9032247B2 (en) * 2012-07-26 2015-05-12 Apple Inc. Intermediate database management layer
JP2014059757A (ja) * 2012-09-18 2014-04-03 International Business Maschines Corporation 木構造を有するデータを処理する装置、処理方法およびプログラム
CN103164523A (zh) * 2013-03-19 2013-06-19 华为技术有限公司 数据一致性检查方法、装置及系统
CN103345521B (zh) * 2013-07-17 2016-04-13 腾讯科技(深圳)有限公司 一种在哈希表数据库中处理键值的方法和装置
CN103678583B (zh) * 2013-12-11 2017-07-21 北京华胜天成科技股份有限公司 结构化数据比较的方法及系统
CN104731792B (zh) * 2013-12-19 2018-09-21 中国银联股份有限公司 数据库一致性校验方法及系统、定位数据库差异的方法及系统
CN105447046A (zh) * 2014-09-02 2016-03-30 阿里巴巴集团控股有限公司 一种分布式系统数据一致性处理方法、装置和系统
CN104346454B (zh) * 2014-10-30 2017-12-05 上海新炬网络技术有限公司 基于Oracle数据库的数据一致性校验方法
US9436923B1 (en) * 2015-02-26 2016-09-06 Skuchain, Inc. Tracking unitization occurring in a supply chain
AU2016242888A1 (en) * 2015-03-31 2017-11-16 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
CN106484690A (zh) * 2015-08-24 2017-03-08 阿里巴巴集团控股有限公司 一种数据迁移的验证方法及装置
US9390154B1 (en) * 2015-08-28 2016-07-12 Swirlds, Inc. Methods and apparatus for a distributed database within a network
JP6452156B2 (ja) * 2015-09-03 2019-01-16 日本電信電話株式会社 許諾情報管理システム、利用者端末、権利者端末、許諾情報管理方法、および、許諾情報管理プログラム
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
CN105488675B (zh) * 2015-11-25 2019-12-24 布比(北京)网络技术有限公司 一种区块链的分布式共享总账构建方法
CN105976232B (zh) * 2016-06-24 2020-04-28 深圳前海微众银行股份有限公司 资产交易方法和装置
CN106230808A (zh) 2016-07-28 2016-12-14 杭州云象网络技术有限公司 一种基于区块链技术的个人征信系统建设方法
CN106250721A (zh) * 2016-07-28 2016-12-21 杭州云象网络技术有限公司 一种基于区块链的电子版权保护方法
CN106357405A (zh) * 2016-09-19 2017-01-25 弗洛格(武汉)信息科技有限公司 一种基于区块链技术一致性算法的数据管理方法及系统
CN107247749B (zh) * 2017-05-25 2020-08-25 创新先进技术有限公司 一种数据库状态确定方法、一致性验证方法及装置

Also Published As

Publication number Publication date
EP3557452B1 (en) 2021-09-15
JP2020509451A (ja) 2020-03-26
EP3557452A4 (en) 2020-01-22
TWI710916B (zh) 2020-11-21
WO2018214897A1 (zh) 2018-11-29
EP3557452A1 (en) 2019-10-23
AU2018274424A1 (en) 2019-08-01
AU2018274424B2 (en) 2020-07-02
KR102231058B1 (ko) 2021-03-25
CA3049831C (en) 2021-12-14
KR20190096391A (ko) 2019-08-19
TW201901484A (zh) 2019-01-01
PH12019501637A1 (en) 2020-03-16
CN107247749B (zh) 2020-08-25
BR112019014478A2 (pt) 2020-05-26
CA3049831A1 (en) 2018-11-29
RU2725760C1 (ru) 2020-07-06
US20200057760A1 (en) 2020-02-20
MX2019008383A (es) 2019-09-11
SG11201906495TA (en) 2019-08-27
US10789243B2 (en) 2020-09-29
CN107247749A (zh) 2017-10-13

Similar Documents

Publication Publication Date Title
JP6921206B2 (ja) データベース状態決定方法およびデバイスならびに整合性検証方法およびデバイス
JP6804668B2 (ja) ブロックデータ検証方法および装置
JP6675518B1 (ja) サービス要求を処理するための方法およびデバイス
CN107562775B (zh) 一种基于区块链的数据处理方法及设备
AU2018246770B2 (en) Block chain based data processing method and device
TW201837735A (zh) 一種區塊鏈共識方法及裝置
CN111967849A (zh) 一种任务处理流程编排方法、装置及电子设备
TWI694342B (zh) 一種資料快取方法、裝置及系統
WO2021000570A1 (zh) 模型加载方法及系统、控制节点及执行节点
US11144286B2 (en) Generating synchronous digital circuits from source code constructs that map to circuit implementations
CN107016029B (zh) 一种业务数据的处理方法、装置及系统
WO2024001024A1 (zh) 在区块链系统中执行交易的方法、区块链系统和节点
CN113744063B (zh) 区块链中执行交易的方法及装置
JP6622926B2 (ja) 分散型サービス処理の完全性をチェックする方法及び装置
CN112749152A (zh) 智能合约的数据迁移方法、装置及存储介质
CN115033350A (zh) 一种分布式事务的执行方法及装置
CN107645541B (zh) 数据存储方法、装置及服务器
CN107391223B (zh) 一种文件处理方法及装置
CN107135137B (zh) 网络群组识别方法及装置
JP2016045676A (ja) デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
CN115034902A (zh) 记账处理方法及装置
CN116170453A (zh) 针对区块链网络的数据分发方法及装置
CN111611597A (zh) 一种基于区块链的数据访问与写入方法、设备及介质
CN117743472A (zh) 一种存储任务断点同步方法、装置、介质及设备
CN115344410A (zh) 判断事件执行顺序的方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190808

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201026

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20201228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210603

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210603

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210611

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210614

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210727

R150 Certificate of patent or registration of utility model

Ref document number: 6921206

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150