(57)【要約】  本願は、コンセンサスメカニズムのデプロイ方法、装置、機器及び記憶媒体を開示する。本方法は、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するステップと、ローカルノードに前記カスタムコンセンサスプラグインをデプロイするステップと、を含む。本願実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成し、ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイし、ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供し、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上させる。  【選択図】  図１
2021508110.tif 000002
【特許請求の範囲】
【請求項１】
標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するステップと、
ローカルノードに前記カスタムコンセンサスプラグインをデプロイするステップと、を含むことを特徴とする、ブロックチェーンネットワーク内のノードによって実行されるコンセンサスメカニズムのデプロイ方法。
【請求項２】
前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、
前記カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、前記アップグレード要求に基づいて投票提案トランザクションを開始するステップと、
ブロック生成ノードが前記投票提案トランザクションに応答して投票し、投票に合格した場合に、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとするように、ブロックチェーンネットワークで前記投票提案トランザクションを伝送するステップと、をさらに含むことを特徴とする、請求項１に記載のコンセンサスメカニズムのデプロイ方法。
【請求項３】
前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、
前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることが検出された場合に、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化するステップをさらに含むことを特徴とする、請求項１に記載のコンセンサスメカニズムのデプロイ方法。
【請求項４】
前記カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化するステップは、
カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズム内の少なくとも２つのコンセンサス実行関数を初期化するステップを含み、
前記少なくとも２つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含むことを特徴とする、請求項３に記載のコンセンサスメカニズムのデプロイ方法。
【請求項５】
前記カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化した後に、
前記コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて、前記カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すステップをさらに含むことを特徴とする、請求項３に記載のコンセンサスメカニズムのデプロイ方法。
【請求項６】
前記アップグレード要求に基づいて投票提案トランザクションを開始するステップは、
投票有効ブロックの高さを決定するステップと、
前記アップグレード要求と前記投票有効ブロックの高さとに基づいて投票提案トランザクションを開始し、生成される現在のブロック高さが前記投票有効ブロックの高さであることが検出された場合に、前記ブロック生成ノードが前記投票提案トランザクションに応答して投票するステップと、を含むことを特徴とする、請求項２に記載のコンセンサスメカニズムのデプロイ方法。
【請求項７】
前記アップグレード要求に基づいて投票提案トランザクションを開始するステップは、
前記投票提案トランザクションの投票有効割合閾値を決定するステップと、
前記アップグレード要求と前記投票有効割合閾値とに基づいて投票提案トランザクションを開始し、投票に合格した割合値が前記投票有効割合閾値より大きい場合に、前記ブロック生成ノードが投票に合格したと決定するステップと、を含むことを特徴とする、請求項２に記載のコンセンサスメカニズムのデプロイ方法。
【請求項８】
前記投票提案トランザクションの投票有効割合閾値を決定するステップは、
ローカルノードによって設定された投票有効割合閾値を取得するステップと、
設定された投票有効割合閾値がシステムの投票有効割合閾値以下である場合に、システムの投票有効割合閾値を前記投票提案トランザクションの投票有効割合閾値とし、そうでない場合には、設定された投票有効割合閾値を前記投票提案トランザクションの投票有効割合閾値とするステップと、を含むことを特徴とする、請求項７に記載のコンセンサスメカニズムのデプロイ方法。
【請求項９】
前記カスタムコンセンサスプラグインを取得するステップは、
標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得するステップと、
前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得するステップと、を含むことを特徴とする、請求項１に記載のコンセンサスメカニズムのデプロイ方法。
【請求項１０】
前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得した後に、
ブロックチェーンネットワークに含まれる他のノードに前記カスタムコンセンサスプラグインを送信して、前記他のノードが前記カスタムコンセンサスプラグインをデプロイするステップをさらに含むことを特徴とする、請求項９に記載のコンセンサスメカニズムのデプロイ方法。
【請求項１１】
前記カスタムコンセンサスプラグインを取得するステップは、
ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信するステップを含むことを特徴とする、請求項９に記載のコンセンサスメカニズムのデプロイ方法。
【請求項１２】
標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するプラグイン取得モジュールと、
ローカルノードに前記カスタムコンセンサスプラグインをデプロイするためのプラグインデプロイモジュールと、を含むことを特徴とする、ブロックチェーンネットワーク内のノードに配置されるコンセンサスメカニズムのデプロイ装置。
【請求項１３】
前記装置は、投票モジュールをさらに含み、
該投票モジュールは、
前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、前記カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、前記アップグレード要求に基づいて投票提案トランザクションを開始するための投票提案開始ユニットと、
ブロック生成ノードが前記投票提案トランザクションに応答して投票し、投票に合格した場合に、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとするように、ブロックチェーンネットワークで前記投票提案トランザクションを伝送するための投票提案トランザクション伝送ユニットと、を含むことを特徴とする、請求項１２に記載のコンセンサスメカニズムのデプロイ装置。
【請求項１４】
前記装置は、
前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることが検出された場合に、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化するための初期化モジュールをさらに含むことを特徴とする、請求項１２に記載のコンセンサスメカニズムのデプロイ装置。
【請求項１５】
前記初期化モジュールは、具体的には、
カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズム内の少なくとも２つのコンセンサス実行関数を初期化し、
前記少なくとも２つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含むことを特徴とする、請求項１４に記載のコンセンサスメカニズムのデプロイ装置。
【請求項１６】
前記装置は、
前記カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化した後に、前記コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて前記カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すための呼び出しモジュールをさらに含むことを特徴とする、請求項１４に記載のコンセンサスメカニズムのデプロイ装置。
【請求項１７】
前記プラグイン取得モジュールは、
標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得するためのカスタムコンセンサスメカニズム取得ユニットと、
前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得するためのコンパイルユニットと、を含むことを特徴とする、請求項１２に記載のコンセンサスメカニズムのデプロイ装置。
【請求項１８】
前記装置は、
前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得した後に、ブロックチェーンネットワークに含まれる他のノードに前記カスタムコンセンサスプラグインを送信して、前記他のノードが前記カスタムコンセンサスプラグインをデプロイするためのメカニズム送信モジュールをさらに含むことを特徴とする、請求項１２に記載のコンセンサスメカニズムのデプロイ装置。
【請求項１９】
前記装置は、
ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信するためのメカニズム受信モジュールをさらに含むことを特徴とする、請求項１２に記載のコンセンサスメカニズムのデプロイ装置。
【請求項２０】
一つ又は複数のプロセッサと、
一つ又は複数のプログラムを記憶するためのメモリと、を含み、
前記一つ又は複数のプログラムが前記一つ又は複数のプロセッサによって実行される場合に、前記一つ又は複数のプロセッサが、請求項１から１１のいずれかに記載のコンセンサスメカニズムのデプロイ方法を実現することを特徴とする、機器。
【請求項２１】
プログラムがプロセッサによって実行される場合に、請求項１から１１のいずれかに記載のコンセンサスメカニズムのデプロイ方法が実現されることを特徴とする、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【優先権情報】
【０００１】
本願は、２０１８年７月１６日付に中国特許局に提供した、中国特許出願番号が２０１８１０７７９２３６.８である中国特許出願の優先権を主張するものであり、当該出願のすべての内容は、引用により本願に組み込まれる。
【技術分野】
【０００２】
本願の実施例は、ブロックチェーン技術の分野に関し、例えば、コンセンサスメカニズムのデプロイ方法、装置、機器及び記憶媒体に関する。
【背景技術】
【０００３】
インターネット技術の継続的な発展に伴い、脱中心化した、オープンで透明なブロックチェーン技術が生まれた。ブロックチェーンネットワークは、異なるコンセンサスメカニズムをサポートでき、コンセンサスメカニズムは、ブロックチェーン技術の重要なコンポーネントとして、ブロックチェーンネットワークを支援し、ブロックチェーン内部で生成されたトランザクションを検証及び確認でき、ブロックチェーンネットワーク内のすべての正直なノードの一貫性及びトランザクション記録の有効性を確保する。
【０００４】
現在、ブロックチェーンネットワークは、作成された初期に内部のコンセンサスメカニズムの配置を既に完了している。例えば、基礎ブロックを作成する際に、対応するコンセンサスメカニズムを配置することで、ブロックチェーンネットワーク内のノードは、ブロックチェーンネットワークに埋め込まれたコンセンサスメカニズムに基づいて、ブロックチェーンネットワーク内部で生成されたトランザクションの検証及び確認を完了する。例えば、ビットコインのアプリケーションシナリオに埋め込まれたコンセンサスメカニズムは、作業量証明メカニズム（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ、ＰＯＷ）であり、イーサリアムアプリケーションシナリオに埋め込まれたコンセンサスメカニズムは、ＰＯＷ又は権益証明メカニズム（Ｐｒｏｏｆ  ｏｆ  Ｓｔａｋｅ、ＰＯＳ）であり、ハイパーレジャー・ファブリック（Ｈｙｐｅｒｌｅｄｇｅｒ  Ｆａｂｒｉｃ）のアプリケーションシナリオに埋め込まれたコンセンサスメカニズムは、実用的なビザンチンフォーチュンメカニズム（Ｐｒａｃｔｉｃａｌ  Ｂｙｚａｎｔｉｎｅ  Ｆａｕｌｔ  Ｔｏｌｅｒａｎｃｅ、ＰＢＦＴ）又は分散キューメカニズム（Ｋａｆｋａ）である。
【０００５】
しかしながら、ブロックチェーンを作成した後、コンセンサスメカニズムは、固定され修正不可能な形式でブロックチェーンネットワークに配置されており、システムに埋め込まれたコンセンサスメカニズムは、アップグレードできず、ブロックチェーン作成者が日々増加又は変化する業務ニーズを満たすことができない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下は、本明細書で詳細に説明される主題の概要である。本概要は、請求項の保護範囲を制限するものではない。
【０００７】
本願の実施例は、ブロックチェーンネットワークにカスタムコンセンサスメカニズムをデプロイすることができるコンセンサスメカニズムのデプロイ方法、装置、機器及び記憶媒体を提供する。
【課題を解決するための手段】
【０００８】
第１の態様において、本願の実施例は、ブロックチェーンネットワーク内のノードによって実行されるコンセンサスメカニズムのデプロイ方法を提供する。この方法は、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するステップと、ローカルノードに前記カスタムコンセンサスプラグインをデプロイするステップと、を含む。
【０００９】
第２の態様において、本願の実施例は、ブロックチェーンネットワーク内のノードに配置されるコンセンサスメカニズムのデプロイ装置を提供する。前記装置は、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するプラグイン取得モジュールと、ローカルノードに前記カスタムコンセンサスプラグインをデプロイするためのプラグインデプロイモジュールと、を含む。
【００１０】
第３の態様において、本願の実施例は、機器を提供する。前記機器は、一つ又は複数のプロセッサと、一つ又は複数のプログラムを記憶するためのメモリと、を含み、前記一つ又は複数のプログラムが前記一つ又は複数のプロセッサによって実行される場合に、前記一つ又は複数のプロセッサが、本願の任意の実施例に記載のコンセンサスメカニズムのデプロイ方法を実現する。
【００１１】
第４の態様において、本願の実施例は、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体を提供する。当該プログラムがプロセッサによって実行される場合に、本願の任意の実施例に記載のコンセンサスメカニズムのデプロイ方法が実現される。
【発明の効果】
【００１２】
本願の実施例は、標準化されたコンセンサスメカニズムフレームワークを使用してカスタムコンセンサスメカニズムを作成し、作成されたカスタムコンセンサスメカニズムをカスタムコンセンサスプラグインにコンパイルして、プラグインの形式でカスタムコンセンサスメカニズムをローカルノードにデプロイする。本願の実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成することにより、ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイすることを実現する。ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供することで、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上させる。
【００１３】
図面と詳細の説明を読んで理解することで、他の態様を理解することができる。
【図面の簡単な説明】
【００１４】
【図１】本願の実施例１により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。
【図２】本願の実施例２により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。
【図３】本願の実施例３により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。
【図４】本願の実施例４により提供されるコンセンサスメカニズムのデプロイ装置の概略構成図である。
【図５】本願の実施例５により提供される機器の概略構成図である。
【発明を実施するための形態】
【００１５】
以下、図面と実施例とを組み合わせて、本願についてさらに詳しく説明する。なお、ここで説明される具体的な実施例は、単に本願を解釈するためのものであり、本願を限定するものではない。また、説明の便宜上、図面には、すべての構成ではなく、本願に係る部分だけが示されている。
【００１６】
実施例１
図１は、本願の実施例１により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。当該方法は、ブロックチェーンネットワーク内のノードに適用される。ブロックチェーンは、パブリックブロックチェーン、コンソーシアムブロックチェーン、又はプライベートブロックチェーンであってもよく、ブロックチェーンネットワークは、通常、複数のノードを含むことができる。本願の実施例は、ユーザのニーズに応じて提出されたカスタムコンセンサスメカニズムに適用することができる。当該方法は、ブロックチェーンネットワークのノードに配置されたコンセンサスメカニズムのデプロイ装置によって実行される。当該方法は、具体的には、以下のステップを含む。
Ｓ１１０：標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得する。
【００１７】
本実施例では、カスタムコンセンサスメカニズムは、ブロックチェーンネットワーク内の１つのノードが、ユーザ業務ニーズに基づいて作成された、ブロックチェーンネットワーク内の各ノードがトランザクション検証及び確認する時に実行されるコードセグメントを指す。カスタムコンセンサスプラグインとは、カスタムコンセンサスメカニズムを作成するノードが、カスタムコンセンサスメカニズムのコードを実行可能なファイルにコンパイルすることを指し、プラグインの形式でブロックチェーンのウェブサイトのノードに配置される。なお、カスタムコンセンサスプラグインは、ローカルノードのユーザ自分で作成してコンパイルしたものであってもよいし、他のユーザがブロックチェーンネットワークにおける他のノードでカスタムコンセンサスメカニズムのコードを作成し、カスタムコンセンサスメカニズムのコードを実行可能なファイルにコンパイルし、ローカルノードに発行したものであってもよい。
【００１８】
具体的には、本実施例は、標準化されたコンセンサスメカニズムフレームワークを使用してカスタムコンセンサスメカニズムを作成する。標準化されたコンセンサスメカニズムフレームワークは、コンセンサスメカニズムアーキテクチャを規範化処理し、コンセンサスメカニズムの作成フォーマット、存在する形式、及び命名ルールなどの作成方式を統一的に制限することができる。従って、ブロックチェーンネットワーク内のノードがカスタムコンセンサスメカニズムを作成する場合、フレームワーク内の作成ルールによって、標準化されたコンセンサスメカニズムフレームワークに基づいてコンセンサスメカニズムに対応する内容をカスタマイズすればよい。本実施例における標準化されたコンセンサスメカニズムフレームワークは、コンセンサスメカニズムの作成方式を統一するだけでなく、ユーザの作成が便利になり、後期のコンセンサスメカニズムの統一された呼び出しを容易にする。
【００１９】
さらに、本実施例は、ブロックチェーンのネイティブ言語を使用してカスタムコンセンサスメカニズムを作成することができる。ブロックチェーンのネイティブ言語とは、ＧＯ言語、Ｊａｖａ（登録商標）言語、又はＣ＋＋言語などの、ブロックチェーンの基礎となるネットワークアーキテクチャを作成する言語を指すことができる。
【００２０】
例示的には、本実施例における標準化されたコンセンサスメカニズムフレームワークには、初期化関数、ブロック生成権の検証関数、及びブロック有効性の検証関数などの少なくとも３つの基本的なコンセンサス実行関数が含まれる。初期化関数は、カスタムコンセンサスメカニズムがブロックチェーンネットワーク内のノードに最初にデプロイされる場合、現在のブロックチェーンネットワークの状態に基づいてカスタムコンセンサスメカニズムを初期化する。例えば、カスタムコンセンサスメカニズムに含まれるパラメータ又は条件に初期値を与え、ブロック生成権の検証関数は、トランザクション処理権が取得されたか否かを検証するために用いられる。ブロック有効性の検証関数は、新しいブロックに記録されたトランザクションの有効性を検証するために用いられることを理解されたい。
【００２１】
本実施例では、既存のコンセンサスメカニズムを現在のブロックチェーンネットワークのコンセンサスメカニズムとして採用しても、標準化されたコンセンサスメカニズムフレームワークに従って既存のコンセンサスメカニズムを標準化処理し、フォーマット又は形式的な変換を行って、現在のブロックチェーンネットワーク内のコンセンサスメカニズムフレームワークに適合することに注意する必要がある。例示的には、上記の例では、ＰＯＷメカニズムを現在のブロックチェーンネットワークのコンセンサスメカニズムとして採用した場合、ＰＯＷメカニズムを初期化関数、ブロック生成権の検証関数、及びブロック有効性の検証関数の３つの関数を含む存在形式に変換し、命名ルールに従って関数の命名を規範する必要がある。
【００２２】
さらに、カスタムコンセンサスプラグインを取得する際に、ローカルノードによってカスタムコンセンサスメカニズムが開始された場合、ローカルノードは、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得し、カスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得することができる。ブロックチェーンネットワークに含まれる他のノードに当該カスタムコンセンサスプラグインを送信し、他のノードが当該カスタムコンセンサスプラグインをデプロイすることができる。ブロックチェーンネットワーク内の他のノードによってカスタムコンセンサスメカニズムが開始された場合、ローカルノードは、ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信することができる。ブロックチェーンネットワークの各ノードにおけるカスタムコンセンサスメカニズムの統一のデプロイを実現する。
【００２３】
Ｓ１２０：ローカルノードにカスタムコンセンサスプラグインをデプロイする。
【００２４】
本実施例では、ローカルノードによって発行されたカスタムコンセンサスメカニズムであるか、それともブロックチェーンネットワーク内の他のノードによって発行されたカスタムコンセンサスメカニズムであるかに関わらず、カスタムコンセンサスプラグインは、ブロックチェーンネットワーク内の各ノードにすべて発行され、ブロックチェーンネットワーク内部のコンセンサスメカニズムを統一する。ブロックチェーンネットワーク内のすべてのノードは、一致するコンセンサスメカニズムに基づいていずれもブロックチェーン内部のトランザクションを検証及び確認することができる。さらに、ローカルノードは、カスタムコンセンサスプラグインを取得した後に、カスタムコンセンサスプラグインをローカルノードにデプロイすることができる。カスタムコンセンサスプラグインは、プラグインの形式でローカルノードの物理マシンにデプロイできることを理解されたい。
【００２５】
さらに、ローカルノードにカスタムコンセンサスプラグインをデプロイした後に、異なるブロックチェーンタイプとノードの権限とに基づいて、当該カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして使用できるか否かを判断することができる。ブロックチェーンが作成される際に、ブロックチェーンネットワークで配置されたコンセンサスメカニズムが、ブロックチェーンネットワークで採用されるコンセンサスメカニズムである。また、ブロックチェーンネットワークにおけるノードの投票又は権限ノードの指定によって、カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして使用できるか否かを決定することもできる。
【００２６】
例示的には、現在のブロックチェーンがパブリックブロックチェーンである場合、カスタムコンセンサスメカニズムは、ブロックチェーンネットワーク内部の処理対象トランザクションとすることができる。ブロックチェーンネットワーク内の多くのノードは、現在のブロックチェーンネットワークの既存のコンセンサスメカニズムに基づいて、デプロイされたカスタムコンセンサスメカニズムを検証して、当該カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして使用できるか否かを検証する必要がある。これに対応して、カスタムコンセンサスメカニズムを発行するノードは、カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、アップグレード要求に基づいて投票提案トランザクションを開始する。具体的には、投票提案トランザクションを開始する際に、投票有効ブロックの高さを決定し、アップグレード要求と投票有効ブロックの高さとに基づいて投票提案トランザクションを開始する。生成される現在のブロック高さが投票有効ブロックの高さであることが検出された場合、ブロック生成ノードが投票提案トランザクションに応答して投票することができる。また、投票提案トランザクションの投票有効割合閾値を決定し、アップグレード要求と投票有効割合閾値とに基づいて投票提案トランザクションを開始する。投票に合格した割合値が前記投票有効割合閾値より大きい場合、ブロック生成ノードが投票に合格したと決定することもできる。投票有効割合閾値は、ローカルノードによって設定された投票有効割合閾値である。設定された投票有効割合閾値がシステムの投票有効割合閾値以下である場合、システムの投票有効割合閾値を投票提案トランザクションの投票有効割合閾値とし、そうでない場合、設定された投票有効割合閾値を投票提案トランザクションの投票有効割合閾値とする。さらに、ブロックチェーンネットワークで投票提案トランザクションを伝送して、ブロック生成ノードが投票提案トランザクションに応答して投票し、投票に合格した場合、カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることによって、ブロックチェーンネットワーク内のコンセンサスメカニズムのアップグレードを実現する。ブロックチェーンネットワーク内のコンセンサスメカニズムをアップグレードする際、標準化されたコンセンサスメカニズムフレームワークに基づいて、カスタムコンセンサスメカニズムを使用してアップグレードされるコンセンサスメカニズムをすべて置き換える必要があることを理解されたい。例えば、上記の３つの基本コンセンサス実行関数を含むコンセンサスメカニズムフレームワークに基づいて、カスタムコンセンサスメカニズム内の３つの関数を使用してアップグレードされるコンセンサスメカニズム内の３つの関数を対応して置き換える必要がある。
【００２７】
例示的には、現在のブロックチェーンネットワークがコンソーシアムブロックチェーン又はプライベートブロックチェーンである場合、ブロックチェーンネットワーク内の特定のノードは、一定の権限を有し、ブロックチェーンによって採用されるコンセンサスメカニズムを指定することができる。さらに、このようなノードは、ブロックチェーンネットワークで各ノードにデプロイされたカスタムコンセンサスメカニズムを採用することを指定することができる。
【００２８】
カスタムコンセンサスメカニズムは初期化関数をさらに含む。さらに、カスタムコンセンサスメカニズムは、ブロックチェーンネットワーク内のまったく新しいコンセンサスメカニズムとして、カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることがノードによって検出された場合に、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化する。例示的には、標準化されたコンセンサスメカニズムフレームワークに基づいて、カスタムコンセンサスメカニズム内の初期化関数を使用してカスタムコンセンサスメカニズム内の少なくとも２つのコンセンサス実行関数を初期化し、少なくとも２つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含む。最後に、初期化されたカスタムコンセンサスメカニズムとコンセンサスメカニズムフレームワーク内のコンセンサス実行関数名とに基づいて、カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すことができる。
【００２９】
本実施例の技術案は、標準化されたコンセンサスメカニズムフレームワークを使用してカスタムコンセンサスメカニズムを作成し、作成されたカスタムコンセンサスメカニズムをカスタムコンセンサスプラグインにコンパイルして、プラグインの形式でカスタムコンセンサスメカニズムをローカルノードにデプロイする。本願の実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成することによって、ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイすることができ、ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供することで、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上する。
【００３０】
実施例２
本実施例は、上記の実施例１の上に、ノードにデプロイされたカスタムコンセンサスメカニズムを初期化して呼び出すことができるコンセンサスメカニズムのデプロイ方法の好ましい実施形態を提供する。図２は、本願の実施例２により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。図２に示すように、当該方法は、具体的には、以下のステップを含む。
Ｓ２１０：カスタムコンセンサスプラグインを取得する。
【００３１】
本実施例では、カスタムコンセンサスプラグインは、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルして取得されたものである。標準化されたコンセンサスメカニズムフレームワークは、コンセンサスメカニズムアーキテクチャを規範化処理し、コンセンサスメカニズムの作成フォーマット、存在する形式、及び命名ルールなどの作成方式を統一的に制限することができる。本実施例のコンセンサスメカニズムフレームワークには、初期化関数、ブロック生成権の検証関数、及びブロック有効性の検証関数などの少なくとも３つの基本的なコンセンサス実行関数が含まれる。
【００３２】
具体的には、ローカルノードによってカスタムコンセンサスメカニズムが開始された場合、選択可能には、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得し、カスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得する。ローカルノードのユーザが自分で作成されたカスタムコンセンサスメカニズムを、プラグイン形式の実行可能なファイルにコンパイルする。さらに、ブロックチェーンネットワークに含まれる他のノードにカスタムコンセンサスプラグインを送信して、他のノードがカスタムコンセンサスプラグインをデプロイする。ブロックチェーンネットワークの各ノードが従うコンセンサスメカニズムは一致しているため、ローカルノードは、カスタムコンセンサスプラグインのコンパイルを完了した後に、ブロックチェーンネットワーク内のすべての他のノードにカスタムコンセンサスプラグインを発行して、ネットワーク内部のコンセンサスメカニズムの一貫性を確保する必要がある。ブロックチェーンネットワーク内の他のノードによってカスタムコンセンサスメカニズムが開始された場合、選択可能には、ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信する。この時、ローカルノードは、カスタムコンセンサスプラグインの受信を待つだけでよい。
【００３３】
Ｓ２２０：ローカルノードにカスタムコンセンサスプラグインをデプロイする。
【００３４】
本実施例では、ローカルノードは、カスタムコンセンサスプラグインを取得した後に、カスタムコンセンサスプラグインをローカルノードにデプロイする。カスタムコンセンサスプラグインは、プラグインの形式でローカルノードの物理マシンにデプロイできることを理解されたい。
【００３５】
Ｓ２３０：カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることが検出された場合、カスタムコンセンサスメカニズム内の初期化関数を使用してカスタムコンセンサスメカニズムの状態を初期化する。
【００３６】
本実施例では、カスタムコンセンサスメカニズムに含まれる初期化関数は、カスタムコンセンサスメカニズムの初期化ルールであってもよいし、実行可能なコードセグメントを初期化してもよく、関数の形式でブロックチェーンネットワークによって呼び出され、初期化を完了すればよい。ローカルノードに最初に配置されたカスタムコンセンサスメカニズム内の各パラメータ又は条件に対して初期値を割り当て、カスタムコンセンサスメカニズムの実行に根拠を提供するために用いられる。
【００３７】
具体的には、ローカルノードにカスタムコンセンサスプラグインをデプロイした後に、異なるブロックチェーンタイプとノードの権限とに基づいて、当該カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして使用できるか否かを判断する。ブロックチェーンが作成される際に、ブロックチェーンネットワークに配置されたコンセンサスメカニズムが、ブロックチェーンネットワークで採用されるコンセンサスメカニズムである。また、ブロックチェーンネットワークにおけるノードの投票又は権限ノードの指定によって、カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして使用できるか否かを決定することもできる。ブロックチェーンを作成する時にコンセンサスメカニズムが配置されたり、又はカスタムコンセンサスメカニズムを含む投票提案トランザクションの投票に合格したり、又は権限を持つノードが採用されるコンセンサスメカニズムを指定した場合、カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとして検出されたと見なされる。カスタムコンセンサスメカニズムは、ブロックチェーンネットワーク内のまったく新しいコンセンサスメカニズムとして、ノードがカスタムコンセンサスメカニズム内の初期化関数を使用してカスタムコンセンサスメカニズムの状態を初期化する。
【００３８】
選択可能には、カスタムコンセンサスメカニズム内の初期化関数を使用してカスタムコンセンサスメカニズム内の少なくとも２つのコンセンサス実行関数を初期化し、少なくとも２つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含む。
【００３９】
本実施例では、コンセンサスメカニズムフレームワークに少なくとも初期化関数、ブロック生成権の検証関数、及びブロック有効性の検証関数の３つの基本的なコンセンサス実行関数が含まれるため、現在のブロックチェーンネットワーク状態に基づいて、初期化関数を採用してブロック生成権の検証関数とブロック有効性の検証関数を初期化することができる。
【００４０】
Ｓ２４０：コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて、カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出す。
【００４１】
本実施例では、コンセンサスメカニズムフレームワークがコンセンサスメカニズムの作成フォーマット、存在する形式、及び命名ルールなどを規定した後に、コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて、カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すことができる。例示的には、ブロックチェーンネットワークに新しいブロックが生成される場合、統一的な命名ルールに基づいて、カスタムコンセンサスメカニズムから関数名に一致するブロック有効性の検証関数を検索して呼び出すことにより、新しいブロックにおけるトランザクション記録の有効性を検証する。
【００４２】
本実施例の技術案は、カスタムコンセンサスプラグインを取得してブロックチェーンネットワーク内の各ノードにデプロイし、採用されるカスタムコンセンサスメカニズムを初期化することにより、コンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムに対応するコンセンサス実行関数を呼び出すことができる。本願の実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成することにより、ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイする。ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供することで、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上させる。
【００４３】
実施例３
本実施例は、上記の実施例１の上に、コンセンサスメカニズムのデプロイ方法の好ましい実施形態を提供し、カスタムコンセンサスメカニズムに基づいてブロックチェーンネットワーク内のコンセンサスメカニズムをアップグレードすることができる。図３は、本願の実施例３により提供されるコンセンサスメカニズムのデプロイ方法のフローチャートである。図３に示すように、当該方法は、具体的には、以下のステップを含む。
Ｓ３１０：カスタムコンセンサスプラグインを取得する。
【００４４】
本実施例では、カスタムコンセンサスプラグインが、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルして取得されたものである。ローカルノードによってカスタムコンセンサスメカニズムが開始された場合、選択可能には、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得し、カスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得する。さらに、ブロックチェーンネットワークに含まれる他のノードにカスタムコンセンサスプラグインを送信して、他のノードがカスタムコンセンサスプラグインをデプロイする。ブロックチェーンネットワーク内のすべてのノードが、いずれもカスタムコンセンサスプラグインを取得する。ブロックチェーンネットワーク内の他のノードによってカスタムコンセンサスメカニズムが開始された場合、選択可能には、ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信する。
【００４５】
Ｓ３２０：ローカルノードにカスタムコンセンサスプラグインをデプロイする。
【００４６】
本実施例では、ローカルノードが、カスタムコンセンサスプラグインを取得した後に、カスタムコンセンサスプラグインをローカルノードにデプロイする。
【００４７】
Ｓ３３０：カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、アップグレード要求に基づいて投票提案トランザクションを開始する。
【００４８】
本実施例では、ブロックチェーンネットワーク内の既存のコンセンサスメカニズムをアップグレードする際に、スタムコンセンサスメカニズムを取得してデプロイカした後、カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、アップグレード要求に基づいて投票提案トランザクションを開始する。
【００４９】
選択可能には、投票有効ブロックの高さを決定し、アップグレード要求と投票有効ブロックの高さとに基づいて投票提案トランザクションを開始し、生成される現在のブロック高さが投票有効ブロックの高さであることが検出された場合、ブロック生成ノードが投票提案トランザクションに応答して投票する。
【００５０】
本実施例では、投票が開始する時間を制限することができる。ブロックチェーンネットワーク内のブロック時間は固定であり、ブロック高さは順次に高くなるため、投票有効ブロックの高さを設定し、すなわち、投票操作の開始を実行する時間を決定することができる。さらに、アップグレード要求と投票有効ブロックの高さに基づいて投票提案トランザクションを開始する。当該投票提案トランザクションは、ブロック生成ノードが現在のブロック高さを検出するように指示し、生成対象の現在のブロック高さが投票有効ブロックの高さであることが検出された場合、投票提案トランザクションに応答して、ブロックチェーンネットワーク内の多くのノード又は特殊ノードがアップグレード要求に関連付けられた投票提案トランザクションを投票するように指示する。
【００５１】
例示的には、投票有効ブロックの高さが４６９７３９であると決定された場合、アップグレード要求と投票有効ブロックの高さとに基づいて、投票有効ブロックの高さが４６９７３９であることを含む投票提案トランザクションを開始し、生成対象の現在のブロック高さが４６９７３９であるか否かをブロック生成ノードによって瞬時に検出し、ブロック高さが４６９７３９であるブロックの生成が存在したと決定された場合、ブロックチェーンネットワークを制御して投票を開始し投票結果を取得する。最後に、システムのデフォルトの投票有効割合閾値に基づいて投票結果を判定する。投票に合格した割合値が当該システムのデフォルトの投票有効割合閾値より大きい場合に、投票に合格したと決定してコンセンサスメカニズムをアップグレードし、カスタムコンセンサスメカニズム内の３つの関数を使用して、ブロックチェーンネットワークにおけるアップグレード対象であるコンセンサスメカニズム内の３つの関数を対応して置き換えることができる。
【００５２】
選択可能には、投票提案トランザクションの投票有効割合閾値を決定し、アップグレード要求と投票有効割合閾値とに基づいて投票提案トランザクションを開始し、投票に合格した割合値が前記投票有効割合閾値より大きい場合に、ブロック生成ノードが投票に合格したと決定する。
【００５３】
本実施例では、ブロックチェーンシステムには、デフォルトの投票有効割合閾値を設定し、開始方が、投票有効割合閾値を設定することもできる。例えば、投票有効割合閾値を８０％に設定することができる。投票有効割合閾値は、アップグレード要求を承認するノード数と投票するすべてのノード数との割合を反映するので、投票有効割合が高いほどよい。ブロックチェーンネットワークにはより多くのノードがこのコンセンサスメカニズムのアップグレードを承認することを示す。
【００５４】
さらに、ローカルノードによって設定された投票有効割合閾値を取得し、設定された投票有効割合閾値がシステムの投票有効割合閾値以下である場合、システムの投票有効割合閾値を投票提案トランザクションの投票有効割合閾値とし、そうでない場合、設定された投票有効割合閾値を投票提案トランザクションの投票有効割合閾値とする。
【００５５】
本実施例では、開始方が投票有効割合閾値を設定する場合、ローカルノードによって設定された投票有効割合閾値及びシステムのデフォルトの投票有効割合閾値から閾値が大きい方を選択して投票提案トランザクションの投票有効割合閾値と決定する。
【００５６】
本実施例では、投票提案トランザクションの投票有効割合閾値を決定する際に、アップグレード要求及び投票提案トランザクションの投票有効割合閾値に基づいて投票提案トランザクションを開始する。当該投票提案トランザクションは、ブロック生成ノードがブロックチェーンネットワークを制御してアップグレード要求に関連付けられた投票提案トランザクションを投票し、投票結果を取得するように指示する。最後に、決定された投票有効割合閾値に基づいて投票結果を判定する。投票に合格した割合値が当該投票有効割合閾値より大きい場合、投票に合格したと決定し、コンセンサスメカニズムをアップグレードすることができる。
【００５７】
例示的には、システムのデフォルトの投票有効割合閾値が６０％であり、ノードによって設定された投票有効割合閾値が８０％であると仮定すると、比較することで、ノードによって設定された投票有効割合閾値が投票提案トランザクションの投票有効割合閾値、すなわち８０％であると決定することができる。さらに、アップグレード要求と投票有効割合閾値とに基づいて、投票有効割合閾値が８０％である投票提案トランザクションを開始し、ブロック生成ノードがブロックチェーンネットワーク内のノードを制御して投票を開始して、投票結果を取得する。最後に、８０％の投票有効割合閾値に基づいて投票結果を判定し、投票に合格した割合値が８０％より大きい場合、投票に合格したと決定し、コンセンサスメカニズムをアップグレードし、カスタムコンセンサスメカニズム内の３つの関数を使用して、ブロックチェーンネットワークにおけるアップグレード対象であるコンセンサスメカニズム内の３つの関数を対応して置き換えることができる。
【００５８】
なお、上記の２つの投票提案トランザクションの開始方式は、独立して使用することも、組み合わせて使用することもでき、投票提案トランザクション内の具体的なパラメータの設定は、上記の２つの方式に限定されない。
【００５９】
Ｓ３４０：ブロック生成ノードが投票提案トランザクションに応答して投票し、投票に合格した場合、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとするように、ブロックチェーンネットワークで投票提案トランザクションを伝送する。
【００６０】
本実施例では、アップグレード要求の開始方が投票提案トランザクションを開始する場合、当該投票提案トランザクションをブロックチェーンネットワークに伝送して、ブロックチェーンネットワーク内の多くのノード又は特定のノード、及び現在のブロック生成ノードが投票提案トランザクションを受信する。さらに、ブロック生成ノードがブロックチェーンネットワーク内の当該投票提案トランザクションに関連付けられたすべてのトランザクションを監視し、投票提案トランザクションに基づいてブロックチェーンネットワーク環境、アップグレード要求の開始方、及びアップグレード要求に関連付けられた内容を判定し、判定結果に基づいて当該投票提案トランザクションに応答するか否かを決定する。例えば、ブロック高さなどのように、投票提案トランザクションで規定されたデータ情報に基づいて判定することができる。当該投票提案トランザクションを投票することができる場合、ブロックチェーンネットワーク内の多くのノード又は特定のノードが、当該投票提案トランザクションを投票する。投票結果に基づいて、投票に合格した場合、ブロック生成ノードがアップグレード要求に応答してコンセンサスメカニズムをアップグレードし、すなわち、カスタムコンセンサスメカニズムをアップグレードされたコンセンサスメカニズムに置き換え、コンセンサスメカニズムのアップグレードを実現する。
【００６１】
Ｓ３５０：カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることが検出された場合、カスタムコンセンサスメカニズム内の初期化関数を使用してカスタムコンセンサスメカニズムの状態を初期化する。
【００６２】
本実施例では、カスタムコンセンサスメカニズムに含まれる初期化関数は、カスタムコンセンサスメカニズムの初期化ルールであってもよいし、実行可能なコードセグメントを初期化してもよく、関数の形式でブロックチェーンネットワークによって呼び出され、初期化を完了すればよく、ローカルノードに最初に配置されたカスタムコンセンサスメカニズム内の各パラメータ又は条件に対して初期値を割り当てて、カスタムコンセンサスメカニズムの実行に根拠を提供するために用いられる。選択可能には、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズム内の少なくとも２つのコンセンサス実行関数を初期化し、少なくとも２つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含む。
【００６３】
Ｓ３６０：コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて、カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出す。
【００６４】
本実施例では、コンセンサスメカニズムフレームワークによってコンセンサスメカニズムの作成フォーマット、存在する形式、及び命名ルールなどを規定した後、コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて、カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すことができる。
【００６５】
それ以外には、本実施例は、カスタムコンセンサスメカニズムが開始方のユーザのニーズを満たすことを考慮して、これに対応して、開始方が一定のコストを支払う必要がある。従って、本実施例では、カスタムコンセンサスメカニズムを含む投票提案トランザクションを開始する際に、開始提案の凍結証明を決定し、カスタムコンセンサスメカニズムと凍結証明とを含む投票提案トランザクションを開始することができる。凍結証明は、ブロックチェーンネットワークが開始方の資産を凍結することを許可するために用いられ、凍結条件又は凍結時間を限定し、すなわち一定のブロック高さに達した場合に凍結することができる。
【００６６】
本実施例の技術案は、カスタムコンセンサスプラグインを取得してブロックチェーンネットワーク内の各ノードにデプロイした後に、カスタムコンセンサスメカニズムを含むアップグレード要求を生成することによって、アップグレード要求に基づいて投票提案トランザクションに関連付けられた投票有効ブロックの高さ及び／又は投票有効割合閾値を設定し、アップグレード要求に関連付けられた投票提案トランザクションを開始し、最後に、ブロックチェーンネットワークに伝送して、ブロック生成ノードが応答してブロックチェーンネットワーク内のノードを制御して投票して投票結果を取得し、投票に合格したカスタムコンセンサスメカニズムを採用してコンセンサスメカニズムをアップグレードする。これにより、採用されるカスタムコンセンサスメカニズムを受け入れて初期化し、コンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムに対応するコンセンサス実行関数を呼び出す。本願の実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成することにより、ブロックチェーンネットワーク内のコンセンサスメカニズムのアップグレードを実現する。ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイし、ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供することで、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上させる。
【００６７】
実施例４
図４は、本願の実施例４により提供されるコンセンサスメカニズムのデプロイ装置の概略構成図である。本願の実施例ユーザのニーズに応じてカスタムコンセンサスメカニズムを提供する場合に適用することができる。当該装置は、ブロックチェーンネットワーク内のノードに配置され、本願の任意の実施例に記載のコンセンサスメカニズムのデプロイ方法を実現することができる。当該装置は、具体的には、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するためのプラグイン取得モジュール４１０と、ローカルノードに前記カスタムコンセンサスプラグインをデプロイするためのプラグインデプロイモジュール４２０と、を含む。
【００６８】
一実施例では、前記装置は、投票モジュール４３０をさらに含む。前記投票モジュール４３０は、前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、前記カスタムコンセンサスメカニズムを含むアップグレード要求を生成し、前記アップグレード要求に基づいて投票提案トランザクションを開始するための投票提案開始ユニットと、ブロック生成ノードが前記投票提案トランザクションに応答して投票し、投票に合格した場合、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとするように、ブロックチェーンネットワークで前記投票提案トランザクションを伝送するための投票提案トランザクション伝送ユニットと、を含む。
【００６９】
一実施例では、前記装置は、前記ローカルノードに前記カスタムコンセンサスプラグインをデプロイした後に、前記カスタムコンセンサスメカニズムをブロックチェーンネットワークで採用されるコンセンサスメカニズムとすることが検出された場合、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化するための初期化モジュール４４０をさらに含む。
【００７０】
一実施例では、前記初期化モジュール４４０は、具体的には、カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズム内の少なくとも２つのコンセンサス実行関数を初期化するために用いられ、前記少なくとも２つのコンセンサス実行関数は、ブロック生成権の検証関数とブロック有効性の検証関数とを含む。
【００７１】
一実施例では、前記装置は、前記カスタムコンセンサスメカニズム内の初期化関数を使用して前記カスタムコンセンサスメカニズムの状態を初期化した後に、前記コンセンサスメカニズムフレームワーク内のコンセンサス実行関数名に基づいて前記カスタムコンセンサスメカニズムから対応するコンセンサス実行関数を呼び出すための呼び出しモジュール４５０をさらに含む。
【００７２】
一実施例では、前記投票提案開始ユニットは、投票有効ブロックの高さを決定するための投票開始時間決定サブユニットと、前記アップグレード要求と前記投票有効ブロックの高さとに基づいて投票提案トランザクションを開始し、生成される現在のブロック高さが前記投票有効ブロックの高さであることが検出された場合、前記ブロック生成ノードが前記投票提案トランザクションに応答して投票するための投票提案開始サブユニットと、を含む。
【００７３】
一実施例では、前記投票提案開始ユニットは、前記投票提案トランザクションの投票有効割合閾値を決定するための投票有効閾値決定サブユニットを含み、前記投票提案開始サブユニットは、さらに、前記アップグレード要求と前記投票有効割合閾値とに基づいて投票提案トランザクションを開始し、投票に合格した割合値が前記投票有効割合閾値より大きい場合に、前記ブロック生成ノードが投票に合格したと決定する。
【００７４】
一実施例では、前記投票有効閾値決定サブユニットは、具体的には、ローカルノードによって設定された投票有効割合閾値を取得し、設定された投票有効割合閾値がシステムの投票有効割合閾値以下である場合に、システムの投票有効割合閾値を前記投票提案トランザクションの投票有効割合閾値とし、そうでない場合には、設定された投票有効割合閾値を前記投票提案トランザクションの投票有効割合閾値とするために用いられる。
【００７５】
一実施例では、前記プラグイン取得モジュール４１０は、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムを取得するためのカスタムコンセンサスメカニズム取得ユニットと、前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得するためのコンパイルユニットと、を含む。
【００７６】
一実施例では、前記装置は、前記カスタムコンセンサスメカニズムをコンパイルして前記カスタムコンセンサスプラグインを取得した後に、ブロックチェーンネットワークに含まれる他のノードに前記カスタムコンセンサスプラグインを送信して、前記他のノードが前記カスタムコンセンサスプラグインをデプロイするためのメカニズム送信モジュール４６０をさらに含む。
【００７７】
一実施例では、前記装置は、ブロックチェーンネットワークにおける他のノードによって送信されたカスタムコンセンサスプラグインを受信するためのメカニズム受信モジュール４７０をさらに含む。
【００７８】
本実施例の技術案は、各機能モジュール間の相互の結合によって、標準化されたコンセンサスメカニズムフレームワークに基づいて、コンセンサスメカニズムコードの作成、コンセンサスプラグインのコンパイル、カスタムコンセンサスプラグインの受信又は送信、コンセンサスプラグインのデプロイ、アップグレード要求の生成、投票提案トランザクションの開始、コンセンサスメカニズムの検出と初期化、及びコンセンサス実行関数の呼び出しなどの機能を実現した。本願の実施例は、標準化されたコンセンサスメカニズムフレームワークに基づいてカスタムコンセンサスメカニズムを作成することにより、ブロックチェーンネットワーク内のコンセンサスメカニズムのアップグレードを実現し、ブロックチェーンネットワークにブロックチェーン作成者の業務ニーズを満たすコンセンサスメカニズムをデプロイし、ブロックチェーンネットワークにおけるコンセンサスメカニズムの修正又はアップグレードの方式を提供することで、ブロックチェーンネットワークのトランザクション処理能力及びユーザエクスペリエンスを向上させる。
【００７９】
実施例５
図５は、本願の実施例５により提供される機器の概略構成図である。図５は、本願の実施例の実施形態を実現するのに適する例示的な機器のブロック図を示す。図５に示される機器は、単なる一例であり、本願の実施例の機能及び使用範囲を一切限定しない。
【００８０】
図５に示される機器は、単なる一例であり、本願の実施例の機能及び使用範囲を一切限定しない。
【００８１】
図５に示すように、機器１２は、汎用コンピューティング機器の形態で示される。機器１２のコンポーネントは、一つ又は複数のプロセッサ又はプロセッサ１６と、システムメモリ２８と、異なるシステムコンポーネント（システムメモリ２８とプロセッサ１６とを含む）を接続するバス１８と、を含むことができるが、これらに限定されない。
【００８２】
バス１８は、メモリバス又はメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、プロセッサ又は多様なバス構造のうち任意のバス構造を使用するローカルバスを含む、複数種のバス構造のうち一つ又は複数のものを表す。例を挙げると、これらのアーキテクチャは、インダストリスタンダードアーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＡＣ）バス、拡張ＩＳＡバス、ビデオエレクトロニクススタンダーズアソシエーション（ＶＥＳＡ）ローカルバス、及びペリフェラルコンポーネントインターコネクト（ＰＣＩ）バスを含むが、これらに限定されない。
【００８３】
機器１２は、典型的には、多種類のコンピュータシステム読み取り可能な媒体を含む。これらの媒体は、機器１２がアクセス可能な任意の使用可能な媒体であってもよく、揮発性媒体及び不揮発性媒体、リムーバブル媒体及びノンリムーバブル媒体を含む。
【００８４】
システムメモリ２８は、ランダムアクセスメモリ（ＲＡＭ）３０及び／又はキャッシュメモリ３２などの揮発性メモリの形態のコンピュータシステム読み取り可能な媒体を含んでもよい。機器１２は、他のリムーバブル／ノンリムーバブル、揮発性／不揮発性コンピュータシステム記憶媒体をさらに含んでもよい。単なる一例として、ストレージシステム３４は、ノンリムーバブル、不揮発性磁気媒体（図５に示されていないが、通常「ハードドライブ」と呼ぶ）に対して読み出し及び書き込みをするために用いることができる。図５に示されていないが、リムーバブル、不揮発性磁気ディスク（例えば、「フロッピーディスク」）に対して読み出し及び書き込みをするための磁気ディスクドライブ、及びリムーバブル、不揮発性光学ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光学媒体）に対して読み出し及び書き込みをするための光学ディスクドライブを提供することができる。この場合、各ドライブは、一つ又は複数のデータメディアインターフェイスを介してバス１８に接続することがきる。システムメモリ２８は、本願の各実施例に記載の機能を実行するように配置されるワンセットのプログラムモジュール（例えば、少なくとも一つ）を有する少なくとも一つのプログラム製品を含んでもよい。
【００８５】
ワンセットのプログラムモジュール４２（少なくとも一つ）を有するプログラム／ユーティリティ４０は、例えば、メモリ２８に記憶されてもよく、このようなプログラムモジュール４２は、オペレーティングシステム、一つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータを含むことができるがこれらに限定されない。これらの例のそれぞれ又は何らかの組み合わせには、ネットワーク環境の実装が含まれる可能性がある。プログラムモジュール４２は、通常本願の実施例に記載の実施例における機能及び／又は方法を実行する。
【００８６】
機器１２は、一つ又は複数の外部機器１４（例えば、キーボード、ポインティング機器、ディスプレイ２４など）と通信することができるし、ユーザが機器１２とインタラクションすることを可能にする一つ又は複数の機器と通信することもでき、及び／又は機器１２が一つ又は複数の他のコンピューティングデバイスと通信することを可能にする任意の機器（例えば、ネットワークカード、モデムなど）と通信することができる。そのような通信は、入力／出力（Ｉ／Ｏ）インターフェイス２２を介して行うことができる。また、機器１２は、ネットワークアダプタ２０を介して、一つ又は複数のネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、及び／又はパブリックネットワーク、例えば、インターネット）と通信することができる。図４に示すように、ネットワークアダプタ２０は、バス１８を介して、機器１２の他のモジュールと通信する。なお、図示されていないが、マイクロコードやデバイスドライバ、冗長プロセッサ、外部ディスクドライブアレイ、ＲＡＩＤシステム、テープドライバ、及びデータバックアップトレージシステムなどを含むがこれらに限定されない他のハードウェア及び／又はソフトウェアモジュールを、機器１２と組み合わせて使用することができる。
【００８７】
プロセッサ１６は、システムメモリ２８に記憶されるプログラムを実行することにより、多様な機能アプリケーション及びデータ処理を実行し、例えば、本願の実施例により提供されるコンセンサスメカニズムのデプロイ方法を実現する。
【００８８】
実施例６
本願の実施例６は、コンピュータプログラムが記憶されている（又はコンピュータ実行可能な命令と呼ばれる）コンピュータ読み取り可能な記憶媒体をさらに提供する。当該プログラムがプロセッサによって実行される場合に、コンセンサスメカニズムのデプロイ方法が実行される。当該方法は、標準化されたコンセンサスメカニズムフレームワークに基づいて作成されたカスタムコンセンサスメカニズムをコンパイルしてカスタムコンセンサスプラグインを取得するステップと、ローカルノードに前記カスタムコンセンサスプラグインをデプロイするステップと、を含む。
【００８９】
本願の実施例のコンピュータ記憶媒体は、一つ又は複数のコンピュータ読み取り可能な媒体の任意の組み合わせを採用することができる。コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体、或いはコンピュータ読み取り可能な記憶媒体であってもよい。コンピュータ読み取り可能な媒体は、例えば、電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置又はデバイス、或いは上記の任意の組み合わせであってもよいがこれらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例（非網羅的なリスト）は、一つ又は複数の配線を備える電気接続部、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤ-ＲＯＭ）、光記憶装置、磁気記憶装置、又は上記の任意の適切な組み合わせを含む。この文書において、コンピュータ読み取り可能な記憶媒体は、命令実行システム、装置又はデバイスにより使用され、或いはそれらと組み合わせて使用されることが可能であるプログラムを含む又は記憶する任意の有形の媒体であってもよい。
【００９０】
コンピュータ読み取り可能な信号媒体は、ベースバンドにおける、又は搬送波の一部として伝播するデータ信号を含むことができ、その中にはコンピュータ読み取り可能なプログラムコードが搭載される。この伝播するデータ信号は様々な形式を採用することができ、電磁信号、光信号又は上記の任意の適切な組み合わせを含むがこれらに限定されない。コンピュータ読み取り可能な信号媒体はまた、コンピュータ読み取り可能な記憶媒体以外の任意のコンピュータ読み取り可能な媒体であってもよく、当該コンピュータ読み取り可能な媒体は、命令実行システム、装置又はデバイスにより使用され、或いはそれらと組み合わせて使用されるプログラムを送信、伝播又は伝送することができる。
【００９１】
コンピュータ読み取り可能な媒体に含まれるプログラムコードは、無線、有線、光ケーブル、ＲＦなど、又は上記の任意の適切な組み合わせを含むがこれらに限定されない任意の適切な媒体によって伝送することができる。
【００９２】
一つ又は複数のプログラミング言語又はそれらの組み合わせで本願の動作を実行するためのコンピュータプログラムコードを作成することができ、前記プログラミング言語は、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのプロジェクト指向のプログラミング言語を含み、さらに、「Ｃ」言語又は同様のプログラミング言語といった従来の手続き型プログラミング言語をも含む。プログラムコードは、完全にユーザーコンピュータで実行されてもよいし、部分的にユーザーコンピュータに実行されてもよいし、スタンドアロンソフトウェアパッケージとして実行されてもよいし、部分的にユーザーコンピュータで、部分的にリモートコンピュータで実行されてもよいし、又は完全にリモートコンピュータ又はサーバーで実行してもよい。リモートコンピュータの場合には、リモートコンピュータをローカルネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含む任意種類のインターネットを介してユーザーコンピュータに接続することもできるし、或いは、外部コンピュータ（例えば、インターネットサービスプロバイダを利用してインターネットを介して接続する）に接続することもできる。
【図１】
2021508110.tif 000003
【図２】
2021508110.tif 000004
【図３】
2021508110.tif 000005
【図４】
2021508110.tif 000006
【図５】
2021508110.tif 000007
【国際調査報告】
2021508110.tif 000008
2021508110.tif 000009
2021508110.tif 000010
2021508110.tif 000011