JP7093599B2 - ブロックチェーンにおけるスナップショットを管理する方法、コンピュータ・プログラム、スナップショット・ノード、オーディタ・ノードおよびシステム - Google Patents

ブロックチェーンにおけるスナップショットを管理する方法、コンピュータ・プログラム、スナップショット・ノード、オーディタ・ノードおよびシステム Download PDF

Info

Publication number
JP7093599B2
JP7093599B2 JP2019559846A JP2019559846A JP7093599B2 JP 7093599 B2 JP7093599 B2 JP 7093599B2 JP 2019559846 A JP2019559846 A JP 2019559846A JP 2019559846 A JP2019559846 A JP 2019559846A JP 7093599 B2 JP7093599 B2 JP 7093599B2
Authority
JP
Japan
Prior art keywords
time point
snapshot
common data
hash
node
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
JP2019559846A
Other languages
English (en)
Other versions
JP2020520499A (ja
Inventor
広宜 竹内
浩一 上條
清久仁 河内谷
洋 堀井
昇平 大澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2020520499A publication Critical patent/JP2020520499A/ja
Application granted granted Critical
Publication of JP7093599B2 publication Critical patent/JP7093599B2/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/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • 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/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • 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/2358Change logging, detection, and notification
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Description

本発明は、ブロックチェーンにおけるスナップショットの管理に関する。
いくつかのブロックチェーンの実装形態では、ブロックチェーン構造(fabric)のノードは各々、共通データ・セット(「ワールド・ステート」または「台帳」などと呼ばれることがある)の同一のコピーを有する。たとえば、ブロックチェーン構造内にN個のノードが存在するとき、N個のノードは、それぞれのデータベース内に共通データのN個のコピーを有する。
場合によっては、オーディタは、トランザクションの正確性および妥当性を確認する必要がある場合がある。オーディタは、確認プロセスにおいて様々な時点における共通データ・セットにアクセスする必要がある場合がある。
しかし、指定された時点における共通データ・セットを取得するための現行の方法は、多くの計算資源を必要とする点で欠点を有する。
本発明の一実施形態では、コンピュータ・プログラム製品は、複数の第1のノードの少なくとも1つから、第1の時点における共通データと、第1の時点とは異なる第2の時点における共通データとの間の差を取得することと、上記差に基づいて第1の時点における共通データの第1のスナップショットを生成することと、複数の第1のノードの少なくとも1つから第1の時点における共通データのハッシュを取得することと、第1の時点における共通データのハッシュによって第1の時点における第1のスナップショットを検証することとを含む動作を、プロセッサまたはプログラマブル回路に実行させるために、それぞれプロセッサまたはプログラマブル回路によって実行可能な、非一過性のコンピュータ可読媒体またはプログラマブル回路上で具現化される命令を含む。一実施形態では、スナップショット・ノードは、より少ない計算資源によって第1の時点の正しいスナップショットを生成する場合がある。
本発明の一実施形態によれば、上記動作は、様々な時点における共通データの複数のスナップショットを格納することをさらに含む。スナップショット・ノードは、共通データの履歴を格納することができる。
本発明の一実施形態では、上記動作は、第1の時点における共通データの複数のハッシュが同じであるかどうかを判定することをさらに含み、複数の第1のノードの少なくとも1つから第1の時点における共通データのハッシュを取得することは、第1のノードの2つ以上から第1の時点における共通データの複数のハッシュを取得することを含む。一実施形態によれば、スナップショット・ノードは、新しく生成されたスナップショットを検証するための予め検証されたハッシュを使用することができる。
一実施形態によれば、スナップショット・ノードは、コンピュータ・プログラム製品と、スナップショット・ノードおよび複数の第1のノードを含むシステムと、スナップショット・ノードまたはシステムによって実行される方法とを含む。
本発明の一実施形態によれば、コンピュータ・プログラム製品は、スナップショット・ノード(snapshot node)から第1の時点のスナップショットを受け取ることと、第1の時点のスナップショットのハッシュを計算することと、複数の第1のノードの少なくとも1つから、第1の時点における、複数の第1のノードに格納された共通データのハッシュを受け取ることと、第1の時点のスナップショットのハッシュが、第1の時点における共通データのハッシュと同じであるかどうかを判定することとを含む動作を、プロセッサまたはプログラマブル回路に実行させるために、それぞれプロセッサまたはプログラマブル回路によって実行可能な、非一過性のコンピュータ可読媒体またはプログラマブル回路上で具現化される命令を含む。一実施形態によれば、オーディタ・ノード(auditor node)は、第1のノードから受け取ったハッシュによって、スナップショット・ノードから受け取ったスナップショットの正確性を確認することができる。
本発明の一実施形態によれば、上記動作は、複数の第1のノードの少なくとも1つから、第1の時点と第2の時点との間で少なくとも1つの共通トランザクションを受け取ることと、第1の時点のスナップショットのハッシュが、第1の時点における共通データのハッシュと同じであると判定したことに応答して、第1の時点における共通データのスナップショットおよび少なくとも1つの共通トランザクションに基づいて、第2の時点における共通データを生成することとをさらに含む。一実施形態によれば、オーディタ・ノードは、より少ない計算資源によって任意の時点の共通データを正確に復元することができる。
本発明の一実施形態によれば、オーディタ・ノードは、コンピュータ・プログラム製品と、オーディタ・ノードおよび複数の第1のノードを含むシステムと、オーディタ・ノードまたはシステムによって実行される方法とを含む。
発明の概要の節は、必ずしも本発明の実施形態のすべての特徴について説明しているわけではない。本発明の実施形態は、上述した特徴の部分的な組合せを含む場合もある。
以下の説明は、以下の図を参照しながら本発明の好ましい実施形態の詳細を提供する。
本発明の一実施形態による、システムの例示的な構成を示す図である。 本発明の一実施形態による、システムの第1のノードに格納された例示的なデータを示す図である。 本発明の一実施形態による、システムのスナップショット・ノードの例示的な構成を示す図である。 本発明の一実施形態による、システムのオーディタ・ノードの例示的な構成を示す図である。 本発明の一実施形態による第1の動作フローを示す図である。 本発明の一実施形態による第2の動作フローを示す図である。 本発明の一実施形態による、スナップショット・ノードの動作を示す図である。 本発明の一実施形態による、スナップショット・ノードの動作を示す図である。 本発明の一実施形態による、オーディタ・ノードの動作を示す図である。 本発明の一実施形態による、オーディタ・ノードの動作を示す図である。 本発明の一実施形態による、システムとして機能するコンピュータの例示的なハードウェア構成を示す図である。
以下、本発明の例示的な実施形態について説明する。本発明の例示的な実施形態は、特許請求の範囲による発明を限定すべきでなく、本発明の実施形態において説明される特徴の組合せは、必ずしも本発明に不可欠なわけではない。
図1は、本発明の一実施形態による、システム10の例示的な構成を示す。システム10は、全体として、ブロックチェーンなどの分散型データベースである場合があり、複数のノードが、共通データを維持し、トランザクションを処理し、ブロックチェーンを拡大することができる。
システム10は、本発明の以下の実施形態では、いくつかのブロックチェーン技術のうちのハイパーレジャーを実行する場合があるが、システム10は、他のブロックチェーン技術も実行することができる。ハイパーレジャーおよび他のブロックチェーン技術に採用されるいくつかの実装形態は、以下に説明する本発明の実施形態に使用されてもよい。システム10は、第1のノード・プール100、スナップショット・ノード200、およびオーディタ・ノード300を含む。
第1のノード・プール100は、共通トランザクションを格納し、共通トランザクションによって共通データを更新することができる。第1のノード・プール100は、図1に示した、第1のノード110A、第1のノード110B、および第1のノード110Cなどの複数の第1のノードを含む場合がある。第1のノード・プール100は、ブロックチェーンを実行する場合がある。本発明の一実施形態では、第1のノード110A~110Cは、共通トランザクションを処理するための分散型合意アルゴリズムを実行する場合がある。
第1のノード110A~110Cは各々、ハイパーレジャーにおいて承認ピア(validating peer)または非承認ピア(non-validating peer)として実行する場合がある。第1のノード110A~110Cの各々は、それぞれの共通データおよびブロックチェーンを格納するためのメモリを含む場合がある。
スナップショット・ノード200は、様々な時点における共通データの複数のスナップショットを格納するためのメモリを含む場合がある。スナップショットは、ある時点における共通データのコピーである。したがって、スナップショット・ノード200は、様々な時点における共通データのコピーを格納することができる。
オーディタ・ノード300は、監査のために特定の時点における共通データを取得することができる。第1のノード110A~110C、スナップショット・ノード200、およびオーディタ・ノード300は、コンピュータおよびデータベースによって実装される場合がある。
第1のノード110A~110C、スナップショット・ノード200、およびオーディタ・ノード300は、インターネットなどのネットワークを介して互いに通信することができる。第1のノード110A~110C、スナップショット・ノード200、およびオーディタ・ノード300の詳細は、図2~図4に関して説明される。
本発明の一実施形態では、スナップショット200またはオーディタ・ノード300あるいはその両方は、第1のノード100とは異なるノードとして実装される可能性がある。本発明の一実施形態では、第1のノード100の一部は、少なくとも部分的にスナップショット200またはオーディタ・ノード300あるいはその両方として実行する場合がある。
図2は、本発明の一実施形態による、システム10の第1のノード110に格納された例示的なデータを示す。第1のノード110(図1の第1のノード110A~110Cの1つを表す場合がある)は、ブロックチェーン構造のノード・デバイスとして動作する場合がある。
第1のノード110A~110Cは、プロセッサまたはプログラマブル回路あるいはその両方、および命令を集合的に含む1つまたは複数の非法定のコンピュータ可読記憶媒体を含む場合がある。プロセッサまたはプログラマブル回路あるいはその両方は、様々な動作を実行するための命令を実行する場合がある。プロセッサは、コンピュータ可読記憶媒体に格納された命令を実行する場合がある。プログラマブル回路は、その中にプログラミングされた命令を実行する場合がある。本発明の一実施形態では、コンピュータ可読媒体またはプログラマブル回路は、コンピュータ・プログラム製品として提供される場合がある。
本発明の一実施形態では、第1のノード110は、そのメモリ108内に現在の共通データ111および現在の共通データのハッシュ112を格納する場合がある。
第1のノード110は、メモリ108内のブロックチェーンとして複数のブロック113(1)~113(n)を格納する場合もある。各ブロックは、トランザクション115、トランザクション115のハッシュ117、前のブロックのハッシュ116、およびブロックが生成された時刻における共通データのハッシュ112を含む場合がある。たとえば、ブロック(n)113(n)は、前のブロック(n-1)113(n-1)が生成された後に生じたトランザクション115(n)、トランザクション115(n)のハッシュ117(n)、(n-1)番目のブロックのハッシュ116(n-1)、およびブロック(n)が生成された時点tにおける共通データのハッシュ112(n)を含む。
本発明の一実施形態では、第1のノード110は、トランザクション115を受け取り、他の第1のノード110とともに合意アルゴリズムをトランザクションに適用し、ハイパーレジャーなどの別のアルゴリズムに従って合意されたトランザクション115によって共通データ111を更新する。一実施形態では、第1のノード110のメモリ108は、1つまたは複数のデータベース・デバイスによって実装される場合がある。
図3は、本発明の一実施形態による、システム10のスナップショット・ノード200の例示的な構成を示す。
スナップショット・ノード200は、プロセッサまたはプログラマブル回路あるいはその両方、および命令を集合的に含む1つまたは複数のコンピュータ可読媒体を含む場合がある。命令は、プロセッサまたはプログラマブル回路によって実行されるとき、プロセッサまたはプログラマブル回路に、複数の動作セクションとして動作させる場合がある。それに関して、スナップショット・ノード200は、格納セクション210、取得セクション220、生成セクション230、検証セクション240、計算セクション260、および提供セクション290として表される場合がある。
格納セクション210は、様々な時点における共通データの複数のスナップショットを格納することができる。本発明の一実施形態では、格納セクションは、N個の異なる時点における共通データのN個のスナップショットを格納することができる。
格納セクション210は、スナップショット・ノード200の動作に使用される様々なデータ/命令を格納する場合もある。スナップショット・ノード200における1つまたは複数の他の要素(たとえば、取得セクション220、生成セクション230、検証セクション240、計算セクション260、提供セクション290など)は、直接、または必要に応じて格納セクション210を介して、データを通信する場合がある。本発明の一実施形態では、格納セクション210は、スナップショットを格納するための1つもしくは複数のストレージ・ユニット、または様々なデータ/命令を格納するためのメモリ、あるいはその両方を含む。
取得セクション220は、第1のノード・プール100から第1の時点における共通データのハッシュを取得する場合がある。本発明の一実施形態では、取得セクション220は、第1のノード110の2つ以上から第1の時点における共通データの複数のハッシュを取得する場合がある。本発明の一実施形態では、取得セクション220は、複数の第1のノード110の少なくとも1つまたはすべてから共通データの複数のハッシュを取得する場合がある。
取得セクション220は、第1のノード・プール100から、第1の時点における共通データと、第1の時点とは異なる第2の時点における共通データとの間の差を取得することもできる。本発明の一実施形態では、取得セクション220は、複数の第1のノード110の1つまたは複数から、2つの時点における共通データ間の差を取得する場合がある。本発明の一実施形態では、取得セクション220は、その差としてブロック内の1つまたは複数のトランザクションを取得する場合がある。
生成セクション230は、第1の時点における共通データと、第2の時点における共通データとの間の差に基づいて、第1の時点における共通データの第1のスナップショットを生成することができる。生成セクション230は、さらに第2の時点における第2のスナップショットに基づいて第1のスナップショットを生成する場合がある。一実施形態では、生成セクション230は、第1の時点と第2の時点との間の共通データの差を、第2の時点におけるスナップショットに反映させることによって、第1のスナップショットを生成する。生成セクション230は、格納セクション210内の第1のスナップショットを格納することができる。
検証セクション240は、第1の時点における共通データのハッシュによって、第1の時点における第1のスナップショットを検証する。本発明の一実施形態では、検証セクション240は、第1のスナップショットのハッシュが、第1の時点における共通データのハッシュと同じであるかどうかを判定する。
検証セクション240は、複数の第1のノード110から取得された、第1の時点における共通データの複数のハッシュをさらに検証することができる。本発明の一実施形態では、検証セクション240は、第1のノード110から取得された、第1の時点における共通データの複数のハッシュが同じであるかどうかを判定する。
計算セクション260は、生成セクション230によって生成された、第1の時点における共通データの第1のスナップショットのハッシュを計算する。
提供セクション290は、オーディタ・ノード300からある時点におけるスナップショットの要求を受け取り、格納セクション210からその時点のスナップショットを取り出し、要求されたスナップショットをオーディタ・ノード300に提供する。
図4は、本発明の一実施形態による、システム10のオーディタ・ノード300の例示的な構成を示す。
オーディタ・ノード300は、プロセッサまたはプログラマブル回路あるいはその両方、および命令を集合的に含む1つまたは複数の非一過性のコンピュータ可読記憶媒体を含む場合がある。これらの命令は、プロセッサまたはプログラマブル回路によって実行されるとき、プロセッサまたはプログラマブル回路に、複数の動作セクションとして動作させる場合がある。それに関して、オーディタ・ノード300は、格納セクション310、受信セクション320、計算セクション340、判定セクション360、および生成セクション380として表される場合がある。
格納セクション310は、オーディタ・ノード300の動作に使用される様々なデータ/命令を格納することもできる。オーディタ・ノード300における1つまたは複数の他の要素(たとえば、受信セクション320、計算セクション340、判定セクション360、生成セクション380など)は、直接、または必要に応じて格納セクション310を介して、データを通信することができる。格納セクション310は、様々なデータ/命令を格納するためのメモリを含む場合がある。
受信セクション320は、スナップショット・ノード200から第3の時点のスナップショットを受け取る場合がある。受信セクション320は、複数の第1のノード110の少なくとも1つから、第3の時点における共通データのハッシュ、および第3の時点と第4の時点との間で少なくとも1つの共通トランザクションを受け取る場合もある。本発明の一実施形態では、受信セクション320は、第3の時点における共通データのハッシュ、および第3の時点と第4の時点との間の共通トランザクションとして、ブロックの1つまたは複数を受け取る場合がある。
計算セクション340は、スナップショット・ノード200から受け取った第3の時点のスナップショットのハッシュを計算する場合がある。
判定セクション360は、スナップショット・ノード200から受け取った第3の時点のスナップショットを検証する場合がある。本発明の一実施形態では、判定セクション360は、計算セクション340によって計算された第3の時点のスナップショットのハッシュが、受信セクション320によって受け取られた、第3の時点における共通データのハッシュと同じであるかどうかを判定する。
生成セクション380は、第3の時点における共通データのスナップショット、および第3の時点と第4の時点との間の少なくとも1つの共通トランザクションに基づいて、第4の時点における共通データを生成する。生成セクション380は、第3の時点のスナップショットのハッシュが、第3の時点における共通データのハッシュと同じであると判定セクション360が判定したことに応答して、第4の時点における共通データを生成することができる。本発明の一実施形態では、生成セクション380は、共通トランザクションを、第3の時点における共通データに反映させる場合がある。
図5は、本発明の一実施形態による動作フローを示す。図5に示したように、スナップショット・ノード200などのスナップショット・ノードが、S110からS190までの動作を実行する例について説明する。スナップショット・ノードは、S110~S190の動作によって新しいスナップショットを格納する場合がある。
S110では、取得セクション220などの取得セクションは、第1のノード・プール100などの第1のノード・プールの少なくとも1つの第1のノードから、時点tにおける共通データのハッシュを取得する場合がある。時点tにおける共通データのハッシュは、以下、「H(CD(t))」によって表される場合がある。
時点tは、ブロック(n)が生成された時点である。ブロック(n)は、最新のブロックである場合がある。時点tは、第1の時点と呼ばれる場合がある。本発明の一実施形態では、時点tは、現在の時刻と実質的に一致する。一実施形態では、時点tは、所定の時間だけ現在の時刻の前の時刻に一致する。
本発明の一実施形態では、取得セクションは、第1のノード・プール内の第1のノードの2つ以上の各々からH(CD(t))を取得する場合がある。一実施形態では、取得セクションは、第1のノード・プール内のすべての第1のノードからH(CD(t))を取得する場合がある。本発明の一実施形態では、取得セクションは、第1のノード・プール内の1つの第1のノードからH(CD(t))を取得する場合がある。
S120では、取得セクションは、取得セクションが、第1のノード・プール内の所定の数の第1のノードからH(CD(t))を取得したかどうかを判定する。本発明の一実施形態では、所定の数は、第1のノード・プール内のすべての第1のノードの数である場合がある。本発明の一実施形態では、所定の数は、第1のノード・プール内の第1のノードの半分または2/3の数である場合がある。
この判定が肯定である場合、取得セクションは、S130の動作に進む。この判定が否定である場合、取得セクションは、第1のノードからH(CD(t))をさらに受け取ることを待つためにS110に戻る。
S130では、検証セクション240などの検証セクションは、S110において第1のノードから取得された複数のハッシュH(CD(t))を検証する。本発明の一実施形態では、検証セクションは、複数のハッシュH(CD(t))のすべてが同じであるかどうかを判定する。一実施形態では、検証セクションは、所定の数よりも多い複数のハッシュH(CD(t))が同じであるかどうかを判定する。本発明の一実施形態では、所定の数は、(2M+1)/3である場合があるが、ここで、Mは第1のノード・プール内の第1のノードの数である。
S140では、検証セクションは、S130における検証が成功したか否かを判定する。検証が成功した場合、検証セクションは、格納セクション210などの格納セクションに検証されたハッシュH(CD(t))を格納し、取得セクションをS150の動作に進ませる。検証が成功しなかった場合、検証セクションは、S110の動作に戻る。
S150では、取得セクションは、第1のノード・プールから、時点tにおける共通データCD(t)と、時点tn-aにおける共通データCD(tn-a)との間の差ΔCD(t)を取得する。時点tn-aは、第2の時点と呼ばれる場合があり、時点tの前である場合がある。本発明の一実施形態では、時点tn-aは、ブロック(n-a)が生成された時点に一致する場合があるが、変数aは、1または1よりも大きい整数である場合がある。
本発明の一実施形態では、差ΔCD(t)は、時点tと時点tn-aとの間でなされた少なくとも1つの共通トランザクションによる、時点tにおける共通データの更新に由来する。
本発明の一実施形態では、取得セクションは、ブロック(n)、ブロック(n-1)、・・・、ブロック(n-a+1)を取得する場合がある。ブロック(n)は、前のブロック(n-1)が生成された時刻tn-1の後に生じた1つまたは複数のトランザクションを含み、ブロック(n-1)は、ブロック(n-2)が生成された時刻tn-2の後に生じた1つまたは複数のトランザクションを含み、・・・、ブロック(n-a+1)は、ブロック(n-a)が生成された時刻tn-aの後に生じた1つまたは複数のトランザクションを含む。
これらのトランザクションは、CD(t)とCD(tn-a)との間の差に一致する。取得セクションは、差ΔCD(t)として、ブロック(n)、ブロック(n-1)、・・・、ブロック(n-a+1)から、時点tと時点tn-aとの間に生じたこれらのトランザクションを取得する場合がある。
本発明の一実施形態では、取得セクションは、第1のノード・プールのうち、1つまたは複数の第1のノードを無作為に指定し、指定された第1のノードから差ΔCD(t)を受け取る場合がある。一実施形態では、取得セクションは、第1のノード・プールの所定の1つまたは複数の第1のノードから、差ΔCD(t)を受け取る場合がある。
S160では、生成セクション230などの生成セクションは、S150において取得された差ΔCD(t)および時点tn-aにおけるスナップショットSS(tn-a)に基づいて、時点tにおけるスナップショットSS(t)を生成する。本発明の一実施形態では、生成セクションは、格納セクションからスナップショットSS(tn-a)を読み取り、スナップショットSS(t)を得るために、差ΔCD(t)をスナップショットSS(tn-a)に反映させる場合がある。
S170では、計算セクション260などの計算セクションは、S160において生成されたスナップショットSS(t)のハッシュH(SS(t))を計算する。
S180では、検証セクションは、検証されたハッシュH(CD(t))によってスナップショットSS(t)を検証する。本発明の一実施形態では、検証セクションは、S170において計算されたハッシュH(SS(t))が、S130において検証されたハッシュH(CD(t))と同じであるかどうかを判定する場合がある。
ハッシュH(SS(t))がハッシュH(CD(t))と同じであると検証セクションが判定した場合、検証セクションは、S190に進む。ハッシュH(SS(t))がハッシュH(CD(t))と同じでないと検証セクションが判定した場合、検証セクションは、S150に戻る。次いで、S150において、取得セクションは、第1のノード・プール内の他の第1のノードから差ΔCD(t)を再び取得する場合がある。
S190では、格納セクションは、検証されたスナップショットSS(t)を格納する。一実施形態では、格納セクションは、最新のスナップショットとしてスナップショットSS(t)を格納することができる。代替の実施形態では、格納セクションは、スナップショットSS(t)の代わりに/スナップショットSS(t)に加えて、差ΔCD(t)を格納することができる。本発明の一実施形態では、スナップショット・ノードは、スナップショット・ノードがオーディタ・ノードからスナップショットSS(t)の要求を受け取る場合、最初のスナップショットSS(t)およびΔCD(t)、ΔCD(t)、・・・、ΔCD(t)から、任意の時点tにおけるスナップショットSS(t)を計算する。
S190の動作の後、スナップショット・ノードは、S110の動作を再び実行する場合がある。本発明の一実施形態では、スナップショット・ノードは、S110~S190の動作を周期的に実行する場合がある。たとえば、取得セクションは、新しいブロック(n+1)が第1のノードの1つまたは複数によって生成されたことを通知された後、S110の動作を開始する場合がある。
本発明の一実施形態では、スナップショット・ノードは、S120~S140の動作を実行しない場合があり、単一の第1のノードからハッシュH(CD(t))を取得する場合がある。本発明のそのような実施形態では、第1のノードは、ハッシュH(CD(t))をスナップショット・ノードに送る前に、合意アルゴリズムによってハッシュH(CD(t))に関する合意を形成する場合がある。それに関して、取得セクションは、複数の第1のノードによって合意が形成されたハッシュH(CD(t))を取得する場合がある。
図5に関して説明した本発明の実施形態によれば、第1のノードは、共通データのスナップショットを格納する必要がなく、それによって、第1のノードによって要求される計算資源を低減する。加えて、スナップショット・ノードは、ハッシュの検証後、スナップショットを格納するので、スナップショットとして真の共通データを格納することができる。
図6は、本発明の一実施形態による第2の動作フローを示す。図6に示したように、オーディタ・ノード300などのオーディタ・ノードが、S210からS290までの動作を実行する例について次に説明する。オーディタ・ノードは、S210~S290の動作によって任意の時点における共通データを取得する場合がある。
S210では、受信セクション320などの受信セクションは、スナップショット・ノードから時点tk-mにおけるスナップショットを受け取る。時点tは、オーディタ・ノードが必要とするスナップショットの時点である。時点tk-mは、時点tの前である場合がある。時点tk-mは、第3の時点と呼ばれる場合があり、時点tは、第4の時点と呼ばれる場合がある。
本発明の一実施形態では、時点tは、時点tk-mの後にm個のブロックが生成された時点である。本発明の一実施形態では、変数mは、1または1よりも大きい整数である場合がある。たとえば、mは最初に1に設定される。
本発明の一実施形態では、受信セクションは、時点tの情報とともにスナップショットの要求を伝送する。次いで、提供セクション290などの提供セクションは、スナップショット・ノードにおいて、格納セクション210からスナップショットSS(tk-m)を取り出し、スナップショットSS(tk-m)を受信セクションに伝送する。オーディタ・ノードの受信セクションは、スナップショット・ノードの提供セクションからスナップショットSS(tk-m)を受け取る場合がある。
S220では、受信セクションは、時点tk-mからtまでの1つまたは複数のブロックを受け取る。本発明の一実施形態では、受信セクションは、(i)時点tk-m-1とtk-mとの間に生じた1つまたは複数の共通トランザクションと、(ii)時点tk-mにおける共通データのハッシュH(CD(tk-m))とを含む場合がある、時点tk-mにおけるブロック(k-m)を受け取る場合がある。受信セクションは、ブロック(k-m+1)、ブロック(k-m+2)、・・・、ブロック(k)を受け取る場合もある。
本発明の一実施形態では、受信セクションは、第1のノード・プールのうち、1つの第1のノードを無作為に指定し、指定された第1のノードに時点k-mの情報とともにブロックの要求を伝送する場合がある。指定された第1のノードは、ブロック(k-m)、・・・、ブロック(k)をオーディタ・ノードに伝送する場合があり、オーディタ・ノードの受信セクションは、次いで、ブロック(k-m)、・・・、ブロック(k)を受け取る場合がある。本発明の一実施形態では、受信セクションは、第1のノード・プール内の第1のノードの2つ以上からブロック(k-m)、・・・、ブロック(k)を受け取る場合がある。
S230では、計算セクション340などの計算セクションは、S210においてスナップショット・ノードから取得されたスナップショットSS(tk-m)のハッシュH(SS(tk-m))を計算する。
S240では、判定セクション360などの判定セクションは、S220において取得されたブロックによって、S210においてスナップショット・ノードから取得されたスナップショットSS(tk-m)を検証する。一実施形態では、判定セクションは、S230において計算されたハッシュH(SS(tk-m))が、S220において取得されたブロック(k-m)内のハッシュH(CD(tk-m))と同じであるかどうかを判定する。本発明の一実施形態では、判定セクションは、両方のハッシュが同じであれば、検証が成功したと判定し、両方のハッシュが同じでなければ、検証が成功しなかったと判定する。
S250では、検証が成功しなかった場合、判定セクションは、S270に進む。検証が成功した場合、判定セクションは、S290に進む。
S270では、判定セクションは、mにnを加算することによって変数mを更新する。本発明の一実施形態では、nは、1または1よりも大きい整数である場合がある。判定セクションは、更新されたmとともにS210に戻る場合がある。それに関して、S210の次の反復では、受信セクションは、S250においてハッシュH(SS(tk-m))が、ハッシュH(CD(tk-m))と同じでないと判定したことに応答して、スナップショット・ノードから、前のS210においてスナップショットを受け取った時点の前の更新された時点におけるスナップショットを受け取る。本発明の一実施形態では、更新された時点は、第5の時点と呼ばれる場合がある。
S220の次の反復では、受信セクションは、更新された時点に基づいて、第1のノード・プールの少なくとも1つの第1のノードから、1つまたは複数のブロックを受け取り、S220の前の反復における第1のノードとは異なる第1のノードからブロックを受け取る。
S290では、生成セクション380などの生成セクションは、S210において取得された時点tk-mにおけるスナップショットSS(tk-m)、およびS220において取得されたブロックに含まれる、時点tとtk-mとの間の共通トランザクションから、時点tにおける共通データCD(t)を生成する。本発明の一実施形態では、生成セクションは、共通トランザクションをスナップショットSS(tk-m)に反映させることによって、共通データCD(t)を生成する。
図6に関して説明した本発明の実施形態によれば、オーディタ・ノードは、共通データ監査の現行の方法よりも少ない計算資源によってオーディタ・ノードが必要とする、任意の時点における真の共通データを得る場合がある。
図6に関して説明した本発明の実施形態によれば、オーディタ・ノードは、時点tの前の時点tk-mにおけるスナップショットSS(tk-m)およびブロック(k-m)、・・・、ブロック(k)を最初に取得し、時点tk-mにおけるスナップショットSS(tk-m)を検証し、次いで、所望の時点tにおける共通データCD(t)を生成する場合がある。
本発明のいくつかの代替の実施形態では、オーディタ・ノードは、ある時点における共通データを、前の時点におけるスナップショットの代わりに、後の時点におけるスナップショットから生成することができる。本発明の代替の実施形態では、オーディタ・ノードは、時点tの後の時点tk+mにおけるスナップショットSS(tk+m)、および時点tk+mにおける単一のブロック(k+m)を最初に取得することができる。ブロック(k+m)は、時点tk+mにおける共通データのハッシュH(CD(tk+m))、および時点tとtk+mとの間の1つまたは複数のトランザクションを含む場合がある。オーディタ・ノードは、ブロック(k+m)内のH(CD(tk+m))によってスナップショットSS(tk+m)を検証する場合がある。次いで、オーディタ・ノードは、スナップショットSS(tk+m)からのtとtk+mとの間のトランザクションを取り消すことによって時点tにおける共通データCD(t)を生成する場合がある。本発明の一実施形態によれば、オーディタ・ノードは、S220において取得されるブロックの数を最小化する場合がある。
本発明の代替の実施形態では、S250において、ハッシュH(SS(tk-m))が、ハッシュH(CD(tk-m))と同じでないと判定セクションが判定したとき、受信セクションは、S210の後の反復では、スナップショット・ノードから時点tk-mの前の更新された時点におけるスナップショットを受け取る場合がある。本発明の一実施形態では、更新された時点は、第6の時点と呼ばれる場合がある。S220の後の反復では、受信セクションは、第1のノード・プールの少なくとも1つの第1のノードから、更新された時点における共通データのブロック(ハッシュおよびトランザクションを含む)を受け取る場合もある。
本発明のさらなる代替の実施形態では、オーディタ・ノードは、所望の時点tの前の時点tk-mにおけるスナップショットSS(tk-m)、および時点tにおけるブロック(k)を最初に取得する場合がある。次いで、オーディタ・ノードは、スナップショットSS(tk-m)およびブロック(k)内のトランザクションによって、共通データCD(t)を生成し、ブロック(k)内の共通データのハッシュH(CD(t))によって、共通データCD(t)を検証する場合がある。
本発明のさらなる代替の実施形態では、オーディタ・ノードは、所望の時点tの後の時点tk+mにおけるスナップショットSS(tk+m)、ならびに時点tにおけるブロック(k)および時点tk+mにおけるブロック(k+m)を最初に取得する場合がある。オーディタ・ノードは、スナップショットSS(tk+m)およびブロック(k+m)内のトランザクションによって、共通データCD(t)を生成する場合がある。次いで、オーディタ・ノードは、ブロック(k)内の共通データのハッシュH(CD(t))によって、共通データCD(t)を検証する場合がある。
図7は、本発明の一実施形態による、S110における動作などの、共通データのハッシュを取得するスナップショット・ノード200の動作を示す。図7の本発明の実施形態では、スナップショット・ノード200は、スナップショットSS(tn-a)を格納し、S110における第1のノード・プールの第1のノード110A、110B、および110Cから、時点tにおける共通データの複数のハッシュH(CD(t))を取得することができる。スナップショット・ノード200は、次いで、3つの第1のノード(110A~110C)からのこれらのハッシュH(CD(t))を検証することができる。
図8は、本発明の一実施形態による、S150における動作などの、共通データの差を取得するスナップショット・ノード200の動作を示す。図8の本発明の実施形態では、スナップショット・ノード200は、第1のノード・プール100のうち、第1のノード110Bから差ΔCD(t)を取得する場合がある。スナップショット・ノード200は、スナップショットSS(tn-a)および差ΔCD(t)に基づいて、スナップショットSS(t)を生成する場合がある。
図9は、本発明の一実施形態による、S210における動作などの、スナップショットを受け取るオーディタ・ノード300の動作を示す。図9の本発明の実施形態では、オーディタ・ノード300は、時点tをスナップショット・ノード200に伝送し、スナップショット・ノード200からスナップショットSS(tk-m)を受け取る。いくつかの実施形態では、スナップショット・ノード200は、要求された時点tにおけるスナップショットSS(t)を直接提供する場合がある。
図10は、本発明の一実施形態による、S220~290における動作などの、監査の残りの動作を実行するオーディタ・ノード300の動作を示す。図10の本発明の実施形態では、オーディタ・ノード300は、第1のノード・プール100のうち、第1のノード110Bからブロック(k-1)およびブロック(k)を受け取る場合がある。
ブロック(k-1)は、tk-1における共通データのハッシュH(CD(tk-1))、前のブロック(k-2)のハッシュ、および時点tk-2とtk-1との間のトランザクションを含む。ブロック(k)は、時点tにおける共通データのハッシュH(CD(t))、前のブロック(k-1)のハッシュ、および時点tk-1とtとの間のトランザクションを含む。
オーディタ・ノード300は、ブロック(k-1)内の共通データのハッシュH(CD(tk-1))によってスナップショットSS(tk-1)を検証する。オーディタ・ノード300は、スナップショットSS(tk-1)およびブロック(k)内の時点tとtk-1との間のトランザクションから、時点tにおける共通データCD(t)を生成する。
図11は、本発明の一実施形態による、クラウド・サービス利用のために構成された、コンピュータの例示的なハードウェア構成を示す。コンピュータ800内にインストールされたプログラムは、コンピュータ800に、本発明の実施形態の装置またはそれらの1つもしくは複数のセクション(モジュール、構成要素、要素などを含む)として機能させるか、もしくはそれらに関連する動作を実行させるか、または、コンピュータ800に、本発明の実施形態のプロセスもしくはそれらのステップを実行させるか、あるいはその両方を行わせることができる。そのようなプログラムは、コンピュータ800に、本明細書で説明したフローチャートおよびブロック図のブロックのいくつかまたはすべてに関連するいくつかの動作を実行させるためにCPU800-12によって実行される場合がある。
本実施形態によるコンピュータ800は、ホスト・コントローラ800-10によって相互に接続された、CPU800-12、RAM800-14、グラフィックス・コントローラ800-16、および表示デバイス800-18を含む。コンピュータ800は、入力/出力コントローラ800-20を介してホスト・コントローラ800-10に接続された、通信インターフェース800-22、ハードディスク・ドライブ800-24、DVD-ROMドライブ800-26、およびICカード・ドライブなどの入力/出力ユニットも含む。コンピュータは、入力/出力チップ800-40を通して入力/出力コントローラ800-20に接続された、ROM800-30およびキーボード800-42などの旧来の入力/出力ユニットも含む。
CPU800-12は、ROM800-30およびRAM800-14内に格納されたプログラムに従って動作し、それによって、各ユニットを制御する。グラフィックス・コントローラ800-16は、RAM800-14の中またはそれ自体の中に設けられたフレーム・バッファなどの上でCPU800-12によって生成された画像データを取得し、画像データを表示デバイス800-18上に表示させる。
通信インターフェース800-22は、ネットワーク800-50を介して他の電子デバイスと通信する。ハードディスク・ドライブ800-24は、コンピュータ800内のCPU800-12によって使用されるプログラムおよびデータを格納する。DVD-ROMドライブ800-26は、DVD-ROM800-01からプログラムまたはデータを読み取り、RAM800-14を介して、ハードディスク・ドライブ800-24にプログラムまたはデータを提供する。ICカード・ドライブは、ICカードからプログラムおよびデータを読み取り、または、ICカードにプログラムおよびデータを書き込み、あるいはその両方を行う。
ROM800-30は、その内部に、起動時にコンピュータ800によって実行される起動プログラムなど、または、コンピュータ800のハードウェアに応じたプログラム、あるいはその両方を格納する。入力/出力チップ800-40は、パラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポートなどを介して、様々な入力/出力ユニットを入力/出力コントローラ800-20に接続する場合もある。
プログラムが、DVD-ROM800-01またはICカードなどのコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体の例でもある、ハードディスク・ドライブ800-24、RAM800-14、またはROM800-30内にインストールされたコンピュータ可読媒体から読み取られ、CPU800-12によって実行される。これらのプログラム内に記載された情報処理は、コンピュータ800内に読み取られ、プログラムと上述の様々なタイプのハードウェア資源との間の協働をもたらす。装置または方法は、コンピュータ800の使用に応じて情報の操作または処理を実現することによって構成される場合がある。
たとえば、コンピュータ800と外部のデバイスとの間で通信が実行されるとき、CPU800-12は、通信プログラム内に記載された処理に基づいて、通信インターフェース800-22に通信処理を指示するために、RAM800-14にロードされた通信プログラムを実行する場合がある。通信インターフェース800-22は、CPU800-12の制御下で、RAM800-14、ハードディスク・ドライブ800-24、DVD-ROM800-01、またはICカードなどの記録媒体内に設けられた伝送バッファ領域に格納された伝送データを読み取り、読み取られた伝送データを、ネットワーク800-50に伝送するか、または、記録媒体上に設けられた受信バッファ領域などに、ネットワーク800-50から受け取った受信データを書き込む。
加えて、CPU800-12は、ハードディスク・ドライブ800-24、DVD-ROMドライブ800-26(DVD-ROM800-01)、ICカードなどの外部の記録媒体に格納されたファイルまたはデータベースのすべてまたは必要な部分を、RAM800-14内に読み取らせ、RAM800-14上のデータの様々なタイプの処理を実行する場合がある。CPU800-12は、次いで、処理されたデータを外部の記録媒体に再び書き込む場合がある。
様々なタイプのプログラム、データ、テーブル、およびデータベースなどの様々なタイプの情報は、情報処理を受けるために記録媒体内に格納される場合がある。CPU800-12は、本開示全体を通して説明されプログラムの命令シーケンスによって指定された、様々なタイプの動作、情報の処理、条件判断、条件分岐、無条件分岐、情報の検索/置換などを含む、RAM800-14から読み取ったデータの様々なタイプの処理を実行する場合があり、その結果をRAM800-14に再び書き込む。
加えて、CPU800-12は、記録媒体内のファイル、データベースなどの中の情報を検索する場合がある。たとえば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数の項目が、記録媒体内に格納されるとき、CPU800-12は、複数の項目のうちから、第1の属性の属性値が指定される条件に一致する項目を検索する場合があり、項目内に保存された第2の属性の属性値を読み取り、それによって、所定の条件を満足する第1の属性に関連付けられた第2の属性の属性値を得る。
以上に説明したプログラムまたはソフトウェア・モジュールは、コンピュータ800上またはコンピュータ800の近くのコンピュータ可読媒体内に格納される場合がある。加えて、専用の通信ネットワークまたはインターネットに接続されたサーバ・システム内に設けられたハードディスクまたはRAMなどの記録媒体は、コンピュータ可読媒体として使用される可能性があり、それによって、ネットワークを介してプログラムをコンピュータ800に提供する。
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためにコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することができる有形のデバイスである可能性がある。コンピュータ可読記憶媒体は、たとえば、限定はされないが、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁的記憶デバイス、半導体記憶デバイス、またはそれらの任意の適切な組合せであってもよい。コンピュータ可読記憶媒体のより具体的な例の包括的でないリストは、次の、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピ(R)・ディスク、パンチ・カードまたは命令が記録された溝内の突起構造などの機械的にエンコードされたデバイス、およびそれらの任意の適切な組合せを含む。本明細書で使用するコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を通って伝播する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して伝送される電気信号などの一過性の信号自体と解釈されるべきでない。
本明細書で説明したコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワークあるいはその組合せなどのネットワークを介して外部のコンピュータまたは外部の記憶デバイスにダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含んでもよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読記憶媒体内への記憶のために、コンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内に転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、ステート設定データ、または、Smalltalk(R)、C++などのオブジェクト指向のプログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、独立型ソフトウェア・パッケージとして、ユーザのコンピュータ上で部分的にかつリモート・コンピュータ上で部分的に、またはリモート・コンピュータもしくはサーバ上で完全に実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または、接続は、外部のコンピュータに(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)なされてもよい。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために電子回路をカスタマイズするのにコンピュータ可読プログラム命令のステート情報を利用することによってコンピュータ可読プログラム命令を実行してもよい。
本発明の態様は、本発明の実施形態による、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、および、フローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装されることが可能であることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってもよい。これらのコンピュータ可読プログラム命令は、内部に命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含む製品を備えるべく、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに、特定の方式で機能するように指示することができるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータによって実施されるプロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品の考え得る実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能な命令を含む、モジュール、セグメント、または命令の一部を表す場合がある。いくつかの代替の実装形態では、ブロック内に記載された機能は、図に記載された順序がばらばらになって起こる場合がある。たとえば、連続的に示された2つのブロックが、実際は、実質的に同時に実行される場合があり、または、ブロックが、含まれる機能に応じて、逆順に実行されることがある。ブロック図またはフローチャート図あるいはその両方の各ブロック、および、ブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定された機能もしくは動作を実行するか、または専用ハードウェアとコンピュータの命令の組合せを実行する、専用ハードウェア・ベースのシステムによって実施されることが可能であることにも留意されよう。
本発明の実施形態について説明してきたが、本発明の技術的な範囲は、上述の実施形態に限定されない。上述の実施形態に様々な変更および改良を加えることができることは、当業者には明らかである。そのような変更または改良を加えられた実施形態を、本発明の技術的な範囲に含むことができることも、特許請求の範囲から明らかである。
特許請求の範囲、実施形態、または図に示した、装置、システム、プログラム、および方法によって実行される各プロセスの動作、手順、ステップ、および段階は、順序が「~に先立って」、「~の前の」などによって示されない限り、また、前のプロセスからの出力が後のプロセスにおいて使用されない限り、任意の順序で実行することができる。特許請求の範囲、実施形態、または図において「第1の」または「次の」などの言葉を使用してプロセスの流れが記載されていても、プロセスがこの順序で実行されなければならないことを必ずしも意味するわけではない。
以上から明らかになるように、本発明の実施形態により、時系列の入力データに対応するモデルを学習する学習装置は、より高度な表現能力および学習能力を有し、学習動作をより簡単に実行することが可能になる。

Claims (25)

  1. コンピュータが、複数の第1のノードの少なくとも1つの第1のノードから、第1の時点における共通データと、前記第1の時点とは異なる第2の時点における共通データとの間の差を取得することと、
    前記コンピュータが、前記差に基づいて前記第1の時点における前記共通データの第1のスナップショットを生成することと、
    前記コンピュータが、前記複数の第1のノードの少なくとも1つから前記第1の時点における前記共通データのハッシュを取得することと、
    前記コンピュータが、前記第1の時点における前記共通データの前記ハッシュによって前記第1の時点における前記第1のスナップショットを検証することと
    を含む、方法。
  2. 前記コンピュータが、スナップショット・ノードによって、様々な時点における前記共通データの複数のスナップショットを格納することをさらに含む、請求項1に記載の方法。
  3. コンピュータが、様々な時点における共通データの複数のスナップショットを格納するスナップショット・ノードから第3の時点のスナップショットを受け取ることと、
    前記コンピュータが、前記第3の時点の前記スナップショットのハッシュを計算することと、
    前記コンピュータが、前記共通データを格納する複数の第1のノードの少なくとも1つの第1のノードから、前記第3の時点における共通データのハッシュを受け取り、前記複数の第1のノードによって、前記共通データを共通トランザクションを用いて更新することと、
    前記コンピュータが、前記第3の時点における前記スナップショットの前記ハッシュが、前記第3の時点における前記共通データの前記ハッシュと同じであるかどうかを判定することと
    を含む、方法。
  4. コンピュータ・プログラムであって、コンピュータにより実行されると、前記コンピュータに請求項1又は2に記載の方法を動作させるコンンピュータ・プログラム。
  5. 前記動作が、様々な時点における前記共通データの複数のスナップショットを格納することをさらに含む、請求項4に記載のコンピュータ・プログラム。
  6. 前記第1の時点における前記共通データの前記第1のスナップショットが、さらに前記第2の時点における第2のスナップショットに基づいて生成される、請求項5に記載のコンピュータ・プログラム。
  7. 前記差が、前記第1の時点と前記第2の時点との間でなされた少なくとも1つの共通トランザクションによる、前記共通データの更新に由来する、請求項6に記載のコンピュータ・プログラム。
  8. 前記第1の時点が最新の時点である、請求項6又は7に記載のコンピュータ・プログラム。
  9. 前記動作が、
    前記第1の時点における前記共通データの前記第1のスナップショットのハッシュを計算すること
    をさらに含み、
    前記第1のスナップショットを検証することは、前記第1のスナップショットの前記ハッシュが、前記第1の時点における前記共通データの前記ハッシュと同じであるかどうかを判定することを含む、
    請求項4に記載のコンピュータ・プログラム。
  10. 前記動作が、
    前記第1のスナップショットの前記ハッシュが、前記第1の時点における前記共通データの前記ハッシュと同じであると判定したことに応答して、前記第1の時点における前記共通データの前記第1のスナップショットを格納すること
    をさらに含む、請求項9に記載のコンピュータ・プログラム。
  11. 前記動作が、
    前記第1のスナップショットの前記ハッシュが、前記第1の時点における前記共通データの前記ハッシュと同じでないと判定したことに応答して、前記複数の第1のノードの少なくとも1つの別の第1のノードから、前記第1の時点における前記共通データと前記第2の時点における前記共通データとの間の差を取得すること
    をさらに含む、請求項9に記載のコンピュータ・プログラム。
  12. 前記動作が、
    前記第1の時点における共通データの複数のハッシュが同じであるかどうかを判定すること
    をさらに含み、
    前記複数の第1のノードの前記少なくとも1つの第1のノードから、前記第1の時点における前記共通データの前記ハッシュを取得することが、前記第1のノードの2つ以上から、前記第1の時点における前記共通データの前記複数のハッシュを取得することを含む、
    請求項4に記載のコンピュータ・プログラム。
  13. 前記複数の第1のノードの前記少なくとも1つの第1のノードから、前記第1の時点における前記共通データの前記ハッシュを取得することが、前記複数の第1のノードによって合意が形成された、前記第1の時点における前記共通データの前記ハッシュを取得することを含む、請求項4に記載のコンピュータ・プログラム。
  14. コンピュータ・プログラムであって、コンピュータにより実行されると、前記コンピュータに請求項3に記載の方法を動作させるコンンピュータ・プログラム。
  15. 前記動作が、
    前記複数の第1のノードの前記少なくとも1つの第1のノードから、前記第3の時点と第4の時点との間で少なくとも1つの共通トランザクションを受け取ることと、
    前記第3の時点の前記スナップショットの前記ハッシュが、前記第3の時点における前記共通データの前記ハッシュと同じであると判定したことに応答して、前記第3の時点における前記共通データの前記スナップショットおよび前記少なくとも1つの共通トランザクションに基づいて、前記第4の時点における前記共通データを生成することと
    をさらに含む、請求項14に記載のコンピュータ・プログラム。
  16. 前記第3の時点が前記第4の時点の前である、請求項15に記載のコンピュータ・プログラム。
  17. 前記動作が、
    前記第3の時点の前記スナップショットの前記ハッシュが、前記第3の時点における前記共通データの前記ハッシュと同じでないと判定したことに応答して、前記スナップショット・ノードから、前記第3の時点の前の第5の時点におけるスナップショットを受け取ることと、
    前記複数の第1のノードの少なくとも1つから、前記第5の時点における前記共通データのハッシュを受け取ることと
    をさらに含む、請求項16に記載のコンピュータ・プログラム。
  18. 前記第3の時点が前記第4の時点の後にある、請求項15に記載のコンピュータ・プログラム製品。
  19. 前記動作が、
    前記第3の時点の前記スナップショットの前記ハッシュが、前記第3の時点における前記共通データの前記ハッシュと同じでないと判定したことに応答して、前記スナップショット・ノードから、前記第3の時点のの第6の時点におけるスナップショットを受け取ることと、
    前記複数の第1のノードの少なくとも1つから、前記第6の時点における前記共通データのハッシュを受け取ることと
    をさらに含む、請求項16に記載のコンピュータ・プログラム。
  20. スナップショット・ノードであって、
    請求項4に記載の前記コンピュータ・プログラムと、
    前記コンピュータ・プログラムを実行するプロセッサと
    を含む、スナップショット・ノード。
  21. 様々な時点における前記共通データの複数のスナップショットを格納するためのメモリをさらに含む、請求項20に記載のスナップショット・ノード。
  22. システムであって、
    請求項20に記載の前記スナップショット・ノードと、
    前記複数の第1のノードとを含み、
    前記複数の第1のノードは、
    前記共通データを格納すること、および
    前記共通データを共通トランザクションによって更新すること
    を行うように集合的に構成される、システム。
  23. コンピュータであって、
    請求項14に記載の前記コンピュータ・プログラムと、
    前記コンピュータ・プログラムを実行するプロセッサと
    を含む、コンピュータ
  24. 前記複数の第1のノードの前記少なくとも1つの第1のノードから、前記第3の時点と第4の時点との間で少なくとも1つの共通トランザクションを受け取ることと、
    前記第3の時点の前記スナップショットの前記ハッシュが、前記第3の時点における前記共通データの前記ハッシュと同じであると判定したことに応答して、前記第3の時点における前記共通データの前記スナップショットおよび前記少なくとも1つの共通トランザクションに基づいて、前記第4の時点における前記共通データを生成することと
    を含む、請求項23に記載のコンピュータ
  25. システムであって、
    請求項23又は24に記載のコンピュータと、
    前記複数の第1のノードであって、
    前記共通データを格納すること、および
    前記共通データを共通トランザクションによって更新すること
    を行うように集合的に構成された、前記複数の第1のノードと、
    請求項20に記載の前記スナップショット・ノードであって、様々な時点における前記共通データの複数のスナップショットを格納するように構成された、前記スナップショット・ノードと
    を含む、システム。
JP2019559846A 2017-05-03 2017-12-06 ブロックチェーンにおけるスナップショットを管理する方法、コンピュータ・プログラム、スナップショット・ノード、オーディタ・ノードおよびシステム Active JP7093599B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/585,913 US10896165B2 (en) 2017-05-03 2017-05-03 Management of snapshot in blockchain
US15/585,913 2017-05-03
PCT/IB2017/057695 WO2018203119A1 (en) 2017-05-03 2017-12-06 Management of snapshot in blockchain

Publications (2)

Publication Number Publication Date
JP2020520499A JP2020520499A (ja) 2020-07-09
JP7093599B2 true JP7093599B2 (ja) 2022-06-30

Family

ID=64014754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019559846A Active JP7093599B2 (ja) 2017-05-03 2017-12-06 ブロックチェーンにおけるスナップショットを管理する方法、コンピュータ・プログラム、スナップショット・ノード、オーディタ・ノードおよびシステム

Country Status (6)

Country Link
US (3) US10896165B2 (ja)
JP (1) JP7093599B2 (ja)
CN (1) CN110574020B (ja)
DE (1) DE112017007224T5 (ja)
GB (1) GB2575401A (ja)
WO (1) WO2018203119A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10261865B1 (en) 2018-04-27 2019-04-16 Cohesity, Inc. Fast and optimized restore using delta information
CN110020854B (zh) * 2018-11-27 2020-11-17 创新先进技术有限公司 一种基于多个区块链网络的数据存证方法及系统
CN111382119B (zh) * 2018-12-29 2023-08-22 华为技术有限公司 区块数据归档方法及相关设备
WO2020218478A1 (ja) * 2019-04-26 2020-10-29 株式会社シーズ 電子機器、情報処理システム
JP6991427B2 (ja) * 2019-04-26 2022-01-12 株式会社シーズ 電子機器、情報処理システム
CN110138566A (zh) * 2019-05-14 2019-08-16 数字钱包(北京)科技有限公司 验证方法、装置、电子设备及计算机可读存储介质
JP6782331B1 (ja) 2019-05-16 2020-11-11 株式会社日立製作所 バックアップシステム
US11182403B2 (en) * 2019-05-22 2021-11-23 Chainstack Pte. Ltd. Systems and methods of launching new nodes in a blockchain network
CN111886591A (zh) 2019-09-12 2020-11-03 创新先进技术有限公司 日志结构存储系统
CN111837113A (zh) 2019-09-12 2020-10-27 创新先进技术有限公司 日志结构存储系统
US11593316B2 (en) * 2019-10-16 2023-02-28 International Business Machines Corporation Database snapshot for managing state synchronization
US11354198B2 (en) 2019-11-19 2022-06-07 International Business Machines Corporation Snapshot for world state recovery
US11354268B2 (en) * 2020-01-08 2022-06-07 EMC IP Holding Company LLC Optimizing snapshot creation
CN111698278B (zh) * 2020-04-10 2021-06-25 湖南大学 一种基于区块链的多云数据存储方法
US11720453B2 (en) * 2020-04-28 2023-08-08 Akamai Technologies, Inc. High performance distributed system of record with unspent transaction output (UTXO) database snapshot integrity
US20230315579A1 (en) * 2022-03-31 2023-10-05 Rubrik, Inc. Blockchain for cloud data management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004259229A (ja) 2003-02-28 2004-09-16 Seiko Precision Inc データの真正性が保証されるデータベースとそのバックアップシステム及び方法
US20100114832A1 (en) 2008-10-31 2010-05-06 Lillibridge Mark D Forensic snapshot
US20110126008A1 (en) 2009-11-23 2011-05-26 Fujitsu Limited Method and Apparatus for Sharing Documents

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829617B2 (en) * 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
CN102084350B (zh) * 2008-07-02 2013-09-18 惠普开发有限公司 数据的远程副本的验证
US8615489B2 (en) * 2008-08-25 2013-12-24 Vmware, Inc. Storing block-level tracking information in the file system on the same block device
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
JP5772458B2 (ja) * 2011-09-29 2015-09-02 富士通株式会社 データ管理プログラム、ノード、および分散データベースシステム
US20150379510A1 (en) 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US8768977B2 (en) * 2012-07-31 2014-07-01 Hewlett-Packard Development Company, L.P. Data management using writeable snapshots in multi-versioned distributed B-trees
US9633035B2 (en) * 2013-01-13 2017-04-25 Reduxio Systems Ltd. Storage system and methods for time continuum data retrieval
CN103559224A (zh) * 2013-10-18 2014-02-05 华为技术有限公司 一种对元数据对象进行散列的方法及装置
US9529810B2 (en) 2014-02-18 2016-12-27 Ca, Inc. Methods of synchronizing files including synchronized hash map linked lists and related data processing nodes
US10884633B2 (en) * 2015-01-13 2021-01-05 Hewlett Packard Enterprise Development Lp System and method for optimized signature comparisons and data replication
AU2016242888A1 (en) 2015-03-31 2017-11-16 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US10078555B1 (en) * 2015-04-14 2018-09-18 EMC IP Holding Company LLC Synthetic full backups for incremental file backups
US10019452B2 (en) 2015-05-19 2018-07-10 Morgan Stanley Topology aware distributed storage system
US10805393B2 (en) 2015-12-02 2020-10-13 Olea Networks, Inc. System and method for data management structure using auditable delta records in a distributed environment
US20170236120A1 (en) 2016-02-11 2017-08-17 Oracle International Corporation Accountability and Trust in Distributed Ledger Systems
US10812582B2 (en) * 2016-03-10 2020-10-20 Vmware, Inc. Management of applications across nodes using exo-clones
US10810583B2 (en) 2016-04-29 2020-10-20 Digital Asset Holdings Digital asset modeling
SG11201809963XA (en) * 2016-05-11 2018-12-28 Nasdaq Inc Application framework using blockchain-based asset ownership
CN106055597B (zh) 2016-05-24 2022-05-20 布比(北京)网络技术有限公司 数字交易系统、及用于其的账户信息查询方法
US10204341B2 (en) * 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US10705221B2 (en) * 2016-06-08 2020-07-07 The Boeing Company On-board backup and anti-spoofing GPS system
EP3472790A4 (en) * 2016-06-16 2020-01-29 The Bank of New York Mellon SECURING THE DATA INTEGRITY OF TRANSACTIONS PERFORMED
US10216612B1 (en) * 2016-07-01 2019-02-26 Fundi Software Pty Ltd System and method for accessing server information
US10114980B2 (en) * 2016-07-21 2018-10-30 Acronis International Gmbh System and method for verifying data integrity using a blockchain network
US10339014B2 (en) * 2016-09-28 2019-07-02 Mcafee, Llc Query optimized distributed ledger system
US10447480B2 (en) 2016-12-30 2019-10-15 Guardtime Sa Event verification receipt system and methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004259229A (ja) 2003-02-28 2004-09-16 Seiko Precision Inc データの真正性が保証されるデータベースとそのバックアップシステム及び方法
US20100114832A1 (en) 2008-10-31 2010-05-06 Lillibridge Mark D Forensic snapshot
US20110126008A1 (en) 2009-11-23 2011-05-26 Fujitsu Limited Method and Apparatus for Sharing Documents
JP2013511771A (ja) 2009-11-23 2013-04-04 富士通株式会社 ドキュメント共有のための方法及び装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赤羽 喜治,サンプルで学ぶFinTechのコア技術,ブロックチェーン 仕組みと理論,第1版,リックテレコム,2016年10月28日,pp.196-202,ISBN:978-4-86594-040-4

Also Published As

Publication number Publication date
CN110574020A (zh) 2019-12-13
US20180322161A1 (en) 2018-11-08
GB2575401A (en) 2020-01-08
US11403278B2 (en) 2022-08-02
CN110574020B (zh) 2023-05-12
US10896165B2 (en) 2021-01-19
WO2018203119A1 (en) 2018-11-08
US20210089511A1 (en) 2021-03-25
JP2020520499A (ja) 2020-07-09
DE112017007224T5 (de) 2019-12-12
GB201915741D0 (en) 2019-12-11
US10896166B2 (en) 2021-01-19
US20180322160A1 (en) 2018-11-08

Similar Documents

Publication Publication Date Title
JP7093599B2 (ja) ブロックチェーンにおけるスナップショットを管理する方法、コンピュータ・プログラム、スナップショット・ノード、オーディタ・ノードおよびシステム
US10764030B2 (en) Reduction in storage usage in distributed databases
US11836576B2 (en) Distributed machine learning at edge nodes
JP7044447B2 (ja) ブロックチェーン内のデータベース・ハッシュコードの遅延更新
US10078594B2 (en) Cache management for map-reduce applications
US20150324404A1 (en) Probabilistically finding the connected components of an undirected graph
US20140215471A1 (en) Creating a model relating to execution of a job on platforms
CN113168569A (zh) 去中心化分布式深度学习
US10802930B2 (en) Determining a recovery mechanism in a storage system using a machine learning module
US10931749B2 (en) Efficient configuration combination selection in migration
CN106445643A (zh) 克隆、升级虚拟机的方法及设备
US20160196289A1 (en) Determining when a change set was delivered to a workspace or stream and by whom
US10976941B2 (en) Validation of storage volumes that are in a peer to peer remote copy relationship
US11016851B2 (en) Determine recovery mechanism in a storage system by training a machine learning module
WO2022152085A1 (en) Applying changes in a target database system
US20240037439A1 (en) Quantum system selection via coupling map comparison
US10831495B2 (en) Parallelization of numeric optimizers
US20230185791A1 (en) Prioritized data cleaning
Zhang et al. LeoTask: a fast, flexible and reliable framework for computational research

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200420

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200624

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20211011

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211011

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20211011

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: 20220324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20220328

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20220328

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

R155 Notification before disposition of declining of application

Free format text: JAPANESE INTERMEDIATE CODE: R155

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220616

R150 Certificate of patent or registration of utility model

Ref document number: 7093599

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150