(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-31
(45)【発行日】2023-08-08
(54)【発明の名称】ブロックチェーンネットワークをチェックする装置
(51)【国際特許分類】
G06F 21/55 20130101AFI20230801BHJP
G06F 11/30 20060101ALI20230801BHJP
【FI】
G06F21/55 320
G06F11/30 140
(21)【出願番号】P 2020010595
(22)【出願日】2020-01-27
【審査請求日】2022-10-06
(31)【優先権主張番号】201910298897.3
(32)【優先日】2019-04-15
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】ジャン・シエヌビヌ
(72)【発明者】
【氏名】ピ・ビンフォン
(72)【発明者】
【氏名】孫 俊
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2012-008935(JP,A)
【文献】米国特許出願公開第2019/0102409(US,A1)
【文献】佐藤竜也 他,ブロックチェーン基盤Hyperledger Fabricの性能評価と課題整理,電子情報通信学会技術研究報告,第116巻 第491号,2017年02月24日,pp.167-174
【文献】Hyperledger,Measuring Blockchain Performance with Hyperledger Caliper,Blog: Hyperledger Caliper,Hyperledger,2018年03月19日,<URL:https://www.hyperledger.org/blog/2018/03/19/measuring-blockchain-performance-with-hyperledger-caliper>
【文献】ZHENG, P. et al.,A Detailed and Real-time Performance Monitoring Framework for Blockchain Systems,2018 ACM/IEEE 40th International Conference on Software Engineering: Software Engeneering in Practice,2018年05月27日,pp.134-143
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
G06F 11/30
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ブロックチェーンネットワークをチェックする装置であって、
処理器を含み、
前記処理器は、
前記ブロックチェーンネットワークの設定と、前記ブロックチェーンネットワークの応用シナリオに対応するテンプレートの設定との間のマッチ度を計算し;
前記ブロックチェーンネットワークのパフォーマンスを計算し;
前記ブロックチェーンネットワークにおける健康度を計算し;及び
前記マッチ度、前記パフォーマンス及び前記健康度に基づいて、前記ブロックチェーンネットワークが安定状態にあるかを確定する、装置。
【請求項2】
請求項1に記載の装置であって、
前記処理器は、さらに、
前記ブロックチェーンネットワークが不安定状態にあると確定したときに、台帳のバックアップ、前記ブロックチェーンネットワークの停止、及び通知を行うように構成される、装置。
【請求項3】
請求項1に記載の装置であって、
前記処理器は、さらに、
取引確認レートと取引到達レートとの比率により、前記ブロックチェーンネットワークのパフォーマンスを指示し;及び
取引のパフォーマンスをモニタリングし、パフォーマンスが低下した場合、パフォーマンスの低下の原因を分析するように構成され、
前記パフォーマンスの低下の原因は、取引裏書き段階の遅延が第一所定閾値よりも大きく、取引合意段階の遅延が第二所定閾値よりも大きく、及び、取引確認段階の遅延が第三所定閾値よりも大きいということを含み、取引裏書き段階の遅延が第一所定閾値よりも大きい場合、取引を並列に提出することを推薦し、取引合意段階の遅延が第二所定閾値よりも大きい場合、ブロックチェーンのブロードキャスト時間及びブロックサイズを修正し、取引確認段階の遅延が第三所定閾値よりも大きい場合、健康度が比較的低いピアリングポイントを自動削除する、装置。
【請求項4】
請求項1に記載の装置であって、
前記処理器は、さらに、
前記ブロックチェーンネットワークにおける各ピアリングポイントの健康度の和の平均値により、前記ブロックチェーンネットワークにおける健康度を指示するように構成される、装置。
【請求項5】
請求項1に記載の装置であって、
前記処理器は、さらに、
ブロックチェーンネットワークにおける無効取引の原因を分析し、裏書きが時間超過の場合、取引を無効にし、チェーンコードにおける無限ループを削除することを推薦し、裏書きの結果が不一致の場合、悪ノード(Malicious Node)の信用度を下げ、読み書きが衝突の場合、取引の送信間隔を増加させることを推薦し、裏書きのポリシーが満足されない場合、ポリシーが満足される裏書きノードを推薦するように構成される、装置。
【請求項6】
請求項4に記載の装置であって、
前記処理器は、さらに、
前記ピアリングポイントの健康度を、前記ピアリングポイントにおける各ノードの健康度の平均値と、前記ピアリングポイントの信用度との和に等しくするように構成される、装置。
【請求項7】
請求項6に記載の装置であって、
前記ピアリングポイントにおける各ノードの健康度は、
前記ピアリングポイントの生存率、前記処理器のコア数、前記処理器の処理速度、保存レート、インターネット速度及び台帳の一致度のうちの少なくとも1つに関連する、装置。
【請求項8】
請求項1に記載の装置であって、
チェック待ちの前記ブロックチェーンネットワークは、
表示装置により、ユーザに、前記ブロックチェーンネットワークの設定要素を示し;
ユーザによる前記設定要素の選択という可視化入力に応じて、前記ブロックチェーンネットワークを構築又は取得し;
前記ブロックチェーンネットワークの安全性、パフォーマンス及び応用シナリオを確定し;
前記ブロックチェーンネットワークの安全性、パフォーマンス及び応用シナリオに基づいて、前記ブロックチェーンネットワークの現在の設定を計算し;及び
計算された設定を用いて、前記ブロックチェーンネットワークを設定することにより設定されるブロックチェーンネットワークである、装置。
【請求項9】
請求項8に記載の装置であって、
前記処理器が前記ブロックチェーンネットワークの現在の設定を計算するときに、前記処理器は、さらに、
S1:前記ブロックチェーンネットワークの応用シナリオを確定し;及び
S2:前記ブロックチェーンネットワークの応用シナリオ並びにデフォルトの前記ブロックチェーンネットワークの安全性及びパフォーマンスに基づいて、前記ブロックチェーンネットワークのデフォルト設定を前記現在の設定として計算するように構成される、装置。
【請求項10】
請求項9に記載の装置であって、
前記処理器は、さらに、
S3:前記ブロックチェーンネットワークの安全性及びパフォーマンスのうちの少なくとも1つを確定し;及び
S4:前記ブロックチェーンネットワークの安全性及びパフォーマンスのうちの少なくとも1つに基づいて、前記ブロックチェーンネットワークの現在の設定を更新するように構成される、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ装置によるブロックチェーンネットワークの設定、構築及び管理に関し、特に、ファブリック(Fabric)ネットワークの設定、構築及び管理に関する。
【背景技術】
【0002】
近年、ブロックチェーン技術が仮想通貨ビットコインの成功の陰で迅速に進展している。ブロックチェーン(分散型台帳とも称される)は、本質的に、Append-Onlyデータ構造であり、1組の互に完全に信頼されないノードによりメンテナンスされる。
【0003】
ブロックチェーンネットワークにおけるすべてのノードが1組の規則な(orderly(順序あり))ブロックに同意し、各ブロックが複数の取引を含むので、ブロックチェーンは、順序有り取引のログ(log)を見なすことができる。ブロックチェーンは、複数の種類があり、例えば、パブリックブロックチェーン、プライベートブロックチェーン、コンソーシアムブロックチェーン(consortium blockchain)などがある。なお、ここでは、コンソーシアムブロックチェーン、例えば、Hyperledger Fabricネットワークだけに注目する。
【0004】
従来技術では、ファブリックネットワークがワーキングするときにメンテナンス及びモニタリングが困難である。ファブリックネットワークの動的メンテナンス、例えば、ピアリングポイント(対等点とも言う)及び組織の追加が手間のかかる仕事である。また、如何に合理性をチェックするか、如何にネットワークのパフォーマンス及び健康状態をモニタリングするかなども、解決すべき問題である。
【0005】
従来の方法では、ファブリックネットワークの設定が非常に複雑で且つ時間を要する。Fabricネットワークは、多くのコンポーネントからなり、開発者による設定が難しい。初心者の場合、ネットワークが非常に簡単なものであっても、ファブリックネットワークを容易に設定することができない。また、初心者がファブリックネットワーク設定の原理を学習しようとする場合、学習のコストもかなり高い。一方、熟練している設定者について言えば、新しいネットワークを構築するときに、設定が複雑であり、ミスが生じやすい。何故なら、設定のタスクが分散す過ぎで且つきついからである。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の目的は、ファブリックネットワーク構築後に、ネットワークの設定を更新しやすく、ネットワークの合理性をチェックすることができるとともに、ネットワークの健康状態を自動モニタリングすることができ、また、ネットワークにおけるトランザクションに誤った情報が存在する場合、通知を行いながらネットワーク設定の修正案を提供することもできる、ブロックチェーンネットワークをチェックする技術を提供することにある。
【課題を解決するための手段】
【0007】
本発明の目的を達成するために、本発明の一側面によれば、ブロックチェーンネットワークをチェックする装置が提供され、それは、処理器を含み、処理器は、ブロックチェーンネットワークの設定と、ブロックチェーンネットワークの応用シナリオに対応するテンプレートの設定との間のマッチ度を計算し;ブロックチェーンネットワークのパフォーマンスを計算し;ブロックチェーンネットワークにおける健康度を計算し;及び、マッチ度、パフォーマンス及び健康度に基づいて、ブロックチェーンネットワークが安定状態にあるかを確定するように構成される。
【0008】
本発明によるブロックチェーンネットワークをチェックする技術によれば、ファブリックネットワーク構築後に、ネットワークの設定を更新しやすく、ネットワークの合理性をチェックすることができる。また、ネットワークの健康状態を自動モニタリングすることができる。さらに、ネットワークにおけるトランザクションに誤った情報が存在する場合、通知を行いながらネットワーク設定の修正案を提供することもできる。
【図面の簡単な説明】
【0009】
【
図1】従来技術におけるブロックチェーンネットワークの設定及び管理のシステムを示す図である。
【
図2】本発明の実施例におけるブロックチェーンネットワーク設定装置を用いてブロックチェーンネットワークを設定することを示す図である。
【
図3】本発明の実施例におけるブロックチェーンネットワークチェック装置を用いてブロックチェーンネットワークをチェックすることを示す図である。
【
図4】本発明の実施例におけるブロックチェーンネットワークチェック装置が取引拒否を分析することを示す図である。
【
図5】本発明の実施例におけるブロックチェーンネットワークチェック装置により実施されるブロックチェーンネットワークチェック方法のフローチャートである。
【
図6】本発明の実施例におけるブロックチェーンネットワークチェック装置の構成図である。
【
図7】本発明の実施例におけるブロックチェーンネットワークチェック装置及びブロックチェーンネットワークチェック方法を実現し得る汎用マシンの構成図である。
【発明を実施するための形態】
【0010】
以下、添付した図面を参照しながら、本発明を実施するための好適な形態を詳細に説明する。なお、このような実施形態は、例示に過ぎず、本発明を限定するものでない。
【0011】
分散型台帳が複数のノード又は計算装置に分散しているデータベースであり、各ノードがすべて1つの台帳をコピー及び保存することができ、また、各ノードがすべて独立して更新を行うことができる。台帳がいずれの中央機構によりメンテナンスされず、台帳の更新は、各ノードにより独立して構築及び記録される。ノードは、これらの更新に投票することで、それが大多数のノードの意見に合致するように確保することができる。このような投票が合意(コンセンサス)とも称され、合意は、アルゴリズムにより自動達成することができる。合意が達成されたら、分散型台帳が自行更新を行い、台帳の最新の約定バージョンがそれぞれ各ノードに保存される。分散型台帳技術は、信頼コストを大幅に削減することができるため、人々の銀行、政府、弁護士、公証人などへの頼りを軽減することができる。それと同時に、消費者の保護、財務健全性、取引速度などの問題を解決することもできる。
【0012】
ブロックチェーンが分散型台帳技術の1つの形式であるが、すべての分散型台帳が一連のブロックを用いて安全有効な分散型合意を提供するのでない。すべてのブロックがピア・ツー・ピアネットワークに分散しており、また、それが1つの分散型台帳であるから、それは、サーバーによる管理が無い場合でも存在可能であり、そのデータ品質は、データベースのコピー及び計算に基づく確認によりメンテナンスすることができる。しかし、ブロックチェーンのAppend-Onlyデータ構造は、それが他の類型の分散型台帳とは全く異なるようにさせる。ブロックチェーン上のデータが異なるブロックに組分けされ、これらのブロックは、互にリンクされ、暗号化技術により保護される。ブロックチェーンが本質的に1つの常に増える記録リストであり、その構造がデータのデータベースへの追加のみを許すので、前に入力されたデータを変更又は削除することはできない。よって、ブロックチェーン技術は、特に、イベントの記録、記録の管理、取引の処理、資産の追跡、投票などに適する。
【0013】
以下の各実施例では、コンソーシアムブロックチェーン、例えば、Hyperledger Fabricネットワークを対象として説明を行う。なお、ここでの用語“ピアリングポイント(peer(対等点))”は、ピアリングポイントネットワークにおける実体(Entity)を表す装置又は組織であり、用語“ノード(node)”は、Fabricネットワークにおける取引ノード、即ち、取引を表す。
【0014】
図1は、従来技術におけるブロックチェーンネットワークの設定及び管理のシステムを示す図である。
【0015】
図1に示すように、ネットワーク設定モジュール101を用いて、開発者100は、ネットワークの設定を自己定義することができる。例えば、ピアリングポイント、シーケンス(順序有り)ノード及びCAを増加させることができる。また、開発者は、チャネル、チェーンコード(chaincode)及び裏書きポリシーを設定することができる。さらに、ネットワークライフサイクルモジュール102を用いて、開発者100は、ネットワークに対して、管理、例えば、ピアリングポイント及び組織の追加、証書の発行などを行うこともできる。
【0016】
しかし、
図1に示す従来のブロックチェーンネットワークの設定及び管理のシステムがワーキングするときにそのメンテナンス及びモニタリングが難しく、ファブリックネットワークの動的メンテナンス、例えば、ピアリングポイント及び組織の追加が手間のかかる仕事であり、これは、
図1に示す従来のブロックチェーンネットワークの設定及び管理のシステムの欠点である。また、如何に合理性をチェックするか、如何にネットワークのパフォーマンス及び健康状態をモニタリングするかなども、解決すべき問題である。
【0017】
以下、まず、
図2を参照しながらブロックチェーンネットワークの設定について説明する。
【0018】
図2は、本発明の実施例におけるブロックチェーンネットワーク設定装置を用いてブロックチェーンネットワークを設定することを示す図である。
【0019】
図2に示すネットワーク設定モジュール201では、開発者がダッシュボード(dashboard)によりネットワークの設定を自己定義することができる。また、開発者の最優先選択機能に基づいてネットワークの設定を自動推薦することもできる。ダッシュボードdashboardは、複数のデータ源からリアルタイムデータを取得することができ、また、カスタマイズ化されたインタラクティブなインターフェースである。ダッシュボードdashboardは、豊富且つ対話可能な可視化インターフェースにより、データの交換及びカスタマイズ化を便利にすることができる。
【0020】
<ダッシュボードdashboardに基づくネットワークの自己定義>
開発者は、ダッシュボードdashboard上でネットワークコンポーネントをドラッグ・アンド・ドロップすることでファブリックネットワークを構築することができる。例えば、開発者は、ピアリングポイント、注文及びCAのノード数を設定し、そして、これらをダッシュボード上のネットワークに組み合わせることができる。その後、開発者は、ピアリングポイントを異なるチャネルに加入することができる。さらに、ピアリングポイントにチェーンコード(chaincode)を配置及びインスタンス化し、その後、裏書きポリシー(endorsing policy)を設定することもできる。
【0021】
<パフォーマンス、安全性及びシナリオに基づくネットワークの推薦>
開発者は、dappを開発しようとするときに、1つのファブリックネットワークを構築してdappを実行する必要がある。しかし、その設定が非常に困難である。通常、開発者は、dappのために適切なネットワークを構築することができない。よって、本発明の実施例におけるブロックチェーンネットワーク設定装置により、開発者に、ネットワーク設定を自動推薦することで、手間がかかることや誤設定などを避けることができる。
【0022】
まず、開発者は、dappのために、スキーム、例えば、サプライチェーン、財務、IoT(Internet of Things)、電子データ格納などをカスタマイズ化する。その後、本発明の実施例におけるブロックチェーンネットワーク設定装置により、このような特定のスキームのためにデフォルト設定を生成することができる。
【0023】
次に、開発者は、ネットワークの機能の重み(Weight)を定義することができる。ブロックチェーンがパフォーマンス及び安全性を同時に実現することができないので、ネットワーク設定時に、ニーズに応じて異なる重みを用いてパフォーマンス又は安全性を強調することができる。
【0024】
例えば、開発者は、パフォーマンスperformance及び安全性securityを含むネットワークの機能の重みを以下の公式(1)のように定義することができる。
【0025】
weight(performance)=w1;weight(security)=w2 (1)
また、開発者は、組織の数orgCount及び各組織の最大ピアリングポイント数maxOrgPeerCountを定義することもできる。ネットワークに大量のピアリングポイントが含まれる場合、ネットワークの安全性がより高くなる。ブロックチェーンネットワークについて、各組織が必ず少なくとも1つのピアリングポイントを有する。その後、安全性に基づいて、各組織におけるピアリングポイント数を以下の公式(2)のように自動推薦することができる。
【0026】
PeerCount(orgi)=1+(maxOrgPeerCount-1)*weight(security) (2)
同様に、自動推薦のCAノードの数は、以下の公式(3)に示す通りである。
【0027】
CaNodeCount=orgCount*weight(security) (3)
大多数が安全性を要求する場合、各組織が1つの合意ノード(order node)を提供するので、幾つかの組織を選択して合意ノードを提供することができる。安全性の重みが非常に高い場合、本発明の実施例におけるブロックチェーンネットワーク設定装置は、より多くの組織を自動選択して合意ノードを提供する。合意ノードが重要であり、それは、裏書きの提案レスポンスを含む取引を受け入れる。その後、これらの取引をブロックにパッケージ化し、そして、これらのブロックを合意ノードに接続されるピアリングポイントに配る。なお、合意ノードの概念について当業者が理解し得るから、ここでは、その詳しい説明を省略する。以下の公式(4)は、合意ノードの数を確定する方法である。
【0028】
orderNodeCount=orgCount*weight(security) (4)
本発明の実施例におけるブロックチェーンネットワーク設定装置は、下述の方式で、パフォーマンスの重み及び安全性の重みに基づく合意アルゴリズムを提案(推薦)することができる。
【0029】
表1は、異なる合意の特徴の重みを示ものである。
【表1】
【0030】
開発者が表1におけるkafkaノードを選択した場合、kafkaノードの数は、表1に基づいて以下の公式(5)により定義することができる。
【0031】
kafkaNodeCount=orgCount*weight(security) (5)
本発明の実施例におけるブロックチェーンネットワーク設定装置は、以下の公式(6)、(7)のように、開発者に裏書き組織及びピアリングポイントを自動推薦することができる。
【0032】
endorseOrgCount=orgCount*weight(security) (6)
endorsePeerCount(orgi)=peerCount(orgi)*weight(security) (7)
そのうち、endorseOrgCountは、裏書き組織の数であり、endorsePeerCountは、組織の裏書きピアリングポイントの数である。
【0033】
パフォーマンスの重みが0.5よりも大きい場合、裏書きポリシーを“AND”と設定し、具体的なポリシーは、(orgi Mi out Ni)AND(orgj:mj out of Nj)であり、裏書きポリシーが“OR”の場合、具体的なポリシーは、(orgi Mi out Ni)OR(orgj:mj out of Nj)である。
【0034】
<ネットワーク設定に基づくシナリオのマッチング>
本発明の実施例におけるブロックチェーンネットワーク設定装置の推薦に基づいて、開発者は、さらに、公式(8)のネットワーク設定に対して幾つかの修正を行うこともできる。最後に、以下の公式(9)によりシナリオ及びユーザ定義ネットワーク間の設定類似性を計算する。マッチしない場合、開発者は設定を修正することができる。設定類似度の取得について、この分野における周知の計算方法を採用しても良く、例えば、以下の公式(9)のようなベクトル間距離による演算方式を採用しても良いが、これに限定されない。
【0035】
networkFeature=(peerCount,CaCount,OrderCount,consensus,endorsePolicy,channel) (8)
【数1】
【0036】
図2に示す設定方法は、ブロックチェーンネットワークを設定する装置により実現することができ、該装置は、処理器を含み、処理器は、表示装置によりユーザにブロックチェーンネットワークの設定要素を示し;ユーザによる前記設定要素の選択という可視化入力に応じて、ブロックチェーンネットワークを構築又は取得し;ブロックチェーンネットワークの安全性、パフォーマンス及び応用シナリオを確定し;ブロックチェーンネットワークの安全性、パフォーマンス及び応用シナリオに基づいて、ブロックチェーンネットワークの現在の設定を計算(生成)し;及び、生成された設定を用いて、ブロックチェーンネットワークに対して設定を行うように構成される。
図2に示す方式でブロックチェーンネットワークを設定した後に、
図3に示すブロックチェーンネットワークをチェックする装置を用いて、設定された該ブロックチェーンネットワークに対してチェックを行うことができる。なお、
図3に示すブロックチェーンネットワークをチェックする装置は、他の方式で設定されるブロックチェーンネットワークに対してチェックを行うこともでき、
図2に示すような自動設定方式に限られない。
【0037】
図3は、本発明の実施例におけるブロックチェーンネットワークをチェックする装置を用いてブロックチェーンネットワークのチェックを行うことを示す図である。
【0038】
ここで、ファブリックネットワークのチェック及び管理の装置が開発者に提供され、
図3に示すフローでファブリックネットワークに対してチェック及び管理を行う。
【0039】
まず、開発者300は、ダッシュボードを用いて、動的ネットワーク管理モジュール301により、ワーキング時のネットワークを管理する。例えば、チャネル、チェーンコード、及び裏書きポリシーの更新、ピアリングポイント及び組織の追加/削除、ユーザ証書の発行及び取消などを行っても良い。
【0040】
次に、本発明の実施例におけるブロックチェーンネットワークをチェックする装置は、シナリオ、ネットワークのパフォーマンス及びネットワークの健康状態に基づいて、リアルタイムにFabricネットワーク302の合理性を評価することができる。
【0041】
続いて、本発明の実施例におけるブロックチェーンネットワークをチェックする装置は、リアルタイムにFabricネットワーク302のパフォーマンスをモニタリングし、設定の改善を行うことができる。TPSが非常に低くなるときに、装置は、各トランザクションの遅延時間を分析し、TPSを低くする段階を見つけることができる。
【0042】
続いて、本発明の実施例におけるブロックチェーンネットワークをチェックする装置は、リアルタイムにFabricネットワーク302における各ピアリングポイントの健康状態をモニタリングすることができる。各対等点を監視することで、これらが正常にワーキングするかをチェックすることができる。さらに、すべての拒否された取引の原因を自動分析することもできる。
【0043】
<ネットワークの合理性のチェック>
図3に示すようなネットワーク合理性チェックでは、以下の公式(10)に基づいて現在にワーキングしているときのファブリックネットワークの合理性得点(Score)を計算することができる。
【0044】
reasonabilityScroe=networkSimilarity(current,scenarioTemplate)*α+networkPerformanceScore*β+peerAverageHealthScore*γ (10)
そのうち、networkPerformanceScoreは、ネットワークのパフォーマンス得点であり、peerAverageHealthScoreは、ピアリングポイントの平均健康度得点であり、α、β、γは、所定の重みであり、又は、ニーズに応じて設定される重みである。合理性得点が閾値よりも小さい場合、台帳データをバックアップしてネットワークを停止し、その後、開発者に通知する。ピアリングポイントの平均健康度得点は、以下の公式(14)に示す通りである。
【0045】
<各取引のパフォーマンスのモニタリング>
図3に示すようなパフォーマンスのモニタリング及び設定の改善では、ネットワークパのフォーマンス得点を以下の公式(11)に示すように計算することができる。
【数2】
【0046】
そのうち、txCommitRateは、取引提出率であり、txArrivalRateは、取引到達率である。ネットワークのパフォーマンス得点が低過ぎる場合、高い取引拒否率又は長い取引遅延時間による可能性がある。取引拒否率がとても高い場合、拒否原因を分析して開発者に通知する。
【0047】
また、
図3に示すように、取引拒否率が正常な場合、本発明の実施例におけるブロックチェーンネットワークをチェックする装置は、さらに、以下の公式(12)に示すように、各取引の遅延時間を分析することもできる。
【0048】
txLatencyTime=txEndorsingTime+trOrderTime+txCommitTime (12)
公式(12)では、txEndorsingTimeは、取引裏書き遅延であり、trOrderTimeは、取引シーケンス遅延であり、txCommitTimeは、取引提交遅延であり、各段階における遅延時間は、すべて、1つのデフォルト値範囲を有し、各段階における遅延時間がすべて最大値よりも大きい場合、それは異常がある。その後、それは、ネットワークのパフォーマンスが次第に悪くなることを引き起こすことができる。
【0049】
図3に示すように、取引裏書き遅延が長すぎる場合、健康スコアに基づいてクライアントにアイドル(Idle)ピアリングポイントを推薦する。その後、クライアントに取引を同時にコール(call)することを推薦する(並列裏書きを推薦する)。
【0050】
取引提交遅延が長すぎる場合、すべてのピアリングポイントのネットワーク速度をチェックする。ネットワーク速度が正常な場合、ネットワークノードが多過ぎるというような警報(warning information)を提供し、幾つかの健康スコアが比較的低いピアリングポイントを削除することを推薦する。
【0051】
取引シーケンス(ordering)遅延が長すぎる場合、シーケンスサービスの設定に対しての自己適応更新を行う。
【0052】
取引到達率が非常に低いときに、小さいブロックのサイズ(1つのブロックに幾つかの取引がある)を定義し、また、1つのブロックの時間間隔を増加させる。このような方式で、動的に、シーケンス設定が取引到達率に適応するようにさせてTPSを増強することができる。
【0053】
逆に、取引到達率が非常に高いときに、大きいブロックのサイズを定義し、また、1つのブロックの時間間隔を減少させる。
【0054】
<ネットワークの健康状態の監視>
本発明の実施例におけるブロックチェーンネットワークをチェックする装置は、さらに、各ピアリングポイントの取引ノードのワーキング状況を監視し、それらが正常にワーキングしているかをチェックすることができる。例えば、
図3に示すように、ノード健康状態モニタリングの機能では、ピアリングポイントが壊れているか、各チャネルにそれとマッチする1つのCPUコアがあるか、ピアリングポイントのCPUレート及び保存レートが正常であるか、ネットワーク速度が正常であるか、異なるピアリングポイント間の台帳データが一致しているかなどをチェックする。ピアリングポイントの取引ノード健康スコアは、以下の公式(13)により計算することができる。
【0055】
peerNodeHealthScore=peerAlive*α1+cpuCore*α2+cpuRate*α3+memoryRate*α4+networkSpeed*α5+ledgerConsistent*α6 (13)
1つの因子がピアリングポイントの健康状態に影響を与えた場合、該因子の得点は100であり、そうでない場合、0である。
【0056】
また、
図3に示すように、さらに、リアルタイムにピアリングポイントの取引拒否をモニタリングすることもできる。
図3に示す取引拒否モニタリングの機能では、一例として、裏書きの時間超過、R/Wの衝突、不一致の裏書き結果、及び満足できないポリシーという4種類の取引拒否の原因を分析し得る。以下、
図4に基づいて、本発明の実施例におけるブロックチェーンネットワークをチェックする装置の、取引拒否に対しての分析及び処理を説明する。
図4に示すように、まず、ログ及び歴史台帳データに基づいて、取引拒否の原因を分析する。
図4に示すように、取引を拒否し得る4つの原因が存在し得る。
【0057】
1番目は、裏書きの時間超過である。これが原因で、本発明の実施例におけるブロックチェーンネットワークをチェックする装置は、チェーンコードに対して静的なコード分析を行い、チェーンコードにおける無限ループコードを見つけることができる。その後、開発者に、無限ループのチェーンコードを削除することを通知する。
【0058】
2番目は、不一致の裏書き結果である。これが原因で、本発明の実施例におけるブロックチェーンネットワークをチェックする装置は、不正行為を分析し、ディスカウントレートを以てこれらのピアリングポイントの信用スコアを減少させることができる。また、ピアリングポイントが不一致の裏書き結果を返した場合、以下の公式(14)に示すように、その自身の健康スコアに影響を及ぼすこともできる。
【0059】
peerHealthScore=peerNodeHealthScore*α+peerCreditScore*β (14)
3番目は、R/Wの衝突である。これが原因で、本発明の実施例におけるブロックチェーンネットワークチェック装置は、開発者に、重複した(Repeated)キーを使用しないようにチェーンコードを修正すること、又は、取引を提出するときに時間間隔を増加させることを推薦する。
【0060】
4番目は、ポリシーが望みどおりの状態でない。これが原因で、本発明の実施例におけるブロックチェーンネットワークチェック装置は、クライアントに、ポリシーが満たされる裏書きピアリングポイントを推薦する。
【0061】
図5は、本発明の実施方式におけるブロックチェーンネットワークチェック装置が実施するブロックチェーンネットワークチェック方法のフローチャートである。
【0062】
まず、ステップ501では、ブロックチェーンネットワークを取得し;続いて、ステップ502では、ブロックチェーンネットワークの設定と、ブロックチェーンネットワークの応用シナリオに対応するテンプレートの設定との間のマッチ度を計算し;ステップ503では、ブロックチェーンネットワークのパフォーマンスを計算し;ステップ504では、ブロックチェーンネットワークにおける健康度を計算し;最後に、ステップ505では、マッチ度、パフォーマンス及び健康度に基づいて、ブロックチェーンネットワークが安定状態にあるかを確定する。
【0063】
図6は、本発明の実施例におけるブロックチェーンネットワークチェック装置の構成図である。
図6に示すブロックチェーンネットワークチェック装置600は、少なくとも1つの処理器601を含み、それは、ブロックチェーンネットワークをチェックする方法を実行するように構成される。具体的には、少なくとも1つの処理器601は、ブロックチェーンネットワークの設定と、ブロックチェーンネットワークの応用シナリオに対応するテンプレートの設定との間のマッチ度を計算し;ブロックチェーンネットワークのパフォーマンスを計算し;ブロックチェーンネットワークにおける健康度を計算し;及び、マッチ度、パフォーマンス及び健康度に基づいて、ブロックチェーンネットワークが安定状態にあるかを確定するように構成される。少なくとも1つの処理器601は、さらに、上述の方法の他のステップを実行するように構成される。また、ブロックチェーンネットワークをチェックする装置は、さらに、格納ユニット及び/又は通信ユニット(図示せず)を含んでも良く、格納ユニットは、認識待ちのデータを保存し、通信ユニットは、データを送受信するために用いられる。
【0064】
上述の一連の処理は、ソフトウェア及び/又はファームウェアにより実現されても良い。ソフトウェア及び/又はファームウェアにより実現される場合、記憶媒体又はネットワークから、専用ハードウェア構造を有するコンピュータ、例えば、
図7に示す汎用マシン700に、該ソフトウェアを構成するプログラムをインストールし、該コンピュータは、各種のプログラムがインストールされているときに、各種の機能などを実行することができる。
【0065】
図7は、本発明の実施例におけるブロックチェーンネットワークチェック装置及びブロックチェーンネットワークチェック方法を実現し得る汎用マシン700の構成図である。汎用マシン700は、例えば、コンピュータシステムであっても良い。なお、汎用マシン700は、例示に過ぎず、本発明は、これに限定されない。
【0066】
図7では、中央処理装置(CPU)701は、ROM 702に記憶されているプログラム又は記憶部708からRAM 703にロッドされているプログラムに基づいて各種の処理を行う。RAM 703では、ニーズに応じて、CPU 701が各種の処理を行うときに必要なデータなどを記憶することもできる。CPU 701、ROM 702及びRAM 703は、バス704を経由して互いに接続される。入力/出力インターフェース705もバス704に接続される。
【0067】
また、入力/出力インターフェース705には、さらに、次のような部品が接続され、即ち、キーボードなどを含む入力部706、液晶表示器(LCD)などのような表示器及びスピーカーなどを含む出力部707、ハードディスクなどを含む記憶部708、ネットワークインターフェースカード、例えば、LANカード、モデムなどを含む通信部709である。通信部709は、例えば、インターネット、LANなどのネットワークを経由して通信処理を行う。
【0068】
ドライブ710は、ニーズに応じて、入力/出力インターフェース705に接続されても良い。取り外し可能な媒体711、例えば、半導体メモリなどは、必要に応じて、ドライブ710にセットされることにより、その中から読み取られたコンピュータプログラムを記憶部708にインストールすることができる。
【0069】
本発明は、さらに、プログラムを記憶したコンピュータ記憶媒体に関し、該プログラムは、実行されるときに上述の実施例における方法を実現することができり。
【0070】
また、本発明は、さらに、マシン可読指令コードを含むプログラムプロダクトを提供する。このような指令コードは、マシンにより読み取られて実行されるときに、上述の本発明の実施例における方法を実行することができる。それ相応に、このようなプログラムプロダクトをキャリー(carry)する、例えば、磁気ディスク(フロッピーディスク(登録商標)を含む)、光ディスク(CD-ROM及びDVDを含む)、光磁気ディスク(MD(登録商標)を含む)、及び半導体記憶器などの各種の記憶媒体も、本発明に含まれる。
【0071】
上述の記憶媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体記憶器などを含んでも良いが、これらに限定されない。
【0072】
また、上述の方法における各操作(処理)は、各種のマシン可読記憶媒体に記憶されているコンピュータ実行可能なプログラムの方式で実現することもできる。
【0073】
以上のことから、本発明は、ブロックチェーンネットワークをチェックする装置を提供し、ファブリックネットワーク構築後に、dappの開発者は、本発明によるブロックチェーンネットワークをチェックする装置を用いて、ネットワークの設定を容易に更新し、ネットワークの合理性をチェックすることができる。また、ネットワークの健康状態を自動モニタリングするができる。さらに、ネットワークにおけるトランザクションに幾つかの誤った情報が存在するときに、dappの開発者に通知しながらネットワーク設定の修正案を提供することもできる。
【0074】
また、本発明は、さらに、ネットワーク管理のための構成配置ツールを提供する。Dappの開発者は、本発明の実施例により、ネットワークの設定を自己定義することができる。
【0075】
本発明は、さらに、Fabricネットワークライフサイクル管理のソリューションを提供する。
【0076】
また、以上の実施例などに関し、さらに以下の付記を開示する。
【0077】
(付記1)
ブロックチェーンネットワークをチェックする装置であって、
処理器を含み、前記処理器は、
前記ブロックチェーンネットワークの設定と、前記ブロックチェーンネットワークの応用シナリオに対応するテンプレートの設定との間のマッチ度を計算し;
前記ブロックチェーンネットワークのパフォーマンスを計算し;
前記ブロックチェーンネットワークにおける健康度を計算し;及び
前記マッチ度、前記パフォーマンス及び前記健康度に基づいて、前記ブロックチェーンネットワークが安定状態にあるかを確定する、装置。
【0078】
(付記2)
付記1に記載の装置であって、
前記処理器は、さらに、
前記ブロックチェーンネットワークが不安定状態にあると確定したときに、台帳のバックアップ、前記ブロックチェーンネットワークの停止、及び通知を行うように構成される、装置。
【0079】
(付記3)
付記1に記載の装置であって、
前記処理器は、さらに、
取引確認レートと取引到達レートとの比率により、前記ブロックチェーンネットワークのパフォーマンスを指示し、及び
取引のパフォーマンスをモニタリングし、パフォーマンスが低下した場合、パフォーマンスの低下の原因を分析するように構成され、
前記パフォーマンスの低下の原因は、取引裏書き段階の遅延が第一所定閾値よりも大きく、取引合意段階の遅延が第二所定閾値よりも大きく、及び、取引確認段階の遅延が第三所定閾値よりも大きいということを含み、取引裏書き段階の遅延が第一所定閾値よりも大きい場合、取引を並列に提出することを推薦し、取引合意段階の遅延が第二所定閾値よりも大きい場合、ブロックチェーンのブロードキャスト時間及びブロックサイズを修正し、取引確認段階の遅延が第三所定閾値よりも大きい場合、健康度が比較的低いピアリングポイントを自動削除する、装置。
【0080】
(付記4)
付記1に記載の装置であって、
前記処理器は、さらに、
前記ブロックチェーンネットワークにおける各ピアリングポイントの健康度の和の平均値により、前記ブロックチェーンネットワークにおける健康度を指示するように構成される、装置。
【0081】
(付記5)
付記1に記載の装置であって、
前記処理器は、さらに、
ブロックチェーンネットワークにおける無効取引の原因を分析し、裏書きが時間超過の場合、取引を無効にし、チェーンコードにおける無限ループを削除することを推薦し、裏書きの結果が不一致の場合、悪ノード(Malicious Node)の信用度を下げ、読み書きが衝突の場合、取引の送信間隔を増加させることを推薦し、裏書きのポリシーが満足されない場合、ポリシーが満足される裏書きノードを推薦するように構成される、装置。
【0082】
(付記6)
付記4に記載の装置であって、
前記処理器は、さらに、
前記ピアリングポイントの健康度を、前記ピアリングポイントにおける各ノードの健康度の平均値と、前記ピアリングポイントの信用度との和に等しくするように構成される、装置。
【0083】
(付記7)
付記6に記載の装置であって、
前記ピアリングポイントにおける各ノードの健康度は、
前記ピアリングポイントの生存率、前記処理器のコア数、前記処理器の処理速度、保存レート、インターネット速度及び台帳の一致度のうちの少なくとも1つに関連する、装置。
【0084】
(付記8)
付記1に記載の装置であって、
チェック待ちの前記ブロックチェーンネットワークは、以下の方式で設定されるブロックチェーンネットワークであり、即ち、
表示装置により、ユーザに、前記ブロックチェーンネットワークの設定要素を示し;
ユーザによる前記設定要素の選択という可視化入力に応じて、前記ブロックチェーンネットワークを構築又は取得し;
前記ブロックチェーンネットワークの安全性、パフォーマンス及び応用シナリオを確定し;
前記ブロックチェーンネットワークの安全性、パフォーマンス及び応用シナリオに基づいて、前記ブロックチェーンネットワークの現在の設定を計算(生成)し;及び
生成された設定を用いて、前記ブロックチェーンネットワークを設定するという方式である、装置。
【0085】
(付記9)
付記8に記載の装置であって、
前記処理器が前記ブロックチェーンネットワークの現在の設定を計算するときに、前記処理器は、さらに、
S1:前記ブロックチェーンネットワークの応用シナリオを確定し;及び
S2:前記ブロックチェーンネットワークの応用シナリオ並びにデフォルトの前記ブロックチェーンネットワークの安全性及びパフォーマンスに基づいて、前記ブロックチェーンネットワークのデフォルト設定を前記現在の設定として計算するように構成される、装置。
【0086】
(付記10)
付記9に記載の装置であって、
前記処理器は、さらに、
S3:前記ブロックチェーンネットワークの安全性及びパフォーマンスのうちの少なくとも1つを確定し;及び
S4:前記ブロックチェーンネットワークの安全性及びパフォーマンスのうちの少なくとも1つに基づいて、前記ブロックチェーンネットワークの現在の設定を更新するように構成される、装置。
【0087】
(付記11)
ブロックチェーンネットワークを設定する装置であって、
処理器を含み、前記処理器は、
表示装置により、ユーザに、前記ブロックチェーンネットワークの設定要素を示し;
ユーザによる前記設定要素の選択という可視化入力に応じて、前記ブロックチェーンネットワークを構築又は取得し;
前記ブロックチェーンネットワークの安全性、パフォーマンス及び応用シナリオを確定し;
前記ブロックチェーンネットワークの安全性、パフォーマンス及び応用シナリオに基づいて、前記ブロックチェーンネットワークの現在の設定を計算(生成)し;及び
生成された設定を用いて、前記ブロックチェーンネットワークを設定するように構成される、装置。
【0088】
(付記12)
付記11に記載の装置であって、
前記処理器が前記ブロックチェーンネットワークの現在の設定を計算するときに、前記処理器は、さらに、
S1:前記ブロックチェーンネットワークの応用シナリオを確定し;及び
S2:前記ブロックチェーンネットワークの応用シナリオ並びにデフォルトの前記ブロックチェーンネットワークの安全性及びパフォーマンスに基づいて、前記ブロックチェーンネットワークのデフォルト設定を前記現在の設定として計算するように構成される、装置。
【0089】
(付記13)
付記11に記載の装置であって、
前記処理器は、さらに、
S3:前記ブロックチェーンネットワークの安全性及びパフォーマンスのうちの少なくとも1つを確定し;及び
S4:前記ブロックチェーンネットワークの安全性及びパフォーマンスのうちの少なくとも1つに基づいて、前記ブロックチェーンネットワークの現在の設定を更新するように構成される、装置。
【0090】
(付記14)
コンピュータ可読プログラムを記憶したコンピュータ可読記憶媒体であって、
前記プログラムは、コンピュータにより実行されるときに、前記コンピュータを付記1~13のいちの任意の1項に記載の装置とする、記憶媒体。
【0091】
以上、本発明の好ましい実施形態を説明したが、本発明はこの実施形態に限定されず、本発明の趣旨を離脱しない限り、本発明に対するあらゆる変更は、本発明の技術的範囲に属する。