(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-15
(45)【発行日】2022-03-24
(54)【発明の名称】コンセンサスメカニズムのデプロイ方法、装置、機器及び記憶媒体
(51)【国際特許分類】
G06F 8/60 20180101AFI20220316BHJP
G06F 9/52 20060101ALI20220316BHJP
【FI】
G06F8/60
G06F9/52 150C
(21)【出願番号】P 2020533673
(86)(22)【出願日】2019-05-20
(86)【国際出願番号】 CN2019087574
(87)【国際公開番号】W WO2020015447
(87)【国際公開日】2020-01-23
【審査請求日】2020-06-18
(31)【優先権主張番号】201810779236.8
(32)【優先日】2018-07-16
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】512015127
【氏名又は名称】バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
(74)【代理人】
【識別番号】100118913
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100163050
【氏名又は名称】小栗 眞由美
(74)【代理人】
【識別番号】100201466
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】シャオ, ウェイ
【審査官】多賀 実
(56)【参考文献】
【文献】中国特許出願公開第107360248(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/60- 8/658
G06F 9/44- 9/54
G06F 16/00-16/958
G06F 21/00
G06F 21/30-21/46
H04L 9/00- 9/40
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンセンサスメカニズムのデプロイ方法であって、ブロックチェーンネットワーク内のノードによって実行され、
標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するステップと、
ローカルノードに前記カスタムコンセンサスプラグインをデプロイするステップと、を含むことを特徴とする
、コンセンサスメカニズムのデプロイ方法。
【請求項2】
前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、
前記カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、前記アップグレード要求に基づいて投票提案トランザクションを開始するステップと、
ブロック生成ノードが前記投票提案トランザクションに応答して投票し、投票に合格した場合に、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとするように、ブロックチェーンネットワークで前記投票提案トランザクションを伝送するステップと、をさらに含むことを特徴とする、請求項1に記載のコンセンサスメカニズムのデプロイ方法。
【請求項3】
前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、
前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることが検出された場合に、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化するステップをさらに含むことを特徴とする、請求項1に記載のコンセンサスメカニズムのデプロイ方法。
【請求項4】
前記カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化するステップは、
カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズム内の少なくとも2つのコンセンサス実行関数を初期化するステップを含み、
前記少なくとも2つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含むことを特徴とする、請求項3に記載のコンセンサスメカニズムのデプロイ方法。
【請求項5】
前記カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化した後に、
前記コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて、前記カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すステップをさらに含むことを特徴とする、請求項3に記載のコンセンサスメカニズムのデプロイ方法。
【請求項6】
前記アップグレード要求に基づいて投票提案トランザクションを開始するステップは、
投票有効ブロックの高さを決定するステップと、
前記アップグレード要求と前記投票有効ブロックの高さとに基づいて投票提案トランザクションを開始し、生成される現在のブロック高さが前記投票有効ブロックの高さであることが検出された場合に、前記ブロック生成ノードが前記投票提案トランザクションに応答して投票するステップと、を含むことを特徴とする、請求項2に記載のコンセンサスメカニズムのデプロイ方法。
【請求項7】
前記アップグレード要求に基づいて投票提案トランザクションを開始するステップは、
前記投票提案トランザクションの投票有効割合閾値を決定するステップと、
前記アップグレード要求と前記投票有効割合閾値とに基づいて投票提案トランザクションを開始し、投票に合格した割合値が前記投票有効割合閾値より大きい場合に、前記ブロック生成ノードが投票に合格したと決定するステップと、を含むことを特徴とする、請求項2に記載のコンセンサスメカニズムのデプロイ方法。
【請求項8】
前記投票提案トランザクションの投票有効割合閾値を決定するステップは、
ローカルノードによって設定された投票有効割合閾値を取得するステップと、
設定された投票有効割合閾値がシステムの投票有効割合閾値以下である場合に、システムの投票有効割合閾値を前記投票提案トランザクションの投票有効割合閾値とし、そうでない場合には、設定された投票有効割合閾値を前記投票提案トランザクションの投票有効割合閾値とするステップと、を含むことを特徴とする、請求項7に記載のコンセンサスメカニズムのデプロイ方法。
【請求項9】
前記カスタムコンセンサスプラグインを取得するステップは、
標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得するステップと、
前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得するステップと、を含むことを特徴とする、請求項1に記載のコンセンサスメカニズムのデプロイ方法。
【請求項10】
前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得した後に、
ブロックチェーンネットワークに含まれる他のノードに前記カスタムコンセンサスプラグインを送信して、前記他のノードが前記カスタムコンセンサスプラグインをデプロイするステップをさらに含むことを特徴とする、請求項9に記載のコンセンサスメカニズムのデプロイ方法。
【請求項11】
前記カスタムコンセンサスプラグインを取得するステップは、
ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信するステップを含むことを特徴とする、請求項9に記載のコンセンサスメカニズムのデプロイ方法。
【請求項12】
コンセンサスメカニズムのデプロイ装置であって、ブロックチェーンネットワーク内のノードに配置され、
標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するプラグイン取得モジュールと、
ローカルノードに前記カスタムコンセンサスプラグインをデプロイするためのプラグインデプロイモジュールと、を含むことを特徴とする
、コンセンサスメカニズムのデプロイ装置。
【請求項13】
前記装置は、投票モジュールをさらに含み、
該投票モジュールは、
前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、前記カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、前記アップグレード要求に基づいて投票提案トランザクションを開始するための投票提案開始ユニットと、
ブロック生成ノードが前記投票提案トランザクションに応答して投票し、投票に合格した場合に、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとするように、ブロックチェーンネットワークで前記投票提案トランザクションを伝送するための投票提案トランザクション伝送ユニットと、を含むことを特徴とする、請求項12に記載のコンセンサスメカニズムのデプロイ装置。
【請求項14】
前記装置は、
前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることが検出された場合に、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化するための初期化モジュールをさらに含むことを特徴とする、請求項12に記載のコンセンサスメカニズムのデプロイ装置。
【請求項15】
前記初期化モジュールは、具体的には、
カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズム内の少なくとも2つのコンセンサス実行関数を初期化し、
前記少なくとも2つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含むことを特徴とする、請求項14に記載のコンセンサスメカニズムのデプロイ装置。
【請求項16】
前記装置は、
前記カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化した後に、前記コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて前記カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すための呼び出しモジュールをさらに含むことを特徴とする、請求項14に記載のコンセンサスメカニズムのデプロイ装置。
【請求項17】
前記プラグイン取得モジュールは、
標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得するためのカスタムコンセンサスメカニズム取得ユニットと、
前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得するためのコンパイルユニットと、を含むことを特徴とする、請求項12に記載のコンセンサスメカニズムのデプロイ装置。
【請求項18】
前記装置は、
前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得した後に、ブロックチェーンネットワークに含まれる他のノードに前記カスタムコンセンサスプラグインを送信して、前記他のノードが前記カスタムコンセンサスプラグインをデプロイするためのメカニズム送信モジュールをさらに含むことを特徴とする、請求項12に記載のコンセンサスメカニズムのデプロイ装置。
【請求項19】
前記装置は、
ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信するためのメカニズム受信モジュールをさらに含むことを特徴とする、請求項12に記載のコンセンサスメカニズムのデプロイ装置。
【請求項20】
一つ又は複数のプロセッサと、
一つ又は複数のプログラムを記憶するためのメモリと、を含み、
前記一つ又は複数のプログラムが前記一つ又は複数のプロセッサによって実行される場合に、前記一つ又は複数のプロセッサが、請求項1から11のいずれかに記載のコンセンサスメカニズムのデプロイ方法を実現することを特徴とする、機器。
【請求項21】
プログラムがプロセッサによって実行される場合に、請求項1から11のいずれかに記載のコンセンサスメカニズムのデプロイ方法が実現されることを特徴とする、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【優先権情報】
【0001】
本願は、2018年7月16日付に中国特許局に提供した、中国特許出願番号が201810779236.8である中国特許出願の優先権を主張するものであり、当該出願のすべての内容は、引用により本願に組み込まれる。
【技術分野】
【0002】
本願の実施例は、ブロックチェーン技術の分野に関し、例えば、コンセンサスメカニズムのデプロイ方法、装置、機器及び記憶媒体に関する。
【背景技術】
【0003】
インターネット技術の継続的な発展に伴い、脱中心化した、オープンで透明なブロックチェーン技術が生まれた。ブロックチェーンネットワークは、異なるコンセンサスメカニズムをサポートでき、コンセンサスメカニズムは、ブロックチェーン技術の重要なコンポーネントとして、ブロックチェーンネットワークを支援し、ブロックチェーン内部で生成されたトランザクションを検証及び確認でき、ブロックチェーンネットワーク内のすべての正直なノードの一貫性及びトランザクション記録の有効性を確保する。
【0004】
現在、ブロックチェーンネットワークは、作成された初期に内部のコンセンサスメカニズムの配置を既に完了している。例えば、基礎ブロックを作成する際に、対応するコンセンサスメカニズムを配置することで、ブロックチェーンネットワーク内のノードは、ブロックチェーンネットワークに埋め込まれたコンセンサスメカニズムに基づいて、ブロックチェーンネットワーク内部で生成されたトランザクションの検証及び確認を完了する。例えば、ビットコインのアプリケーションシナリオに埋め込まれたコンセンサスメカニズムは、作業量証明メカニズム(Proof of Work、POW)であり、イーサリアムアプリケーションシナリオに埋め込まれたコンセンサスメカニズムは、POW又は権益証明メカニズム(Proof of Stake、POS)であり、ハイパーレジャー・ファブリック(Hyperledger Fabric)のアプリケーションシナリオに埋め込まれたコンセンサスメカニズムは、実用的なビザンチンフォーチュンメカニズム(Practical Byzantine Fault Tolerance、PBFT)又は分散キューメカニズム(Kafka)である。
【0005】
しかしながら、ブロックチェーンを作成した後、コンセンサスメカニズムは、固定され修正不可能な形式でブロックチェーンネットワークに配置されており、システムに埋め込まれたコンセンサスメカニズムは、アップグレードできず、ブロックチェーン作成者が日々増加又は変化する業務ニーズを満たすことができない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
以下は、本明細書で詳細に説明される主題の概要である。本概要は、請求項の保護範囲を制限するものではない。
【0007】
本願の実施例は、ブロックチェーンネットワークにカスタムコンセンサスメカニズムをデプロイすることができるコンセンサスメカニズムのデプロイ方法、装置、機器及び記憶媒体を提供する。
【課題を解決するための手段】
【0008】
第1の態様において、本願の実施例は、ブロックチェーンネットワーク内のノードによって実行されるコンセンサスメカニズムのデプロイ方法を提供する。この方法は、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するステップと、ローカルノードに前記カスタムコンセンサスプラグインをデプロイするステップと、を含む。
【0009】
第2の態様において、本願の実施例は、ブロックチェーンネットワーク内のノードに配置されるコンセンサスメカニズムのデプロイ装置を提供する。前記装置は、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するプラグイン取得モジュールと、ローカルノードに前記カスタムコンセンサスプラグインをデプロイするためのプラグインデプロイモジュールと、を含む。
【0010】
第3の態様において、本願の実施例は、機器を提供する。前記機器は、一つ又は複数のプロセッサと、一つ又は複数のプログラムを記憶するためのメモリと、を含み、前記一つ又は複数のプログラムが前記一つ又は複数のプロセッサによって実行される場合に、前記一つ又は複数のプロセッサが、本願の任意の実施例に記載のコンセンサスメカニズムのデプロイ方法を実現する。
【0011】
第4の態様において、本願の実施例は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体を提供する。当該プログラムがプロセッサによって実行される場合に、本願の任意の実施例に記載のコンセンサスメカニズムのデプロイ方法が実現される。
【発明の効果】
【0012】
本願の実施例は、標準化されたコンセンサスメカニズムフレームワークを使用してカスタムコンセンサスメカニズムを作成し、作成されたカスタムコンセンサスメカニズムをカスタムコンセンサスプラグインにコンパイルして、プラグインの形式でカスタムコンセンサスメカニズムをローカルノードにデプロイする。本願の実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成することにより、ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイすることを実現する。ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供することで、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上させる。
【0013】
図面と詳細の説明を読んで理解することで、他の態様を理解することができる。
【図面の簡単な説明】
【0014】
【
図1】本願の実施例1により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。
【
図2】本願の実施例2により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。
【
図3】本願の実施例3により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。
【
図4】本願の実施例4により提供されるコンセンサスメカニズムのデプロイ装置の概略構成図である。
【
図5】本願の実施例5により提供される機器の概略構成図である。
【発明を実施するための形態】
【0015】
以下、図面と実施例とを組み合わせて、本願についてさらに詳しく説明する。なお、ここで説明される具体的な実施例は、単に本願を解釈するためのものであり、本願を限定するものではない。また、説明の便宜上、図面には、すべての構成ではなく、本願に係る部分だけが示されている。
【0016】
実施例1
図1は、本願の実施例1により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。当該方法は、ブロックチェーンネットワーク内のノードに適用される。ブロックチェーンは、パブリックブロックチェーン、コンソーシアムブロックチェーン、又はプライベートブロックチェーンであってもよく、ブロックチェーンネットワークは、通常、複数のノードを含むことができる。本願の実施例は、ユーザのニーズに応じて提出されたカスタムコンセンサスメカニズムに適用することができる。当該方法は、ブロックチェーンネットワークのノードに配置されたコンセンサスメカニズムのデプロイ装置によって実行される。当該方法は、具体的には、以下のステップを含む。
S110:標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得する。
【0017】
本実施例では、カスタムコンセンサスメカニズムは、ブロックチェーンネットワーク内の1つのノードが、ユーザ業務ニーズに基づいて作成された、ブロックチェーンネットワーク内の各ノードがトランザクション検証及び確認する時に実行されるコードセグメントを指す。カスタムコンセンサスプラグインとは、カスタムコンセンサスメカニズムを作成するノードが、カスタムコンセンサスメカニズムのコードを実行可能なファイルにコンパイルすることを指し、プラグインの形式でブロックチェーンのウェブサイトのノードに配置される。なお、カスタムコンセンサスプラグインは、ローカルノードのユーザ自分で作成してコンパイルしたものであってもよいし、他のユーザがブロックチェーンネットワークにおける他のノードでカスタムコンセンサスメカニズムのコードを作成し、カスタムコンセンサスメカニズムのコードを実行可能なファイルにコンパイルし、ローカルノードに発行したものであってもよい。
【0018】
具体的には、本実施例は、標準化されたコンセンサスメカニズムフレームワークを使用してカスタムコンセンサスメカニズムを作成する。標準化されたコンセンサスメカニズムフレームワークは、コンセンサスメカニズムアーキテクチャを規範化処理し、コンセンサスメカニズムの作成フォーマット、存在する形式、及び命名ルールなどの作成方式を統一的に制限することができる。従って、ブロックチェーンネットワーク内のノードがカスタムコンセンサスメカニズムを作成する場合、フレームワーク内の作成ルールによって、標準化されたコンセンサスメカニズムフレームワークに基づいてコンセンサスメカニズムに対応する内容をカスタマイズすればよい。本実施例における標準化されたコンセンサスメカニズムフレームワークは、コンセンサスメカニズムの作成方式を統一するだけでなく、ユーザの作成が便利になり、後期のコンセンサスメカニズムの統一された呼び出しを容易にする。
【0019】
さらに、本実施例は、ブロックチェーンのネイティブ言語を使用してカスタムコンセンサスメカニズムを作成することができる。ブロックチェーンのネイティブ言語とは、GO言語、Java(登録商標)言語、又はC++言語などの、ブロックチェーンの基礎となるネットワークアーキテクチャを作成する言語を指すことができる。
【0020】
例示的には、本実施例における標準化されたコンセンサスメカニズムフレームワークには、初期化関数、ブロック生成権の検証関数、及びブロック有効性の検証関数などの少なくとも3つの基本的なコンセンサス実行関数が含まれる。初期化関数は、カスタムコンセンサスメカニズムがブロックチェーンネットワーク内のノードに最初にデプロイされる場合、現在のブロックチェーンネットワークの状態に基づいてカスタムコンセンサスメカニズムを初期化する。例えば、カスタムコンセンサスメカニズムに含まれるパラメータ又は条件に初期値を与え、ブロック生成権の検証関数は、トランザクション処理権が取得されたか否かを検証するために用いられる。ブロック有効性の検証関数は、新しいブロックに記録されたトランザクションの有効性を検証するために用いられることを理解されたい。
【0021】
本実施例では、既存のコンセンサスメカニズムを現在のブロックチェーンネットワークのコンセンサスメカニズムとして採用しても、標準化されたコンセンサスメカニズムフレームワークに従って既存のコンセンサスメカニズムを標準化処理し、フォーマット又は形式的な変換を行って、現在のブロックチェーンネットワーク内のコンセンサスメカニズムフレームワークに適合することに注意する必要がある。例示的には、上記の例では、POWメカニズムを現在のブロックチェーンネットワークのコンセンサスメカニズムとして採用した場合、POWメカニズムを初期化関数、ブロック生成権の検証関数、及びブロック有効性の検証関数の3つの関数を含む存在形式に変換し、命名ルールに従って関数の命名を規範する必要がある。
【0022】
さらに、カスタムコンセンサスプラグインを取得する際に、ローカルノードによってカスタムコンセンサスメカニズムが開始された場合、ローカルノードは、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得し、カスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得することができる。ブロックチェーンネットワークに含まれる他のノードに当該カスタムコンセンサスプラグインを送信し、他のノードが当該カスタムコンセンサスプラグインをデプロイすることができる。ブロックチェーンネットワーク内の他のノードによってカスタムコンセンサスメカニズムが開始された場合、ローカルノードは、ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信することができる。ブロックチェーンネットワークの各ノードにおけるカスタムコンセンサスメカニズムの統一のデプロイを実現する。
【0023】
S120:ローカルノードにカスタムコンセンサスプラグインをデプロイする。
【0024】
本実施例では、ローカルノードによって発行されたカスタムコンセンサスメカニズムであるか、それともブロックチェーンネットワーク内の他のノードによって発行されたカスタムコンセンサスメカニズムであるかに関わらず、カスタムコンセンサスプラグインは、ブロックチェーンネットワーク内の各ノードにすべて発行され、ブロックチェーンネットワーク内部のコンセンサスメカニズムを統一する。ブロックチェーンネットワーク内のすべてのノードは、一致するコンセンサスメカニズムに基づいていずれもブロックチェーン内部のトランザクションを検証及び確認することができる。さらに、ローカルノードは、カスタムコンセンサスプラグインを取得した後に、カスタムコンセンサスプラグインをローカルノードにデプロイすることができる。カスタムコンセンサスプラグインは、プラグインの形式でローカルノードの物理マシンにデプロイできることを理解されたい。
【0025】
さらに、ローカルノードにカスタムコンセンサスプラグインをデプロイした後に、異なるブロックチェーンタイプとノードの権限とに基づいて、当該カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして使用できるか否かを判断することができる。ブロックチェーンが作成される際に、ブロックチェーンネットワークで配置されたコンセンサスメカニズムが、ブロックチェーンネットワークで採用されるコンセンサスメカニズムである。また、ブロックチェーンネットワークにおけるノードの投票又は権限ノードの指定によって、カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして使用できるか否かを決定することもできる。
【0026】
例示的には、現在のブロックチェーンがパブリックブロックチェーンである場合、カスタムコンセンサスメカニズムは、ブロックチェーンネットワーク内部の処理対象トランザクションとすることができる。ブロックチェーンネットワーク内の多くのノードは、現在のブロックチェーンネットワークの既存のコンセンサスメカニズムに基づいて、デプロイされたカスタムコンセンサスメカニズムを検証して、当該カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして使用できるか否かを検証する必要がある。これに対応して、カスタムコンセンサスメカニズムを発行するノードは、カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、アップグレード要求に基づいて投票提案トランザクションを開始する。具体的には、投票提案トランザクションを開始する際に、投票有効ブロックの高さを決定し、アップグレード要求と投票有効ブロックの高さとに基づいて投票提案トランザクションを開始する。生成される現在のブロック高さが投票有効ブロックの高さであることが検出された場合、ブロック生成ノードが投票提案トランザクションに応答して投票することができる。また、投票提案トランザクションの投票有効割合閾値を決定し、アップグレード要求と投票有効割合閾値とに基づいて投票提案トランザクションを開始する。投票に合格した割合値が前記投票有効割合閾値より大きい場合、ブロック生成ノードが投票に合格したと決定することもできる。投票有効割合閾値は、ローカルノードによって設定された投票有効割合閾値である。設定された投票有効割合閾値がシステムの投票有効割合閾値以下である場合、システムの投票有効割合閾値を投票提案トランザクションの投票有効割合閾値とし、そうでない場合、設定された投票有効割合閾値を投票提案トランザクションの投票有効割合閾値とする。さらに、ブロックチェーンネットワークで投票提案トランザクションを伝送して、ブロック生成ノードが投票提案トランザクションに応答して投票し、投票に合格した場合、カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることによって、ブロックチェーンネットワーク内のコンセンサスメカニズムのアップグレードを実現する。ブロックチェーンネットワーク内のコンセンサスメカニズムをアップグレードする際、標準化されたコンセンサスメカニズムフレームワークに基づいて、カスタムコンセンサスメカニズムを使用してアップグレードされるコンセンサスメカニズムをすべて置き換える必要があることを理解されたい。例えば、上記の3つの基本コンセンサス実行関数を含むコンセンサスメカニズムフレームワークに基づいて、カスタムコンセンサスメカニズム内の3つの関数を使用してアップグレードされるコンセンサスメカニズム内の3つの関数を対応して置き換える必要がある。
【0027】
例示的には、現在のブロックチェーンネットワークがコンソーシアムブロックチェーン又はプライベートブロックチェーンである場合、ブロックチェーンネットワーク内の特定のノードは、一定の権限を有し、ブロックチェーンによって採用されるコンセンサスメカニズムを指定することができる。さらに、このようなノードは、ブロックチェーンネットワークで各ノードにデプロイされたカスタムコンセンサスメカニズムを採用することを指定することができる。
【0028】
カスタムコンセンサスメカニズムは初期化関数をさらに含む。さらに、カスタムコンセンサスメカニズムは、ブロックチェーンネットワーク内のまったく新しいコンセンサスメカニズムとして、カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることがノードによって検出された場合に、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化する。例示的には、標準化されたコンセンサスメカニズムフレームワークに基づいて、カスタムコンセンサスメカニズム内の初期化関数を使用してカスタムコンセンサスメカニズム内の少なくとも2つのコンセンサス実行関数を初期化し、少なくとも2つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含む。最後に、初期化されたカスタムコンセンサスメカニズムとコンセンサスメカニズムフレームワーク内のコンセンサス実行関数名とに基づいて、カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すことができる。
【0029】
本実施例の技術案は、標準化されたコンセンサスメカニズムフレームワークを使用してカスタムコンセンサスメカニズムを作成し、作成されたカスタムコンセンサスメカニズムをカスタムコンセンサスプラグインにコンパイルして、プラグインの形式でカスタムコンセンサスメカニズムをローカルノードにデプロイする。本願の実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成することによって、ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイすることができ、ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供することで、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上する。
【0030】
実施例2
本実施例は、上記の実施例1の上に、ノードにデプロイされたカスタムコンセンサスメカニズムを初期化して呼び出すことができるコンセンサスメカニズムのデプロイ方法の好ましい実施形態を提供する。
図2は、本願の実施例2により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。
図2に示すように、当該方法は、具体的には、以下のステップを含む。
S210:カスタムコンセンサスプラグインを取得する。
【0031】
本実施例では、カスタムコンセンサスプラグインは、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルして取得されたものである。標準化されたコンセンサスメカニズムフレームワークは、コンセンサスメカニズムアーキテクチャを規範化処理し、コンセンサスメカニズムの作成フォーマット、存在する形式、及び命名ルールなどの作成方式を統一的に制限することができる。本実施例のコンセンサスメカニズムフレームワークには、初期化関数、ブロック生成権の検証関数、及びブロック有効性の検証関数などの少なくとも3つの基本的なコンセンサス実行関数が含まれる。
【0032】
具体的には、ローカルノードによってカスタムコンセンサスメカニズムが開始された場合、選択可能には、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得し、カスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得する。ローカルノードのユーザが自分で作成されたカスタムコンセンサスメカニズムを、プラグイン形式の実行可能なファイルにコンパイルする。さらに、ブロックチェーンネットワークに含まれる他のノードにカスタムコンセンサスプラグインを送信して、他のノードがカスタムコンセンサスプラグインをデプロイする。ブロックチェーンネットワークの各ノードが従うコンセンサスメカニズムは一致しているため、ローカルノードは、カスタムコンセンサスプラグインのコンパイルを完了した後に、ブロックチェーンネットワーク内のすべての他のノードにカスタムコンセンサスプラグインを発行して、ネットワーク内部のコンセンサスメカニズムの一貫性を確保する必要がある。ブロックチェーンネットワーク内の他のノードによってカスタムコンセンサスメカニズムが開始された場合、選択可能には、ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信する。この時、ローカルノードは、カスタムコンセンサスプラグインの受信を待つだけでよい。
【0033】
S220:ローカルノードにカスタムコンセンサスプラグインをデプロイする。
【0034】
本実施例では、ローカルノードは、カスタムコンセンサスプラグインを取得した後に、カスタムコンセンサスプラグインをローカルノードにデプロイする。カスタムコンセンサスプラグインは、プラグインの形式でローカルノードの物理マシンにデプロイできることを理解されたい。
【0035】
S230:カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることが検出された場合、カスタムコンセンサスメカニズム内の初期化関数を使用してカスタムコンセンサスメカニズムの状態を初期化する。
【0036】
本実施例では、カスタムコンセンサスメカニズムに含まれる初期化関数は、カスタムコンセンサスメカニズムの初期化ルールであってもよいし、実行可能なコードセグメントを初期化してもよく、関数の形式でブロックチェーンネットワークによって呼び出され、初期化を完了すればよい。ローカルノードに最初に配置されたカスタムコンセンサスメカニズム内の各パラメータ又は条件に対して初期値を割り当て、カスタムコンセンサスメカニズムの実行に根拠を提供するために用いられる。
【0037】
具体的には、ローカルノードにカスタムコンセンサスプラグインをデプロイした後に、異なるブロックチェーンタイプとノードの権限とに基づいて、当該カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして使用できるか否かを判断する。ブロックチェーンが作成される際に、ブロックチェーンネットワークに配置されたコンセンサスメカニズムが、ブロックチェーンネットワークで採用されるコンセンサスメカニズムである。また、ブロックチェーンネットワークにおけるノードの投票又は権限ノードの指定によって、カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして使用できるか否かを決定することもできる。ブロックチェーンを作成する時にコンセンサスメカニズムが配置されたり、又はカスタムコンセンサスメカニズムを含む投票提案トランザクションの投票に合格したり、又は権限を持つノードが採用されるコンセンサスメカニズムを指定した場合、カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして検出されたと見なされる。カスタムコンセンサスメカニズムは、ブロックチェーンネットワーク内のまったく新しいコンセンサスメカニズムとして、ノードがカスタムコンセンサスメカニズム内の初期化関数を使用してカスタムコンセンサスメカニズムの状態を初期化する。
【0038】
選択可能には、カスタムコンセンサスメカニズム内の初期化関数を使用してカスタムコンセンサスメカニズム内の少なくとも2つのコンセンサス実行関数を初期化し、少なくとも2つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含む。
【0039】
本実施例では、コンセンサスメカニズムフレームワークに少なくとも初期化関数、ブロック生成権の検証関数、及びブロック有効性の検証関数の3つの基本的なコンセンサス実行関数が含まれるため、現在のブロックチェーンネットワーク状態に基づいて、初期化関数を採用してブロック生成権の検証関数とブロック有効性の検証関数を初期化することができる。
【0040】
S240:コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて、カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出す。
【0041】
本実施例では、コンセンサスメカニズムフレームワークがコンセンサスメカニズムの作成フォーマット、存在する形式、及び命名ルールなどを規定した後に、コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて、カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すことができる。例示的には、ブロックチェーンネットワークに新しいブロックが生成される場合、統一的な命名ルールに基づいて、カスタムコンセンサスメカニズムから関数名に一致するブロック有効性の検証関数を検索して呼び出すことにより、新しいブロックにおけるトランザクション記録の有効性を検証する。
【0042】
本実施例の技術案は、カスタムコンセンサスプラグインを取得してブロックチェーンネットワーク内の各ノードにデプロイし、採用されるカスタムコンセンサスメカニズムを初期化することにより、コンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムに対応するコンセンサス実行関数を呼び出すことができる。本願の実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成することにより、ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイする。ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供することで、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上させる。
【0043】
実施例3
本実施例は、上記の実施例1の上に、コンセンサスメカニズムのデプロイ方法の好ましい実施形態を提供し、カスタムコンセンサスメカニズムに基づいてブロックチェーンネットワーク内のコンセンサスメカニズムをアップグレードすることができる。
図3は、本願の実施例3により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。
図3に示すように、当該方法は、具体的には、以下のステップを含む。
S310:カスタムコンセンサスプラグインを取得する。
【0044】
本実施例では、カスタムコンセンサスプラグインが、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルして取得されたものである。ローカルノードによってカスタムコンセンサスメカニズムが開始された場合、選択可能には、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得し、カスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得する。さらに、ブロックチェーンネットワークに含まれる他のノードにカスタムコンセンサスプラグインを送信して、他のノードがカスタムコンセンサスプラグインをデプロイする。ブロックチェーンネットワーク内のすべてのノードが、いずれもカスタムコンセンサスプラグインを取得する。ブロックチェーンネットワーク内の他のノードによってカスタムコンセンサスメカニズムが開始された場合、選択可能には、ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信する。
【0045】
S320:ローカルノードにカスタムコンセンサスプラグインをデプロイする。
【0046】
本実施例では、ローカルノードが、カスタムコンセンサスプラグインを取得した後に、カスタムコンセンサスプラグインをローカルノードにデプロイする。
【0047】
S330:カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、アップグレード要求に基づいて投票提案トランザクションを開始する。
【0048】
本実施例では、ブロックチェーンネットワーク内の既存のコンセンサスメカニズムをアップグレードする際に、スタムコンセンサスメカニズムを取得してデプロイカした後、カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、アップグレード要求に基づいて投票提案トランザクションを開始する。
【0049】
選択可能には、投票有効ブロックの高さを決定し、アップグレード要求と投票有効ブロックの高さとに基づいて投票提案トランザクションを開始し、生成される現在のブロック高さが投票有効ブロックの高さであることが検出された場合、ブロック生成ノードが投票提案トランザクションに応答して投票する。
【0050】
本実施例では、投票が開始する時間を制限することができる。ブロックチェーンネットワーク内のブロック時間は固定であり、ブロック高さは順次に高くなるため、投票有効ブロックの高さを設定し、すなわち、投票操作の開始を実行する時間を決定することができる。さらに、アップグレード要求と投票有効ブロックの高さに基づいて投票提案トランザクションを開始する。当該投票提案トランザクションは、ブロック生成ノードが現在のブロック高さを検出するように指示し、生成対象の現在のブロック高さが投票有効ブロックの高さであることが検出された場合、投票提案トランザクションに応答して、ブロックチェーンネットワーク内の多くのノード又は特殊ノードがアップグレード要求に関連付けられた投票提案トランザクションを投票するように指示する。
【0051】
例示的には、投票有効ブロックの高さが469739であると決定された場合、アップグレード要求と投票有効ブロックの高さとに基づいて、投票有効ブロックの高さが469739であることを含む投票提案トランザクションを開始し、生成対象の現在のブロック高さが469739であるか否かをブロック生成ノードによって瞬時に検出し、ブロック高さが469739であるブロックの生成が存在したと決定された場合、ブロックチェーンネットワークを制御して投票を開始し投票結果を取得する。最後に、システムのデフォルトの投票有効割合閾値に基づいて投票結果を判定する。投票に合格した割合値が当該システムのデフォルトの投票有効割合閾値より大きい場合に、投票に合格したと決定してコンセンサスメカニズムをアップグレードし、カスタムコンセンサスメカニズム内の3つの関数を使用して、ブロックチェーンネットワークにおけるアップグレード対象であるコンセンサスメカニズム内の3つの関数を対応して置き換えることができる。
【0052】
選択可能には、投票提案トランザクションの投票有効割合閾値を決定し、アップグレード要求と投票有効割合閾値とに基づいて投票提案トランザクションを開始し、投票に合格した割合値が前記投票有効割合閾値より大きい場合に、ブロック生成ノードが投票に合格したと決定する。
【0053】
本実施例では、ブロックチェーンシステムには、デフォルトの投票有効割合閾値を設定し、開始方が、投票有効割合閾値を設定することもできる。例えば、投票有効割合閾値を80%に設定することができる。投票有効割合閾値は、アップグレード要求を承認するノード数と投票するすべてのノード数との割合を反映するので、投票有効割合が高いほどよい。ブロックチェーンネットワークにはより多くのノードがこのコンセンサスメカニズムのアップグレードを承認することを示す。
【0054】
さらに、ローカルノードによって設定された投票有効割合閾値を取得し、設定された投票有効割合閾値がシステムの投票有効割合閾値以下である場合、システムの投票有効割合閾値を投票提案トランザクションの投票有効割合閾値とし、そうでない場合、設定された投票有効割合閾値を投票提案トランザクションの投票有効割合閾値とする。
【0055】
本実施例では、開始方が投票有効割合閾値を設定する場合、ローカルノードによって設定された投票有効割合閾値及びシステムのデフォルトの投票有効割合閾値から閾値が大きい方を選択して投票提案トランザクションの投票有効割合閾値と決定する。
【0056】
本実施例では、投票提案トランザクションの投票有効割合閾値を決定する際に、アップグレード要求及び投票提案トランザクションの投票有効割合閾値に基づいて投票提案トランザクションを開始する。当該投票提案トランザクションは、ブロック生成ノードがブロックチェーンネットワークを制御してアップグレード要求に関連付けられた投票提案トランザクションを投票し、投票結果を取得するように指示する。最後に、決定された投票有効割合閾値に基づいて投票結果を判定する。投票に合格した割合値が当該投票有効割合閾値より大きい場合、投票に合格したと決定し、コンセンサスメカニズムをアップグレードすることができる。
【0057】
例示的には、システムのデフォルトの投票有効割合閾値が60%であり、ノードによって設定された投票有効割合閾値が80%であると仮定すると、比較することで、ノードによって設定された投票有効割合閾値が投票提案トランザクションの投票有効割合閾値、すなわち80%であると決定することができる。さらに、アップグレード要求と投票有効割合閾値とに基づいて、投票有効割合閾値が80%である投票提案トランザクションを開始し、ブロック生成ノードがブロックチェーンネットワーク内のノードを制御して投票を開始して、投票結果を取得する。最後に、80%の投票有効割合閾値に基づいて投票結果を判定し、投票に合格した割合値が80%より大きい場合、投票に合格したと決定し、コンセンサスメカニズムをアップグレードし、カスタムコンセンサスメカニズム内の3つの関数を使用して、ブロックチェーンネットワークにおけるアップグレード対象であるコンセンサスメカニズム内の3つの関数を対応して置き換えることができる。
【0058】
なお、上記の2つの投票提案トランザクションの開始方式は、独立して使用することも、組み合わせて使用することもでき、投票提案トランザクション内の具体的なパラメータの設定は、上記の2つの方式に限定されない。
【0059】
S340:ブロック生成ノードが投票提案トランザクションに応答して投票し、投票に合格した場合、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとするように、ブロックチェーンネットワークで投票提案トランザクションを伝送する。
【0060】
本実施例では、アップグレード要求の開始方が投票提案トランザクションを開始する場合、当該投票提案トランザクションをブロックチェーンネットワークに伝送して、ブロックチェーンネットワーク内の多くのノード又は特定のノード、及び現在のブロック生成ノードが投票提案トランザクションを受信する。さらに、ブロック生成ノードがブロックチェーンネットワーク内の当該投票提案トランザクションに関連付けられたすべてのトランザクションを監視し、投票提案トランザクションに基づいてブロックチェーンネットワーク環境、アップグレード要求の開始方、及びアップグレード要求に関連付けられた内容を判定し、判定結果に基づいて当該投票提案トランザクションに応答するか否かを決定する。例えば、ブロック高さなどのように、投票提案トランザクションで規定されたデータ情報に基づいて判定することができる。当該投票提案トランザクションを投票することができる場合、ブロックチェーンネットワーク内の多くのノード又は特定のノードが、当該投票提案トランザクションを投票する。投票結果に基づいて、投票に合格した場合、ブロック生成ノードがアップグレード要求に応答してコンセンサスメカニズムをアップグレードし、すなわち、カスタムコンセンサスメカニズムをアップグレードされたコンセンサスメカニズムに置き換え、コンセンサスメカニズムのアップグレードを実現する。
【0061】
S350:カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることが検出された場合、カスタムコンセンサスメカニズム内の初期化関数を使用してカスタムコンセンサスメカニズムの状態を初期化する。
【0062】
本実施例では、カスタムコンセンサスメカニズムに含まれる初期化関数は、カスタムコンセンサスメカニズムの初期化ルールであってもよいし、実行可能なコードセグメントを初期化してもよく、関数の形式でブロックチェーンネットワークによって呼び出され、初期化を完了すればよく、ローカルノードに最初に配置されたカスタムコンセンサスメカニズム内の各パラメータ又は条件に対して初期値を割り当てて、カスタムコンセンサスメカニズムの実行に根拠を提供するために用いられる。選択可能には、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズム内の少なくとも2つのコンセンサス実行関数を初期化し、少なくとも2つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含む。
【0063】
S360:コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて、カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出す。
【0064】
本実施例では、コンセンサスメカニズムフレームワークによってコンセンサスメカニズムの作成フォーマット、存在する形式、及び命名ルールなどを規定した後、コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて、カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すことができる。
【0065】
それ以外には、本実施例は、カスタムコンセンサスメカニズムが開始方のユーザのニーズを満たすことを考慮して、これに対応して、開始方が一定のコストを支払う必要がある。従って、本実施例では、カスタムコンセンサスメカニズムを含む投票提案トランザクションを開始する際に、開始提案の凍結証明を決定し、カスタムコンセンサスメカニズムと凍結証明とを含む投票提案トランザクションを開始することができる。凍結証明は、ブロックチェーンネットワークが開始方の資産を凍結することを許可するために用いられ、凍結条件又は凍結時間を限定し、すなわち一定のブロック高さに達した場合に凍結することができる。
【0066】
本実施例の技術案は、カスタムコンセンサスプラグインを取得してブロックチェーンネットワーク内の各ノードにデプロイした後に、カスタムコンセンサスメカニズムを含むアップグレード要求を生成することによって、アップグレード要求に基づいて投票提案トランザクションに関連付けられた投票有効ブロックの高さ及び/又は投票有効割合閾値を設定し、アップグレード要求に関連付けられた投票提案トランザクションを開始し、最後に、ブロックチェーンネットワークに伝送して、ブロック生成ノードが応答してブロックチェーンネットワーク内のノードを制御して投票して投票結果を取得し、投票に合格したカスタムコンセンサスメカニズムを採用してコンセンサスメカニズムをアップグレードする。これにより、採用されるカスタムコンセンサスメカニズムを受け入れて初期化し、コンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムに対応するコンセンサス実行関数を呼び出す。本願の実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成することにより、ブロックチェーンネットワーク内のコンセンサスメカニズムのアップグレードを実現する。ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイし、ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供することで、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上させる。
【0067】
実施例4
図4は、本願の実施例4により提供されるコンセンサスメカニズムのデプロイ装置の概略構成図である。本願の実施例ユーザのニーズに応じてカスタムコンセンサスメカニズムを提供する場合に適用することができる。当該装置は、ブロックチェーンネットワーク内のノードに配置され、本願の任意の実施例に記載のコンセンサスメカニズムのデプロイ方法を実現することができる。当該装置は、具体的には、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するためのプラグイン取得モジュール410と、ローカルノードに前記カスタムコンセンサスプラグインをデプロイするためのプラグインデプロイモジュール420と、を含む。
【0068】
一実施例では、前記装置は、投票モジュール430をさらに含む。前記投票モジュール430は、前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、前記カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、前記アップグレード要求に基づいて投票提案トランザクションを開始するための投票提案開始ユニットと、ブロック生成ノードが前記投票提案トランザクションに応答して投票し、投票に合格した場合、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとするように、ブロックチェーンネットワークで前記投票提案トランザクションを伝送するための投票提案トランザクション伝送ユニットと、を含む。
【0069】
一実施例では、前記装置は、前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることが検出された場合、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化するための初期化モジュール440をさらに含む。
【0070】
一実施例では、前記初期化モジュール440は、具体的には、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズム内の少なくとも2つのコンセンサス実行関数を初期化するために用いられ、前記少なくとも2つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含む。
【0071】
一実施例では、前記装置は、前記カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化した後に、前記コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて前記カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すための呼び出しモジュール450をさらに含む。
【0072】
一実施例では、前記投票提案開始ユニットは、投票有効ブロックの高さを決定するための投票開始時間決定サブユニットと、前記アップグレード要求と前記投票有効ブロックの高さとに基づいて投票提案トランザクションを開始し、生成される現在のブロック高さが前記投票有効ブロックの高さであることが検出された場合、前記ブロック生成ノードが前記投票提案トランザクションに応答して投票するための投票提案開始サブユニットと、を含む。
【0073】
一実施例では、前記投票提案開始ユニットは、前記投票提案トランザクションの投票有効割合閾値を決定するための投票有効閾値決定サブユニットを含み、前記投票提案開始サブユニットは、さらに、前記アップグレード要求と前記投票有効割合閾値とに基づいて投票提案トランザクションを開始し、投票に合格した割合値が前記投票有効割合閾値より大きい場合に、前記ブロック生成ノードが投票に合格したと決定する。
【0074】
一実施例では、前記投票有効閾値決定サブユニットは、具体的には、ローカルノードによって設定された投票有効割合閾値を取得し、設定された投票有効割合閾値がシステムの投票有効割合閾値以下である場合に、システムの投票有効割合閾値を前記投票提案トランザクションの投票有効割合閾値とし、そうでない場合には、設定された投票有効割合閾値を前記投票提案トランザクションの投票有効割合閾値とするために用いられる。
【0075】
一実施例では、前記プラグイン取得モジュール410は、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得するためのカスタムコンセンサスメカニズム取得ユニットと、前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得するためのコンパイルユニットと、を含む。
【0076】
一実施例では、前記装置は、前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得した後に、ブロックチェーンネットワークに含まれる他のノードに前記カスタムコンセンサスプラグインを送信して、前記他のノードが前記カスタムコンセンサスプラグインをデプロイするためのメカニズム送信モジュール460をさらに含む。
【0077】
一実施例では、前記装置は、ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信するためのメカニズム受信モジュール470をさらに含む。
【0078】
本実施例の技術案は、各機能モジュール間の相互の結合によって、標準化されたコンセンサスメカニズムフレームワークに基づいて、コンセンサスメカニズムコードの作成、コンセンサスプラグインのコンパイル、カスタムコンセンサスプラグインの受信又は送信、コンセンサスプラグインのデプロイ、アップグレード要求の生成、投票提案トランザクションの開始、コンセンサスメカニズムの検出と初期化、及びコンセンサス実行関数の呼び出しなどの機能を実現した。本願の実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成することにより、ブロックチェーンネットワーク内のコンセンサスメカニズムのアップグレードを実現し、ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイし、ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供することで、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上させる。
【0079】
実施例5
図5は、本願の実施例5により提供される機器の概略構成図である。
図5は、本願の実施例の実施形態を実現するのに適する例示的な機器のブロック図を示す。
図5に示される機器は、単なる一例であり、本願の実施例の機能及び使用範囲を一切限定しない。
【0080】
図5に示される機器は、単なる一例であり、本願の実施例の機能及び使用範囲を一切限定しない。
【0081】
図5に示すように、機器12は、汎用コンピューティング機器の形態で示される。機器12のコンポーネントは、一つ又は複数のプロセッサ又はプロセッサ16と、システムメモリ28と、異なるシステムコンポーネント(システムメモリ28とプロセッサ16とを含む)を接続するバス18と、を含むことができるが、これらに限定されない。
【0082】
バス18は、メモリバス又はメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、プロセッサ又は多様なバス構造のうち任意のバス構造を使用するローカルバスを含む、複数種のバス構造のうち一つ又は複数のものを表す。例を挙げると、これらのアーキテクチャは、インダストリスタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MAC)バス、拡張ISAバス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、及びペリフェラルコンポーネントインターコネクト(PCI)バスを含むが、これらに限定されない。
【0083】
機器12は、典型的には、多種類のコンピュータシステム読み取り可能な媒体を含む。これらの媒体は、機器12がアクセス可能な任意の使用可能な媒体であってもよく、揮発性媒体及び不揮発性媒体、リムーバブル媒体及びノンリムーバブル媒体を含む。
【0084】
システムメモリ28は、ランダムアクセスメモリ(RAM)30及び/又はキャッシュメモリ32などの揮発性メモリの形態のコンピュータシステム読み取り可能な媒体を含んでもよい。機器12は、他のリムーバブル/ノンリムーバブル、揮発性/不揮発性コンピュータシステム記憶媒体をさらに含んでもよい。単なる一例として、ストレージシステム34は、ノンリムーバブル、不揮発性磁気媒体(
図5に示されていないが、通常「ハードドライブ」と呼ぶ)に対して読み出し及び書き込みをするために用いることができる。
図5に示されていないが、リムーバブル、不揮発性磁気ディスク(例えば、「フロッピーディスク」)に対して読み出し及び書き込みをするための磁気ディスクドライブ、及びリムーバブル、不揮発性光学ディスク(例えば、CD-ROM、DVD-ROM又は他の光学媒体)に対して読み出し及び書き込みをするための光学ディスクドライブを提供することができる。この場合、各ドライブは、一つ又は複数のデータメディアインターフェイスを介してバス18に接続することがきる。システムメモリ28は、本願の各実施例に記載の機能を実行するように配置されるワンセットのプログラムモジュール(例えば、少なくとも一つ)を有する少なくとも一つのプログラム製品を含んでもよい。
【0085】
ワンセットのプログラムモジュール42(少なくとも一つ)を有するプログラム/ユーティリティ40は、例えば、メモリ28に記憶されてもよく、このようなプログラムモジュール42は、オペレーティングシステム、一つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータを含むことができるがこれらに限定されない。これらの例のそれぞれ又は何らかの組み合わせには、ネットワーク環境の実装が含まれる可能性がある。プログラムモジュール42は、通常本願の実施例に記載の実施例における機能及び/又は方法を実行する。
【0086】
機器12は、一つ又は複数の外部機器14(例えば、キーボード、ポインティング機器、ディスプレイ24など)と通信することができるし、ユーザが機器12とインタラクションすることを可能にする一つ又は複数の機器と通信することもでき、及び/又は機器12が一つ又は複数の他のコンピューティングデバイスと通信することを可能にする任意の機器(例えば、ネットワークカード、モデムなど)と通信することができる。そのような通信は、入力/出力(I/O)インターフェイス22を介して行うことができる。また、機器12は、ネットワークアダプタ20を介して、一つ又は複数のネットワーク(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及び/又はパブリックネットワーク、例えば、インターネット)と通信することができる。
図4に示すように、ネットワークアダプタ20は、バス18を介して、機器12の他のモジュールと通信する。なお、図示されていないが、マイクロコードやデバイスドライバ、冗長プロセッサ、外部ディスクドライブアレイ、RAIDシステム、テープドライバ、及びデータバックアップトレージシステムなどを含むがこれらに限定されない他のハードウェア及び/又はソフトウェアモジュールを、機器12と組み合わせて使用することができる。
【0087】
プロセッサ16は、システムメモリ28に記憶されるプログラムを実行することにより、多様な機能アプリケーション及びデータ処理を実行し、例えば、本願の実施例により提供されるコンセンサスメカニズムのデプロイ方法を実現する。
【0088】
実施例6
本願の実施例6は、コンピュータプログラムが記憶されている(又はコンピュータ実行可能な命令と呼ばれる)コンピュータ読み取り可能な記憶媒体をさらに提供する。当該プログラムがプロセッサによって実行される場合に、コンセンサスメカニズムのデプロイ方法が実行される。当該方法は、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するステップと、ローカルノードに前記カスタムコンセンサスプラグインをデプロイするステップと、を含む。
【0089】
本願の実施例のコンピュータ記憶媒体は、一つ又は複数のコンピュータ読み取り可能な媒体の任意の組み合わせを採用することができる。コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体、或いはコンピュータ読み取り可能な記憶媒体であってもよい。コンピュータ読み取り可能な媒体は、例えば、電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置又はデバイス、或いは上記の任意の組み合わせであってもよいがこれらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例(非網羅的なリスト)は、一つ又は複数の配線を備える電気接続部、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、光記憶装置、磁気記憶装置、又は上記の任意の適切な組み合わせを含む。この文書において、コンピュータ読み取り可能な記憶媒体は、命令実行システム、装置又はデバイスにより使用され、或いはそれらと組み合わせて使用されることが可能であるプログラムを含む又は記憶する任意の有形の媒体であってもよい。
【0090】
コンピュータ読み取り可能な信号媒体は、ベースバンドにおける、又は搬送波の一部として伝播するデータ信号を含むことができ、その中にはコンピュータ読み取り可能なプログラムコードが搭載される。この伝播するデータ信号は様々な形式を採用することができ、電磁信号、光信号又は上記の任意の適切な組み合わせを含むがこれらに限定されない。コンピュータ読み取り可能な信号媒体はまた、コンピュータ読み取り可能な記憶媒体以外の任意のコンピュータ読み取り可能な媒体であってもよく、当該コンピュータ読み取り可能な媒体は、命令実行システム、装置又はデバイスにより使用され、或いはそれらと組み合わせて使用されるプログラムを送信、伝播又は伝送することができる。
【0091】
コンピュータ読み取り可能な媒体に含まれるプログラムコードは、無線、有線、光ケーブル、RFなど、又は上記の任意の適切な組み合わせを含むがこれらに限定されない任意の適切な媒体によって伝送することができる。
【0092】
一つ又は複数のプログラミング言語又はそれらの組み合わせで本願の動作を実行するためのコンピュータプログラムコードを作成することができ、前記プログラミング言語は、Java(登録商標)、Smalltalk、C++などのプロジェクト指向のプログラミング言語を含み、さらに、「C」言語又は同様のプログラミング言語といった従来の手続き型プログラミング言語をも含む。プログラムコードは、完全にユーザーコンピュータで実行されてもよいし、部分的にユーザーコンピュータに実行されてもよいし、スタンドアロンソフトウェアパッケージとして実行されてもよいし、部分的にユーザーコンピュータで、部分的にリモートコンピュータで実行されてもよいし、又は完全にリモートコンピュータ又はサーバーで実行してもよい。リモートコンピュータの場合には、リモートコンピュータをローカルネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意種類のインターネットを介してユーザーコンピュータに接続することもできるし、或いは、外部コンピュータ(例えば、インターネットサービスプロバイダを利用してインターネットを介して接続する)に接続することもできる。