(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-06
(54)【発明の名称】ブロックチェーンによるデータ処理方法、装置、機器及びコンピュータプログラム
(51)【国際特許分類】
G06F 16/28 20190101AFI20241129BHJP
G06F 16/185 20190101ALI20241129BHJP
【FI】
G06F16/28
G06F16/185
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023573451
(86)(22)【出願日】2023-08-09
(85)【翻訳文提出日】2023-11-28
(86)【国際出願番号】 CN2023112029
(87)【国際公開番号】W WO2024098862
(87)【国際公開日】2024-05-16
(31)【優先権主張番号】202211383918.X
(32)【優先日】2022-11-07
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】▲劉▼ 区城
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA01
5B175KA04
(57)【要約】
ブロックチェーンによるデータ処理方法、装置、機器及び媒体であって、当該方法はブロックチェーンノードによって実行され、ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得するステップであって、記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、データマッピング関係はデータベースインスタンスのデータタイプを指示し、Nは1超えの正の整数であるステップ(601)と、記憶対象となるブロックチェーンデータを取得した場合、N個のデータベースインスタンスから、M個の候補データベースインスタンスを決定するステップであって、候補データベースインスタンスのデータタイプがブロックチェーンデータにマッチングし、MはN以下の正の整数であるステップ(602)と、データベース配置情報におけるデータシャーディングポリシーに基づいて、ブロックチェーンデータをM個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶するステップ(603)と、を含む。本出願はブロックチェーンノードの記憶能力を向上して、記憶ニーズを満たしている。
【特許請求の範囲】
【請求項1】
ブロックチェーンノードが実行する、ブロックチェーンによるデータ処理方法であって、
前記ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得するステップであって、前記記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、前記データマッピング関係は前記データベースインスタンスのデータタイプを指示し、Nは1超えの正の整数であるステップと、
記憶対象となるブロックチェーンデータを取得した場合、前記N個のデータベースインスタンスからM個の候補データベースインスタンスを決定するステップであって、前記候補データベースインスタンスのデータタイプは前記ブロックチェーンデータにマッチングし、MはN以下の正の整数であるステップと、
前記データベース配置情報におけるデータシャーディングポリシーに基づいて、前記ブロックチェーンデータを前記M個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶するステップと、を含む方法。
【請求項2】
前記ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得する前記ステップは、
前記ブロックチェーンノードに対する起動操作に応答して、前記起動操作が前記ブロックチェーンノードを初めて起動させることを指示する場合、前記ブロックチェーンノードのデータベース配置情報をロードするステップと、
前記データベース配置情報及び前記ブロックチェーンノードの主データベースのデータベースタイプに基づいて、前記N個のデータベースインスタンスを構築するステップと、
各データベースインスタンスと、各データベースインスタンスが所属するハードディスクのデータタイプとの間のマッピング関係を確立するステップと、
前記マッピング関係に基づいて、前記記憶インスタンスマッピングテーブルを生成するステップと、を含む請求項1に記載の方法。
【請求項3】
前記データベース配置情報は記憶パス情報を含み、前記記憶パス情報は、X個のデータタイプに関連付けられるハードディスクセットを指示し、Xは正の整数であり、
前記データベース配置情報及び前記ブロックチェーンノードの主データベースのデータベースタイプに基づいて、前記N個のデータベースインスタンスを構築する前記ステップは、
前記ブロックチェーンノードの主データベースのデータベースタイプを取得するステップと、
前記データベースタイプが第1のタイプに属する場合、前記ブロックチェーンノードが所属するブロックチェーンからスマートコントラストを取得するステップであって、前記スマートコントラストはデータベースインスタンスを構築するステップと、
前記スマートコントラストに基づいて、前記ハードディスクセットにおける各ハードディスクに対してデータベースインスタンスをそれぞれ構築して、前記N個のデータベースインスタンスを取得するステップと、を含む請求項2に記載の方法。
【請求項4】
前記X個のデータタイプは第1のデータタイプ、第2のデータタイプ又は第3のデータタイプのうちの少なくとも1つを含み、前記第1のデータタイプはブロックヘッダーデータタイプを含み、前記第2のデータタイプはトランザクションデータタイプを含み、前記第3のデータタイプはコントラストデータタイプを含み、前記第1のデータタイプのハードディスクの記憶性能は前記第2のデータタイプのハードディスクの記憶性能より低く、前記第1のデータタイプのハードディスクの記憶性能は前記第3のデータタイプのハードディスクの記憶性能より低い請求項3に記載の方法。
【請求項5】
前記スマートコントラストに基づいて、前記ハードディスクセットにおける各ハードディスクに対してデータベースインスタンスをそれぞれ構築する前記ステップは、
前記ハードディスクセットにおける各ハードディスクに対して、前記データベース配置情報に基づいて前記ハードディスクのインスタンス数を決定するステップと、
前記ハードディスクが前記主データベースにおけるローカルデータベースに配置される場合、前記スマートコントラストに基づいて、前記ハードディスクに対して前記インスタンス数に合うデータベースインスタンスを構築するステップと、
前記ハードディスクが前記主データベースにおけるリモートデータベースに配置される場合、前記スマートコントラストに基づいて、前記ハードディスクに対して前記インスタンス数に合うデータベースインスタンスを構築するように、データベースサービスコンポーネントを呼び出するステップであって、前記データベースサービスコンポーネントはリモートデータベースサービスを提供するためのものであるステップと、を含む請求項3に記載の方法。
【請求項6】
前記方法は、
前記データベースタイプが第2のタイプに属する場合、前記データベース配置情報に関連付けられるプロンプト情報を表示するステップと、
前記プロンプト情報に対するトリガー操作に応答して、前記ハードディスクセットにおける各ハードディスクに対してデータベースインスタンスをそれぞれ構築して、前記N個のデータベースインスタンスを取得するステップと、をさらに含む請求項3に記載の方法。
【請求項7】
前記記憶対象となるブロックチェーンデータを取得した場合、前記N個のデータベースインスタンスからM個の候補データベースインスタンスを決定する前記ステップは、
前記ブロックチェーンデータを取得した場合、前記ブロックチェーンデータのデータ情報を決定するステップと、
前記ブロックチェーンデータのデータ情報に基づいて、前記ブロックチェーンデータのデータタイプを決定するステップと、
前記記憶インスタンスマッピングテーブルから、前記ブロックチェーンデータのデータタイプにマッチングするデータタイプを検索し、検索されたデータタイプに対応するデータベースインスタンスを前記候補データベースインスタンスに決定するステップと、を含む請求項1に記載の方法。
【請求項8】
前記データベース配置情報はデータ量閾値及びアクセス頻度閾値を含み、
前記ブロックチェーンデータのデータ情報に基づいて、前記ブロックチェーンデータのデータタイプを決定するステップは、
前記データ情報が、前記ブロックチェーンデータのデータ量が前記データ量閾値に達しておらず、且つ前記ブロックチェーンデータのデータアクセス頻度が前記アクセス頻度閾値に達したことを指示する場合、第1のデータタイプを前記ブロックチェーンデータのデータタイプに決定するステップと、
前記データ情報が、前記ブロックチェーンデータがトランザクションデータに属することを指示する場合、第2のデータタイプを前記ブロックチェーンデータのデータタイプに決定するステップと、
前記データ情報が、前記ブロックチェーンデータがコントラストデータに属することを指示する場合、第3のデータタイプを前記ブロックチェーンデータのデータタイプに決定するステップと、を含む請求項7に記載の方法。
【請求項9】
前記データベース配置情報におけるデータシャーディングポリシーに基づいて、前記ブロックチェーンデータを前記M個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶する前記ステップは、
前記データシャーディングポリシーに基づいて、記憶方向に従って、ハッシュ値空間に対して前記ブロックチェーンデータのデータタイプに関連付けられるハッシュリングを生成するステップと、
各候補データベースインスタンスの第1のキー情報に対してハッシュ計算をそれぞれ行って、各候補データベースインスタンスの前記ハッシュリング上の第1の位置情報を取得するステップと、
前記ブロックチェーンデータの第2のキー情報に対してハッシュ計算を行って、前記ブロックチェーンデータの前記ハッシュリング上の第2の位置情報を取得するステップと、
前記ハッシュリングで前記記憶方向に沿って、前記第2の位置情報と最も近い位置関係を有する第1の位置情報を検索して、検索された第1の位置情報に対応するデータベースインスタンスを前記第1のデータベースインスタンスに決定するステップと、
前記ブロックチェーンデータを前記第1のデータベースインスタンスに記憶するステップと、を含む請求項1に記載の方法。
【請求項10】
前記ブロックチェーンデータは処理対象となるデータを含み、前記方法は、
前記処理対象となるデータに対するトラフィックデータ要求に応答して、データアクセス指令を生成するステップであって、前記データアクセス指令は前記処理対象となるデータにアクセスするための指令であるステップと、
前記N個のデータベースインスタンスから第2のデータベースインスタンスを決定し、前記データアクセス指令及び前記データシャーディングポリシーに基づいて、前記第2のデータベースインスタンスから前記処理対象となるデータにアクセスするステップであって、前記第2のデータベースインスタンスのデータタイプは前記処理対象となるデータにマッチングするステップと、
前記処理対象となるデータに対して前記トラフィックデータ要求が指示するデータ操作を実行するステップと、をさらに含む請求項1に記載の方法。
【請求項11】
前記N個のデータベースインスタンスは、前記ブロックチェーンノードに関連付けられるリモートデータベースに配置され、前記リモートデータベースは、X個のデータタイプに対応するホストクラスタを含み、Xは正の整数であり、1つのデータタイプは1つのホストクラスタに対応し、
前記N個のデータベースインスタンスから第2のデータベースインスタンスを決定し、前記データアクセス指令及び前記データシャーディングポリシーに基づいて、前記第2のデータベースインスタンスから前記処理対象となるデータにアクセスするステップは、
X個のホストクラスタからターゲットホストクラスタを決定し、前記ターゲットホストクラスタに配置されるデータベースインスタンスを前記第2のデータベースインスタンスに決定するステップであって、前記ターゲットホストクラスタのデータタイプは前記処理対象となるデータにマッチングするステップと、
前記データシャーディングポリシーに基づいて、前記第2のデータベースインスタンスから前記処理対象となるデータが所属するトラフィックデータベースインスタンスを決定するステップと、
前記データアクセス指令を、前記ブロックチェーンノードとネットワーク接続関係を有するデータベースプロキシに転送することで、前記データベースプロキシが前記データアクセス指令を前記トラフィックデータベースインスタンスが配置されるデータベースホストノードに送信するようにするステップと、
前記データベースプロキシによって前記データベースホストノードから戻された前記処理対象となるデータを受信するステップと、を含む請求項10に記載の方法。
【請求項12】
前記トラフィックデータ要求はデータアーカイブ要求を含み、前記データアーカイブ要求は、前記処理対象となるデータがトランザクションデータである場合、前記処理対象となるデータに対してアーカイブ処理を行って、
前記処理対象となるデータに対して前記トラフィックデータ要求が指示するデータ操作を実行するステップは、
前記処理対象となるデータのデータ情報及び前記処理対象となるデータのデータアーカイブ条件を取得するステップであって、前記データアーカイブ条件はアーカイブパラメータ閾値を含み、前記アーカイブパラメータ閾値はアーカイブ時間範囲又はアーカイブ頻度閾値のうちの少なくとも1つを含むステップと、
前記データ情報が、前記処理対象となるデータのトランザクションタイムスタンプが前記アーカイブ時間範囲に属するか、又は前記処理対象となるデータのアクセス頻度が前記アーカイブ頻度閾値より小さいことを指示する場合、前記処理対象となるデータが前記データアーカイブ条件を満たしていると決定し、前記処理対象となるデータを前記処理対象となるデータが所属するデータベースからアーカイブデータベースに移転するステップと、を含む請求項10に記載の方法。
【請求項13】
ブロックチェーンノードに配置される、ブロックチェーンによるデータ処理装置であって、
前記ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得するマッピングテーブル取得モジュールであって、前記記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、前記データマッピング関係は前記データベースインスタンスのデータタイプを指示し、Nは1超えの正の整数であるマッピングテーブル取得モジュールと、
記憶対象となるブロックチェーンデータを取得した場合、前記N個のデータベースインスタンスからM個の候補データベースインスタンスを決定するデータタイプマッチングモジュールであって、前記候補データベースインスタンスのデータタイプは前記ブロックチェーンデータにマッチングし、MはN以下の正の整数であるデータタイプマッチングモジュールと、
前記データベース配置情報におけるデータシャーディングポリシーに基づいて、前記ブロックチェーンデータを前記M個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶するデータ記憶モジュールと、を含む装置。
【請求項14】
コンピュータ機器であって、プロセッサー、メモリ及びネットワークインターフェースを含み、
前記プロセッサーと、前記メモリと、前記ネットワークインターフェースとは接続され、前記ネットワークインターフェースはデータ通信機能を提供し、前記メモリはコンピュータプログラムを記憶し、前記プロセッサーは前記コンピュータプログラムを呼び出すことで、前記コンピュータ機器に請求項1~12の何れか1項に記載の方法を実行させるコンピュータ機器。
【請求項15】
コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータプログラムはプロセッサーによってロードされて実行されることで、前記プロセッサーを有するコンピュータ機器に、請求項1~12の何れか1項に記載の方法を実行させるコンピュータ可読記憶媒体。
【請求項16】
コンピュータプログラム製品であって、前記コンピュータプログラム製品はコンピュータプログラムを含み、前記コンピュータプログラムはコンピュータ可読記憶媒体に記憶され、前記コンピュータプログラムはプロセッサーによってロードされて実行されることで、前記プロセッサーを有するコンピュータ機器に、請求項1~12の何れか1項に記載の方法を実行させるコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は2022年11月07日に提出され、出願番号が202211383918.Xであり、発明の名称が「ブロックチェーンによるデータ処理方法、装置、機器及び媒体」である中国特許出願の優先権を主張して、その全ての内容は本出願に援用されている。
【0002】
本出願は、ブロックチェーンの技術分野に関して、特に、ブロックチェーンによるデータ処理方法、装置、機器及び媒体に関する。
【背景技術】
【0003】
従来のブロックチェーンシステムにおいて、データベースインスタンスはブロックチェーンデータを記憶するために用いられ、ブロックチェーンノード及びデータベースインスタンスは何れも同一機器に配置され、かつその両者は一々対応する関係であり、当該データベースインスタンスは1つのハードディスクのみを使用し、一般的に、ブロックチェーンノードのデータはスタンドアロンのローカルハードディスクに保存され、ブロックチェーンデータの規模が小さい場合、短期間内でこのようなスタンドアロン記憶方式は記憶ニーズを満たすことができるが、ブロックチェーンが高頻度トランザクションのシナリオに適用されると、ブロックチェーンノードの記憶能力は単一のハードディスクの容量に制限され、記憶性能も単一のハードディスクの読み書き速度に制限され、記憶ニーズを満たし難い。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本出願の実施例はブロックチェーンによるデータ処理方法、装置、機器及び媒体を提供し、前記技術案は以下の内容を含む。
【課題を解決するための手段】
【0005】
本出願の実施例の1つの態様はブロックチェーンによるデータ処理方法を提供し、
ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得するステップであって、前記記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、前記データマッピング関係は前記データベースインスタンスのデータタイプを指示し、Nは1超えの正の整数であるステップと、
記憶対象となるブロックチェーンデータを取得した場合、前記N個のデータベースインスタンスからM個の候補データベースインスタンスを決定するステップであって、前記候補データベースインスタンスのデータタイプは前記ブロックチェーンデータにマッチングし、MはN以下の正の整数であるステップと、
前記データベース配置情報におけるデータシャーディングポリシーに基づいて、前記ブロックチェーンデータを前記M個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶するステップと、を含む。
【0006】
本出願の実施例の1つの態様はブロックチェーンによるデータ処理装置を提供し、
ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得するマッピングテーブル取得モジュールであって、前記記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、前記データマッピング関係は前記データベースインスタンスのデータタイプを指示し、Nは1超えの正の整数であるマッピングテーブル取得モジュールと、
記憶対象となるブロックチェーンデータを取得した場合、前記N個のデータベースインスタンスからM個の候補データベースインスタンスを決定するデータタイプマッチングモジュールであって、前記候補データベースインスタンスのデータタイプは前記ブロックチェーンデータにマッチングし、MはN以下の正の整数であるデータタイプマッチングモジュールと、
データベース配置情報におけるデータシャーディングポリシーに基づいて、前記ブロックチェーンデータを前記M個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶するデータ記憶モジュールと、を含む。
【0007】
本出願の実施例の1つの態様はコンピュータ機器を提供し、プロセッサー、メモリ、及びネットワークインターフェースを含み、
プロセッサーと、メモリと、ネットワークインターフェースとは連結され、ネットワークインターフェースはデータ通信機能を提供し、メモリはコンピュータプログラムを記憶し、プロセッサーはコンピュータプログラムを呼び出すことで、コンピュータ機器に、本出願の実施例が提供するブロックチェーンによるデータ処理方法を実行させる。
【0008】
本出願の実施例の1つの態様はコンピュータ可読記憶媒体を提供し、コンピュータ可読記憶媒体にはコンピュータプログラムが記憶され、当該コンピュータプログラムはプロセッサーによって読み込まれて実行されることで、当該プロセッサーを有するコンピュータ機器に、本出願の実施例が提供するブロックチェーンによるデータ処理方法を実行させる。
【0009】
本出願の実施例の1つの態様はコンピュータプログラム製品を提供し、当該コンピュータプログラム製品はコンピュータプログラムを含み、当該コンピュータプログラムはコンピュータ可読記憶媒体に記憶され、コンピュータ機器のプロセッサーはコンピュータ可読記憶媒体から当該コンピュータプログラムを読み取り、プロセッサーは当該コンピュータプログラムを実行することで、当該コンピュータ機器に、本出願の実施例が提供するブロックチェーンによるデータ処理方法を実行させる。
【発明の効果】
【0010】
本出願の実施例において、ブロックチェーンノードはブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得する。記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、1つのデータマッピング関係は1つのデータベースインスタンスのデータタイプを指示し、Nは1超えの正の整数である。本出願の実施例におけるブロックチェーンノードは複数のデータベースインスタンスに対応するとともに、これらの複数のデータベースインスタンスはデータタイプと密切に関係している。ブロックチェーンノードが記憶対象となるブロックチェーンデータを取得した場合、記憶インスタンスマッピングテーブルに含まれるN個のデータベースインスタンスから、データタイプがブロックチェーンデータにマッチングするM個の候補データベースインスタンスを決定し、さらに、データベース配置情報におけるデータシャーディングポリシーに基づいて、ブロックチェーンデータをM個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶し、MはN以下の正の整数である。このように、本出願の実施例が提供する記憶方式は、トラフィックニーズに従って1つのブロックチェーンノードに複数のデータベースインスタンスを配置でき、記憶容量を大きく拡張し、以降、ブロックチェーンデータのデータタイプに基づいて、シャーディングして分類するようにブロックチェーンデータを対応するデータベースインスタンスに記憶する場合、異なるデータタイプのブロックチェーンデータを異なるデータベースインスタンスにそれぞれ記憶でき、記憶プレッシャーを大きく緩和して、分流効果を実現し、以上によれば、本出願の実施例の記憶方式を使用するとき、ブロックチェーンノードの記憶容量及び読み書き性能が倍に大きくなり、ブロックチェーンノードのノード記憶能力を効果的に向上して、記憶ニーズを満たしている。
【図面の簡単な説明】
【0011】
【
図1】本出願の実施例が提供するブロックチェーンノードシステムの構造概略図である。
【
図2】本出願の実施例が提供するシングルディスクに対する記憶拡張概略図である。
【
図3】本出願の実施例が提供するマルチディスクに対する記憶拡張概略図である。
【
図4】本出願の実施例が提供する分散型分類・データベース分割の記憶拡張概略図である。
【
図5】本出願の実施例が提供するデータ記憶のシナリオ概略図である。
【
図6】本出願の実施例が提供するブロックチェーンによるデータ処理方法のフロー概略図である。
【
図7】本出願の実施例が提供する記憶インスタンスマッピングテーブルの取得フロー概略図である。
【
図8】本出願の実施例が提供するデータのデータベース分割・分類記憶の構造概略図である。
【
図9】本出願の実施例が提供するブロックチェーンデータの記憶シナリオ概略図である。
【
図10】本出願の実施例が提供するブロックチェーンによるデータ処理方法のフロー概略図である。
【
図11】本出願の実施例が提供する処理対象となるデータのアクセスフロー概略図である。
【
図12】本出願の実施例が提供するブロックチェーンによるデータ処理装置の構造概略図である。
【
図13】本出願の実施例が提供するコンピュータ機器の概略図である。
【発明を実施するための形態】
【0012】
以下、本出願の実施例における図面を結合して、本出願の実施例における技術案を明らか且つ完全に記載し、明らかに、記載される実施例は全ての実施例ではなく、本出願の一部の実施例に過ぎない。本出願の実施例に基づいて、当業者が進歩性に値する労働をしないことを前提として、取得した他の全ての実施例は何れも本出願の保護範囲に属している。
【0013】
図1を参照し、
図1は本出願の実施例が提供するブロックチェーンノードシステムの構造概略図である。
図1に示すように、本出願の実施例におけるブロックチェーンノードシステムはネットワーク通信の形態で複数のブロックチェーンノードから接続されて形成された分散型システムである。当該ブロックチェーンシステムに対応するブロックチェーンネットワークはピアツーピアの対等ネットワーク(Peer to peer networking、P2Pネットワークと略称される)、即ち、ユーザーの間でタスク及び仕事負荷を割り当てる分散型アプリケーションアーキテクチャであり、アプリケーション層で対等計算モデルによって形成されたネットワーキング又はネットワーク形態である。
【0014】
図1のブロックチェーンシステムは複数のブロックチェーンノードを含み、複数のブロックチェーンノードはノード10a、ノード10b、ノード10c、…、ノード10nを含む。当該ブロックチェーンシステムにおけるブロックチェーンノードは、当該ブロックチェーンネットワークにアクセスする任意形態のコンピュータ機器であり、例えば、当該コンピュータ機器は、当該ブロックチェーンネットワークにアクセスする端末機器であり、又は当該ブロックチェーンネットワークにアクセスするサーバーであり、ここで、ブロックチェーンノードの具体的な形態を限定しない。
【0015】
任意選択で、当該ブロックチェーンネットワークにアクセスするサーバーは独立の物理サーバーであり、又は複数の物理サーバーからなるサーバークラスタであり、或いは分散型システムであり、若しくはクラウドコンピューティングサービスを提供するクラウドサーバーである。当該ブロックチェーンネットワークにアクセスする端末機器はスマートフォン、タブレットコンピューター、ノートパソコン、デスクトップコンピュータ、スマートスピーカー、スマートウォッチ、車載端末、スマートテレビなどのスマート端末を含む。本出願の実施例における端末機器が実行するアプリケーションクライアントは独立のクライアントであり、又はあるクライアント(例えば、ソーシャルクライアント、教育クライアント及びメディアクライアントなど)に集積される埋込型サブクライアントであり、ここで、限定しない。
【0016】
図1のブロックチェーンネットワークは複数の参加側を含み、例えば、全量台帳データを保存する必要があるブロックチェーンノード(例えば、コンセンサスノード又は全量ノード)、及び一部の台帳データを保存するブロックチェーンノード(例えば、ライトノード)を含む。ライトノードは完全なトランザクションデータではなく、ブロックチェーンデータベースの一部、即ち、ブロックヘッダーデータ、及び自体ノードに関連するトランザクションデータを記憶する。大量記憶、高性能のシナリオに対処するために、全量台帳データを記憶する必要があるブロックチェーンノードに対して、本出願の実施例は分類/データベース分割/シャーディングの記憶方式を提出する。
【0017】
ブロックチェーンネットワークにおける何れか1つのブロックチェーンノードのデータベースは、何れも主データベース及びアーカイブデータベースを含む。主データベースは、ブロックチェーンノードが使用しているデータベースであり、ブロックチェーンノードローカルに配置されるデータベース(例えば、
図1のノード10aのローカルデータベース110)、及びブロックチェーンノードとネットワーク接続関係を有するリモート記憶に配置されるデータベース(例えば、
図1のノード10aのリモートデータベース120)を含む。アーカイブデータベースは、ブロックチェーンデータに対してバッチ処理を行う独立のデータベースであり、バッチ処理はバッチ移転又はバッチ削除などを含む。
【0018】
任意選択で、各ブロックチェーンノードはブロックチェーン台帳モジュール、データベースサービスコンポーネント及び他のブロックチェーンモジュールを含む。ブロックチェーン台帳モジュールは帳簿データの記憶、クエリ、修正及び削除などの操作の機能を提供し、帳簿データに対する操作の記録データをブロックチェーンシステムにおける他のノードに送信し、他のノードが有効性を検証した後、帳簿データの有効性に対する認証応答として、記録データを一時的なブロックに記憶し、さらに、操作を開始するノードに確認を送信する。データベースサービスコンポーネントは、ブロックチェーンノードのリモートデータベースにデータベースサービスを提供し、例えばデータベースサービスに基づいてリモートデータベースにおいてブロックチェーンデータの記憶又はアクセスを行って、データベースサービスコンポーネントはデータベースサービスSDK(Software Development Kit、ソフトウェア開発キット)とも呼ばれる。
【0019】
任意選択で、他のブロックチェーンモジュールはオブジェクト管理、基礎サービス、スマートコントラスト及び運営検出などの処理モジュールを含む。ここで、オブジェクト管理モジュールは全てのブロックチェーン参加者の身分情報管理を行って、公開キー・秘密キー生成のメンテナンス(アカウント管理)、秘密キー管理、及びオブジェクト実際身分とブロックチェーンアドレスとの対応関係のメンテナンス(権限管理)などを含み、許可した場合、実際身分のトランザクション状況に対して監視管理及び監査を行って、リスク管理のルール配置を提供する(リスク管理監査)。基礎サービスモジュールは全てのブロックチェーンノード機器に配置され、トラフィックデータ要求の有効性を検証し、有効性要求に対してコンセンサスを完成した後、メモリに記録し、1つの新たなトラフィックデータ要求に対して、基礎サービスはまず、インターフェースに対して適応解析及び復号認証処理(インターフェース適応)を行ってから、コンセンサスアルゴリズムを使用してトラフィック情報を暗号化し(コンセンサス管理)、暗号化後、共有台帳に完全且つ一致的に伝送して(ネットワーク通信)、記録して記憶する。スマートコントラストモジュールは、コントラストの登録発行、コントラストのトリガー及び実行を行って、開発オブジェクトはあるプログラミング言語でコントラスト論理を定義して、ブロックチェーンに発表し(コントラスト登録)、コントラスト条項の論理に基づいて、秘密キー又は他のイベントを呼び出してトリガーするように実行し、コントラスト論理を完成するとともに、コントラストのアップグレード・登録解除の機能を提供する。運営検出モジュールは主に、製品発表過程中の配置、配置の修正、コントラスト設置、クラウド適応、及び製品実行中のリアルタイム状態の可視化出力、例えば、アラーム、ネットワーク状況の検出、ノード機器健康状態の検出などを行う。
【0020】
任意選択で、トラフィックの記憶ニーズを満たすために、本出願の実施例におけるブロックチェーンノードには1つ又は複数のハードディスクが配置され、各ハードディスクには何れも複数のデータベースインスタンスが配置される。理解を容易にするために、さらに、
図2を参照し、
図2は本出願の実施例が提供するシングルディスクに対する記憶拡張概略図である。
図2に示すように、本出願の実施例におけるブロックチェーンノードは、ホスト(即ち、入出力機器を除いた本体部分である)には単一ハードディスクが配置されるブロックチェーンノードであり、当該ブロックチェーンノードは上記の
図1のブロックチェーンネットワークにおける何れか1つのブロックチェーンノードであり、例えば、当該ブロックチェーンノードはノード10aである。当該ブロックチェーンノードには1つのハードディスク、例えば、
図2のハードディスクAが配置される。
【0021】
単一のデータベースインスタンスの読み書き速度が、ブロックチェーンノードのトラフィック読み書きニーズを満たすことができず、且つデータベースインスタンスの読み書き速度がハードディスクの読み書き性能の上限に達していない場合、ハードディスクの読み書きリソースを十分に使用するために、本出願の実施例は当該ハードディスクAの記憶性能に基づいて、単一のハードディスクに複数のデータベースインスタンスを配置し、ここで、3つを例として、データベースインスタンスD1、データベースインスタンスD2及びデータベースインスタンスD3を含む。ハードディスクAの記憶性能は、ハードディスクAの記憶容量及び読み書き性能によって共同に决定される。
【0022】
さらに、
図3を参照し、
図3は本出願の実施例が提供するマルチディスクに対する記憶拡張概略図である。
図3に示すように、本出願の実施例におけるブロックチェーンノードは、ホストに複数のハードディスクが配置されるブロックチェーンノードであり、当該ブロックチェーンノードは上記の
図1のブロックチェーンネットワークにおける何れか1つのブロックチェーンノードであり、例えば、当該ブロックチェーンノードはノード10aである。異なるハードディスクの記憶性能は差が存在する可能性があるため、各ハードディスクに配置されるデータベースインスタンスのインスタンス数は、ハードディスク自体の記憶性能に基づいて異なっている。
【0023】
図3に示すように、当該ブロックチェーンノードに配置される複数のハードディスクに対して、2つを例として、ハードディスクA及びハードディスクBを含み、ハードディスクBの記憶性能がハードディスクAより高い。これに基づいて、上記の
図2の記憶拡張の解決策が依然的にブロックチェーンノードのトラフィックニーズを満たすことができない場合、本出願の実施例は、より多くのデータベースインスタンスを配置して、それらを異なるハードディスクに分布させ、分流効果を実現して、記憶容量及び読み書き性能は何れも倍に大きくなることを実現する。
【0024】
例えば、本出願の実施例はハードディスクAの記憶性能に基づいて、ハードディスクAに複数のデータベースインスタンスが配置され、ここで、3つを例として、データベースインスタンスD1、データベースインスタンスD2及びデータベースインスタンスD3を含む。同じように、本出願の実施例はさらに、ハードディスクBの記憶性能に基づいて、ハードディスクBに複数のデータベースインスタンスが配置され、ここで、4つを例として、データベースインスタンスD4、データベースインスタンスD5、データベースインスタンスD6及びデータベースインスタンスD7を含む。
【0025】
さらに、
図4を参照し、
図4は本出願の実施例が提供する分散型分類・データベース分割の記憶拡張概略図である。
図4に示すように、本出願の実施例におけるブロックチェーンノードは上記の
図1のブロックチェーンネットワークにおける何れか1つのブロックチェーンノード、例えばノード10aである。ブロックチェーンノードの単一のマシンの記憶性能がトラフィックニーズを満たしにくい場合、本出願の実施例は分散型記憶拡張を行って、即ち、データベースプロキシによって記憶する。任意選択で、データベースプロキシはブロックチェーンノードと同一のコンピュータ機器に配置され、又はブロックチェーンノードと異なるコンピュータ機器に配置され、ここで、データベースプロキシの配置方式を限定しない。
【0026】
当該ブロックチェーンノードに関連付けられるリモートデータベースにおいて、本出願の実施例はブロックチェーンノードが受信したブロックチェーンデータのX個のデータタイプに基づいて、各データタイプに対して、対応するホストクラスタをそれぞれ配置する。Xは正の整数である。本出願の実施例において、N個のデータベースインスタンスは何れも、ブロックチェーンノードに関連付けられるリモートデータベースに配置され、リモートデータベースは、X個のデータタイプにそれぞれ対応するホストクラスタを含み、1つのデータタイプは1つのホストクラスタに対応し、各ホストクラスタは何れも複数のデータベースホストノードを含む。
【0027】
図4に示すように、本出願の実施例のデータタイプは、3つを例として、第1のデータタイプ、第2のデータタイプ及び第3のデータタイプを含む。第1のデータタイプは、頻繁にアクセスされる小さなデータに対応するデータタイプであり、例えば、ブロックヘッダーデータタイプ及び状態データタイプなどを含み、ブロックヘッダーデータタイプはブロックヘッダーデータが所属するデータタイプであり、状態データタイプは状態データが所属するデータタイプである。状態データは企業オブジェクトのリスク状態、電子帳票の帳票状態、トラフィックオブジェクトの資産状態などを含む。当該第1のデータタイプに対応するホストクラスタは
図4のホストクラスタ1であり、当該ホストクラスタ1は複数のホスト、例えば、ホストJ
11、ホストJ
12、…、及びホストJ
1Nを含む。ホストクラスタ1における各ホストには何れも複数のハードディスクが配置され、例えば、ホストJ
11にはハードディスクA及びハードディスクBという2つのハードディスクが配置され、各ハードディスクには何れも複数のデータベースインスタンスが配置される。
【0028】
第2のデータタイプは、独立記憶を必要とするブロックチェーンデータのデータタイプであり、例えば、トランザクションデータタイプを含み、トランザクションデータタイプはトランザクションデータが所属するデータタイプである。なお、トランザクションデータは売上に相当し、場合によって、トランザクション売上は長時間に保存する必要がないため、それを独立のデータベースインスタンスに記憶することで、以降のデータアーカイブ又は定期削除に寄与する。当該第2のデータタイプに対応するホストクラスタは
図4のホストクラスタ2であり、当該ホストクラスタ2は複数のホスト、例えば、ホストJ
21、ホストJ
22、…、及びホストJ
2Nを含む。ホストクラスタ2における各ホストには何れも複数のハードディスクが配置され、例えば、ホストJ
21にはハードディスクC及びハードディスクDという2つのハードディスクは配置され、各ハードディスクには何れも複数のデータベースインスタンスが配置される。
【0029】
第3のデータタイプは、独立記憶を必要とするブロックチェーンデータに対応する別のデータタイプであり、例えば、コントラストデータタイプを含み、コントラストデータタイプはコントラストデータが所属するデータタイプである。コントラストデータは実際のトラフィックデータであり、それを複数のデータベースインスタンスに独立に記憶することで、単一のデータベースのデータ量が少なくなり、データベースの読み書き性能を効果的に向上して、さらにブロックチェーンノードの記憶性能を高める。当該第3のデータタイプに対応するホストクラスタは
図4のホストクラスタ3であり、当該ホストクラスタ3は複数のホスト、例えば、ホストJ
31、ホストJ
32、…、及びホストJ
3Nを含む。ホストクラスタ3における各ホストには何れも複数のハードディスクが配置され、例えば、ホストJ
21にはハードディスクE及びハードディスクFという2つのハードディスクが配置され、各ハードディスクには何れも複数のデータベースインスタンスが配置される。
【0030】
理解を容易にするために、さらに、
図5を参照し、
図5は本出願の実施例が提供するデータ記憶のシナリオ概略図である。
図5に示すように、本出願の実施例におけるブロックチェーンノードは、ブロックチェーンネットワークにおける、全量台帳データを保存する必要があるブロックチェーンノードであり、例えば、当該ブロックチェーンノードは上記の
図1のブロックチェーンネットワークにおける何れか1つのブロックチェーンノード、例えばノード10aである。
【0031】
ここで、本出願の実施例は記憶対象となるブロックチェーンデータをX個のデータタイプに分けることで、データタイプに従ってブロックチェーンデータに対してデータベース分割記憶を行って、ノードの記憶性能を向上する。Xは正の整数である。記載を容易にするために、本出願の実施例のデータタイプの数は、3つを例として、データタイプ21、データタイプ22及びデータタイプ23を含む。
【0032】
ブロックチェーンノードを起動させるとき、当該ブロックチェーンノードはブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得する。当該ブロックチェーンノードは初めて起動されるノードである場合、データベース配置情報に基づいて、記憶インスタンスマッピングテーブルを生成する。当該ブロックチェーンノードは初めて起動されるノードではない場合、データベース配置情報に基づいて、生成された記憶インスタンスマッピングテーブルを直接的にロードする。
【0033】
記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、1つのデータマッピング関係は1つのデータベースインスタンスのデータタイプを指示し、Nは1超えの正の整数である。任意選択で、ブロックチェーンノードのトラフィックニーズに従ってN個のデータベースインスタンスを配置し、即ち、何れもブロックチェーンノードのローカルデータベースに配置し(例えば、上記の
図2の配置方式)、又は何れもブロックチェーンノードのリモートデータベースに配置し(例えば、上記の
図4の配置方式)、或いはローカルデータベース及びリモートデータベースに何れも配置し、ここで、限定しない。
【0034】
さらに、表1を参照し、表1は本出願の実施例が提供する記憶インスタンスマッピングテーブルである。表1の記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、Nが6に等しいことを例とすれば、N個のデータベースインスタンスはデータベースインスタンスD
1、データベースインスタンスD
2、データベースインスタンスD
3、データベースインスタンスD
4、データベースインスタンスD
5及びデータベースインスタンスD
6を含む。本出願の実施例において、異なるデータタイプのデータベースインスタンスは同一ハードディスクに配置されてもよいし、異なるハードディスクに配置されてもよく、例えば、データタイプ21、データタイプ22及びデータタイプ23に対応するデータベースインスタンスは同一ハードディスク(例えば、
図2のハードディスクAである)に配置されるように構築される。好ましくは、データタイプ21及びデータタイプ22に対応するデータベースインスタンスは何れも同一ハードディスク(例えば、
図3のハードディスクAである)に配置され、データタイプ23に対応するデータベースインスタンスは何れも別のハードディスク(例えば、
図3のハードディスクBである)に配置される。表1に示すようである。
【表1】
なお、データベースインスタンスD
1のデータマッピング関係は、データベースインスタンスD
1のデータタイプがデータタイプ21であることを指示し、データベースインスタンスD
2のデータマッピング関係は、データベースインスタンスD
2のデータタイプがデータタイプ22であることを指示し、データベースインスタンスD
3のデータマッピング関係は、データベースインスタンスD
3のデータタイプがデータタイプ22であることを指示し、データベースインスタンスD
4のデータマッピング関係は、データベースインスタンスD
4のデータタイプがデータタイプ23であることを指示し、データベースインスタンスD
5のデータマッピング関係は、データベースインスタンスD
5のデータタイプがデータタイプ23であることを指示し、データベースインスタンスD
6のデータマッピング関係は、データベースインスタンスD
6のデータタイプがデータタイプ23であることを指示する。
【0035】
本出願の実施例において、異なるデータタイプのブロックチェーンデータのデータ量、アクセス頻度が異なっているため、異なるデータタイプのブロックチェーンデータが占用する記憶容量も異なって、さらに、異なるデータタイプに配置されるデータベースインスタンスのインスタンス数も異なっている。
【0036】
ここで、記憶対象となるブロックチェーンデータを取得した場合、当該ブロックチェーンノードは、上記の表1の記憶インスタンスマッピングテーブルに含まれるN個のデータベースインスタンスから、M個の候補データベースインスタンスを決定し、候補データベースインスタンスのデータタイプがブロックチェーンデータにマッチングし、MはN以下の正の整数である。
図5に示すように、当該ブロックチェーンノードが記憶対象となるブロックチェーンデータQを取得した場合、ブロックチェーンデータQのデータタイプを決定できる。当該ブロックチェーンデータQのデータタイプがデータタイプ22に属すると、上記の表1の記憶インスタンスマッピングテーブルにおいて当該ブロックチェーンノードは、データタイプ22に対応するデータベースインスタンス(例えば、データベースインスタンスD
2及びデータベースインスタンスD
3)を何れも当該ブロックチェーンデータQにマッチングするデータベースインスタンスに決定する。
【0037】
さらに、当該ブロックチェーンノードはデータベース配置情報におけるデータシャーディングポリシーに基づいて、当該ブロックチェーンデータQを記憶する必要があるデータベースインスタンス(即ち、第1のデータベースインスタンス、例えば、データベースインスタンスD3)を決定して、データベースインスタンスD3に記憶する。
【0038】
このように、1つのブロックチェーンノードはトラフィックニーズに従って、N個のデータベースインスタンスを配置し、これによって、ブロックチェーンノードの記憶容量を向上でき、何れか1つのデータタイプのブロックチェーンデータは、何れもブロックチェーンデータQを第1のデータベースインスタンスに記憶する実施形態に従って、対応するデータベースインスタンスに記憶でき、即ち、異なるデータタイプのブロックチェーンデータは異なるデータベースインスタンスにそれぞれ記憶し、記憶プレッシャーを大きく緩和して、分流効果を実現する。これは、ブロックチェーンノードのデータ読み書き性能が不足であるという問題を解決する上に、スタンドアロンの記憶空間が制限されるという問題を解決し、さらに、データタイプ及びデータシャーディングポリシーという細かいコントラスト記憶管理によって、大量データの記憶シナリオにおけるブロックチェーンの実現に可能性を提供する。
【0039】
なお、N個のデータベースインスタンスが配置されるブロックチェーンネットワークにおけるブロックチェーンノードが、記憶対象となるブロックチェーンデータに対して分類・データベース分割・シャーディング記憶を行う実現形態について、以下の
図6~
図11の実施例を参照すればよい。
【0040】
さらに、
図6を参照し、
図6は本出願の実施例が提供するブロックチェーンによるデータ処理方法のフロー概略図である。
図6に示すように、当該方法はコンピュータ機器によって実行され、当該コンピュータ機器はブロックチェーンネットワークにおけるブロックチェーンノードであり、当該ブロックチェーンノードは、ブロックチェーンネットワークにおける、全量台帳データを保存する必要があるブロックチェーンノード、例えば、上記の
図1のブロックチェーンネットワークにおける何れか1つのブロックチェーンノードであり、例えば、当該ブロックチェーンノードはノード10aである。当該方法は少なくとも以下のステップ601~ステップ603を含む。
【0041】
ステップ601:ブロックチェーンノードはブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得し、記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、データマッピング関係はデータベースインスタンスのデータタイプを指示し、Nは1超えの正の整数である。
【0042】
記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、1つのデータマッピング関係は1つのデータベースインスタンスのデータタイプを指示し、Nは1超えの正の整数である。任意選択で、トラフィックオブジェクト(例えば、ユーザー)はブロックチェーンノードに対して起動操作を実行し、さらに、当該ブロックチェーンノードが当該起動操作に応答する場合、当該ブロックチェーンノードのデータベース配置情報に基づいて、当該ブロックチェーンノードの記憶インスタンスマッピングテーブルを取得する。起動操作は、ブロックチェーンノードを起動させるトリガー操作であり、当該トリガー操作はクリック、長押しなどの接触的な操作を含み、又は音声、ジェスチャーなどの非接触的な操作を含み、ここで、限定しない。
【0043】
任意選択で、起動操作が、ブロックチェーンノードを初めて起動させることを指示する場合、当該ブロックチェーンノードは初期化処理を行って、即ち、ブロックチェーンノードのデータベース配置情報を読み込んで、データベース配置情報及びブロックチェーンノードの主データベースのデータベースタイプに基づいて、N個のデータベースインスタンスを構築する。初期化が成功した後、当該ブロックチェーンノードは、各データベースインスタンスと、各データベースインスタンスが所属するハードディスクのデータタイプとの間のマッピング関係を確立し、確立されたマッピング関係に基づいて、記憶インスタンスマッピングテーブルを生成する。
【0044】
なお、データベース配置情報は、トラフィック記憶ニーズに基づいて、配置オブジェクト(例えば、ブロックチェーンノードの配置ユーザー)が当該ブロックチェーンノードに対して配置した、ブロックチェーンノードのデータベースに関する情報である。例えば、当該データベース配置情報はデータベース記憶パス、当該ブロックチェーンノードのハードディスクに配置されるインスタンス数、及びデータシャーディングポリシーなどを含む。なお、データ記憶パスは、配置オブジェクトが異なるデータタイプのブロックチェーンデータに対して配置した複数本の記憶パスを含む。インスタンス数は、ブロックチェーンノードに配置されるハードディスクの記憶性能に基づいて決定され、データシャーディングポリシーは、ブロックチェーンノードがブロックチェーンデータを記憶するとき採用する計算方式、例えば、コンシステントハッシュ法である。
【0045】
例えば、配置オブジェクトは、ブロックチェーンデータのデータタイプにはX個のデータタイプ(Xは正の整数である)が含まれると決定した場合、ブロックチェーンノードのノード性能を向上するために、当該配置オブジェクトは各データタイプに対して異なるデータベースインスタンスを配置することで、各類のブロックチェーンデータを異なるデータベースインスタンスに記憶する。無論、同一類のデータは複数のデータベースインスタンスに記憶され、データベースインスタンスに対応するハードディスクはブロックチェーンノードのローカルデータベースに配置されてもよいし、ブロックチェーンノードのリモートデータベースに配置されてもよく、ここで、限定しない。
【0046】
任意選択で、ブロックチェーンノードのローカルデータベース及びリモートデータベースには何れも1つ又は複数のハードディスクが配置され、本出願の実施例のデータベース配置情報におけるデータベース記憶パスは、X個のデータタイプに関するハードディスクセットを指示し、即ち、各類のデータタイプにそれぞれ対応する記憶パスを含む。
【0047】
例えば、X個のデータタイプは第1のデータタイプ、第2のデータタイプ又は第3のデータタイプのうちの少なくとも1つを含む。第1のデータタイプはブロックヘッダーデータタイプ又は状態データタイプのうちの少なくとも1つを含み、第2のデータタイプはトランザクションデータタイプを含み、第3のデータタイプはコントラストデータタイプを含む。第1のデータタイプのブロックチェーンデータの読み書き頻度が高く、且つデータ量が小さいため、配置オブジェクトは、第1のデータタイプに対してデータベースインスタンスを配置する場合、記憶量が小さく、記憶性能が弱いマシン(即ち、ハードディスク)を選択することで、トラフィックニーズを満たすとともに、コストを大きく節約する。第1のデータタイプのハードディスクの記憶性能は第2のデータタイプのハードディスクの記憶性能より低く、第3のデータタイプのハードディスクの記憶性能よりも低い。
【0048】
さらに、表2を参照し、表2は本出願の実施例が提供するデータベース配置情報に関する疑似コード模式表である。記載を容易にするために、本出願の実施例におけるブロックチェーンノードに配置される、X個のデータタイプに関するハードディスクセットは、4つを例として、ローカルデータベースに配置されるハードディスクA(例えば、data1)、ハードディスクB(例えば、data2)、ハードディスクD(例えば、data4)、及びリモートデータベースに配置されるハードディスクC(例えば、data3)を含む。
【0049】
当該リモートデータベースに対応するコンピュータ機器はエンドポイント:ポートというデータフォーマットで示される。表2に示すようである。
【表2】
表2に示すように、ローカルデータベースのハードディスクAの記憶性能が何れも他のハードディスクの記憶性能より低いと、第1のデータタイプがブロックヘッダーデータタイプである場合、当該データベース配置情報において第1のデータタイプに対応する記憶パスは「/data1/blockHeader」ディレクトリである。第2のデータタイプがトランザクションデータタイプである場合、当該データベース配置情報において第2のデータタイプに対応する記憶パスはローカルデータベースにおける「/data1/transaction、/data2/transaction」ディレクトリ、及びリモートデータベースにおける「/data3/transaction」ディレクトリを含み、これは、配置オブジェクトはトランザクションデータタイプに対して3つの記憶位置を配置することを意味する。第3のデータタイプがコントラストデータタイプである場合、当該データベース配置情報において第3のデータタイプに対応する記憶パスはローカルデータベースにおける「/data4/contract」ディレクトリを含む。同一ディレクトリには複数のデータベースインスタンスが配置される場合、データベースインスタンスのルートディレクトリはそれぞれターゲットプレフィックス+インスタンス番号である。例えば、ハードディスクAに複数のデータベースインスタンスが配置される場合、トランザクションデータタイプに対応する記憶パスは「/data1/transaction/1、/data1/transaction/2、/data1/transaction/3」である。
【0050】
理解を容易にするために、さらに、
図7を参照し、
図7は本出願の実施例が提供する記憶インスタンスマッピングテーブルの取得フローの概略図である。
図7に示すように、本出願の実施例におけるブロックチェーンノードは上記の
図1のブロックチェーンネットワークにおける何れか1つのブロックチェーンノード、例えばノード10aである。
【0051】
ブロックチェーンノードに対して実行する起動操作は、ブロックチェーンノードを初めて起動させることを指示する場合、ブロックチェーンノードはステップ701を実行して、ブロックチェーンノードを起動させた後、ステップ702を実行して、データベース配置情報をロードする。さらに、当該ブロックチェーンノードはブロックチェーンノードの主データベースのデータベースタイプを取得して、ブロックチェーン上のスマートコントラストに基づいてステップ703~ステップ704を自動に実行して、データベースインスタンスを構築するか、それともブロックチェーンノードの配置オブジェクトに基づいてデータベースインスタンスを手動に構築するかを決定する。
【0052】
主データのデータベースタイプは第1のタイプ(例えば、スマートコントラストに基づいてデータベースインスタンスを自動に構築するタイプ)、及び第2のタイプ(例えば、人為的データベースインスタンスを手動に構築するタイプ)を含む。
【0053】
ブロックチェーンノードのデータベースタイプが第1のタイプに属する場合、当該ブロックチェーンノードはブロックチェーンノードが所属するブロックチェーンから、スマートコントラストを取得し、スマートコントラストはデータベースインスタンスを構築する。スマートコントラストはコンピュータ化されたプロトコルであり、コントラスト条項を実行でき、共有台帳に配置されるコードによって実現され、一定条件を満たす場合、コードを実行し、実際のトラフィックニーズに基づいてコードは自動化トランザクションを完成する。さらに、スマートコントラストに基づいて、当該ブロックチェーンノードはハードディスクセットにおける各ハードディスクに対してデータベースインスタンスをそれぞれ構築して、N個のデータベースインスタンスを取得する。任意選択で、ハードディスクセットにおける各ハードディスクに対して、当該ブロックチェーンノードはデータベース配置情報に基づいて各ハードディスクのインスタンス数を決定する。
【0054】
さらに、当該ブロックチェーンノードはステップ703を実行して、構築対象となるハードディスクがローカルデータベースに配置されたかどうかを決定する。任意選択で、ハードディスクが主データベースにおけるローカルデータベースに配置された場合、当該ブロックチェーンノードはステップ704を実行し、スマートコントラストに基づいて、ハードディスクに対してインスタンス数に合うデータベースインスタンスを構築する。任意選択で、ハードディスクが主データベースにおけるリモートデータベースに配置された場合、当該ブロックチェーンノードはスマートコントラストに基づいて、ハードディスクに対してインスタンス数に合うデータベースインスタンスを構築するように、データベースサービスコンポーネントを呼び出し、データベースサービスコンポーネントはリモートデータベースサービスを提供する。即ち、当該ブロックチェーンノードはジャンプしてステップ707~ステップ709を実行し、データベースサービスコンポーネントを呼び出し、当該データベースサービスコンポーネントが提供するリモートデータベースサービスに基づいて、インスタンス数に合うデータベースインスタンスを構築し、構築が完了した場合、当該データベースサービスコンポーネントはデータベースインスタンスを受信して応答する。
【0055】
任意選択で、ブロックチェーンノードのデータベースタイプが第2のタイプに属する場合、ブロックチェーンノードはデータベース配置情報に関するプロンプト情報を表示することで、配置オブジェクトはプロンプト情報に基づいてトリガー操作を実行する。なお、プロンプト情報はピクチャ、ビデオ、オーディオ、文字などのタイプに対応する情報であり、ここで、プロンプト情報の情報タイプを限定しない。プロンプト情報に対するトリガー操作に応答して、ブロックチェーンノードはハードディスクセットにおける各ハードディスクに対してデータベースインスタンスをそれぞれ構築して、N個のデータベースインスタンスを取得する。
【0056】
ローカルデータベース及びリモートデータベースを何れも構築した場合、当該ブロックチェーンノードはステップ705を実行して、各データベースインスタンスと、各データベースインスタンスが所属するハードディスクのデータタイプとの間のマッピング関係を確立して、確立されたマッピング関係に基づいて、記憶インスタンスマッピングテーブルを生成し、以降、ステップ706を実行して、ブロックチェーンノードにデータサービス(例えば、データアクセスサービスなど)を提供するようにする。
【0057】
理解を容易にするために、さらに、
図8を参照し、
図8は本出願の実施例が提供するデータのデータベース分割・分類記憶の構造概略図である。
図8に示すように、本出願の実施例のブロックチェーンノードは、ホストに複数のハードディスクが配置されるブロックチェーンノードであり、当該ブロックチェーンノードは上記の
図1のブロックチェーンネットワークにおける何れか1つのブロックチェーンノード、例えばノード10aである。
【0058】
図8のブロックチェーンノードは起動操作に応答した後、データベース配置情報をロードする。データベース配置情報における記憶パス情報は、3つのデータタイプ(例えば、ブロックヘッダーデータタイプ、トランザクションデータタイプ及びコントラストデータタイプ)に関するハードディスクセットを指示し、当該ハードディスクセットは、トラフィックニーズに基づいてローカルに配置されるハードディスクA及びハードディスクBを含む。
【0059】
ブロックチェーンノードは主データベースのデータベースタイプ(例えば、第1のタイプ)及びデータベース配置情報に基づいて、主データベースに対してデータベースインスタンスを構築する。なお、当該データベース配置情報の記憶パスは、各ハードディスクにおける異なるデータタイプのインスタンス数を指示する。例えば、ハードディスクAにおいてブロックヘッダーデータタイプのインスタンス数(即ち、第1のインスタンス数)が1であり、ハードディスクAにおいてトランザクションデータタイプのインスタンス数(即ち、第2のインスタンス数)が2であり、ハードディスクBにおいてコントラストデータタイプのインスタンス数(即ち、第3のインスタンス数)が3である。
【0060】
ハードディスクAを例として、当該ブロックチェーンノードはデータベース配置情報に基づいて、ハードディスクAのインスタンス数を第1のインスタンス数と第2のインスタンス数との和(即ち、3)に決定し、この場合、当該ブロックチェーンノードはスマートコントラストに基づいて、ハードディスクAに対して、データベースインスタンスD1、データベースインスタンスD2及びデータベースインスタンスD3という3つのデータベースインスタンスを構築する。
【0061】
同じように、ハードディスクBを例として、当該ブロックチェーンノードはデータベース配置情報に基づいて、ハードディスクBのインスタンス数を第3のインスタンス数(即ち、3)に決定し、この場合、当該ブロックチェーンノードはスマートコントラストに基づいて、ハードディスクBに対してデータベースインスタンスD4、データベースインスタンスD5及びデータベースインスタンスD6という3つのデータベースインスタンスを構築する。
【0062】
さらに、当該ブロックチェーンノードは当該6つのデータベースインスタンスのうちの各データベースインスタンスと、自体が所属するハードディスクのデータタイプとの間のマッピング関係を確立し、さらに、確立されたマッピング関係に基づいて、上記の表1の記憶インスタンスマッピングテーブルを生成する。任意選択で、記憶インスタンスマッピングテーブルの記憶方式はキー値記憶、即ち、Key―Value記憶であり、KV記憶と略称される。即ち、当該ブロックチェーンノードはKeyをデータタイプに決定し、Valueをデータベースインスタンスに決定する。
【0063】
なお、本出願の実施例における記憶インスタンスマッピングテーブルは上記の表1の、X個のデータタイプを含む独立のマッピングテーブルであってもよいし、X個の記憶インスタンスサブマッピングテーブルからなるマッピングテーブルであってもよく、ここで、限定しない。例えば、ブロックチェーンノードの記憶拡張方式が上記の
図4の記憶拡張方式である場合、当該ブロックチェーンノードは各データタイプに対して記憶インスタンスサブマッピングテーブルをそれぞれ構築することで、以降、データベースプロキシによって、X個のホストクラスタからアクセス対象となるホストクラスタを迅速に決定できるよにして、アクセス効率を向上する。
【0064】
ステップ602:記憶対象となるブロックチェーンデータを取得した場合、ブロックチェーンノードはN個のデータベースインスタンスから、M個の候補データベースインスタンスを決定し、候補データベースインスタンスのデータタイプがブロックチェーンデータにマッチングし、MはN以下の正の整数である。
【0065】
任意選択で、記憶対象となるブロックチェーンデータを取得した場合、当該ブロックチェーンノードはブロックチェーンデータのデータ情報を決定し、ブロックチェーンデータのデータ情報に基づいて、ブロックチェーンデータのデータタイプを決定する。さらに、当該ブロックチェーンノードは記憶インスタンスマッピングテーブルから、ブロックチェーンデータのデータタイプにマッチングするデータタイプを検索し、検索されたデータタイプに対応するデータベースインスタンスを候補データベースインスタンスに決定して、M個の候補データベースインスタンスを取得する。
【0066】
任意選択で、データベース配置情報は、トラフィックニーズに基づいて配置されるデータ量閾値及びアクセス頻度閾値を含む。データ情報は、ブロックチェーンのデータ量がデータ量閾値に達しておらず、且つブロックチェーンデータのデータアクセス頻度がアクセス頻度閾値に達したことを指示する場合、当該ブロックチェーンデータは、頻繁にアクセスされる小さなデータであるとみなし、この際、当該ブロックチェーンノードは第1のデータタイプをブロックチェーンデータのデータタイプに決定する。任意選択で、データ情報は、ブロックチェーンデータがトランザクションデータに属することを指示する場合、当該ブロックチェーンノードは第2のデータタイプをブロックチェーンデータのデータタイプに決定し、例えば、トランザクションデータは資産移転トランザクションデータ又は電子帳票回転トランザクションなどを含む。任意選択で、データ情報は、ブロックチェーンデータがコントラストデータに属することを指示する場合、当該ブロックチェーンノードは第3のデータタイプをブロックチェーンデータのデータタイプに決定する。無論、本出願の実施例におけるX個のデータタイプは他のデータタイプをさらに含んでもよく、ここで、一々記載しない。
【0067】
図5に示すように、当該ブロックチェーンノードは記憶対象となるブロックチェーンデータQを取得した場合、ブロックチェーンデータQのデータタイプを決定する。当該ブロックチェーンデータQのデータタイプがデータタイプ22に属すると、当該ブロックチェーンノードは上記の表1の記憶インスタンスマッピングテーブルから、データタイプ22に対応するデータベースインスタンス(例えば、データベースインスタンスD
2及びデータベースインスタンスD
3)を何れも当該ブロックチェーンデータQにマッチングする2つの候補データベースインスタンスに決定する。
【0068】
ステップ603:ブロックチェーンノードはデータベース配置情報におけるデータシャーディングポリシーに基づいて、ブロックチェーンデータをM個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶する。
【0069】
任意選択で、当該ブロックチェーンノードはデータベース配置情報におけるデータシャーディングポリシーに基づいて、記憶方向に従って、ハッシュ値空間に対してブロックチェーンデータのデータタイプに関連付けられるハッシュリングを生成する。さらに、当該ブロックチェーンノードはM個の候補データベースインスタンスのうちの各候補データベースインスタンスの第1のキー情報(例えば、アドレス、ディレクトリなどの入力情報)に対してハッシュ計算を行って、各候補データベースインスタンスのハッシュリング上の第1の位置情報を取得し、同じように、当該ブロックチェーンノードはさらに、ブロックチェーンデータの第2のキー情報(例えば、データハッシュ値)に対してハッシュ計算を行って、ブロックチェーンデータのハッシュリング上の第2の位置情報を取得する。さらに、当該ブロックチェーンノードはハッシュリングで記憶方向に沿って、第2の位置情報と最も近い位置関係を有する第1の位置情報を検索し、検索された第1の位置情報に対応するデータベースインスタンスを第1のデータベースインスタンスに決定して、さらに、ブロックチェーンデータを第1のデータベースインスタンスに記憶する。
【0070】
本出願の実施例はX個のデータタイプに係るため、ここで、当該X個のデータタイプのブロックチェーンデータをデータベース分割して記憶すると、本出願の実施例はX組のデータベースインスタンスに係り、且つ1組のデータベースインスタンスは1つのハッシュリングに対応し、即ち、本出願の実施例はX個のハッシュリングに係ることを意味する。データタイプはブロックヘッダーデータタイプ、トランザクションデータタイプ及びコントラストデータタイプを含む場合、本出願の実施例は3つのハッシュリングに係り、且つ当該3つのハッシュリングは、当該3つのデータタイプのデータベースマッピング関係にそれぞれ対応する。
【0071】
理解を容易にするために、さらに、
図9を参照し、
図9は本出願の実施例が提供するブロックチェーンデータの記憶シナリオ概略図である。
図9に示すように、本出願の実施例におけるハッシュリングは記憶対象となるブロックチェーンデータのデータタイプに対応するハッシュリングであり、当該ハッシュリングは、データベース配置情報におけるデータシャーディングポリシー(例えば、コンシステントハッシュ法)に基づいて、記憶方向に従って(例えば、時計回り方向)、ハッシュ値空間に対して生成される。ハッシュ値空間は0から(2~32)-1までの数字空間である。
【0072】
任意選択で、当該ブロックチェーンノードが記憶インスタンスマッピングテーブルから決定した候補データベースインスタンスは、4つを例として、
図9のデータベースインスタンスD
1、データベースインスタンスD
2、データベースインスタンスD
3及びデータベースインスタンスD
4を含む。当該ブロックチェーンノードは当該4つのデータベースインスタンスのうちの各データベースインスタンスの第1のキー情報に対してハッシュ計算を行って、各データベースインスタンスのハッシュリング上の第1の位置情報を取得する。
【0073】
なお、当該ブロックチェーンノードが取得した記憶対象となるブロックチェーンデータは
図9のブロックチェーンデータQ
61、ブロックチェーンデータQ
62、ブロックチェーンデータQ
63、ブロックチェーンデータQ
64、ブロックチェーンデータQ
65及びブロックチェーンデータQ
66を含む。例えば、データベースインスタンスD
1に対して、当該ブロックチェーンノードは当該データベースインスタンスD
1のディレクトリ情報、機器情報(例えば、機器識別子など)などを取得して当該データベースインスタンスD
1の第1のキー情報に決定する。さらに、当該ブロックチェーンノードはコンシステントハッシュ法に従ってデータベースインスタンスD
1の第1のキー情報に対してハッシュ計算を行って、データベースインスタンスD
1のハッシュ値を取得し、当該データベースインスタンスD
1のハッシュ値をハッシュリングにマッピングして、当該データベースインスタンスD
1のハッシュリング上の第1の位置情報を取得する。
【0074】
さらに、当該ブロックチェーンノードはブロックチェーンデータの第2のキー情報に対してハッシュ計算を行って、ブロックチェーンデータのハッシュリング上の第2の位置情報を取得する。例えば、ブロックチェーンデータQ61に対して、当該ブロックチェーンノードは当該ブロックチェーンデータQ61のデータタイプに基づいて、当該ブロックチェーンデータQ61の第2のキー情報を決定する。さらに、当該ブロックチェーンノードはコンシステントハッシュ法に従ってブロックチェーンデータQ61の第2のキー情報に対してハッシュ計算を行って、ブロックチェーンデータQ61のハッシュ値を取得し、当該ブロックチェーンデータQ61のハッシュ値をハッシュリングにマッピングして、当該ブロックチェーンデータQ61のハッシュリング上の第2の位置情報を取得する。
【0075】
当該ブロックチェーンデータQ61のデータタイプがブロックヘッダーデータタイプである場合、当該ブロックチェーンノードはブロックチェーンデータQ61のブロックヘッダーハッシュ値を当該ブロックチェーンデータQ61の第2のキー情報とする。任意選択で、当該ブロックチェーンデータQ61のデータタイプがトランザクションデータタイプである場合、当該ブロックチェーンノードはブロックチェーンデータQ61のトランザクションハッシュ値を当該ブロックチェーンデータQ61の第2のキー情報とする。任意選択で、当該ブロックチェーンデータQ61のデータタイプがコントラストデータタイプである場合、当該ブロックチェーンノードはブロックチェーンデータQ61のコントラストハッシュ値を当該ブロックチェーンデータQ61の第2のキー情報とする。
【0076】
さらに、当該ブロックチェーンノードはブロックチェーンデータの第2の位置情報に基づいて、ハッシュリングで記憶方向に沿って、第2の位置情報と最も近い位置関係を有する第1の位置情報を検索し、検索された第1の位置情報に対応するデータベースインスタンスを第1のデータベースインスタンスに決定して、ブロックチェーンデータを第1のデータベースインスタンスに記憶する。
【0077】
例えば、ブロックチェーンデータQ
61に対して、当該ブロックチェーンノードはブロックチェーンデータQ
61の第2の位置情報に基づいて、ハッシュリングで時計回りという記憶方向に沿って、第2の位置情報と最も近い位置関係を有する第1の位置情報を検索し、検索された第1の位置情報に対応するデータベースインスタンス(例えば、
図9のデータベースインスタンスD
1)を第1のデータベースインスタンスに決定し、さらに、ブロックチェーンデータを第1のデータベースインスタンスに記憶する。
【0078】
このように類推すれば、当該ブロックチェーンノードはブロックチェーンデータQ61の記憶方式を参照して、ブロックチェーンデータQ62をデータベースインスタンスD1に記憶し、ブロックチェーンデータQ63をデータベースインスタンスD2に記憶し、ブロックチェーンデータQ64、ブロックチェーンデータQ65及びブロックチェーンデータQ66をデータベースインスタンスD3に記憶し、ブロックチェーンデータQ67をデータベースインスタンスD4に記憶する。
【0079】
このように、本出願の実施例が提供する記憶方式は、トラフィックニーズに従って1つのブロックチェーンノードに複数のデータベースインスタンスを配置でき、記憶容量を大きく拡張し、以降、ブロックチェーンデータのデータタイプに基づいて、ブロックチェーンデータを対応するデータベースインスタンスにシャーディングして分類して記憶する場合、異なるデータタイプのブロックチェーンデータを異なるデータベースインスタンスにそれぞれ記憶でき、記憶プレッシャーを大きく緩和して、分流効果を実現し、以上によれば、本出願の実施例の記憶方式を使用する場合、ブロックチェーンノードの記憶容量及び読み書き性能が倍に大きくなり、ブロックチェーンノードのノード記憶能力を効果的に向上して、記憶ニーズを満たす。
【0080】
さらに、
図10を参照し、
図10は本出願の実施例が提供するブロックチェーンによるデータ処理方法のフロー概略図である。
図10に示すように、当該方法はコンピュータ機器によって実行され、当該コンピュータ機器はブロックチェーンネットワークにおけるブロックチェーンノードであり、当該ブロックチェーンノードはブロックチェーンネットワークにおける、全量台帳データを保存するブロックチェーンノード、例えば、上記の
図1のブロックチェーンネットワークにおける何れか1つのブロックチェーンノードであり、例えば、ノード10aである。当該方法は少なくとも以下のステップ1001~ステップ1006を含む。
【0081】
ステップ1001:ブロックチェーンノードはブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得する。
【0082】
なお、記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、1つのデータマッピング関係は1つのデータベースインスタンスのデータタイプを指示し、Nは1超えの正の整数である。任意選択で、トラフィックオブジェクト(例えば、ユーザー)はブロックチェーンノードに対して起動操作を実行し、当該ブロックチェーンノードが当該起動操作に応答した場合、ブロックチェーンノードのデータベース配置情報に基づいて、当該ブロックチェーンノードの記憶インスタンスマッピングテーブルを取得する。起動操作はブロックチェーンノードを起動させるためのトリガー操作であり、当該トリガー操作はクリック、長押しなどの接触的な操作を含み、又は音声、ジェスチャーなどの非接触的な操作を含み、ここで、限定しない。
【0083】
ステップ1002:ブロックチェーンノードは記憶対象となるブロックチェーンデータを取得した場合、記憶インスタンスマッピングテーブルにおけるN個のデータベースインスタンスから、M個の候補データベースインスタンスを決定し、候補データベースインスタンスのデータタイプがブロックチェーンデータにマッチングする。
【0084】
なお、MはN以下の正の整数である。任意選択で、記憶対象となるブロックチェーンデータを取得した場合、当該ブロックチェーンノードはブロックチェーンデータのデータ情報を決定し、ブロックチェーンデータのデータ情報に基づいて、ブロックチェーンデータのデータタイプを決定する。さらに、当該ブロックチェーンノードは記憶インスタンスマッピングテーブルから、ブロックチェーンデータのデータタイプにマッチングするデータタイプを検索し、検索されたデータタイプに対応するデータベースインスタンスを候補データベースインスタンスに決定して、M個の候補データベースインスタンスを取得する。
【0085】
ステップ1003:ブロックチェーンノードはデータベース配置情報におけるデータシャーディングポリシーに基づいて、ブロックチェーンデータをM個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶する。
【0086】
任意選択で、当該ブロックチェーンノードはデータベース配置情報におけるデータシャーディングポリシーに基づいて、記憶方向に従って、ハッシュ値空間に対してブロックチェーンデータのデータタイプに関連付けられるハッシュリングを生成する。さらに、当該ブロックチェーンノードはM個の候補データベースインスタンスのうちの各候補データベースインスタンスの第1のキー情報(例えば、アドレス、ディレクトリなどの入力情報)に対してハッシュ計算を行って、各データベースインスタンスのハッシュリング上の第1の位置情報を取得し、同じように、当該ブロックチェーンノードはブロックチェーンデータの第2のキー情報(例えば、データハッシュ値)に対してハッシュ計算を行って、ブロックチェーンデータのハッシュリング上の第2の位置情報を取得する。さらに、当該ブロックチェーンノードはハッシュリングで記憶方向に沿って、第2の位置情報と最も近い位置関係を有する第1の位置情報を検索し、検索された第1の位置情報に対応するデータベースインスタンスを第1のデータベースインスタンスに決定し、ブロックチェーンデータを第1のデータベースインスタンスに記憶する。
【0087】
当該ステップ1001~ステップ1003の実施形態について上記の
図6の実施例におけるステップ601~ステップ603の記載を参照すればよく、ここで、贅言しない。
【0088】
任意選択で、ブロックチェーンデータは処理対象となるデータを含む。
【0089】
ステップ1004:ブロックチェーンノードは、処理対象となるデータに対するトラフィックデータ要求に応答して、データアクセス指令を生成し、データアクセス指令は処理対象となるデータにアクセスするために用いられる。
【0090】
トラフィックデータ要求は、処理対象となるデータのデータタイプに基づいて当該ブロックチェーンノードから生成されてもよいし、当該ブロックチェーンノードとネットワーク接続関係を有する他のコンピュータ機器(例えば、ブロックチェーンネットワークにおける他のブロックチェーンノード、又はトラフィックオブジェクトに対応する端末機器)から送信されてもよく、ここで、トラフィックデータ要求の由来を限定しない。
【0091】
当該トラフィックデータ要求は、ブロックチェーンノードとネットワーク接続関係を有する他のコンピュータ機器から送信されるものであると、データ伝送のセキュリティを効果的に向上するために、当該コンピュータ機器はブロックチェーンノードのノード公開キーを取得して、処理対象となるデータのデータタイプなどのデータ情報に対して暗号化処理を行って、データ暗号化情報を取得し、さらに、当該データ暗号化情報に基づいて、ブロックチェーンノードに送信するためのトラフィックデータ要求を生成する。当該トラフィックデータ要求を受信した場合、当該ブロックチェーンノードはまず、コンピュータ機器に対して合法性検査(例えば、不正リストにおけるコンピュータ機器に属するかどうか)を行って、コンピュータ機器が合法性を具備すると検査した場合、ブロックチェーンノードのノード秘密キーに基づいて、データ暗号化情報に対して復号化処理を行って、処理対象となるデータのデータタイプなどのデータ情報を取得し、さらに、これらのデータ情報に基づいて処理対象となるデータにアクセスするためのデータアクセス指令を生成する。
【0092】
ステップ1005:ブロックチェーンノードは記憶インスタンスマッピングテーブルにおけるN個のデータベースインスタンスから、第2のデータベースインスタンスを決定し、データアクセス指令及びデータベース配置情報におけるデータシャーディングポリシーに基づいて、第2のデータベースインスタンスから処理対象となるデータにアクセスし、第2のデータベースインスタンスのデータタイプは処理対象となるデータにマッチングする。
【0093】
任意選択で、当該ブロックチェーンノードは上記のステップ602に対応する実施形態を参照して、記憶インスタンスマッピングテーブルに含まれるN個のデータベースインスタンスから、第2のデータベースインスタンスを決定し、さらに、上記の
図9の記憶方式に従って、データベース配置情報におけるデータシャーディングポリシーに基づいて、第2のデータベースインスタンスから、処理対象となるデータが所属するトラフィックデータベースインスタンスを決定して、当該トラフィックデータベースインスタンスから処理対象となるデータにアクセスする。
【0094】
任意選択で、N個のデータベースインスタンスは何れもブロックチェーンノードに関連付けられるリモートデータベースに配置され、リモートデータベースは、X個のデータタイプに対応するホストクラスタを含み、Xは正の整数であり、1つのデータタイプは1つのホストクラスタに対応する。そうすれば、当該ブロックチェーンノードは処理対象となるデータに対するアクセスを実行する場合、X個のホストクラスタからターゲットホストクラスタを決定し、ターゲットホストクラスタのデータタイプは処理対象となるデータにマッチングする。任意選択で、トラフィックデータ要求には処理対象となるデータのデータタイプが付けられ、ターゲットホストクラスタのデータタイプが処理対象となるデータにマッチングすることは、ターゲットホストクラスタのデータタイプが処理対象となるデータのデータタイプにマッチングすることを指す。ブロックチェーンノードはターゲットホストクラスタに配置されるデータベースインスタンスを第2のデータベースインスタンスに決定する。さらに、当該ブロックチェーンノードはデータベース配置情報におけるデータシャーディングポリシーに基づいて、第2のデータベースインスタンスから、処理対象となるデータが所属するトラフィックデータベースインスタンスを決定して、データアクセス指令を、ブロックチェーンノードとネットワーク接続関係とを有するデータベースプロキシに転送することで、データベースプロキシはデータアクセス指令を、トラフィックデータベースインスタンスが配置されるデータベースホストノードに送信する。この場合、当該ブロックチェーンノードは、データベースプロキシによってデータベースホストノードから戻された処理対象となるデータを受信する。
【0095】
例えば、ブロックチェーンノードの記憶拡張方式が上記の
図4の記憶拡張方式であれば、当該ブロックチェーンノードは処理対象となるデータに対するアクセスを実行する場合、3つのホストクラスタからホストクラスタ1を決定し、ホストクラスタ1のデータタイプは処理対象となるデータのデータタイプにマッチングし、さらに、ホストクラスタ1に配置されるデータベースインスタンスを第2のデータベースインスタンスに決定する。さらに、当該ブロックチェーンノードはデータベース配置情報におけるデータシャーディングポリシーに基づいて、上記の
図9の方法に従って第2のデータベースインスタンスから処理対象となるデータが所属するトラフィックデータベースインスタンス(例えば、
図4のハードディスクA)を決定する。
【0096】
この場合、当該ブロックチェーンノードはデータベースサービスコンポーネントを呼び出し、データベースサービスコンポーネントは、ブロックチェーンノードと同一機器に配置されてもよいし、ブロックチェーンノードと異なる別の機器に個別に配置されてもよく、ここで、限定しない。データベースサービスコンポーネントはブロックチェーンノードと異なる別の機器に個別に配置されると、本出願の実施例において、当該機器はブロックチェーンノードとネットワーク接続関係を有するデータベースプロキシと呼ばれる。当該ブロックチェーンノードはデータアクセス指令を
図4のデータベースプロキシに転送し、データベースプロキシはデータアクセス指令を、トラフィックデータベースインスタンスが配置されるデータベースホストノード(例えば、ホストJ
11が所在するデータベースホストノード)に送信する。この場合、当該ブロックチェーンノードは、データベースプロキシによってデータベースホストノードから戻された処理対象となるデータを受信する。
【0097】
理解を容易にするために、
図11を参照し、
図11は本出願の実施例が提供する処理対象となるデータのアクセスフロー概略図である。
図11に示すように、本出願の実施例におけるブロックチェーンノードはブロックチェーンネットワークにおける、全量台帳データを保存する必要があるブロックチェーンノード、例えば、上記の
図1のブロックチェーンネットワークにおける何れか1つのブロックチェーンノード、例えば、ノード10aである。
【0098】
トラフィックデータ要求を取得した場合、当該ブロックチェーンノードはステップ1101を実行して、記憶インスタンスマッピングテーブルを取得し、さらにステップ1102を実行して、トラフィックデータ要求に付けられる処理対象となるデータのデータタイプに基づいて、第2のデータベースインスタンスを決定する。
【0099】
上記の
図8に示すように、取得した処理対象となるデータのデータタイプがコントラストデータタイプである場合、当該ブロックチェーンノードは記憶インスタンスマッピングテーブルを取得して、記憶インスタンスマッピングテーブルにおけるN個のデータベースインスタンスから、第2のデータベースインスタンスを決定し、第2のデータベースインスタンスのデータタイプは処理対象となるデータにマッチングし、例えば、第2のデータベースインスタンスは
図8のデータベースインスタンスD
4、データベースインスタンスD
5及びデータベースインスタンスD
6である。
【0100】
さらに、当該ブロックチェーンノードはステップ1103~ステップ1104を実行して、データシャーディングポリシーに基づいて、処理対象となるデータのハッシュリング上の位置情報を決定し、さらに、ハッシュリングの記憶方向に従って、処理対象となるデータの位置情報と最も近い位置関係を有する第1の位置情報を検索して、検索された第1の位置情報に対応するデータベースインスタンスをトラフィックデータベースインスタンスに決定する。
【0101】
この場合、当該ブロックチェーンノードはステップ1105を実行して、当該トラフィックデータベースインスタンスがローカルデータベースに配置されたかどうかを決定する。当該トラフィックデータベースインスタンスがローカルデータベースに配置された場合、当該ブロックチェーンノードはステップ1106を実行し、ローカルデータベースで処理対象となるデータにアクセスして、ステップ1107を実行し、これによって、アクセスフローを終了する。例えば、トラフィックデータベースインスタンスが上記の
図3のデータベースインスタンスD
3であれば、当該ブロックチェーンノードはローカルデータベースのハードディスクAで当該処理対象となるデータにアクセスする。
【0102】
任意選択で、トラフィックデータベースインスタンスが、ローカルデータベースではなく、リモートデータベースに配置された場合、当該ブロックチェーンノードはジャンプしてステップ1108~ステップ1111を実行して、ブロックチェーンノードとリモートデータベースとの間の接続を構築するように、データベースサービスコンポーネントを呼び出し、さらに、リモートデータベースで処理対象となるデータにアクセスして、処理対象となるデータをデータベースサービスコンポーネントに戻して、データベースサービスコンポーネントは処理対象となるデータをブロックチェーンノードに戻して、ステップ1107を実行して、アクセスフローを終了する。
【0103】
ステップ1006:ブロックチェーンノードは処理対象となるデータに対してトラフィックデータ要求が指示するデータ操作を実行する。
【0104】
任意選択で、トラフィックデータ要求はデータアーカイブ要求、データ変更要求、データ新規追加要求、データクエリ要求及びデータ削除要求などを含む。なお、データアーカイブ要求は、処理対象となるデータのデータタイプが処理対象となるデータがトランザクションデータであることを指示する場合、処理対象となるデータに対してアーカイブ処理を行う。任意選択で、トラフィックデータ要求がデータアーカイブ要求である場合、当該ブロックチェーンノードは処理対象となるデータのデータ情報、及び処理対象となるデータに対するデータアーカイブ条件を取得する。なお、データアーカイブ条件はアーカイブパラメータ閾値を含み、当該アーカイブパラメータ閾値はアーカイブ時間範囲(例えば、今からN年前の時間範囲)又はアーカイブ頻度閾値(例えば、50回)のうちの少なくとも1つを含む。データ情報が、処理対象となるデータのトランザクションタイムスタンプがアーカイブ時間範囲に属するか、又は処理対象となるデータのアクセス頻度がアーカイブ頻度閾値より小さいことを指示する場合、当該ブロックチェーンノードは、処理対象となるデータがデータアーカイブ条件を満たしていると決定し、この場合、当該ブロックチェーンノードは、処理対象となるデータを処理対象となるデータが所属するデータベースからアーカイブデータベースに移転する。
【0105】
このように、本出願の実施例は、ブロックチェーンシステムに大量データを記憶してチェーン性能に対する要求が高いシナリオに適用され、高いトランザクション頻度のため、性能プレッシャーが存在するシナリオ、及び大きなトランザクション数のため、記憶空間プレッシャーが存在するシナリオを含む。ブロックチェーンのデータ特性を結合して、異なるタイプのブロックチェーンデータを異なるデータベースインスタンスにそれぞれ記憶して、これによって記憶容量ボトルネックの問題を解決する。例えば、本出願の実施例において、履歴トランザクションなどの非アクティブデータをアーカイブデータベースに記憶する。アーカイブデータベースは、性能が比較的に悪く、コストがより低い機器であり、データに対してアーカイブ又は定期削除などの処理を行って、記憶空間及び支出を節約することができる。これによれば、本出願の実施例におけるブロックチェーンの主データベースは最後のデータのみを保留すればよく、データベースのデータ量が小さく、データの読み書き速度を速めて、データアクセス性能を向上する。このような記憶拡張方式はブロックチェーンノードのデータ読み書き性能が不足であるという問題を解決する上に、スタンドアロンの記憶空間が制限されるという問題を解決し、さらに、データタイプ及びデータシャーディングポリシーという細かいコントラスト記憶管理によって、大量データの記憶シナリオにおけるブロックチェーンの実現に可能性を提供する。
【0106】
さらに、
図12を参照し、
図12は本出願の実施例が提供するブロックチェーンによるデータ処理装置の構造概略図である。
図12に示すように、当該ブロックチェーンによるデータ処理装置1はコンピュータ機器で実行される1つのコンピュータプログラム(プログラムコードを含む)であり、例えば、当該ブロックチェーンによるデータ処理装置1は1つのアプリケーションソフトウェアであり、当該ブロックチェーンによるデータ処理装置は、本出願の実施例が提供する方法の相応的なステップを実行する。
図12に示すように、当該ブロックチェーンによるデータ処理装置は、ブロックチェーンネットワークにおける、全量台帳データを保存する必要がるブロックチェーンノード、例えば、上記の
図1のブロックチェーンネットワークにおける何れか1つのブロックチェーンノードで実行され、例えば、当該ブロックチェーンノードはノード10aである。当該ブロックチェーンによるデータ処理装置はマッピングテーブル取得モジュール121、データタイプマッチングモジュール122、データ記憶モジュール123、アクセス指令生成モジュール124、データアクセスモジュール125及び操作実行モジュール126を含む。
当該マッピングテーブル取得モジュール121は、ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得し、記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、データマッピング関係はデータベースインスタンスのデータタイプを指示し、Nは1超えの正の整数である。
【0107】
任意選択で、当該マッピングテーブル取得モジュール121は、配置情報ロードユニット1211、インスタンス取得ユニット1212及びマッピングテーブル生成ユニット1213を含む。
当該配置情報ロードユニット1211は、ブロックチェーンノードに対する起動操作に応答して、起動操作が、ブロックチェーンノードを初めて起動させることを指示する場合、データベース配置情報をロードし、
当該インスタンス取得ユニット1212は、データベース配置情報及びブロックチェーンノードの主データベースのデータベースタイプに基づいて、N個のデータベースインスタンスを構築する。
【0108】
任意選択で、データベース配置情報における記憶パス情報は、X個のデータタイプに関連付けられるハードディスクセットを指示し、Xは正の整数であり、
当該インスタンス取得ユニット1212はデータベースタイプ取得サブユニット12121、スマートコントラスト取得サブユニット12122、第1の構築サブユニット12123、プロンプト情報表示サブユニット12124及び第2の構築サブユニット12125を含む。
【0109】
当該データベースタイプ取得サブユニット12121は、ブロックチェーンノードの主データベースのデータベースタイプを取得し、
当該スマートコントラスト取得サブユニット12122は、データベースタイプが第1のタイプに属する場合、ブロックチェーンノードが所属するブロックチェーンからスマートコントラストを取得し、スマートコントラストはデータベースインスタンスを構築するためのものであり、
当該第1の構築サブユニット12123は、スマートコントラストに基づいて、ハードディスクセットにおける各ハードディスクに対してデータベースインスタンスをそれぞれ構築して、N個のデータベースインスタンスを取得する。
【0110】
当該第1の構築サブユニット12123はさらに、
ハードディスクセットにおける各ハードディスクに対して、データベース配置情報に基づいてハードディスクのインスタンス数を決定し、
ハードディスクが主データベースにおけるローカルデータベースに配置される場合、スマートコントラストに基づいて、ハードディスクに対してインスタンス数に合うデータベースインスタンスを構築し、
ハードディスクが主データベースにおけるリモートデータベースに配置される場合、スマートコントラストに基づいて、ハードディスクに対してインスタンス数に合うデータベースインスタンスを構築するように、データベースサービスコンポーネントを呼び出し、データベースサービスコンポーネントはリモートデータベースサービスを提供するためのものである。
【0111】
当該プロンプト情報表示サブユニット12124は、データベースタイプが第2のタイプに属する場合、データベース配置情報に関連付けられるプロンプト情報を表示し、
当該第2の構築サブユニット12125は、プロンプト情報に対するトリガー操作に応答して、ハードディスクセットにおける各ハードディスクに対してデータベースインスタンスをそれぞれ構築して、N個のデータベースインスタンスを取得する。
【0112】
当該データベースタイプ取得サブユニット12121、スマートコントラスト取得サブユニット12122、第1の構築サブユニット12123、プロンプト情報表示サブユニット12124及び第2の構築サブユニット12125の実現形態について、上記の
図6の実施例におけるデータベースインスタンス構築の記載を参照すればよく、ここで、贅言しない。
【0113】
なお、X個のデータタイプは第1のデータタイプ、第2のデータタイプ又は第3のデータタイプのうちの少なくとも1つを含み、第1のデータタイプはブロックヘッダーデータタイプを含み、第2のデータタイプはトランザクションデータタイプを含み、第3のデータタイプはコントラストデータタイプを含み、第1のデータタイプのハードディスクの記憶性能は第2のデータタイプのハードディスクの記憶性能より低く、第1のデータタイプのハードディスクの記憶性能は第3のデータタイプのハードディスクの記憶性能より低い。
【0114】
当該マッピングテーブル生成ユニット1213は、各データベースインスタンスと、各データベースインスタンスが所属するハードディスクのデータタイプとの間のマッピング関係を確立して、マッピング関係に基づいて、記憶インスタンスマッピングテーブルを生成する。
【0115】
当該配置情報ロードユニット1211、インスタンス取得ユニット1212及びマッピングテーブル生成ユニット1213の実現形態について、上記の
図6の実施例におけるステップ601の記載を参照すればよく、ここで、贅言しない。
【0116】
当該データタイプマッチングモジュール122は、記憶対象となるブロックチェーンデータを取得した場合、N個のデータベースインスタンスから、M個の候補データベースインスタンスを決定し、候補データベースインスタンスのデータタイプがブロックチェーンデータにマッチングし、MはN以下の正の整数である。
【0117】
当該データタイプマッチングモジュール122は、データ情報決定ユニット1221、データタイプ決定ユニット1222及びデータタイプマッチングユニット1223を含む。
【0118】
当該データ情報決定ユニット1221は、記憶対象となるブロックチェーンデータを取得した場合、ブロックチェーンデータのデータ情報を決定し、
当該データタイプ決定ユニット1222は、ブロックチェーンデータのデータ情報に基づいて、ブロックチェーンデータのデータタイプを決定する。
【0119】
なお、データベース配置情報はデータ量閾値及びアクセス頻度閾値を含み、
当該データタイプ決定ユニット1222は、第1の決定サブユニット12221、第2の決定サブユニット12222及び第3の決定サブユニット12223を含む。
【0120】
当該第1の決定サブユニット12221は、データ情報が、ブロックチェーンのデータ量がデータ量閾値に達しておらず、且つブロックチェーンデータのデータアクセス頻度がアクセス頻度閾値に達したことを指示する場合、第1のデータタイプをブロックチェーンデータのデータタイプに決定し、
当該第2の決定サブユニット12222は、データ情報が、ブロックチェーンデータがトランザクションデータに属することを指示する場合、第2のデータタイプをブロックチェーンデータのデータタイプに決定し、
当該第3の決定サブユニット12223は、データ情報が、ブロックチェーンデータがコントラストデータに属することを指示する場合、第3のデータタイプをブロックチェーンデータのデータタイプに決定する。
【0121】
当該第1の決定サブユニット12221、第2の決定サブユニット12222及び第3の決定サブユニット12223の実現形態について、上記の
図6の実施例におけるデータタイプの記載を参照すればよく、ここで、贅言しない。
【0122】
当該データタイプマッチングユニット1223は、記憶インスタンスマッピングテーブルから、ブロックチェーンデータのデータタイプにマッチングするデータタイプを検索し、検索されたデータタイプに対応するデータベースインスタンスを候補データベースインスタンスに決定する。
【0123】
当該データ情報決定ユニット1221、データタイプ決定ユニット1222及びデータタイプマッチングユニット1223の実現形態について、上記の
図6に対応する実施例におけるステップ601の記載を参照すればよく、ここで、贅言しない。
【0124】
当該データ記憶モジュール123は、データベース配置情報におけるデータシャーディングポリシーに基づいて、ブロックチェーンデータをM個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶する。
【0125】
データ記憶モジュール123は、
データシャーディングポリシーに基づいて、記憶方向に従って、ハッシュ値空間に対してブロックチェーンデータのデータタイプに関連付けられるハッシュリングを生成するハッシュリング生成ユニット1231と、
M個の候補データベースインスタンスのうちの各候補データベースインスタンスの第1のキー情報に対してハッシュ計算を行って、各候補データベースインスタンスのハッシュリング上の第1の位置情報を取得する第1のハッシュ計算ユニット1232と、
ブロックチェーンデータの第2のキー情報に対してハッシュ計算を行って、ブロックチェーンデータのハッシュリング上の第2の位置情報を取得する第2のハッシュ計算ユニット1233と、
第2の位置情報に基づいて、ハッシュリングで記憶方向に沿って、第2の位置情報と最も近い位置関係を有する第1の位置情報を検索し、検索された第1の位置情報に対応するデータベースインスタンスを第1のデータベースインスタンスに決定するターゲットインスタンス決定ユニット1234と、
ブロックチェーンデータを第1のデータベースインスタンスに記憶するデータ記憶ユニット1235と、を含む。
【0126】
なお、当該ハッシュリング生成ユニット1231、第1のハッシュ計算ユニット1232、第2のハッシュ計算ユニット1233、ターゲットインスタンス決定ユニット1234及びデータ記憶ユニット1235の実現形態について、上記の
図6の実施例におけるステップ603の記載を参照すればよく、ここで、贅言しない。
【0127】
なお、ブロックチェーンデータは処理対象となるデータを含み、
当該アクセス指令生成モジュール124は、処理対象となるデータに対するトラフィックデータ要求に応答して、データアクセス指令を生成し、データアクセス指令は処理対象となるデータにアクセスするためのものであり、
当該データアクセスモジュール125は、N個のデータベースインスタンスから、第2のデータベースインスタンスを決定し、データアクセス指令及びデータシャーディングポリシーに基づいて、第2のデータベースインスタンスから処理対象となるデータにアクセスし、第2のデータベースインスタンスのデータタイプは処理対象となるデータにマッチングする。
【0128】
N個のデータベースインスタンスはブロックチェーンノードに関連付けられるリモートデータベースに配置され、リモートデータベースは、X個のデータタイプに対応するホストクラスタを含み、Xは正の整数であり、1つのデータタイプは1つのホストクラスタに対応し、
当該データアクセスモジュール125は、検索対象となるインスタンス決定ユニット1251、トラフィックインスタンス決定ユニット1252、アクセス指令転送ユニット1253及びデータ受信ユニット1254を含む。
【0129】
当該検索対象となるインスタンス決定ユニット1251は、X個のホストクラスタからターゲットホストクラスタを決定し、ターゲットホストクラスタに配置されるデータベースインスタンスを第2のデータベースインスタンスに決定し、ターゲットホストクラスタのデータタイプは処理対象となるデータにマッチングし、
当該トラフィックインスタンス決定ユニット1252は、データシャーディングポリシーに基づいて、第2のデータベースインスタンスから、処理対象となるデータが所属するトラフィックデータベースインスタンスを決定し、
当該アクセス指令転送ユニット1253は、データアクセス指令を、ブロックチェーンノードとネットワーク接続関係とを有するデータベースプロキシに転送することで、データベースプロキシはデータアクセス指令を、トラフィックデータベースインスタンスが配置されるデータベースホストノードに送信し、
当該データ受信ユニット1254は、データベースプロキシによってデータベースホストノードから戻された処理対象となるデータを受信する。
【0130】
なお、当該検索対象となるインスタンス決定ユニット1251、トラフィックインスタンス決定ユニット1252、アクセス指令転送ユニット1253及びデータ受信ユニット1254の実現形態について、上記の
図121に対応する実施例におけるステップ1005の記載を参照すればよく、ここで、贅言しない。
【0131】
当該操作実行モジュール126は、処理対象となるデータに対してトラフィックデータ要求が指示するデータ操作を実行する。
【0132】
なお、トラフィックデータ要求はデータアーカイブ要求を含み、データアーカイブ要求は、処理対象となるデータのデータタイプが、処理対象となるデータがトランザクションデータであることを指示する場合、処理対象となるデータに対してアーカイブ処理を行うためのものであり、
当該操作実行モジュール126は、アーカイブ条件取得ユニット1261及びデータ移転ユニット1262を含む。
【0133】
当該アーカイブ条件取得ユニット1261は、処理対象となるデータのデータ情報及び処理対象となるデータに対するデータアーカイブ条件を取得し、データアーカイブ条件はアーカイブパラメータ閾値を含み、アーカイブパラメータ閾値はアーカイブ時間範囲又はアーカイブ頻度閾値のうちの少なくとも1つを含み、
当該データ移転ユニット1262は、データ情報が、処理対象となるデータのトランザクションタイムスタンプがアーカイブ時間範囲に属するか、又は処理対象となるデータのアクセス頻度がアーカイブ頻度閾値より小さいことを指示する場合、処理対象となるデータがデータアーカイブ条件を満たしていると決定して、処理対象となるデータを処理対象となるデータが所属するデータベースからアーカイブデータベースに移転する。
【0134】
当該アーカイブ条件取得ユニット1261及びデータ移転ユニット1262の実現形態について、上記の
図121に対応する実施例におけるステップ1006の記載を参照すればよく、ここで、贅言しない。
【0135】
当該マッピングテーブル取得モジュール121、データタイプマッチングモジュール122、データ記憶モジュール123、アクセス指令生成モジュール124、データアクセスモジュール125及び操作実行モジュール126の実現形態について、上記の
図10の実施例におけるステップ1001~ステップ1006の記載を参照すればよく、ここで、贅言しない。また、同一方法による有益な効果記載についても、贅言しない。
【0136】
さらに、
図13を参照し、
図13は本出願の実施例が提供するコンピュータ機器の概略図である。
図13に示すように、当該コンピュータ機器1300はブロックチェーンネットワークにおける、全量台帳データを保存する必要があるブロックチェーンノード、例えば、上記の
図1に示すブロックチェーンネットワークにおける何れか1つのブロックチェーンノード、例えば、ノード10aである。当該コンピュータ機器1300は少なくとも1つのプロセッサー1301、例えばCPU、少なくとも1つのネットワークインターフェース1304、ユーザーインターフェース1303、メモリ1305、少なくとも1つの通信バス1302を含む。通信バス1302は、これらのコンポーネントの間の接続通信を実現する。ユーザーインターフェース1303はディスプレイ(Display)、キーボード(Keyboard)を含み、ネットワークインターフェース1304は任意選択で、標準な有線インターフェース、無線インターフェース(例えば、WI―FIインターフェース)を含む。メモリ1305は高速RAMメモリであってもよいし、不揮発性メモリ(non―volatile memory)、例えば少なくとも1つの磁気ディスクメモリであってもよい。メモリ1305は任意選択で、上記プロセッサー1301から離れた少なくとも1つの記憶装置であってもよい。
図13に示すように、コンピュータ記憶媒体としてのメモリ1305はオペレーティングシステム、ネットワーク通信モジュール、ユーザーインターフェースモジュール及び機器制御アプリケーションプログラムを含む。
【0137】
図13のコンピュータ機器1300において、ネットワークインターフェース1304は主にネットワーク通信を行って、ユーザーインターフェース1303は主にユーザーに入力用インターフェースを提供し、プロセッサー1301はメモリ1305に記憶される機器制御アプリケーションプログラムを呼び出すことで、
ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得するステップであって、記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、データマッピング関係はデータベースインスタンスのデータタイプを指示し、Nは1超えの正の整数であるステップと、
記憶対象となるブロックチェーンデータを取得した場合、N個のデータベースインスタンスから、M個の候補データベースインスタンスを決定するステップであって、候補データベースインスタンスのデータタイプがブロックチェーンデータにマッチングし、MはN以下の正の整数であるステップと、
データベース配置情報におけるデータシャーディングポリシーに基づいて、ブロックチェーンデータをM個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶するステップと、を実現する。
【0138】
ここで、本出願の実施例に記載のコンピュータ機器1300は以上の
図6及び
図13の実施例における当該ブロックチェーンによるデータ処理方法の記載を実行してもよいし、以上の
図12の実施例における当該ブロックチェーンによるデータ処理装置の記載を実行してもよく、ここで、贅言しない。また、同一方法による有益な効果記載についても、贅言していない。
【0139】
本出願の実施例はコンピュータ可読記憶媒体をさらに提供し、当該コンピュータ可読記憶媒体にはコンピュータプログラムが記憶され、当該コンピュータプログラムはプログラム指令を含み、当該プログラム指令はプロセッサーによって実行されると、
図6及び
図10の各ステップが提供するブロックチェーンによるデータ処理方法を実現し、
図6及び
図10の各ステップが提供する実現形態を参照すればよく、ここで、贅言しない。
【0140】
コンピュータ可読記憶媒体は上記の何れか1つの実施例が提供するデータ伝送装置であってもよいし、又はコンピュータ機器の内部記憶ユニット、例えばコンピュータ機器のハードディスク又はメモリであってもよい。当該コンピュータ可読記憶媒体は当該コンピュータ機器の外部記憶機器、例えば当該コンピュータ機器に配置される外付けハードディスク、スマートメディア(smart media card、SMC)、セキュアデジタル(secure digital、SD)カード、フラッシュメモリカード(flash card)などであってもよい。さらに、当該コンピュータ可読記憶媒体は、当該コンピュータ機器の内部記憶ユニットを含むとともに、外部記憶機器を含む。当該コンピュータ可読記憶媒体は当該コンピュータプログラム及び当該コンピュータ機器の必要な他のプログラム、データを記憶する。当該コンピュータ可読記憶媒体はさらに、出力済み又は出力対象となるデータを一時的に記憶する。
【0141】
本出願の実施例はコンピュータプログラム製品をさらに提供し、当該コンピュータプログラム製品はコンピュータプログラムを含み、当該コンピュータプログラムはコンピュータ可読記憶媒体に記憶される。コンピュータ機器のプロセッサーはコンピュータ可読記憶媒体から当該コンピュータプログラムを読み取り、プロセッサーは当該コンピュータプログラムを実行することで、当該コンピュータ機器に、以上の各実施例におけるブロックチェーンによるデータ処理方法又は装置の記載を実行させ、ここで、贅言しない。また、同一方法による有益な効果記載についても、贅言しない。
【0142】
以上は本出願の好適な実施例に過ぎないため、本出願の請求項の範囲を限定できず、従って、本出願の請求項による等価変更は何れも本出願の範囲に属している。
【符号の説明】
【0143】
1 データ処理装置
10 ノード
110 ローカルデータベース
120 リモートデータベース
121 マッピングテーブル取得モジュール
122 データタイプマッチングモジュール
123 データ記憶モジュール
124 アクセス指令生成モジュール
125 データアクセスモジュール
126 操作実行モジュール
1211 配置情報ロードユニット
1212 インスタンス取得ユニット
1213 マッピングテーブル生成ユニット
1221 データ情報決定ユニット
1222 データタイプ決定ユニット
1223 データタイプマッチングユニット
1231 ハッシュリング生成ユニット
1232 第1のハッシュ計算ユニット
1233 第2のハッシュ計算ユニット
1234 ターゲットインスタンス決定ユニット
1235 データ記憶ユニット
1251 インスタンス決定ユニット
1252 トラフィックインスタンス決定ユニット
1253 アクセス指令転送ユニット
1254 データ受信ユニット
1261 アーカイブ条件取得ユニット
1262 データ移転ユニット
1300 コンピュータ機器
1301 プロセッサー
1302 通信バス
1303 ユーザーインターフェース
1304 ネットワークインターフェース
1305 メモリ
12121 データベースタイプ取得サブユニット
12122 スマートコントラスト取得サブユニット
12123 第1の構築サブユニット
12124 プロンプト情報表示サブユニット
12125 第2の構築サブユニット
12221 第1の決定サブユニット
12222 第2の決定サブユニット
12223 第3の決定サブユニット
【手続補正書】
【提出日】2023-11-28
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ブロックチェーンノードが実行する、ブロックチェーンによるデータ処理方法であって、
前記ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得するステップであって、前記記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、前記データマッピング関係は前記データベースインスタンスのデータタイプを指示し、Nは1超えの正の整数であるステップと、
記憶対象となるブロックチェーンデータを取得した場合、前記N個のデータベースインスタンスからM個の候補データベースインスタンスを決定するステップであって、前記候補データベースインスタンスのデータタイプは前記ブロックチェーンデータにマッチングし、MはN以下の正の整数であるステップと、
前記データベース配置情報におけるデータシャーディングポリシーに基づいて、前記ブロックチェーンデータを前記M個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶するステップと、を含む方法。
【請求項2】
前記ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得する前記ステップは、
前記ブロックチェーンノードに対する起動操作に応答して、前記起動操作が前記ブロックチェーンノードを初めて起動させることを指示する場合、前記ブロックチェーンノードのデータベース配置情報をロードするステップと、
前記データベース配置情報及び前記ブロックチェーンノードの主データベースのデータベースタイプに基づいて、前記N個のデータベースインスタンスを構築するステップと、
各データベースインスタンスと、各データベースインスタンスが所属するハードディスクのデータタイプとの間のマッピング関係を確立するステップと、
前記マッピング関係に基づいて、前記記憶インスタンスマッピングテーブルを生成するステップと、を含む請求項1に記載の方法。
【請求項3】
前記データベース配置情報は記憶パス情報を含み、前記記憶パス情報は、X個のデータタイプに関連付けられるハードディスクセットを指示し、Xは正の整数であり、
前記データベース配置情報及び前記ブロックチェーンノードの主データベースのデータベースタイプに基づいて、前記N個のデータベースインスタンスを構築する前記ステップは、
前記ブロックチェーンノードの主データベースのデータベースタイプを取得するステップと、
前記データベースタイプが第1のタイプに属する場合、前記ブロックチェーンノードが所属するブロックチェーンからスマートコントラストを取得するステップであって、前記スマートコントラストはデータベースインスタンスを構築するステップと、
前記スマートコントラストに基づいて、前記ハードディスクセットにおける各ハードディスクに対してデータベースインスタンスをそれぞれ構築して、前記N個のデータベースインスタンスを取得するステップと、を含む請求項2に記載の方法。
【請求項4】
前記X個のデータタイプは第1のデータタイプ、第2のデータタイプ又は第3のデータタイプのうちの少なくとも1つを含み、前記第1のデータタイプはブロックヘッダーデータタイプを含み、前記第2のデータタイプはトランザクションデータタイプを含み、前記第3のデータタイプはコントラストデータタイプを含み、前記第1のデータタイプのハードディスクの記憶性能は前記第2のデータタイプのハードディスクの記憶性能より低く、前記第1のデータタイプのハードディスクの記憶性能は前記第3のデータタイプのハードディスクの記憶性能より低い請求項3に記載の方法。
【請求項5】
前記スマートコントラストに基づいて、前記ハードディスクセットにおける各ハードディスクに対してデータベースインスタンスをそれぞれ構築する前記ステップは、
前記ハードディスクセットにおける各ハードディスクに対して、前記データベース配置情報に基づいて前記ハードディスクのインスタンス数を決定するステップと、
前記ハードディスクが前記主データベースにおけるローカルデータベースに配置される場合、前記スマートコントラストに基づいて、前記ハードディスクに対して前記インスタンス数に合うデータベースインスタンスを構築するステップと、
前記ハードディスクが前記主データベースにおけるリモートデータベースに配置される場合、前記スマートコントラストに基づいて、前記ハードディスクに対して前記インスタンス数に合うデータベースインスタンスを構築するように、データベースサービスコンポーネントを呼び出するステップであって、前記データベースサービスコンポーネントはリモートデータベースサービスを提供するためのものであるステップと、を含む請求項3に記載の方法。
【請求項6】
前記方法は、
前記データベースタイプが第2のタイプに属する場合、前記データベース配置情報に関連付けられるプロンプト情報を表示するステップと、
前記プロンプト情報に対するトリガー操作に応答して、前記ハードディスクセットにおける各ハードディスクに対してデータベースインスタンスをそれぞれ構築して、前記N個のデータベースインスタンスを取得するステップと、をさらに含む請求項3に記載の方法。
【請求項7】
前記記憶対象となるブロックチェーンデータを取得した場合、前記N個のデータベースインスタンスからM個の候補データベースインスタンスを決定する前記ステップは、
前記ブロックチェーンデータを取得した場合、前記ブロックチェーンデータのデータ情報を決定するステップと、
前記ブロックチェーンデータのデータ情報に基づいて、前記ブロックチェーンデータのデータタイプを決定するステップと、
前記記憶インスタンスマッピングテーブルから、前記ブロックチェーンデータのデータタイプにマッチングするデータタイプを検索し、検索されたデータタイプに対応するデータベースインスタンスを前記候補データベースインスタンスに決定するステップと、を含む請求項1に記載の方法。
【請求項8】
前記データベース配置情報はデータ量閾値及びアクセス頻度閾値を含み、
前記ブロックチェーンデータのデータ情報に基づいて、前記ブロックチェーンデータのデータタイプを決定するステップは、
前記データ情報が、前記ブロックチェーンデータのデータ量が前記データ量閾値に達しておらず、且つ前記ブロックチェーンデータのデータアクセス頻度が前記アクセス頻度閾値に達したことを指示する場合、第1のデータタイプを前記ブロックチェーンデータのデータタイプに決定するステップと、
前記データ情報が、前記ブロックチェーンデータがトランザクションデータに属することを指示する場合、第2のデータタイプを前記ブロックチェーンデータのデータタイプに決定するステップと、
前記データ情報が、前記ブロックチェーンデータがコントラストデータに属することを指示する場合、第3のデータタイプを前記ブロックチェーンデータのデータタイプに決定するステップと、を含む請求項7に記載の方法。
【請求項9】
前記データベース配置情報におけるデータシャーディングポリシーに基づいて、前記ブロックチェーンデータを前記M個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶する前記ステップは、
前記データシャーディングポリシーに基づいて、記憶方向に従って、ハッシュ値空間に対して前記ブロックチェーンデータのデータタイプに関連付けられるハッシュリングを生成するステップと、
各候補データベースインスタンスの第1のキー情報に対してハッシュ計算をそれぞれ行って、各候補データベースインスタンスの前記ハッシュリング上の第1の位置情報を取得するステップと、
前記ブロックチェーンデータの第2のキー情報に対してハッシュ計算を行って、前記ブロックチェーンデータの前記ハッシュリング上の第2の位置情報を取得するステップと、
前記ハッシュリングで前記記憶方向に沿って、前記第2の位置情報と最も近い位置関係を有する第1の位置情報を検索して、検索された第1の位置情報に対応するデータベースインスタンスを前記第1のデータベースインスタンスに決定するステップと、
前記ブロックチェーンデータを前記第1のデータベースインスタンスに記憶するステップと、を含む請求項1に記載の方法。
【請求項10】
前記ブロックチェーンデータは処理対象となるデータを含み、前記方法は、
前記処理対象となるデータに対するトラフィックデータ要求に応答して、データアクセス指令を生成するステップであって、前記データアクセス指令は前記処理対象となるデータにアクセスするための指令であるステップと、
前記N個のデータベースインスタンスから第2のデータベースインスタンスを決定し、前記データアクセス指令及び前記データシャーディングポリシーに基づいて、前記第2のデータベースインスタンスから前記処理対象となるデータにアクセスするステップであって、前記第2のデータベースインスタンスのデータタイプは前記処理対象となるデータにマッチングするステップと、
前記処理対象となるデータに対して前記トラフィックデータ要求が指示するデータ操作を実行するステップと、をさらに含む請求項1に記載の方法。
【請求項11】
前記N個のデータベースインスタンスは、前記ブロックチェーンノードに関連付けられるリモートデータベースに配置され、前記リモートデータベースは、X個のデータタイプに対応するホストクラスタを含み、Xは正の整数であり、1つのデータタイプは1つのホストクラスタに対応し、
前記N個のデータベースインスタンスから第2のデータベースインスタンスを決定し、前記データアクセス指令及び前記データシャーディングポリシーに基づいて、前記第2のデータベースインスタンスから前記処理対象となるデータにアクセスするステップは、
X個のホストクラスタからターゲットホストクラスタを決定し、前記ターゲットホストクラスタに配置されるデータベースインスタンスを前記第2のデータベースインスタンスに決定するステップであって、前記ターゲットホストクラスタのデータタイプは前記処理対象となるデータにマッチングするステップと、
前記データシャーディングポリシーに基づいて、前記第2のデータベースインスタンスから前記処理対象となるデータが所属するトラフィックデータベースインスタンスを決定するステップと、
前記データアクセス指令を、前記ブロックチェーンノードとネットワーク接続関係を有するデータベースプロキシに転送することで、前記データベースプロキシが前記データアクセス指令を前記トラフィックデータベースインスタンスが配置されるデータベースホストノードに送信するようにするステップと、
前記データベースプロキシによって前記データベースホストノードから戻された前記処理対象となるデータを受信するステップと、を含む請求項10に記載の方法。
【請求項12】
前記トラフィックデータ要求はデータアーカイブ要求を含み、前記データアーカイブ要求は、前記処理対象となるデータがトランザクションデータである場合、前記処理対象となるデータに対してアーカイブ処理を行って、
前記処理対象となるデータに対して前記トラフィックデータ要求が指示するデータ操作を実行するステップは、
前記処理対象となるデータのデータ情報及び前記処理対象となるデータのデータアーカイブ条件を取得するステップであって、前記データアーカイブ条件はアーカイブパラメータ閾値を含み、前記アーカイブパラメータ閾値はアーカイブ時間範囲又はアーカイブ頻度閾値のうちの少なくとも1つを含むステップと、
前記データ情報が、前記処理対象となるデータのトランザクションタイムスタンプが前記アーカイブ時間範囲に属するか、又は前記処理対象となるデータのアクセス頻度が前記アーカイブ頻度閾値より小さいことを指示する場合、前記処理対象となるデータが前記データアーカイブ条件を満たしていると決定し、前記処理対象となるデータを前記処理対象となるデータが所属するデータベースからアーカイブデータベースに移転するステップと、を含む請求項10に記載の方法。
【請求項13】
ブロックチェーンノードに配置される、ブロックチェーンによるデータ処理装置であって、
前記ブロックチェーンノードのデータベース配置情報に基づいて、記憶インスタンスマッピングテーブルを取得するマッピングテーブル取得モジュールであって、前記記憶インスタンスマッピングテーブルはN個のデータベースインスタンスのデータマッピング関係を含み、前記データマッピング関係は前記データベースインスタンスのデータタイプを指示し、Nは1超えの正の整数であるマッピングテーブル取得モジュールと、
記憶対象となるブロックチェーンデータを取得した場合、前記N個のデータベースインスタンスからM個の候補データベースインスタンスを決定するデータタイプマッチングモジュールであって、前記候補データベースインスタンスのデータタイプは前記ブロックチェーンデータにマッチングし、MはN以下の正の整数であるデータタイプマッチングモジュールと、
前記データベース配置情報におけるデータシャーディングポリシーに基づいて、前記ブロックチェーンデータを前記M個の候補データベースインスタンスのうちの第1のデータベースインスタンスに記憶するデータ記憶モジュールと、を含む装置。
【請求項14】
コンピュータ機器であって、プロセッサー、メモリ及びネットワークインターフェースを含み、
前記プロセッサーと、前記メモリと、前記ネットワークインターフェースとは接続され、前記ネットワークインターフェースはデータ通信機能を提供し、前記メモリはコンピュータプログラムを記憶し、前記プロセッサーは前記コンピュータプログラムを呼び出すことで、前記コンピュータ機器に請求項1~12の何れか1項に記載の方法を実行させるコンピュータ機器。
【請求項15】
コンピュータプログラムであって、前記コンピュータプログラムはコンピュータ可読記憶媒体に記憶され、前記コンピュータプログラムはプロセッサーによってロードされて実行されることで、前記プロセッサーを有するコンピュータ機器に、請求項1~12の何れか1項に記載の方法を実行させる
コンピュータプログラム。
【国際調査報告】