IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ▲騰▼▲訊▼科技(深▲セン▼)有限公司の特許一覧

特許7001843データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス
<>
  • 特許-データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス 図1
  • 特許-データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス 図2
  • 特許-データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス 図3
  • 特許-データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス 図4
  • 特許-データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス 図5
  • 特許-データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス 図6
  • 特許-データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス 図7
  • 特許-データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス 図8
  • 特許-データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-28
(45)【発行日】2022-01-20
(54)【発明の名称】データバックアップ方法並びに、そのコンピュータプログラム及びコンピューティングデバイス
(51)【国際特許分類】
   G06F 16/182 20190101AFI20220113BHJP
   G06F 11/14 20060101ALI20220113BHJP
【FI】
G06F16/182
G06F11/14 648
【請求項の数】 15
(21)【出願番号】P 2020561794
(86)(22)【出願日】2019-09-26
(65)【公表番号】
(43)【公表日】2021-08-26
(86)【国際出願番号】 CN2019108295
(87)【国際公開番号】W WO2020063786
(87)【国際公開日】2020-04-02
【審査請求日】2020-11-02
(31)【優先権主張番号】201811160527.5
(32)【優先日】2018-09-30
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】郭 ▲鋭▼
(72)【発明者】
【氏名】李 茂材
(72)【発明者】
【氏名】王 宗友
(72)【発明者】
【氏名】▲屠▼ ▲海▼涛
(72)【発明者】
【氏名】孔 利
(72)【発明者】
【氏名】周 ▲開▼班
(72)【発明者】
【氏名】▲楊▼ 常青
(72)【発明者】
【氏名】王 楠
(72)【発明者】
【氏名】丁 勇
(72)【発明者】
【氏名】▲時▼ 一防
【審査官】佐賀野 秀一
(56)【参考文献】
【文献】米国特許出願公開第2018/0204191(US,A1)
【文献】米国特許出願公開第2018/0150799(US,A1)
【文献】国際公開第2017/004527(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/182
G06F 11/14
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスが実行するデータバックアップ方法であって、
第1条件を満たす場合、第1ブロックチェーンにおける第1ブロックから使用されていないトランザクション出力情報を照会するステップであって、前記第1ブロックは前記第1ブロックチェーンにおけるすべてのブロックを含む、ステップと、
照会して得られた前記使用されていないトランザクション出力情報に基づいてトランザクション情報を生成するステップであって、前記トランザクション情報は前記使用されていないトランザクション出力情報が属するアカウントアドレスを変更しないトランザクション操作を記載するためのものである、ステップと、
前記トランザクション情報を第2ブロックに記録するとともに、前記第2ブロックを発布し、合意された前記第2ブロックを第2ブロックチェーン上に記録するステップと、
前記第1ブロックチェーンを記憶システムにバックアップし、前記第1ブロックチェーンを削除するステップと、
を含むことを特徴とするデータバックアップ方法。
【請求項2】
前記第1条件は、前記第1ブロックチェーンのブロックの高さがプリセット値に一致することを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記第1条件は、残った記憶領域が第1閾値より低いこと、又は、設定された時間間隔に達すること、又は、設定された操作指令を受け取ることを含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記第2ブロックのブロックの高さと、前記第1ブロックチェーンにおける最後の1つのブロックのブロックの高さが連続的であることを特徴とする請求項1に記載の方法。
【請求項5】
前記第2ブロックに含まれる親ブロックのブロックヘッド固有値は、前記第1ブロックチェーンにおける最後の1つのブロックのブロックヘッド固有値であることを特徴とする請求項1に記載の方法。
【請求項6】
前記第1ブロックチェーンを記憶システムにバックアップするステップは、データバックアップテーブルにおいて前記第1ブロックチェーンにおける各ブロックの識別情報及び各ブロックの前記記憶システムにおける記憶アドレスを記録するステップを含むことを特徴とする請求項1に記載の方法。
【請求項7】
データバックアップテーブルにおいて前記第1ブロックチェーンにおける各ブロックの識別情報及び各ブロックの前記記憶システムにおける記憶アドレスを記録する前記ステップの後、前記方法は、さらに、
前記第1ブロックチェーンを削除した後、前記第1ブロックチェーンにおけるいずれかのブロックにアクセスする場合、前記データバックアップテーブルから、前記ブロックの識別情報に対応する記憶アドレスを照会し、前記記憶アドレスに基づいて、前記記憶システムにおける前記ブロックにアクセスするステップ、又は
前記第1ブロックチェーンを削除した後、前記第1ブロックチェーンにおけるいずれかのブロックのトランザクション情報にアクセスする場合、前記データバックアップテーブルから、前記ブロックの識別情報に対応する記憶アドレスを照会し、前記記憶アドレスに基づいて、前記記憶システムにおける前記ブロックにアクセスし、前記トランザクション情報の識別情報に基づいて、前記ブロックから前記トランザクション情報の内容を照会して取得するステップ
を含むことを特徴とする請求項6に記載の方法。
【請求項8】
請求項1ないし7のいずれか一項に記載のデータバックアップ方法をコンピュータに実行させる、ことを特徴とするコンピュータプログラム。
【請求項9】
コンピューティングデバイスであって、1つ又は複数のメモリと、1つ又は複数のプロセッサとを含み、前記メモリに機械可読命令が記憶され、前記機械可読命令が前記1つ又は複数のプロセッサによってロードされ、
第1条件を満たす場合、第1ブロックチェーンにおける第1ブロックから使用されていないトランザクション出力情報を照会するステップであって、前記第1ブロックは前記第1ブロックチェーンにおけるすべてのブロックを含む、ステップと、
照会して得られた前記使用されていないトランザクション出力情報に基づいてトランザクション情報を生成するステップであって、前記トランザクション情報は前記使用されていないトランザクション出力情報が属するアカウントアドレスを変更しないトランザクション操作を記載するためのものである、ステップと、
前記トランザクション情報を第2ブロックに記録するとともに、前記第2ブロックを発布し、合意された前記第2ブロックを第2ブロックチェーン上に記録するステップと、
前記第1ブロックチェーンを記憶システムにバックアップし、前記第1ブロックチェーンを削除するステップと、
を実行させることを特徴とするコンピューティングデバイス。
【請求項10】
前記第1条件は、前記第1ブロックチェーンのブロックの高さがプリセット値に一致することを含むことを特徴とする請求項に記載のコンピューティングデバイス。
【請求項11】
前記第1条件は、残った記憶領域が第1閾値より低いこと、又は、設定された時間間隔に達すること、又は、設定された操作指令を受け取ることを含むことを特徴とする請求項に記載のコンピューティングデバイス。
【請求項12】
前記第2ブロックのブロックの高さと、前記第1ブロックチェーンにおける最後の1つのブロックのブロックの高さが連続的であることを特徴とする請求項に記載のコンピューティングデバイス。
【請求項13】
前記第2ブロックに含まれる親ブロックのブロックヘッド固有値は、前記第1ブロックチェーンにおける最後の1つのブロックのブロックヘッド固有値であることを特徴とする請求項に記載のコンピューティングデバイス。
【請求項14】
前記1つ又は複数のプロセッサは、
データバックアップテーブルにおいて前記第1ブロックチェーンにおける各ブロックの識別情報及び各ブロックの前記記憶システムにおける記憶アドレスを記録するステップを実行するために用いられることを特徴とする請求項に記載のコンピューティングデバイス。
【請求項15】
前記1つ又は複数のプロセッサは、
前記第1ブロックチェーンを削除した後、前記第1ブロックチェーンにおけるいずれかのブロックにアクセスする場合、前記データバックアップテーブルから、前記ブロックの識別情報に対応する記憶アドレスを照会し、前記記憶アドレスに基づいて、前記記憶システムにおける前記ブロックにアクセスするステップ、又は
前記第1ブロックチェーンを削除した後、前記第1ブロックチェーンにおけるいずれかのブロックのトランザクション情報にアクセスする場合、前記データバックアップテーブルから、前記ブロックの識別情報に対応する記憶アドレスを照会し、前記記憶アドレスに基づいて、前記記憶システムにおける前記ブロックにアクセスし、前記トランザクション情報の識別情報に基づいて、前記ブロックから前記トランザクション情報の内容を照会して取得するステップ
を実行するために用いられることを特徴とする請求項14に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
「関連出願の相互参照」
本願は、2018年9月30日に出願された、出願番号が201811160527.5であり、発明名称が「データバックアップ方法、装置、記憶媒体及びコンピューティングデバイス」である中国特許出願の優先権を主張し、その内容全体が援用により本願に組み込まれる。
【0002】
本願は、コンピュータの技術分野に関し、特に、データバックアップ方法、記憶媒体及びコンピューティングデバイスに関する。
【背景技術】
【0003】
ブロックチェーン技術とは、BT(Blockchain Technology)と略称し、分散型台帳技術とも呼ばれ、インターネットデータベース技術であって、非中央集権、公正かつ透明を特徴とし、人々をデータベース記録に参加させることができるものである。ブロックチェーン技術は、初めてビットコインのトランザクションを実現する基本的技術で、現在、金融など各分野に適用されることになる。ブロックチェーンにおける各ノードデバイスはいずれもブロックチェーン全体上のすべてのデータを記憶することで、大量の記憶領域が占用され、ブロックチェーンシステムの性能に影響を与えることになる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本願の実例は、ブロックチェーンノードの記憶領域を節約し、ブロックチェーンシステム性能を改善するように、以下の技術的解決手段を提供する。
【課題を解決するための手段】
【0005】
本願の実施例にて提供されるデータバックアップ方法は、
【0006】
第1条件を満たす場合、第1ブロックチェーンにおける第1ブロックから使用されていないトランザクション出力情報を照会して取得するステップであって、前記第1ブロックは前記第1ブロックチェーンにおけるすべてのブロックを含む、ステップと、照会して得られた前記使用されていないトランザクション出力情報に基づいてトランザクション情報を生成するステップであって、前記トランザクション情報は前記使用されていないトランザクション出力情報が属するアカウントアドレスを変更しないトランザクション操作を記載するためのものである、ステップと、生成された前記トランザクション情報を第2ブロックに記憶するとともに、前記第2ブロックを発布し、合意された前記第2ブロックを第2ブロックチェーン上に記録するステップと、前記第1ブロックチェーンを自体に接続された記憶システムにバックアップし、前記第1ブロックチェーンを削除するステップと、を含む。
【0007】
いくつかの実例では、前記第1条件は、設定された時間間隔に達することを含む。
【0008】
いくつかの実例では、前記第1条件は、前記第1ブロックチェーンのブロックの高さがプリセット値に一致することを含む。
【0009】
いくつかの実例では、前記第1条件は、残った記憶領域が第1閾値より低いことを含む。
【0010】
いくつかの実例では、前記第1条件は、設定された操作指令を受け取ることを含む。
【0011】
いくつかの実例では、前記第2ブロックのブロックの高さと、前記第1ブロックチェーンにおける最後の1つのブロックのブロックの高さが連続的である。
【0012】
いくつかの実例では、前記第2ブロックに含まれる親ブロックのブロックヘッド固有値は、前記第1ブロックチェーンにおける最後の1つのブロックのブロックヘッド固有値である。
【0013】
いくつかの実例では、上記方法は、さらに、前記第1ブロックチェーンを自体に接続された記憶システムにバックアップする時、データバックアップテーブルにおいて前記第1ブロックチェーンにおける各ブロックの識別情報及びその前記記憶システムにおける記憶アドレスを記録するステップと、前記第1ブロックチェーンを削除した後、前記第1ブロックチェーンにおけるいずれかのブロックにアクセスする場合、前記データバックアップテーブルから、前述した当該ブロックの識別情報に対応する記憶アドレスを照会して得て、前記記憶アドレスに基づいて、記憶システムにおける当該ブロックにアクセスするステップと、を含む。
【0014】
いくつかの実例では、上記方法は、さらに、前記第1ブロックチェーンを削除した後、前記第1ブロックチェーンにおけるいずれかのブロックのトランザクション情報にアクセスする場合、前記データバックアップテーブルから、当該ブロックの識別情報に対応する記憶アドレスを照会して得て、前記記憶アドレスに基づいて、記憶システムにおける当該ブロックにアクセスし、前記トランザクション情報の識別情報に基づいて、当該ブロックから前記トランザクション情報の内容を照会して取得するステップを含む。
【0015】
本願の実例にてさらに提供されるデータバックアップ装置は、第1ブロックから使用されていないトランザクション出力情報を照会して取得するモジュールであって、前記第1ブロックは前記第1ブロックチェーンにおけるすべてのブロックを含む、照会モジュールと、照会して得られた前記使用されていないトランザクション出力情報に基づいてトランザクション情報を生成するモジュールであって、前記トランザクション情報は前記使用されていないトランザクション出力情報が属するアカウントアドレスを変更しないトランザクション操作を記載するためのものである、トランザクション情報モジュールと、生成された前記トランザクション情報を第2ブロックに記憶するとともに、前記第2ブロックを発布し、合意された前記第2ブロックを第2ブロックチェーン上に記録するブロック発布モジュールと、前記第1ブロックチェーンを自体に接続された記憶システムにバックアップし、前記第1ブロックチェーンを削除するバックアップモジュールと、を含む。
【0016】
いくつかの実例では、前記バックアップモジュールは、前記第1ブロックチェーンを自体に接続された記憶システムにバックアップする時に、データバックアップテーブルにおいて前記第1ブロックチェーンにおける各ブロックの識別情報及びその前記記憶システムにおける記憶アドレスを記録し、前記装置は、さらに、前記第1ブロックチェーンを削除した後、前記第1ブロックチェーンにおけるいずれかのブロックにアクセスする場合、前記データバックアップテーブルから、当該ブロックの識別情報に対応する記憶アドレスを照会して得て、前記記憶アドレスに基づいて、記憶システムにおける当該ブロックにアクセスするデータアクセスモジュールを含む。
【0017】
いくつかの実例では、前記データアクセスモジュールは、前記第1ブロックチェーンを削除した後、前記第1ブロックチェーンにおけるいずれかのブロックのトランザクション情報にアクセスする場合、前記データバックアップテーブルから、当該ブロックの識別情報に対応する記憶アドレスを照会して得て、前記記憶アドレスに基づいて、記憶システムにおける当該ブロックにアクセスし、前記トランザクション情報の識別情報に基づいて、当該ブロックから前記トランザクション情報の内容を照会して取得する。
【0018】
本願の実例にてさらに提供される記憶媒体は、機械可読命令が記憶され、前記機械可読命令が1つ又は複数のプロセッサによって実行される時に,前記1つ又は複数のプロセッサに、
第1条件を満たす場合、第1ブロックチェーンにおける第1ブロックから使用されていないトランザクション出力情報を照会するステップであって、前記第1ブロックは前記第1ブロックチェーンにおけるすべてのブロックを含む、ステップと、
照会して得られた前記使用されていないトランザクション出力情報に基づいてトランザクション情報を生成するステップであって、前記トランザクション情報は前記使用されていないトランザクション出力情報が属するアカウントアドレスを変更しないトランザクション操作を記載するためのものである、ステップと、
前記トランザクション情報を第2ブロックに記録するとともに、前記第2ブロックを発布し、合意された前記第2ブロックを第2ブロックチェーン上に記録するステップと、
前記第1ブロックチェーンを記憶システムにバックアップし、前記第1ブロックチェーンを削除するステップと、をロードさせて実行させる。
【0019】
本願の実例にてさらに提供されるコンピューティングデバイスは、1つ又は複数のメモリと、1つ又は複数のプロセッサとを含み、前記メモリに機械可読命令が記憶され、前記機械可読命令が前記1つ又は複数のプロセッサによってロードされ、
第1条件を満たす場合、第1ブロックチェーンにおける第1ブロックから使用されていないトランザクション出力情報を照会するステップであって、前記第1ブロックは前記第1ブロックチェーンにおけるすべてのブロックを含む、ステップと、
照会して得られた前記使用されていないトランザクション出力情報に基づいてトランザクション情報を生成するステップであって、前記トランザクション情報は前記使用されていないトランザクション出力情報が属するアカウントアドレスを変更しないトランザクション操作を記載するためのものである、ステップと、
前記トランザクション情報を第2ブロックに記録するとともに、前記第2ブロックを発布し、合意された前記第2ブロックを第2ブロックチェーン上に記録するステップと、
前記第1ブロックチェーンを記憶システムにバックアップし、前記第1ブロックチェーンを削除するステップと、を実行させる。
【0020】
本願における技術的解決手段をより明確に説明するために、以下、実施例の説明に使用する必要がある図面について、簡単に紹介し、明らかに、以下の説明における図面は、本願のいくつかの実例に過ぎず、当業者であれば、創造的な労働をせず、これらの図面に基づいて、他の図面を取得することができる。
【図面の簡単な説明】
【0021】
図1】本願の実例に係るシステムアーキテクチャ図である。
図2】ブロックのデータ構造図である。
図3】本願の実例におけるブロックチェーンの部分概略図である。
図4】本願の実例の方法のフローチャートである。
図5】本願の実例において生成されたトランザクション情報の例示的な図である。
図6】本願の実例においてブロックを作成する概略図である。
図7】本願の実例においてブロックに記憶されたトランザクション情報の模式図である。
図8】本願の実例における装置の構造概略図である。
図9】本願の実例におけるコンピューティングデバイスの構成を示す概略図である。
【発明を実施するための形態】
【0022】
説明を簡潔かつ直感的にするために、以下、いくつかの代表的な実施例を説明することにより、本発明の解決手段について説明する。しかし、すべての実施形態が本明細書に示されるわけではない。実施例における大量の詳細は、本発明の解決手段を理解するための一助となるものであり、本発明の技術的解決手段を実現する時にこれらの詳細に限定されるものではない。本発明の解決手段を不必要に曖昧にすることを避けるために、いくつかの実施形態は詳細に説明されておらず、フレームのみが示されている。以下、「含む」は、「含むが、これらに限定されるものではない」、「……に基づく」は、「少なくとも……に基づくが、……のみに基づくことに限定されるものではない」を意味する。明細書及び特許請求の範囲において「含む」とは、ある程度で少なくとも含むことを意味し、後に言及される特徴に加えて他の特徴が存在してもよいと解釈されるべきである。
【0023】
本願は、図1に示すブロックチェーンシステム100に適用できるデータバックアップ方法を提供する。図1に示すように、当該システム100は、少なくとも、アプリケーション層101と、ネットワーク層103と、データ層104とを含み、さらに、拡張層102などを含む。アプリケーション層101は、ユーザに向けてアプリケーションクライアント11と12(例えば、デジタルアセットトランザクションに用いる電子ウォレットクライアントなど)及びトランザクションプラットフォーム13を提供する。ただし、アプリケーションクライアント11と12は、PC機、携帯電話、タブレット、パームトップ、ウルトラブック、ウェアラブルデバイスなどを含んでもよい端末デバイス上で実行する。ユーザは、アプリケーションクライアント11と12が提供するユーザインタフェース(userinterface、UI)を操作することにより、1台のサーバ又は1つのサーバグループを含んでもよいし、分散型システムを含んでもよいトランザクションプラットフォーム13にログインして、例えばデジタルアセットトランザクション、共有台帳査閲など、各種のトランザクション操作を完了することができる。拡張層102は、スマートコントラクトなどのサイドチェーンプリケーションを含み、さらに、例えば文書、ピクチャー、ビデオなどのユーザデータファイルの記憶及び共有機能を含んでもよいアプリケーションサービス拡張機能を提供する。ユーザは、アプリケーションクライアント11と12が提供するUIを操作することにより、スマートコントラクト署名、データファイルの記憶及び共有などの機能を、拡張層102を介して実現することができる。ネットワーク層103は、各地域に分布している複数のブロックチェーンノード14を含み、これらのノード14はブロックチェーンネットワークを構成し、各ノード14は、例えば、デスクトップパソコン、ノートパソコン、タブレットなど、ピアツーピア通信機能を有するコンピューティングデバイスであってもよく、これらのブロックチェーンノード14はピアツーピア(peer to peer、P2P)ネットワークを構成し、各ノード14はいずれも1つのブロックチェーン15の完全なデータを記憶する。ただし、ネットワーク層103は、各ノード14の間の通信を実現するために用いられ、ノード14の間のP2Pネットワーキングメカニズム、データ伝播メカニズム、検証メカニズムなどをカプセル化。ブロックチェーンネットワークは、本質的にP2Pネットワークであり、各ノード14は、情報を受信し、また、情報を生成し、ノード14の間は、1つの共通のブロックチェーンを持って通信を保持する。1つのブロックチェーンネットワークにおいて、各ノード14は新しいブロックを作成することができ、新しいブロックが作成された後、ブロードキャストの形式で他のノードに通知し、他のノードはこのブロックを検証し、ノード検証が通った場合、この新しいブロックは、ブロックチェーン上に添加されることになる。データ層104は、ブロックチェーン15のデータ構造をカプセル化する。図1に示すように、1つのブロックチェーン15は、複数のブロック(ブロック0~ブロックn)を連鎖してなされる。初めて構築されるブロック0は「ジェネシスブロック」であり、その後、一定のルールで作成されるデータ構造が同じのブロックは、チェーン式の構造で順次接続されてメインチェーンを形成する。実行時間が長くなるに伴い、新しいブロックは、検証が通った後に、メインチェーン上に絶えず添加されると、メインチェーンも絶えず延長されることになる。
【0024】
図1はブロックチェーンシステム100の一部を示し、実際に使用する際に、ネットワーク層103の上に、さらに合意層、激励層などがある。ただし、合意層は、分散性の高いノード14が非中央集権のシステムにおいてブロックデータの有効性に対して効果的に合意するように、合意メカニズムをカプセル化し、つまり、すべてのノード14がどのように合意して、1つのトランザクションレコードセットの有効性を確認するかを約束し、これは、確認手段であり、また改ざん防止手段である。よく使用されている合意メカニズムは、主に、プルーフオブワーク(Proof of Work)、プルーフオブステーク(Proof of Stake)、デリゲーテッドプルーフオブステーク(Delegated Proof of Stake)である。
【0025】
ブロックチェーンシステムにおいて、データはファイルの形式で永久的に記録され、これらのファイルはブロック(Block)と呼ばれる。1つのブロックは、一定の期間に発生するトランザクションレコードセットを含み、かつ、当該トランザクションレコードセットが前のブロックに記録されていなく、各ブロックは、作成される前に発生したイベントを記録する。作成されるブロックは順次連鎖され、通常、新しいブロックはブロックチェーンの尾部に添加されて1つ前のブロックに連鎖される。ただし、トランザクション(Transaction)は、ユーザのトランザクションシステムでの1回の操作を代表するため、台帳状態を1回変更すると、レコードを台帳に1つ添加することになり、ブロックは、一定の期間に発生するトランザクション及び状態結果を記録するもので、現在の台帳状態に対する1回の合意であり、チェーン(Chain)は、1つ1つのブロックが作成時間順序に従って並列されてなるもので、台帳状態変化全体のロギングである。
【0026】
ブロックは、トランザクションを記録するデータ構造である。各ブロックは、親ブロック、マイニング競争、トランザクションデータ検証を連鎖するための情報を記録するブロックヘッダと、前の期間におけるトランザクション情報を記録するブロック体からなり。図2は、ブロック200Aのデータ構造を示す。図2に示すように、ブロック200Aは、ブロックヘッダ21とブロック体22とを含む。ブロック体22は、トランザクションの数と、例えば、トランザクション1、トランザクション2、…、トランザクションmのトランザクション情報である一定の期間に発生する複数のトランザクションの情報とを記録する。ブロックヘッダ21は、以下の情報フィールドを記録する。
【0027】
1、ソフトウェア及びプロトコル関連バージョン情報を識別するためのバージョン番号。
【0028】
2、親ブロックハッシュ値であって、ブロック200Aの親ブロックのブロックヘッダハッシュ値で、この値により、各ブロックは首尾が接続されて、ブロックチェーンを形成し、かつ、この値は、ブロックチェーンの安全性に極めて重要な役割を果たすもの。
【0029】
3、Merkleルートであって、ブロック体22におけるすべてのトランザクション情報のハッシュ値により、また、逐次2つごとにハッシュして算出される数値で、主に、1つのトランザクションがこのブロックに存在するか否かを検証するためのもの。
【0030】
4、タイムスタンプであって、当該ブロック200Aの作成時間を、秒単位まで精確に記録するもの。
【0031】
5、当該ブロック200Aの関連数学問題の難易目標値である難易度。
【0032】
6、当該ブロック200Aの関連数学問題を解く答案を記録する値であるナンス(Nonce)。
【0033】
ブロック200Aをブロックチェーンに追加した後、すべてのマイナー(すなわち、各ブロックチェーンノード14)は、以下の1~5を含む、次のブロックの生成動作を開始する。
【0034】
1、ローカルメモリにおけるトランザクション情報をブロック体内に記録する。
【0035】
2、ブロック体においてこのブロックにおけるすべてのトランザクション情報のMerkleツリーを生成し、Merkleツリーのルートの値(すなわち、Merkleルート)をブロックヘッダ内に保存する。
【0036】
3、最近、ブロックチェーンに追加されたブロック200Aのブロックヘッダのデータから、SHA256アルゴリズムにより、ハッシュ値を生成して、現在のブロックの親ブロックハッシュ値に書き込む。
【0037】
4、現在の時間をタイムスタンプフィールドに保存する。
【0038】
5、難易度フィールドは、ネットワーク全体の絶えず変化している全体の計算総量に応対するように、前の期間におけるブロックの平均的な生成時間に基づいて調整し、計算総量が増えると、システムは数学問題の難易度を上げることで、次のブロックの完成予定時間が一定の時間内にあるようにする。
【0039】
1つのブロックについては、ブロックヘッダハッシュ値は1つのブロックを唯一に識別でき、あらゆるノード14は、ブロックヘッダに対してハッシュ計算を行うことにより、当該ブロックヘッダハッシュ値を独立で取得できる。実際には、ブロックヘッダハッシュ値は本ブロックのデータ構造内に含まれず、ブロックヘッダハッシュ値は、当該ブロックがあるノード14によってブロックチェーンネットワークから受信する時に、当該ノード14によって算出されるものである。ブロックヘッダハッシュ値は、索引の便宜上、また磁気ディスクからブロックをより速く検索するように、ブロックメタデータの一部として1つの独立したデータベーステーブルに記憶される可能性がある。また、ブロックは、ブロックチェーンにおいて、ブロックチェーンにおけるブロックの位置を識別するためのブロック高さ(block height)をさらに有する。1つ目のブロック(すなわち、ジェネスイスブロック)のブロック高さを0、当該ジェネスイスブロックを引用するブロックの高さを1とし、これによって類推すると、その後ブロックチェーンに記憶される各ブロックは、1つ前のブロックより位置が1つ高く、ブロック高さの値は、1つ前のブロックのブロック高さの値に1を加えるものである。ブロックヘッダハッシュ値と異なり、ブロック高さは、ブロックの唯一の識別ではなく、2つ又は2つ以上のブロックは、同じブロック高さを有し、ブロックチェーンにおいて同じ位置を奪う可能性がある。ブロック高さは、ブロックデータ構造の一部ではなく、ブロック内に記憶されるものではない。ノード14は、ブロックチェーンネットワークからのブロックを受信する場合、当該ブロックのブロックチェーンにおける位置(すなわち、ブロック高さ)を動的に識別する。ブロック高さは、速やかな検索の便宜上、メタデータとして1つの索引データベーステーブルに記憶されてもよい。
【0040】
図3は、本願の実例におけるブロックチェーンの部分概略図を示す。図3において、部分のブロックチェーン200Bに含まれる3つのブロック23、24及び25を示し、各ブロックのブロック高さ及びブロックヘッダハッシュ値は、ブロック内部に記憶されないが、ブロック間の連鎖関係を決める。ノード14のローカルデータベースにおけるブロックチェーンメタデータテーブルにおいて、各ブロックのブロック高さ及びブロックヘッダハッシュ値を保存するものとしてもよい。
【0041】
しかしながら、ブロックチェーンにおけるブロックが増えるに伴い、単一のノード14の記憶圧力も増えるため、ノード14を実行させる独立型デバイスにも高い要求がある。
【0042】
本願の実例では、ノード14に適用できる方法であって、いくつかのブロックを自動的にバックアップして、ノード14の記憶圧力を減軽することができるデータバックアップ方法が提供される。図4は、本願の実例の方法のフローチャートを示す。図4に示すように、当該方法300は、ステップS301から開始する。
【0043】
ステップS301において、設定された第1条件を満たす場合、ノード14は、第1ブロックチェーンにおける第1ブロックから、使用されていないトランザクション出力情報を照会して取得する。ここで、前記第1ブロックは前記第1ブロックチェーンにおけるすべてのブロックを含み、つまり、第1ブロックチェーンにおける各ブロックから、それぞれ、使用されていないトランザクション出力情報を照会して得て、さらに、すべての使用されていないトランザクション出力情報を取得する。
【0044】
上記第1条件は、本願の実施例にて提供されるデータバックアッププロセスの開始条件に相当する。いくつかの実例では、前記第1条件は、設定された時間間隔に達する、前記第1ブロックチェーンのブロックの高さがプリセット値に一致する、残った記憶領域が閾値より低い、又は設定された操作指令を受け取るなどのうち、少なくとも一方を含んでもよい。
【0045】
第1条件は設定された時間間隔に達することを含む場合、ノード14は、一定の時間間隔(例えば、1日、1ヶ月など)おきに、データバックアッププロセスを1回開始してもよく、又は設定された複数の時間点(例えば、第1ブロックチェーンの作成時間からの1ヶ月、3ヶ月、6ヶ月など)に、それぞれ、データバックアッププロセスを1回開始する。本願は、時間間隔の具体的な設定方法について限定しない。
【0046】
第1条件は前記第1ブロックチェーンのブロックの高さがプリセット値に一致することを含む場合、ノード14は、第1ブロックチェーンのブロック高さがプリセット値に一致する時に、データバックアッププロセスを1回開始してもよい。本願は、プリセット値の具体的な設定方法について限定しない。
【0047】
第1条件は残った記憶領域が閾値より低いことを含む場合、ノード14は、残った記憶領域が少ない状況で、データバックアッププロセスを開始してもよい。第1条件は設定された操作指令を受け取ることを含む場合、ノード14は、外部で入力される操作指令に応えてデータバックアッププロセスを開始してもよく、例えば、ユーザは、データスクラビング又はバックアップを行う必要がある場合、ノード14がデータバックアッププロセスを開始するように、ノード14に操作指令を入力してもよい。
【0048】
前述した各種の第1条件は、実際のニーズに応じて任意に組み合わせてもよい。
【0049】
いくつかの実例では、ノード14は、第1ブロックチェーンにおけるブロックが増えるに伴い、現在の各ブロックに記録される各トランザクション情報における使用されていないトランザクション出力情報、例えば、ビットコイントランザクションにおける未使用なトランザクション出力(UTXO,Unspent Transaction Output)テーブルを記録するアカウントデータをローカルでメンテナンスする。各UTXOはいずれも1つのノミナルバリュー及びオーナーアドレス(本質的には、暗号学公開鍵のアドレスに定義される)を有する。1つのトランザクションは、1つ又は複数の入力及び1つ又は複数の出力を含む。各入力は、既存のUTXOの引用及びオーナーアドレスに対応する秘密鍵によって作成される暗号学署名を含む。各出力は1つの新しいUTXOを含む。ノード14は、ローカルでメンテナンスするアカウントデータに基づいて、各ブロックに記憶される使用されていないトランザクション出力情報を照会できる。
【0050】
具体的には、アカウントデータにおける使用されていないトランザクション出力情報ごとは、トランザクション番号、ブロック高さ及びブロックヘッダハッシュ値などの情報を含み、したがって、これらの情報に基づいて、使用されていない資産の金額、オーナーアドレスなどのフィールドを含んでもよいトランザクション出力情報をブロックから照会することができる。
【0051】
ステップS302において、ノード14は、照会された使用されていないトランザクション出力情報に基づいて、1つ又は複数のトランザクション情報を生成し、生成されるトランザクション情報は、上述した使用されていないトランザクション出力情報が属するアカウントアドレスを変更しないトランザクション操作を説明するために用いられ、自分が自分に振り替えをするトランザクション操作(トランザクションのロール操作又はおつり操作とも呼ばれる)とも言える。ただし、1つのトランザクション情報は、少なくとも1つのトランザクション入力情報と、少なくとも1つのトランザクション出力情報を含み、前記少なくとも1つのトランザクション入力情報は、それぞれ照会された少なくとも1つの使用されていないトランザクション出力情報を引用し、各トランザクション入力情報に対応するトランザクション出力情報は、それが引用する上述した使用されていないトランザクション出力情報を含むことで、自分が自分に振り替えをするトランザクション操作を代表する。ここで、ノード14は、複数の使用されていないトランザクション出力情報に基づいて、1つのトランザクション情報を生成することができ、実現に必要なものに応じて、1つ以上のトランザクション情報を生成することもできる。例えば、5つの使用されていないトランザクション情報が照会されると、この5つの使用されていないトランザクション情報に対するトランザクションのロール操作をそれぞれ説明する5つのトランザクション操作記録(5組のトランザクション入力情報とトランザクション出力情報)を含むトランザクション情報を1つ生成してもよい。各トランザクション情報は、1つ又は複数のトランザクション操作記録を含むトランザクション情報を他の数生成してもよく、これらのトランザクション情報は合計で5つのトランザクション操作記録を含み、この5つの使用されていないトランザクション情報に対するトランザクションのロール操作を説明できる。
【0052】
図5に示す例において、照会された使用されていないトランザクション出力情報はUTXO1~UTXO5を含み、3つのトランザクション情報TX1~TX3を生成できる。ただし、TX1は、UTXO1及びUTXO2をそれぞれ引用する2つのトランザクション入力情報Input11及びInput12を含み、Input11及びInput12はそれぞれトランザクション出力情報Output11及びOutput12に対応し、Output11はUTXO1を含み、Output12はUTXO2を含み、つまり、数及びアドレス上に、Output11とUTXO1は同じであり、Output12とUTXO2は同じである。TX2は、UTXO3を引用するトランザクション入力情報Input21を含み、Input21はトランザクション出力情報Output21に対応し、Output21はUTXO3を含み、Output21及びUTXO3は、数及びアドレス上に、同じである。TX3はUTXO4及びUTXO5をそれぞれ引用する2つのトランザクション入力情報Input31及びInput32を含み、Input31及びInput32はそれぞれトランザクション出力情報Output31及びOutput32に対応し、数及びアドレス上に、Output31とUTXO4は同じであり、Output32とUTXO5は同じである。このように、UTXO1~UTXO5がそれぞれ代表する使用されていない資産の金額をオーナー自身に振り替え、つまり、このようなトランザクション操作は、資産のオーナーを変更し、アカウントデータを本質的に変更することができない。
【0053】
いくつかの実施例では、ノード14は、照会された使用されていないトランザクション出力情報に基づいて、1つ又は複数のトランザクション情報を生成する時に、各トランザクション情報に対して、当該トランザクション情報内に含まれる使用されていないトランザクション出力情報のロール回数を賦値してもよく、ここで、ロール回数とは、いずれかの使用されていないトランザクション出力情報に対して、上記トランザクションのロール操作を実行する回数である。
【0054】
つまり、1回のトランザクションのロール操作を完成するたびに、1つ又は複数のトランザクション情報の生成に伴い、ノード14は、各トランザクション情報における各使用されていないトランザクション出力情報のロール回数を、元の値に1を加えて得られる数値にし、いずれかの使用されていないトランザクション出力情報が使用されると、この使用されたトランザクション出力情報のロール回数を0にし、これにより、各使用されていないトランザクション出力情報のロール回数をメンテナンスすることにより、各使用されていないトランザクション出力情報の「ライブネス」を如実に示すことができ、ロール回数が高いほど、この使用されていないトランザクション出力情報はすでにトランザクションのロール操作が複数回連続して実行されるが、相変わらず使用されていないことを意味し、つまり、この使用されていないトランザクション出力情報のライブネスが低いことが説明され、したがって、ロール回数を使用されていないトランザクション出力情報に対応する「年齢」とも呼ばれる。
【0055】
ステップS303において、ノード14は、ステップS302で生成された1つ又は複数のトランザクション情報を新しいブロック(すなわち、第2ブロック)に記録するとともに、新しいブロックを発布する。新しいブロックは、合意された後に、第2ブロックチェーン上に記録されることになる。具体的な合意メカニズムについて、本明細書は詳しく説明しない。また、ノード14は、ステップS301で照会された1つ又は複数のブロック(すなわち、第1ブロック)がある第1ブロックチェーンを、ノード14に接続された記憶システム(例えば、ハードディスク、磁気ディスク、集中型又は分散型のデータベースシステムなどテムなど)にバックアップする。
【0056】
ステップS303において、ノード14は、第1ブロックにおける使用されていないトランザクション出力情報に対して、ロールトランザクション操作を行った後、前の第1ブロックチェーンを削除し、その後、新しいブロックチェーン(第2ブロックチェーン)をメンテナンスすることで、この2つのブロックチェーンの間は一定の関連性を有することになる。
【0057】
いくつかの実例では、上記第2ブロックのブロック高さと第1ブロックチェーンにおける最後の1つのブロックのブロック高さは連続してもよい。例えば、第1ブロックチェーンは10個のブロック(ブロック高さはそれぞれ1~10)を有し、この10個のブロックから、使用されていないトランザクション出力情報を照会して取得するとともに、ロールトランザクション操作を行った後、高さが11の新しいブロック(すなわち第2ブロック)を生成することができ、第2ブロックチェーンの初期ブロック高さは11であり、第1ブロックチェーンにおける最後の1つのブロックのブロック高さ10と連続性を有する。
【0058】
いくつかの実例では、上記第2ブロックに含まれる親ブロックのブロックヘッダ固有値は、前記第1ブロックチェーンにおける最後の1つのブロックのブロックヘッダ固有値である。例えば、第1ブロックチェーンは10個のブロックを有し、この10個のブロックから、使用されていないトランザクション出力情報を照会して取得するとともに、ロールトランザクション操作を行った後、新しいブロック(すなわち第2ブロック)を生成でき、第2ブロックの親ブロックは、第1ブロックチェーンにおける最後の1つのブロックであり、第2ブロックのブロックヘッダに記録される親ブロックのブロックヘッダ固有値(例えばブロックヘッダハッシュ値)は、第1ブロックチェーンにおける最後の1つのブロックのブロックヘッダの固有値である。
【0059】
いくつかの実例では、ノード14は、第1ブロックチェーンを記憶システムにバックアップした時に、ローカルのバックアップデータテーブルにおいて、すでにバックアップされた第1ブロックチェーンにおける各ブロックの識別情報(ブロック高さ、ブロックヘッダハッシュ値など)及びすでにバックアップされた第1ブロックチェーンにおける各ブロックの上記記憶システムにおける記憶アドレスを記録する。このように、ノード14はすでにバックアップされた第1ブロックチェーンにおけるいずれかのブロックにアクセスする必要がある場合、データベーステーブルにおける情報をバックアップすることにより、記憶システムから目標ブロックを照会してもよく、目標ブロックをノード14内に回復してもよい。
【0060】
いくつかの実例では、第1ブロックチェーンを削除した後、第1ブロックチェーンにおけるいずれかのブロックのトランザクション情報にアクセスする時に、ノード14は、データバックアップテーブルから当該ブロックの識別情報に対応する記憶アドレスを照会して得て、前記記憶アドレスに基づいて、記憶システムにおける当該ブロックにアクセスし、前記トランザクション情報の識別情報(トランザクション番号、ブロック高さ、ブロックヘッダハッシュ値など)に基づいて、当該ブロックから前記トランザクション情報の内容(資産残金、アカウントアドレスなど)照会して取得する。
【0061】
上記実例では、ノード14は、上記第1ブロックチェーンにおける各ブロックをバックアップし、これらのブロックは、ノード14に接続されたハードディスク、サーバ又はサーバグループにバックアップされ、これらのバックアップされたブロックに含まれるトランザクション情報がほとんど使用されず、これらのブロックがほとんどアクセスされず、アクセス頻度が低く、コールドなデータと呼ばれてもよく、ノード14はこれらのブロックをコールドにストレージすると言ってもよい。
【0062】
図6は、本願の一例におけるブロック概略図を示す。図6において、ノード14は古いブロックチェーンにおけるブロック1と2を照会して、使用されていないトランザクション出力情報を含むTX14とTX25を得て、TX14とTX25に対して、それぞれトランザクションのロール操作を行って1つのトランザクション情報TXN1を生成する。当該TXN1は2つのトランザクションレコードを含み、この2つのトランザクションレコードはそれぞれTX14とTX25におけるトランザクション出力情報を含む。その後、ノード14は新しいブロックチェーンを作成し、TXN1を新しいブロックチェーンにおける新しいブロックNに含め、古いブロックチェーンを記憶システムにコールドにストレージし、ノード14はブロック1と2を含む旧いブロックチェーンを削除する。
【0063】
図7は、ブロック体内に記録される複数のトランザクション情報の実例を示す。図7において、トランザクション番号が「#1001」のトランザクション情報において、トランザクション出力41は、アカウント「A」の残金が12.5であることを記録し、トランザクション番号が「#2001」のトランザクション情報において、トランザクション出力42は、アカウント「A」の残金が10であり、アカウント「B」の残金が2.5であることを記録し、トランザクション番号が「#3001」のトランザクション情報において、トランザクション出力43は、アカウント「A」の残金が7.5と2.5であり、アカウント「D」の残金が2.5であることを記録し、トランザクション番号が「#4001」のトランザクション情報において、トランザクション出力44は、アカウント「C」の残金が2.5であることを記録する。以上から分かるように、トランザクション出力41と42におけるトランザクション出力情報はいずれも使用切られ、トランザクション出力43における第(1)及び(3)のトランザクション出力情報431と433が使用されず、トランザクション出力44における第(1)のトランザクション出力情報441が使用されず、トランザクション出力情報431と433と441は、トランザクション番号が「#5001」のトランザクション情報を生成でき、このうち、トランザクション出力45は3つの使用されていないトランザクション出力情報431と433と441を含む。このように、トランザクション番号が「#1001」、「#2001」、「#3001」、「#4001」のトランザクション情報におけるトランザクション出力情報はいずれも使用され、後続するトランザクション操作は再び使用することなく、これらが属するブロックチェーンは削除され、新たに生成されたトランザクション番号が「#5001」のトランザクション情報は新しいブロックチェーン内に含まれる。
【0064】
上記実例では、ノード14は、全部ブロックにおける使用されていないトランザクション出力情報に対して、トランザクションのロール操作を行い、これにより、新しいトランザクション情報を生成するとともに、使用されていないトランザクション出力情報における資産の所有権を変更しない。このように、これらのブロックにおけるすべてのトランザクション出力情報が使用されることになり、無用なブロック(すなわち、将来のトランザクション操作にアクセスする必要がないブロック)に属するようにでき、これにより、ノード14はこれらのブロックをバックアップするとともに、ローカルで記憶される第1ブロックチェーンを削除することで、ノード14の記憶領域が節約され、データの正確性が保証され、トランザクション操作の実行に影響を与えず、ブロックチェーンの正常な運転を影響することなく、技術実現が複雑ではなく、システム性能を著しく向上できる。
【0065】
いくつかの実例では、第2ブロックに使用されていないトランザクション出力情報がたくさん存在する可能性があり、上記処理は、多くの記憶領域を空けることができないため、ノード14は、第2条件を満たす場合(例えば、残った記憶領域が目標閾値より低い場合)、さらに、生成された前記第2ブロックチェーンにおけるトランザクション情報うち長く使用されていないトランザクション情報を新しい第3ブロックに合併して、新しい第3ブロックを生成し、これにより、新しい第3ブロックチェーンを生成し、この新しい第3ブロックチェーンをバックアップし、ノード14は、第2ブロックチェーンであるこのブロックがあるブロックチェーンをローカルから削除し、これにより、第2ブロックをバックアップする。ノード14は、この第2ブロックをバックアップする時に、ローカルのバックアップデータテーブルにこの第2ブロックの識別情報(ブロック高さ、ブロックヘッダハッシュ値など)及びこの第2ブロックの上記記憶システムにおける記憶アドレスを記録する。このように、ノード14は、すでにバックアップされた第2ブロックにアクセスする必要がある場合、データベーステーブルにおける情報をバックアップすることにより、記憶システムから目標ブロックを照会してもよく、目標ブロックをノード14内に回復してもよい。このように、ある使用されていないトランザクション出力情報にアクセスする必要がある場合、アカウントデータからそれがあるブロックの識別情報を照会することができ、これにより、バックアップデータテーブルから記憶アドレスを照会でき、このように、記憶システムにおける当該使用されていないトランザクション出力情報にアクセスでき、当該使用されていないトランザクション出力情報が属する第2ブロックチェーンをノード14のローカル記憶に回復することもできる。ある使用されていないトランザクション出力情報を使用する必要がある場合、アカウントデータからそれがあるブロックの識別情報を照会することができ、これにより、バックアップデータテーブルから記憶アドレスを照会でき、このように、記憶システムにおける当該使用されていないトランザクション出力情報における具体的な詳細、例えば、アカウントアドレス、資産残金などにアクセスでき、これにより、照会した情報に基づいて、新しいトランザクション情報を生成し、当該使用されていないトランザクション出力情報を使用する。
【0066】
好ましくは、第2条件を満たす場合、ノード14は各トランザクション情報における使用されていないトランザクション出力情報に対してロール回数をメンテナンスすると、ノード14は、第2ブロックチェーンにおけるロール回数が目標回数より大きい使用されていないトランザクション出力情報(すなわち、ライブネスが低い使用されていないトランザクション出力情報)に対して、第3ブロックに合併する上記ステップを実行し、第3ブロックを発布し、合意メカニズムに基づいて、第3ブロックについて合意し、合意が通った場合、第3ブロックを第3ブロックチェーンに追加し、上記プロセスにおいて、これらのライブネスの低い使用されていないトランザクション出力情報に対して、トランザクションのロール操作をもう1回実行することに相当し、第3ブロックチェーン全体を記憶システムにバックアップするように、これらのライブネスの低い使用されていないトランザクション出力情報を第2ブロックチェーンから第3ブロックチェーンに移動させ、バックアップが完成すると、第3ブロックチェーンを削除できる。ただし、当該目標回数は、いずれか0より大きい数値であってもよく、例えば、当該目標回数は3であってもよい。
【0067】
上記方式により、上記第3ブロックにおけるトランザクション出力情報が依然として使用されていないが、つまり、ブロックチェーンシステム全体にとって、第3ブロックにおけるトランザクション出力情報を呼び出す可能性があるが、ロール回数が目標回数を超えるため、後続するプロセスにおいて第3ブロックにおけるトランザクション出力情報を呼び出す可能性が非常に低いことが示され、こうすると、第3ブロックをバックアップして、第3ブロックを削除すると、ブロックチェーンサービスに影響を与えない上で、ノード14の記憶領域をさらに節約することを保証できる。
【0068】
いくつかの実例では、前記第2ブロックチェーンを削除した後、前記第2ブロックチェーンにおけるいずれかのブロックのトランザクション情報にアクセスする必要がある場合、ノード14は、前記データバックアップテーブルから、当該ブロックの識別情報に対応する記憶アドレスを照会して得て、前記記憶アドレスに基づいて、記憶システムにおける当該ブロックにアクセスし、前記トランザクション情報の識別情報に基づいて、当該ブロックから前記トランザクション情報の内容(例えば、資産残金、アカウントアドレスなど)を照会して取得するものとしてもよい。
【0069】
上記技術的解決手段を採用すれば、ブロックチェーンノードの記憶領域を節約し、記憶リソースの利用率を著しく向上させることができ、使用されていないトランザクション出力情報を既存のブロックからロールアウトし、かつ資産の所有権を変更しないことができ、このように、すでに使用されたトランザクション出力情報からなる各ブロックをコールドにストレージし、このようなブロックがあるブロックチェーンをブロックチェーンノードから削除することができ、このように、限られる記憶領域を、現在のブロックチェーンの実行に対してより価値がある使用されていないトランザクション出力情報の保存に十分に用いることができ、これにより、ブロックチェーンシステムの性能が向上する、ことが理解できる。上記技術的解決手段もブロックチェーンノードに適用しやすく、高い実施可能性を有する。
【0070】
上記本願に提供される方法の実例に基づいて、本願の実例はさらに、ブロックチェーンノード14に適用できるデータバックアップ装置を提供する。図8に示すように、当該データバックアップ装置500は、
第1条件を満たす場合、第1ブロックチェーンにおける第1ブロックから使用されていないトランザクション出力情報を照会して取得するジュールであって、前記第1ブロックは前記第1ブロックチェーンにおけるすべてのブロックを含む、照会モジュール501と、
照会して得られた前記使用されていないトランザクション出力情報に基づいてトランザクション情報を生成するモジュールであって、前記トランザクション情報は前記使用されていないトランザクション出力情報が属するアカウントアドレスを変更しないトランザクション操作を記載するためのものである、トランザクション情報モジュール502と、
生成された前記トランザクション情報を第2ブロックに記憶するとともに、前記第2ブロックを発布し、合意された前記第2ブロックを第2ブロックチェーン上に記録するブロック発布モジュール503と、
前記第1ブロックチェーンを自体に接続された記憶システムにバックアップし、前記第1ブロックチェーンを削除するバックアップモジュール504と、を含む。
【0071】
いくつかの実例では、バックアップモジュール504は、前記第1ブロックチェーンを自体に接続された記憶システムにバックアップする時に、データバックアップテーブルにおいて前記第1ブロックチェーンにおける各ブロックの識別情報及びその前記記憶システムにおける記憶アドレスを記録する。装置500は、さらに、前記第1ブロックチェーンを削除した後、前記第1ブロックチェーンにおけるいずれかのブロックにアクセスする場合、前記データバックアップテーブルから、当該ブロックの識別情報に対応する記憶アドレスを照会して得て、前記記憶アドレスに基づいて、記憶システムにおける当該ブロックにアクセスするデータアクセスモジュール505を含む。
【0072】
いくつかの実例では、データアクセスモジュール505は、前記第1ブロックチェーンを削除した後、前記第1ブロックチェーンにおけるいずれかのブロックのトランザクション情報にアクセスする場合、前記データバックアップテーブルから、当該ブロックの識別情報に対応する記憶アドレスを照会して得て、前記記憶アドレスに基づいて、記憶システムにおける当該ブロックにアクセスし、前記トランザクション情報の識別情報に基づいて、当該ブロックから前記トランザクション情報の内容を照会して取得する。
【0073】
上記各モジュール機能の実現原理は、前文にすでに詳しく説明し、ここで重複する説明は省略する。
【0074】
いくつかの実例では、上記データバックアップ装置500は、各種コンピューティングデバイスにより実行され、当該コンピューティングデバイスのメモリにロードすることができる。ただし、当該コンピューティングデバイスは1つ又は複数のメモリと、1つ又は複数のプロセッサとを含んでもよく、当該メモリに機械可読命令が記憶され、前記機械可読命令が当該1つ又は複数のプロセッサに、
第1条件を満たす場合、第1ブロックチェーンの当該第1ブロックチェーンにおけるすべてのブロックを含む第1ブロックから、使用されていないトランザクション出力情報を照会するステップと、
照会して得られる当該使用されていないトランザクション出力情報に基づいて、トランザクション出力情報が属するアカウントアドレスを変更しないトランザクション操作を説明するためのトランザクション情報を生成するステップと、
当該トランザクション情報を第2ブロックに記録し、当該第2ブロックを発布し、合意された当該第2ブロックを第2ブロックチェーン上に記録するステップと、
当該第1ブロックチェーンを記憶システムにバックアップし、当該第1ブロックチェーンを削除するステップと、をロードさせて実行させる。
【0075】
好ましくは、当該第1条件は、当該第1ブロックチェーンのブロック高さがプリセット値に一致することを含む。
【0076】
好ましくは、当該第1条件は、残った記憶領域が第1閾値より低いこと、又は、設定された時間間隔に達すること、又は、設定された操作指令を受け取ることを含む。
【0077】
好ましくは、当該第2ブロックのブロック高さと当該第1ブロックチェーンにおける最後の1つのブロックのブロック高さが連続的である。
【0078】
好ましくは、当該第2ブロックに含まれる親ブロックのブロックヘッダ固有値は当該第1ブロックチェーンにおける最後の1つのブロックのブロックヘッダ固有値である。
【0079】
好ましくは、当該1つ又は複数のプロセッサは、
データバックアップテーブルにおいて当該第1ブロックチェーンにおける各ブロックの識別情報及び各ブロックの当該記憶システムにおける記憶アドレスを記録するステップを実行するために用いられる。
【0080】
好ましくは、当該1つ又は複数のプロセッサは、
当該第1ブロックチェーンを削除した後、当該第1ブロックチェーンにおけるいずれかのブロックにアクセスする場合、当該データバックアップテーブルから当該ブロックの識別情報に対応する記憶アドレスを照会し、当該記憶アドレスに基づいて、当該記憶システムにおける当該ブロックにアクセスするステップ、又は
当該第1ブロックチェーンを削除した後、当該第1ブロックチェーンにおけるいずれかのブロックのトランザクション情報にアクセスする場合、当該データバックアップテーブルから当該ブロックの識別情報に対応する記憶アドレスを照会し、当該記憶アドレスに基づいて、当該記憶システムにおける当該ブロックにアクセスし、当該トランザクション情報の識別情報に基づいて、当該ブロックから当該トランザクション情報の内容を照会して取得するステップを実行するために用いられる。
【0081】
図9は上記データバックアップ装置500があるコンピューティングデバイスの構成図を示す。図9に示すように、当該コンピューティングデバイスは、1つ又は複数のプロセッサ(CPU)602、通信モジュール604、メモリ606、ユーザインタフェース610及びこれらのコンポーネントを互いに接続するための通信バス608を含む。
【0082】
プロセッサ602は、通信モジュール604により、ネットワーク通信及び/又はローカル通信を実現するように、データを送受信する。
【0083】
ユーザインタフェース610は、1つ又は複数のスピーカ及び/又は1つ又は複数のディスプレイを含む1つ又は複数の出力デバイス612を含む。ユーザインタフェース610も、例えば、キーボード、マウス、音声命令入力ユニット若しくはラウドスピーカ、タッチディスプレイ、タッチセンス入力パネル、ジェスチャ捕捉カメラ又は他の入力ボタン若しくはコントロールなどを含む1つ又は複数の入力デバイス614を含む。
【0084】
メモリ606は、例えば、DRAM、SRAM、DDR RAM、若しくは他のランダムアクセス固体記憶デバイスなど、高速ランダムアクセスメモリであってもよく、又は、例えば1つ又は複数の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュデバイスなどの不揮発性メモリであってよい。
【0085】
メモリ606はプロセッサ602の実行可能な指令セットを記憶し、
各種の基本的システムサービス及びハードウェア関連タスクを実行するためのプログラムを含む操作システム616と、
各種のアプリケーションプログラムを含み、上記各実例における処理プロセスを実現でき、例えば、図8に示す装置500を含んでもよいアプリケーション618とを含む。いくつかの実例では、装置500は図8に示す各モジュール501~505うち一部又は全部のモジュールを含んでもよく、各モジュール501~505には機械実行可能な指令が記憶されていてもよい。プロセッサ602は、メモリ606における各モジュール501~505における機械実行可能な指令を実行することにより、さらに、上記各モジュール501~505の機能を実現できる。
【0086】
なお、上記各プロセス及び各構造図において、すべてのステップ及びモジュールは必要なものではなく、実際のニーズに応じていくつかのステップ又はモジュールを省略してもよい。各ステップの実行順序は一定ではなく、必要に応じて調整できる。各モジュールの分割は、採用する機能上の分割を説明するためのものに過ぎず、実際に実現する際に、1つのモジュールは、複数のモジュールに分割して実現されてもよく、複数のモジュールの機能も同一のモジュールによって実現されてもよく、これらのモジュールは、同一のデバイスに位置してもよく、異なるデバイスに位置してもよい。
【0087】
各実施例におけるハードウェアモジュールは、ハードウェア方式又はハードウェアプラットフォームにソフトウェアを加える方式により実現される。上記ソフトウェアは、機械可読命令を含み、不揮発性記憶媒体に記憶される。したがって、各実施例は、ソフトウェア製品として具現化されてもよい。
【0088】
各例では、ハードウェアは、専門的なハードウェア又は機械可読命令を実行するハードウェアによって実現される。例えば、ハードウェアは、特定の操作を完成するために、専門的に設計された永久性回路又は論理デバイス(例えばFPGA又はASICなど、特定用途向けプロセッサ)であってもよい。ハードウェアも、特定の操作を実行するために、ソフトウェアによって一時的に構成されるプログラマブル論理デバイス又は回路(例えば、汎用プロセッサ又は他のプログラマブルプロセッサ)を含んでもよい。
【0089】
また、本願の各実例は、例えばコンピュータなど、データ処理デバイスによって実行される処理プログラムによって実現されてもよい。当然ながら、データ処理プログラムな本願を構成する。また、通常1つの記憶媒体に記憶されているデータ処理プログラムは、記憶媒体からプログラムを直接読み出すこと、又はデータ処理デバイスの記憶デバイス(例えば、ハードウェアディスク及び/又はメモリ)に取り付け、若しくは複製することにより実行される。したがって、このような記憶媒体も本願を構成し、本願は、さらに、本願の上記方法の実例におけるいずれか1つの実例を実行するために用いられるデータ処理プログラムが記憶されている不揮発性記憶媒体を提供する。
【0090】
上記プロセスにおいて、当該記憶媒体は機械可読命令が記憶されており、前記機械可読命令が1つ又は複数のプロセッサによって実行される場合、当該1つ又は複数のプロセッサに、
第1条件を満たす場合、第1ブロックチェーンの当該第1ブロックチェーンにおけるすべてのブロックを含む第1ブロックから、使用されていないトランザクション出力情報を照会するステップと、
照会して得られる当該使用されていないトランザクション出力情報に基づいて、トランザクション出力情報が属するアカウントアドレスを変更しないトランザクション操作を説明するためのトランザクション情報を生成するステップと、
当該トランザクション情報を第2ブロックに記録し、当該第2ブロックを発布し、合意された当該第2ブロックを第2ブロックチェーン上に記録するステップと、
当該第1ブロックチェーンを記憶システムにバックアップし、当該第1ブロックチェーンを削除するステップと、をロードさせて実行させる。
【0091】
好ましくは、当該第1条件は、当該第1ブロックチェーンのブロック高さがプリセット値に一致すること、又は、残った記憶領域が第1閾値より低いこと、又は、設定された時間間隔に達すること、又は、設定された操作指令を受け取ることを含む。
【0092】
好ましくは、当該第2ブロックのブロック高さと当該第1ブロックチェーンにおける最後の1つのブロックのブロック高さが連続的である。
【0093】
好ましくは、当該第2ブロックに含まれる親ブロックのブロックヘッダ固有値は当該第1ブロックチェーンにおける最後の1つのブロックのブロックヘッダ固有値である。
【0094】
好ましくは、当該1つ又は複数のプロセッサは、
データバックアップテーブルにおいて当該第1ブロックチェーンにおける各ブロックの識別情報及び各ブロックの当該記憶システムにおける記憶アドレスを記録するステップを実行するために用いられる。
【0095】
好ましくは、当該1つ又は複数のプロセッサは、
当該第1ブロックチェーンを削除した後、当該第1ブロックチェーンにおけるいずれかのブロックにアクセスする場合、当該データバックアップテーブルから当該ブロックの識別情報に対応する記憶アドレスを照会し、当該記憶アドレスに基づいて、当該記憶システムにおける当該ブロックにアクセスするステップ、又は
当該第1ブロックチェーンを削除した後、当該第1ブロックチェーンにおけるいずれかのブロックのトランザクション情報にアクセスする場合、当該データバックアップテーブルから当該ブロックの識別情報に対応する記憶アドレスを照会し、当該記憶アドレスに基づいて、当該記憶システムにおける当該ブロックにアクセスし、当該トランザクション情報の識別情報に基づいて、当該ブロックから当該トランザクション情報の内容を照会して取得するステップを実行するために用いられる。
【0096】
図8におけるモジュールに対応する機械可読命令は、コンピュータ上に操作する操作システムなどに、ここで説明される一部又は全部の操作を完成させる。不揮発性コンピュータ可読記憶媒体は、コンピュータ内の拡張シールド内に設置されるメモリに挿入されるか、又はコンピュータに接続される拡張ユニットに設置されるメモリに書き込まれるものとしてもよい。拡張シールド又は拡張ユニット上に取り付けられるCPUなどは、指令に基づいて、実際の操作の一部及び全部を実行することができる。
【0097】
不揮発性コンピュータ可読記憶媒体は、ソフトディスク、ハードディスク、光磁気ディスク、光ディスク(例えば、CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁気テープ、不揮発性メモリカード及びROMを含む。好ましくは、通信ネットワークによってサーバコンピュータからプログラムコードをダウンロードしてもよい。
【0098】
以上をまとめると、特許請求の範囲は、以上説明した実例における実施形態に限定されるものではなく、明細書を全体として最も広く解釈すべきである。
【符号の説明】
【0099】
21 ブロックヘッダ
22 ブロック体
41 トランザクション出力
42 トランザクション出力
43 トランザクション出力
44 トランザクション出力
45 トランザクション出力
100 システム
101 アプリケーション層
102 拡張層
103 ネットワーク層
104 データ層
500 データバックアップ装置
501 照会モジュール
502 トランザクション情報モジュール
503 ブロック発布モジュール
504 バックアップモジュール
505 データアクセスモジュール
602 プロセッサ
604 通信モジュール
606 メモリ
608 通信バス
610 ユーザインタフェース
612 出力デバイス
614 入力デバイス
616 操作システム
618 アプリケーション
図1
図2
図3
図4
図5
図6
図7
図8
図9