JP6756918B2 - コンセンサス方法およびデバイス - Google Patents

コンセンサス方法およびデバイス Download PDF

Info

Publication number
JP6756918B2
JP6756918B2 JP2019527429A JP2019527429A JP6756918B2 JP 6756918 B2 JP6756918 B2 JP 6756918B2 JP 2019527429 A JP2019527429 A JP 2019527429A JP 2019527429 A JP2019527429 A JP 2019527429A JP 6756918 B2 JP6756918 B2 JP 6756918B2
Authority
JP
Japan
Prior art keywords
consensus
node
primary node
view
service request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019527429A
Other languages
English (en)
Other versions
JP2020507142A5 (ja
JP2020507142A (ja
Inventor
チャン・タン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2020507142A publication Critical patent/JP2020507142A/ja
Publication of JP2020507142A5 publication Critical patent/JP2020507142A5/ja
Application granted granted Critical
Publication of JP6756918B2 publication Critical patent/JP6756918B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Electronic Switches (AREA)
  • Logic Circuits (AREA)
  • Read Only Memory (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Description

本出願は、コンピュータ技術の分野に関し、特に、コンセンサス方法および装置に関する。
現在、ブロックチェーン技術が広く使用されており、ブロックチェーン技術において非集中型モードは、データが容易に改ざんされないということを保証し、それによってセキュリティを向上させる。
実際に、複数のノードを含むブロックチェーンネットワーク(ノードは、サービスを処理することに参加する、ブロックチェーンネットワーク内のデバイスと考えられ得る)は、対応するサービスをクライアントデバイスに対して提供することができる。ブロックチェーンネットワーク内のノードは、クライアントデバイスのサービス要求に対する処理を実施し、処理結果をクライアントデバイスにフィードバックする。このプロセスにおいて、独立的に作動するノードにより生成される処理結果は、一致しないことがある。クライアントデバイスが正しい処理結果を受信することができるということを保証するために、ノードの間のコンセンサスが、実用的ビザンチンフォールトトレランス(PBFT:Practical Byzantine Fault Tolerance)アルゴリズムを使用することにより実施される(すなわち、正しい処理結果が、ノードにより共同で確認され、または受け付けられ得る)。
PBFTアルゴリズムを使用するプロセスにおいて、コンセンサスが通常、ビューにおいて実施される。ビューにおいて、ブロックチェーンネットワーク内の1つのノードが、プライマリノード(プライマリ)として使用され、他のノードが、バックアップノード(バックアップ)として使用される。この事例において、プライマリノードは、クライアントデバイスのサービス要求を受信し、サービス要求をすべてのバックアップノードにブロードキャストし、プライマリノードは、コンセンサスを開始する。コンセンサスに達するノードは、サービス要求に対する処理を実施し、処理結果をクライアントデバイスにフィードバックする。
既存の技術において、バックアップノードは、ビュー切り換えを開始し、バックアップノードにより開始されるビュー切り換えは、通常、ビューにおいて他のノードにより確認され、または受け付けられることを必要とする。バックアップノードは、ビューにおいて他のノード(プライマリノードを含む)に対してビュー切り換え要求を開始し、すなわち、他のノードに対してビュー切り換え要求に関するコンセンサスを開始する(このコンセンサスは、やはりPBFTを使用する。サービス要求に関するコンセンサスのプロセスとは異なり、ビュー切り換え要求に基づくコンセンサスプロセスにおいて、各々のノードは、サービス要求に関するコンセンサスを一時停止する。したがって、ビュー切り換え要求に関するコンセンサスは、本質的には、追加的なコンセンサスプロセスである)。所定の数量のノードがコンセンサスに達した後、バックアップノードが新しいプライマリノードになるということが決定される。新しいプライマリノードは、新しいビューメッセージをブロードキャストして、ビュー切り換えを完了する。
しかしながら、先の機構において、追加的なコンセンサスプロセスが、バックアップノードにより開始されるビュー切り換えに対して実施されることを必要とし、追加的なコンセンサスプロセスは、システム計算量を増加させる。加えて、ビュー切り換えのコンセンサスプロセスにおいて、コンセンサスは、所定の数量のノードにより確認された後に達せられ得る。最後に、新しいプライマリノードは、新しいビューメッセージをブロードキャストし、プロセス全体は、ある期間の時間を消費する。明らかに、既存のビュー切り換えのやり方は、システムの計算量を増加させるのみでなく、さらには、サービス要求を処理するために消費される時間を増加させる。その結果、相対的に低い処理効率が引き起こされる。
本出願の実装形態は、現在のビュー切り換えのやり方が、ブロックチェーンネットワークの計算量を増加させ、処理時間消費を増加させるという問題を軽減するための、コンセンサス方法および装置を提供する。
本出願の実装形態は、以下のステップ、すなわち、ブロックチェーンプライマリノードにより、ビュー切り換え条件のトリガリングを監視するステップと、ブロックチェーンプライマリノードにより、ビュー切り換え条件のトリガリングが監視されるときに後継ノードを選択するステップと、ブロックチェーンプライマリノードにより後継ノードに基づいて、現在のビューを、後継ノードを後続のブロックチェーンプライマリノードとして使用する次のビューに切り換えるステップであって、後続のブロックチェーンプライマリノードが、次のビューにおいてコンセンサスを開始するようにする、切り換えるステップとを含む、コンセンサス方法を提供する。
本出願の実装形態は、以下、すなわち、ビュー切り換え条件のトリガリングを監視するように構成される監視モジュールと、監視モジュールがビュー切り換え条件のトリガリングを監視するときに後継ノードを選択するように構成されるノード決定モジュールと、後継ノードに基づいて、現在のビューを、後継ノードを後続のブロックチェーンプライマリノードとして使用する次のビューに切り換えることであって、後続のブロックチェーンプライマリノードが、次のビューにおいてコンセンサスを開始するようにする、切り換えることを行うように構成されるビュー切り換えモジュールとを含む、コンセンサス装置を提供する。
本出願の実装形態は、コンセンサス方法および装置を提供する。任意のビューにおいて、ブロックチェーンプライマリノードは、ビュー切り換え条件のトリガリングを能動的に監視する。ビュー切り換え条件がトリガされるならば、ブロックチェーンプライマリノードは、ビュー切り換えを実施することを必要とする。さらに、ブロックチェーンプライマリノードは、後継ノードを他のブロックチェーンノードから、次のビューにおいてのブロックチェーンプライマリノードとして選択する。それに応じて、ブロックチェーンプライマリノードは、ビュー切り換えを実施する。切り換えられたビューにおいて、後継ノードは、サービスを処理するための新しいブロックチェーンプライマリノードとして使用される。加えて、ビュー切り換えは、それでもなお、先のプロセスに基づいて実施される。明らかに、先のビュー切り換えは、ブロックチェーンプライマリノードにより開始される。そのようなやり方は、ブロックチェーンバックアップノードが、ビュー切り換えコンセンサスを開始することを防止する。換言すれば、追加的なコンセンサスが防止され得る。したがって、ブロックチェーンネットワークにおける、追加的な計算量および処理時間消費が低減され得る。
ここで説明される付随する図面は、本出願のさらなる理解をもたらすことを意図されるものであり、本出願の一部分をなす。本出願の例示的な実装形態、および、それらの実装形態の説明は、本出願を説明することを意図されるものであり、本出願に関する制限をなすものではない。付随する図面においては、以下の通りである。
本出願の実装形態による、コンセンサスプロセスが基づくアーキテクチャを例示する図である。 本出願の実装形態による、コンセンサスプロセスを例示する図である。 本出願の実装形態による、任意のビューにおける3フェーズプロトコルに基づくコンセンサスプロセスを例示する概略線図である。 本出願の実装形態による、ビュー切り換えの応用実例の実行プロセスを例示する概略線図である。 本出願の実装形態による、コンセンサス装置を例示する概略構造線図である。
本出願の目的、技術的解決策、および利点をより明確にするために、後に続くことが、本出願の具体的な実装形態、および付随する図面を参照して、本出願の技術的解決策を、明確に、および包括的に説明する。明らかに、説明される実装形態は、本出願の実装形態のすべてではなく一部にすぎない。創造的努力なしに本出願の実装形態に基づいて当業者により得られるすべての他の実装形態は、本出願の保護範囲に該当するものとする。
上記で説明されたように、ブロックチェーンネットワーク内のノードがPBFTアルゴリズムを使用することによりコンセンサスを実施するというプロセスにおいて、ブロックチェーンプライマリノードが不良になると、ブロックチェーンバックアップノードが、ビュー切り換えを開始する。追加的なコンセンサスが、ブロックチェーンバックアップノードにより開始されるビュー切り換えに対して必要とされる。すなわち、ビュー切り換えは、他のブロックチェーンノードによる確認または受け付けの後にのみ完了され得る。明らかに、追加的なコンセンサスプロセスは、ブロックチェーンネットワークの計算量を増加させ、さらには、処理時間消費を増加させる。
よって、本出願の実装形態は、コンセンサス方法を提供する。任意のビューにおけるブロックチェーンプライマリノードについて、コンセンサスが終了した後、ブロックチェーンプライマリノードは、ビュー切り換えを開始して、ブロックチェーンプライマリノードを変更し、追加的なコンセンサスプロセスは必要とされない。説明を容易にするために、ブロックチェーンプライマリノードは、単純にプライマリノードと呼称され、ブロックチェーンバックアップノードは、単純にバックアップノードと呼称される。加えて、下記で説明される「ノード」は、コンセンサスに参加する、ブロックチェーンネットワーク内のノードと理解されるべきである。
本出願の実装形態において、コンセンサス方法において使用されるアーキテクチャが図1aにおいて示されるということに留意することは有意義である。ブロックチェーンネットワークは、複数のノードを含み、複数のクライアントデバイスが、ブロックチェーンネットワークとのサービスインタラクションを実施することができるということが、図1aから分かる。ブロックチェーンネットワークの応用タイプは、コンソーシアムブロックチェーンネットワークまたはプライベートブロックチェーンネットワークであり得るものであり、ブロックチェーンネットワークは、サービスをユーザに対して提供することができる。ノードは、サーバ、コンピュータ、モバイルデバイス、および、計算処理機能を有する他のデバイスを含むが、それらに制限されない。クライアントデバイスは、ブラウザ、アプリケーション、その他を作動させるように構成され得るものであり、クライアントデバイスは、エンドユーザデバイス、サーバ、またはデータベースであり得る。実装形態は、ここでは制限されない。
図1aにおいて示される関係性アーキテクチャに基づいて、本出願の実装形態において提供されるコンセンサスプロセスが、図1bにおいて示される。プロセスは、後に続くステップを含む。
S101:プライマリノードは、ビュー切り換え条件のトリガリングを監視する。
本出願のこの実装形態において、ビュー切り換え条件は、ビュー切り換えを実施するために満たされることを必要とする条件と考えられ得る。例えば、プライマリノードが、所定の期間の時間の中で、サービス要求をブロードキャストしない、または、コンセンサスを完了しない。
本出願のこの実装形態における可能なやり方において、タイマが、ビュー切り換え条件のトリガリングを監視するために、プライマリノード内にセットされ得る。例えば、タイマは、プライマリノードによりサービス要求をブロードキャストすることの挙動を計時して、プライマリノードによりサービス要求をブロードキャストすることの挙動が満了するかどうかを検出するために使用され得る。タイマは、プライマリノード上で作動する計時機能またはサービスと考えられ得るものであり、当然ながら、本出願に関する制限をなすものではない。
S102:プライマリノードは、ビュー切り換え条件のトリガリングが監視されるときに後継ノードを選択する。
ビュー切り換え条件がトリガされるならば、プライマリノードは、ビュー切り換えを実施することを必要とする。任意のビューにおいて、ただ1つのプライマリノードが存し、他のノードはバックアップノードであるということに留意することは有意義である。したがって、ビュー切り換えは、プライマリノードの切り換えを示す。したがって、本ステップにおいて、プライマリノードは、後継ノードを次のプライマリノードとして選択する(本出願のこの実装形態における後継ノードは、現在のビューにおけるプライマリノードと同じノードではない、すなわち、現在のビューにおけるプライマリノードは、後継ノードとして使用され得ない)。
S103:プライマリノードは、後継ノードに基づいて、現在のビューを、後継ノードを後続のプライマリノードとして使用する次のビューに切り換えることであって、後続のプライマリノードが、次のビューにおいてコンセンサスを開始するようにする、切り換えることを行う。
後継ノードが決定された後、プライマリノードは、ビュー切り換えを実施する。バックアップノードがビュー切り換えコンセンサスを開始するという既存のやり方において、バックアップノードがビュー切り換えコンセンサスを開始するというプロセスは、ビューにおけるプライマリノードの「弾劾」のプロセスと考えられ得る。既存のやり方とは異なり、本出願のこの実装形態において、プライマリノードがビュー切り換えを独立的に実施するというプロセスは、「能動的放棄」のプロセスと考えられ得るものであり、プライマリノードは、コンセンサスを開始することなくビュー切り換えを実施する。明らかに、追加的なコンセンサスプロセスが、さらには防止される。ビュー切り換えが実施された後、新しく指名されたプライマリノードが、切り換えられたビューにおいてコンセンサスを開始することに対して責任を負い、新しく指名されたプライマリノードもまた、先のビュー切り換えプロセスを実施するということが理解され得る。詳細は、簡潔さのために、ここでは省略される。
先のステップによれば、任意のビューにおいて、プライマリノードは、ビュー切り換え条件のトリガリングを能動的に監視する。ビュー切り換え条件がトリガされるならば、プライマリノードは、ビュー切り換えを実施することを必要とする。さらに、プライマリノードは、後継ノードを他のノードから、次のビューにおけるプライマリノードとして選択する。それに応じて、プライマリノードは、ビュー切り換えを実施する。切り換えられたビューにおいて、後継ノードは、サービスを処理するための新しいプライマリノードとして使用される。加えて、ビュー切り換えは、それでもなお、先のプロセスに基づいて実施される。明らかに、先のビュー切り換えは、プライマリノードにより開始される。そのようなやり方は、バックアップノードが、ビュー切り換えコンセンサスを開始することを防止する。換言すれば、追加的なコンセンサスが防止され得る。したがって、ブロックチェーンネットワークにおける追加的な計算量および処理時間消費が低減され得る。
実際に、異なるビュー切り換え条件が存在する。以下で、ビュー切り換え条件のトリガリングを詳細に説明する。
第1のシナリオ:
実際に、クライアントデバイスは、サービス要求をプライマリノードに送信する。正常な状態において、サービス要求を受信した後、プライマリノードは、サービス要求をビューにおいてのバックアップノードにブロードキャストして、サービス要求に関するコンセンサスを実施する。しかしながら、プライマリノードは、異常なノードであることがあり、サービス要求を受信した後の長い時間の間、サービス要求をブロードキャストしない。したがって、バックアップノードは、ビュー切り換えコンセンサスを開始する。したがって、プライマリノードが、所定の期間の時間の中で、サービス要求をブロードキャストしないという理由での、バックアップノードにより開始されるビュー切り換えコンセンサスを防止するために、プライマリノードは、計時を独立的に実施し、プライマリノードの満了現象を能動的に監視する。
換言すれば、このシナリオにおいて、ビュー切り換え条件が、プライマリノードが、所定の期間の時間の中で、サービス要求をブロードキャストしないということであるならば、ビュー切り換え条件をトリガすることは、以下、すなわち、プライマリノードにより、サービス要求を受信することと、所定の時間内にサービス要求に関するコンセンサスを開始することに失敗することとを含む。
実際の動作において、計時は、プライマリノード内の計時機能を有するプログラムまたはサービス、例えば、先に述べられたタイマにより実施され得る。計時は、プライマリノードがサービス要求を受信する時点から始められ得る。所定の時間は、5s、10s、その他にセットされ得るものであり、実際の要件に基づいて決定され得るものであり、本出願に関する制限をなすものではない。
第2のシナリオ:
先のシナリオとは異なり、このシナリオにおいて、サービス要求を受信した後、プライマリノードは、サービス要求を現在のビューにおいてのバックアップノードにブロードキャストする。換言すれば、プライマリノードは、所定の時間が満了する前に、サービス要求に関するコンセンサスを開始している。それに対応して、ビューにおいてのノードは、サービス要求に関するコンセンサスを実施し、コンセンサス結果を生成する。
ここでは、既存のビュー切り換え機構に基づいて、コンセンサス結果が、コンセンサスが失敗するということであるならば、バックアップノードは、ビュー切り換えコンセンサスを開始するということに留意することは有意義である。明らかに、コンセンサスが失敗するということは、ビュー切り換え条件と考えられ得る。換言すれば、このシナリオにおいて、コンセンサスが失敗するとき、プライマリノードは、ビュー切り換えを能動的に実施して、バックアップノードが追加的なビュー切り換えコンセンサスを開始することを防止する。
加えて、既存のビュー切り換え機構に基づいて、コンセンサス結果が、コンセンサスが達せられるということであるならば、プライマリノードは、別のサービス要求に関するコンセンサスを開始することを継続する。しかしながら、プライマリノードは、後続の作動するプロセスにおいて不良であることがある。プライマリノードが不良になると、バックアップノードは、やはりビュー切り換えコンセンサスを開始する。したがって、この事例を防止するために、本出願のこの実装形態において、コンセンサスが達せられた後、プライマリノードは、それでもなおビュー切り換えを実施する。
このシナリオにおいて、コンセンサス結果が、コンセンサスが達せられるということであるか、コンセンサスが失敗するということであるかに関わらず、プライマリノードは、コンセンサス結果を決定した後にビュー切り換えを実施するということが認められ得る。換言すれば、ビュー切り換え条件をトリガすることは、以下、すなわち、プライマリノードにより、サービス要求を受信することと、サービス要求に関するコンセンサスを開始することと、コンセンサス結果を決定することとを含む。
すなわち、このシナリオにおいて、プライマリノードは、コンセンサスが達せられたと、または、コンセンサスが失敗すると決定することを必要とする。以下は、どのようにプライマリノードが、コンセンサスが達せられたと、または、コンセンサスが失敗すると決定するかを詳細に説明する。
最初に、サービス要求に基づくコンセンサスプロセスは、本質的には、3フェーズプロトコルに基づくコンセンサスプロセスであるということに留意することは有意義である。3つのフェーズは、前準備フェーズと、準備フェーズと、コミットフェーズとを含み、完全なコンセンサスプロセスを形成する。各々のフェーズにおいて、ノード(プライマリノードおよびバックアップノードの両方を含む)は、コンセンサスメッセージを互いに送信する。すなわち、ビューにおいての各々のノードにとって、異なるフェーズに入ることは、他のノードにより確認され、または受け付けられることを必要とする。したがって、3つのフェーズの各々は、コンセンサスプロセスと考えられ得る。通常、すべてのノードがコミットフェーズに入るとき、コンセンサスプロセスが完了されるということが考えられ得る。
図2は、ビューにおいての3フェーズプロトコルに基づくノードのコンセンサスプロセスである。図2において、クライアントデバイスは、0と番号付けされたノード(レプリカ0、すなわち、プライマリノード)へのサービス要求を開始し、プライマリノードは、サービス要求をバックアップノード(レプリカ1、レプリカ2、およびレプリカ3)にブロードキャストし、3フェーズコンセンサスを実施することを始める。コンセンサスに達するノードは、サービス要求を処理し、処理結果をクライアントデバイスにフィードバックする。
それに応じて、後に続く動作が実施される。
1.プライマリノードは、コンセンサスが失敗すると決定する。
本出願のこの実装形態において、コンセンサスが失敗するということは、コンセンサスプロセス満了(単純にコンセンサス満了と下記で呼称され、コンセンサス満了は、コンセンサスプロセスにより消費される時間が、所定のコンセンサス持続時間を超過するということを意味し、コンセンサスプロセスにより消費される時間は、プライマリノードがコンセンサスを開始する時点から計数され得る)として表される。理由は、後に続くようなものである。
1つの事例において、プライマリノードは、不良のノードである(ノードが不良であるならば、ノード内でコンセンサスを実施するために使用されるデータは不良である、または、ノード内のコンセンサス論理は不良であるということが考えられ得る)。すなわち、プライマリノードによりバックアップノードに送信されるサービス要求は、不正確なデータ(例えば、不正確なサービス要求シーケンス番号)を含むことがある。PBFT機構により保証されて、バックアップノードは、プライマリノードによりブロードキャストされるサービス要求をチェックする。不正確なデータがサービス要求内に含まれると、正常なバックアップノードは、サービス要求を確認または受け付けない。この事例において、プライマリノードは、サービス要求を送信するプロセスを繰り返すことがあり、その結果、コンセンサスは満了する。
代替的に、別の事例において、プライマリノードは、同じように不良のノードである。この事例において、プライマリノードは、コンセンサスフェーズを指示する不正確な通知メッセージを他のバックアップノードに送信することがあり、すなわち、プライマリノードは、所定のフェーズに入ったということを「不正確に」考える。この事例において、バックアップノードは、プライマリノードの通知メッセージに関するコンセンサスを実施して、プライマリノードの通知メッセージの真正性を確認する。同様に、正常なバックアップノードは、やはり、プライマリノードにより送信される通知メッセージを確認または受け付けない。この事例において、プライマリノードは、不正確な通知メッセージを送信するプロセスを繰り返すことがあり、その結果、コンセンサスは満了する。
当然ながら、先の内容は、実際のコンセンサス満了につながり得る、ただ2つの可能な事例であり、本出願に関する制限と考えられるべきではない。明らかに、先の内容から、コンセンサスが満了すると、コンセンサスは失敗するということが分かる。
したがって、本出願のこの実装形態において、プライマリノードは、コンセンサスが失敗するかどうかを、コンセンサスプロセスの全体的な時間消費具合を監視することにより検出することができる。コンセンサスプロセスが満了すると、プライマリノードは、ビュー切り換え動作を直ちに開始し、バックアップノードにより開始されるビュー切り換えの追加的なコンセンサスプロセスが防止され得る。すなわち、本出願のこの実装形態において、プライマリノードが、コンセンサスが失敗すると決定するというプロセスは、以下のようなものであり得る:プライマリノードは、コンセンサスプロセスにより消費される時間を、サービス要求に関するコンセンサスがビューにおいてのバックアップノードの間で開始される時点から監視し、コンセンサスにより消費される時間が、所定の時間を超過するということが検出されるとき、コンセンサスが失敗すると決定する。
2.プライマリノードは、コンセンサスが達せられると決定する。
先の3フェーズプロトコルから、ノードがコミットフェーズに入るならば、ノードは、サービス要求を処理し、生成される処理結果をクライアントデバイスにフィードバックすることができるということが分かる。加えて、フェーズに入るために、各々のノードは、ビューにおいての他のノードにより確認され、または受け付けられることを必要とする。したがって、ノードがコミットフェーズに入るならば、そのことは、ノードが他のノードにより確認され、または受け付けられるということを示す。プライマリノードがコミットフェーズに入るならば、そのことは、コンセンサスが達せられたということを示すということが分かる。このことは、なぜならば、PBFT機構において、ノードがフェーズに入るならば、そのことは、ノードの状態が、ビューにおいての大部分のノードにより確認され、または受け付けられるということを示すからである。それに応じて、そのことは、大部分のノードが正しいノードであるということを示す。
したがって、そのようなやり方において、プライマリノードが、コンセンサスが達せられると決定するというプロセスは、以下の通りであり得る:プライマリノードは、プライマリノードの対応するフェーズを監視し、プライマリノードが、プライマリノードがコミットフェーズに入り、所定のコンセンサス持続時間が満了しないということを検出するとき、コンセンサスが完了されると決定する。すなわち、プライマリノードがコミットフェーズに入るということを確認するとき、プライマリノードは、コミットフェーズに入るためにプライマリノードにより消費される時間が、所定の時間を超過しないということを保証することをさらに必要とする。
本出願のこの実装形態においての別のやり方において、プライマリノードは、通知メッセージを他のノードに送信しないことがある(すなわち、プライマリノードは、不良のノードであることがある)。しかしながら、プライマリノードは、それでもなお、バックアップノードにより送信される通知メッセージを受信することができる。この事例において、所定の数量のノードがコミットフェーズに入るならば、コンセンサスは完了されるということが考えられ得る。
実際に、ノードがコミットフェーズに入った後、ノードは、通常、通知メッセージをビューにおいての他のノードに送信し、通知メッセージは、例えば、<commit, v, n, D(m)>であり得るものであり、「commit」は、ノードがコミットフェーズに入ったということを示し、「v」は、ビュー番号を示し、「n」は、サービス要求のシーケンス番号を示し、「D(m)」は、通知メッセージを送信するノードによりサービス要求に関して実施される署名を示す。
プライマリノードは、プライマリノードにより受信される、およびコミットフェーズに入るということを示す通知メッセージに関しての統計情報を収集することができる。受信される通知メッセージの数量が2f+1より大であるならば、そのことは、十分なノードがコンセンサスに達するということを示す。次いで、そのことは、コンセンサスが完了されるということを示す。fは、PBFT機構においての許容可能な不正確なノードの最大数量である。この事例において、プライマリノードは、コンセンサスが完了されると決定することができる。
したがって、プライマリノードが、コンセンサスが達せられると決定するというプロセスは、さらには、以下のようなものであり得る:プライマリノードは、プライマリノードにより受信される、および、バックアップノードがコミットフェーズに入るということを示し、通知メッセージを監視し、プライマリノードが、受信される通知メッセージの数量が、所定の数量を超過し、所定のコンセンサス持続時間が満了しないということを検出するとき、コンセンサスが完了されると決定する。
コンセンサスが完了した後、プライマリノードは、ビュー切り換えを開始して、プライマリノードを変更し、新しいビューに入る。
以下は、本出願のこの実装形態におけるビュー切り換えプロセスを説明する。
PBFT機構において、各々のビューは、対応する番号を有する。例えば、先の例においてvは、現在のビューの番号を表す。それに対応して、ブロックチェーンネットワーク内の各々のノードは、対応する番号を有する。ブロックチェーンネットワーク内に総数R個のノードが存在するならば、ノードの番号は、0からR-1であり、例えば、レプリカ0、レプリカ1、…、およびレプリカR-1である。ノード番号とビュー番号との間に関係性が存する。レプリカpが、番号pを伴うノードを表すために使用されるならば、ノード番号およびビュー番号は、次の式を満たす:p=v mod R、ただし、vは、0から正の無限大までの整数である。
この関係性は、ノード番号pが、ビュー番号vの、ブロックチェーンネットワーク内に含まれるノードの数量Rを法とする剰余演算の後に得られるということを示す。
換言すれば、vは、0からR-1の範囲にわたるので、プライマリノードの識別情報が、異なるノードに順次引き渡されるということが保証される。例えば、現在のビューのプライマリノードがレプリカ0(ビュー番号0に対応する)であるならば、次のビュー(1と番号付けされる)においてプライマリノードは、レプリカ1である。すべてのノードは、このやり方においてトラバースされる。
したがって、本出願のこの実装形態において、ビュー切り換えプロセスは、以下、すなわち、プライマリノードによりプライマリノードの番号を決定することと、プライマリノードの番号に基づいて、ノードであって、その番号がプライマリノードの番号の後に配列される、ノードを決定することと、ビュー切り換え通知メッセージを、決定されたノードに基づいて生成することと、ビュー切り換えメッセージを各々のバックアップノードに送信して、ビュー切り換えを実施することを、決定されたノードが、次のビューにおけるプライマリノードになるように行うこととを含むということが分かる。
以下は、説明のために具体的な応用実例を使用する。図3において示されるように、実例は、以下のステップを含む。
S301:vと番号付けされたビューにおいてプライマリノードpは、クライアントデバイスにより送信されるサービス要求を受信し、計時を実施する。
S302:所定の時間が満了するとき、ビューにおいて各々のバックアップノードへのサービス要求に関するコンセンサスを開始すべきかどうかを決定し、「はい」ならば、ステップS303を実施し、さもなければ、ステップS305を実施する。
S303:コンセンサス結果を得る。
S304:コンセンサスが達せられるかどうかを決定し、ステップS305を実施する。
S305:ビューvをビューv+1に切り換え、p+1と番号付けされたノードを、ビューv+1におけるプライマリノードと決定する。
先のビュー切り換えが、プライマリノードにより開始される。そのようなやり方は、バックアップノードがビュー切り換えコンセンサスを開始することを防止する。
上記のことは、本出願の実装形態において提供されるコンセンサス方法である。同じ着想に基づいて、本出願の実装形態は、コンセンサス装置をさらに提供する。図4において示されるように、任意のビューに対して、コンセンサス装置は、以下、すなわち、ビュー切り換え条件のトリガリングを監視するように構成される監視モジュール401と、監視モジュールがビュー切り換え条件のトリガリングを監視するときに後継ノードを選択するように構成されるノード決定モジュール402と、後継ノードに基づいて、現在のビューを、後継ノードを後続のブロックチェーンプライマリノードとして使用する次のビューに切り換えることであって、後続のブロックチェーンプライマリノードが、次のビューにおいてコンセンサスを開始するようにする、切り換えることを行うように構成されるビュー切り換えモジュール403とを含む。
サービス要求が受信され、サービス要求に関するコンセンサスが所定の時間内に開始されないとの決定に応答して、監視モジュール401は、ビュー切り換え条件のトリガリングが監視されると決定する。
サービス要求が受信され、サービス要求に関するコンセンサスが開始され、コンセンサス結果が決定されるとの決定に応答して、監視モジュール401は、ビュー切り換え条件のトリガリングが監視されると決定する。
ノード決定モジュール402は、現在のビューの次のビューを決定し、次のビューに対応する後継ノードを決定する。
ビュー切り換えモジュール403は、現在のビューを、決定された次のビューに切り換え、後継ノードは、次のビューにおけるプライマリノードとして使用される。
任意のビューにおいてノードは、コンソーシアムブロックチェーンネットワークまたはプライベートブロックチェーンネットワーク内のノードを含む。
1990年代においては、技術的改善が、ハードウェア改善(例えば、ダイオード、トランジスタ、またはスイッチなどの回路構造に対する改善)であるか、それともソフトウェア改善(方法手順に対する改善)であるかは、明確に区別され得る。しかしながら、技術が発達するにつれて、多くの方法手順に対する現在の改善は、ハードウェア回路構造に対する直接的改善と考えられ得る。設計者は、通常、改善された方法手順をハードウェア回路内へとプログラムして、対応するハードウェア回路構造を得る。したがって、方法手順は、ハードウェアエンティティモジュールを使用することにより改善され得る。例えば、プログラマブル論理デバイス(PLD)(例えば、フィールドプログラマブルゲートアレイ(FPGA))は、そのような集積回路であり、PLDの論理機能は、ユーザにより、デバイスプログラミングによって決定される。設計者は、チップ製造業者に特定用途向け集積回路チップを設計および生産することを要求することなく、プログラミングを実施して、デジタルシステムをPLDへと「集積する」。加えて、現時において、集積回路チップを手作業で製造する代わりに、そのようなプログラミングは、たいていは、「論理コンパイラ」ソフトウェアを使用することにより実施される。論理コンパイラソフトウェアは、プログラムを開発し書き表すために使用されるソフトウェアコンパイラと同様である。元のコードは、コンパイルのために特定のプログラミング言語の形で書き表されることを必要とする。言語は、ハードウェア記述言語(HDL)と呼称される。アドバンストブール演算式言語(ABEL:Advanced Boolean Expression Language)、Alteraハードウェア記述言語(AHDL)、Confluence、Cornell Universityプログラミング言語(CUPL)、HDCal、Javaハードウェア記述言語(JHDL)、Lava、Lola、MyHDL、PALASM、およびRubyハードウェア記述言語(RHDL)などの、多くのHDLが存する。超高速集積回路ハードウェア記述言語(VHDL)およびVerilogが、最も普通に使用される。当業者は、さらには、論理方法手順を実施するハードウェア回路は、その方法手順が、いくつもの説明されたハードウェア記述言語を使用することにより論理的にプログラムされ、集積回路内へとプログラムされれば、容易に得ることができるということが理解されよう。
コントローラは、任意の適切な方法を使用することにより実施され得る。例えば、コントローラは、マイクロプロセッサもしくはプロセッサ、または、マイクロプロセッサもしくはプロセッサにより実行され得るコンピュータ可読プログラムコード(ソフトウェアまたはファームウェアなど)を記憶するコンピュータ可読媒体、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブル論理コントローラ、または内蔵マイクロプロセッサであり得る。コントローラの例は、以下のマイクロプロセッサ:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、およびSilicon Labs C8051F320を含むが、それらに制限されない。メモリコントローラが、さらには、メモリの制御論理の一部分として実施され得る。当業者は、さらには、コンピュータ可読プログラムコードを使用することによりコントローラを実施することに加えて、論理プログラミングが、方法ステップに関して、コントローラが、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブル論理コントローラ、および内蔵マイクロプロセッサの形式において同じ機能を実施することを可能とするために実施され得るということを知っている。したがって、コントローラは、ハードウェア構成要素と考えられ得るものであり、コントローラ内の様々な機能を実施するように構成される装置は、さらには、ハードウェア構成要素内の構造と考えられ得る。または、様々な機能を実施するように構成される装置は、方法を実施するソフトウェアモジュール、および、ハードウェア構成要素内の構造の両方と考えられることさえある。
先の実装形態において例示されたシステム、装置、モジュール、またはユニットは、コンピュータチップもしくはエンティティを使用することにより実施され得るものであり、または、所定の機能を有する製品を使用することにより実施され得る。典型的な実装形態デバイスはコンピュータである。コンピュータは、例えば、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ付き携帯電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲームコンソール、タブレットコンピュータ、またはウェアラブルデバイス、または、これらのデバイスのうちの任意のものの組み合わせであり得る。
説明を容易にするために、上記の装置は、機能を様々なユニットに分割することにより説明されている。当然ながら、本出願が実施されるとき、各々のユニットの機能は、1つまたは複数のまとまりの、ソフトウェアおよび/またはハードウェアにおいて実施され得る。
当業者は、本開示の実装形態が、方法、システム、またはコンピュータプログラム製品として提供され得るということを理解するはずである。したがって、本開示は、ハードウェアのみの実装形態、ソフトウェアのみの実装形態、または、ソフトウェアおよびハードウェアの組み合わせによる実装形態の形式を使用し得る。なおまた、本開示は、コンピュータ使用可能プログラムコードを含む、1つまたは複数のコンピュータ使用可能記憶媒体(ディスクメモリ、CD-ROM、光学メモリ、その他を含むが、それらに制限されない)上で実施されるコンピュータプログラム製品の形式を使用し得る。
本開示は、本開示の実装形態に基づく方法、デバイス(システム)、およびコンピュータプログラム製品の、フローチャートおよび/またはブロック線図を参照して説明されている。コンピュータプログラム命令は、フローチャートおよび/またはブロック線図内の、各々のプロセスおよび/または各々のブロック、ならびに、フローチャートおよび/またはブロック線図内の、プロセスおよび/またはブロックの組み合わせを実施するために使用され得るということに留意することは有意義である。これらのコンピュータプログラム命令は、機械を生成するために、汎用コンピュータ、専用コンピュータ、埋め込み型プロセッサ、または、別のプログラマブルデータ処理デバイスのプロセッサに対して提供され得るものであり、そのことによって、コンピュータ、または、別のプログラマブルデータ処理デバイスのプロセッサにより実行される命令は、フローチャート内の1つもしくは複数のプロセス内の、および/または、ブロック線図内の1つもしくは複数のブロック内の、特定の機能を実施するための装置を生成する。
これらのコンピュータプログラム命令は、コンピュータ、または、別のプログラマブルデータ処理デバイスに、特定のやり方において稼働するように命令することができる、コンピュータ可読メモリ内に記憶され得るものであり、そのことによって、コンピュータ可読メモリ内に記憶される命令は、命令装置を含む人工物を生成する。命令装置は、フローチャート内の1つもしくは複数のプロセス内の、および/または、ブロック線図内の1つもしくは複数のブロック内の、特定の機能を実施する。
これらのコンピュータプログラム命令は、コンピュータ、または、別のプログラマブルデータ処理デバイス上へとロードされ得るものであり、そのことによって、一連の動作およびステップが、コンピュータ、または、別のプログラマブルデバイス上で実施され、以て、コンピュータ実施処理を生成する。したがって、コンピュータ、または、別のプログラマブルデバイス上で実行される命令は、フローチャート内の1つもしくは複数のプロセス内の、および/または、ブロック線図内の1つもしくは複数のブロック内の、特定の機能を実施するためのステップを提供する。
典型的な構成において、コンピューティングデバイスは、1つまたは複数のプロセッサ(CPU)と、1つまたは複数の入出力インターフェイスと、1つまたは複数のネットワークインターフェイスと、1つまたは複数のメモリとを含む。
メモリは、コンピュータ可読媒体の形のものである、非永続的メモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリ、および/または、別の形式、例えば、読み出し専用メモリ(ROM)もしくはフラッシュメモリ(フラッシュRAM)を含み得る。メモリは、コンピュータ可読媒体の例である。
コンピュータ可読媒体は、任意の方法または技術を使用することにより情報を記憶することができる、永続的、非永続的、移動可能、および移動不可能媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータであり得る。コンピュータ記憶媒体の例は、パラメータランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別のタイプのランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュメモリ、または別のメモリ技術、コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、または別の光学記憶機構、カセット磁気テープ、磁気テープ/磁気ディスク記憶機構、または別の磁気記憶デバイスを含むが、それらに制限されない。コンピュータ記憶媒体は、コンピューティングデバイスによりアクセス可能な情報を記憶するために使用され得る。本明細書における定義に基づいて、コンピュータ可読媒体は、変調されるデータ信号および搬送波などの一時的コンピュータ可読媒体(一時的媒体)を含まない。
用語「含む」、「内包する」、または、それらの任意の他の異形は、非排他的な含みを包含することを意図され、そのため、要素の列挙を含むプロセス、方法、製品、またはデバイスは、それらの要素を含むのみではなく、さらには、明示的に列挙されない他の要素を含む、または、そのようなプロセス、方法、製品、もしくはデバイスに固有の要素をさらに含むということにさらに留意することは有意義である。これ以上の制約がなければ、「…を含む」により先導される要素は、要素を含むプロセス、方法、製品、またはデバイス内の追加的な同一の要素の存在を排除しない。
当業者は、本出願の実装形態が、方法、システム、またはコンピュータプログラム製品として提供され得るということを理解するはずである。したがって、本出願は、ハードウェアのみの実装形態、ソフトウェアのみの実装形態、または、ソフトウェアおよびハードウェアの組み合わせによる実装形態の形式を使用し得る。なおまた、本出願は、コンピュータ使用可能プログラムコードを含む、1つまたは複数のコンピュータ使用可能記憶媒体(ディスクメモリ、CD-ROM、光学メモリ、その他を含むが、それらに制限されない)上で実施されるコンピュータプログラム製品の形式を使用し得る。
本出願は、コンピュータにより実行されるコンピュータ実行可能命令、例えばプログラムモジュールの一般的な文脈において説明され得る。一般的には、プログラムモジュールは、特定のタスクを実行する、または、特定の抽出データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、その他を含む。本出願は、さらには、分散コンピューティング環境内で実践され得る。分散コンピューティング環境内では、タスクは、通信ネットワークを通して接続されるリモート処理デバイスにより実施される。分散コンピューティング環境内では、プログラムモジュールは、ローカルおよびリモートの両方の、記憶デバイスを含むコンピュータ記憶媒体内に配置され得る。
本明細書における実装形態は、漸進的なやり方において説明されている。実装形態の同じまたは同様の部分については、それらの実装形態に対して参照が行われ得る。各々の実装形態は、他の実装形態との違いに重点を置く。特に、システム実装形態は、基本的には方法実装形態と同様であり、したがって、簡潔に説明されている。関連した部分については、方法実装形態における関連した説明を参照することができる。
先の実装形態は、本出願の実装形態であり、本出願を制限することを意図されない。当業者は、様々な修正および変更を本出願に対して行うことができる。本出願の趣旨および原理から逸脱することなく行われる、いかなる修正、等価的置換、または改善も、本出願においての特許請求の範囲の範囲に該当するものとする。
401 監視モジュール
402 ノード決定モジュール
403 ビュー切り換えモジュール

Claims (18)

  1. ブロックチェーンネットワークにおいてビュー切り換えを実行するためのコンピュータ実装方法であって、前記ブロックチェーンネットワークがプライマリノードおよび複数のバックアップノードを含み、前記プライマリノードが前記ブロックチェーンネットワーク内のサービス要求に関するコンセンサスを開始し、前記サービス要求がビュー切り換えを開始するためのものではなく、前記方法が、
    ブロックチェーンプライマリノードにより、ブロックチェーンネットワーク内のビュー切り換え条件のトリガリングを受信するステップであって、前記トリガリングが、
    (a)前記サービス要求を受信すること、前記サービス要求に関する前記コンセンサスを開始すること、および前記サービス要求に関する前記コンセンサスの結果を決定すること、あるいは、
    (b)所定の時間内に前記サービス要求に関する前記コンセンサスを開始することに失敗すること、
    のうちの一つを示す、受信するステップと、
    前記ブロックチェーンプライマリノードにより、前記ビュー切り換え条件の前記トリガリングに基づいて前記複数のバックアップノードから後継ノードを選択するステップと、
    前記ブロックチェーンプライマリノードにより前記後継ノードに基づいて、現在のビューを、前記後継ノードを後続のブロックチェーンプライマリノードとして使用する次のビューに切り換えるステップであって、前記後続のブロックチェーンプライマリノードが、前記次のビューにおいてコンセンサスを開始する、切り換えるステップと
    を含む、コンピュータ実装方法
  2. 前記ビュー切り換え条件の前記トリガリングを受信するステップは、
    前記ブロックチェーンプライマリノードにより、サービス要求を受信するステップと、
    前記サービス要求に関するコンセンサスを所定の時間内に開始することに失敗すると決定するステップと
    を含む、請求項1に記載のコンピュータ実装方法
  3. 前記サービス要求に関する前記コンセンサスを前記所定の時間内に開始することに失敗すると決定するステップは、
    前記サービス要求内に含まれるデータが不正確であると決定するステップ
    を含む、請求項2に記載のコンピュータ実装方法
  4. 前記サービス要求に関する前記コンセンサスを前記所定の時間内に開始することに失敗すると決定するステップは、
    前記ブロックチェーンプライマリノードが、コンセンサスフェーズを示す不正確な通知メッセージを前記後継ノードに送信したと決定するステップ
    を含む、請求項2に記載のコンピュータ実装方法
  5. 前記ブロックチェーンプライマリノードにより、前記後継ノードを選択するステップは、
    前記ブロックチェーンプライマリノードにより、前記現在のビューの次のビューを決定するステップと、
    前記次のビューに対応する後継ノードを選択するステップと
    を含む、請求項1に記載のコンピュータ実装方法
  6. 前記現在のビューを、前記後継ノードを前記後続のブロックチェーンプライマリノードとして使用する前記次のビューに切り換えるステップは、
    前記現在のビューを前記次のビューに切り換えるステップであって、前記後継ノードは、前記次のビューにおいてのブロックチェーンプライマリノードとして使用される、切り換えるステップ
    を含む、請求項5に記載のコンピュータ実装方法
  7. 前記ブロックチェーンネットワークは、コンソーシアムブロックチェーンネットワークまたはプライベートブロックチェーンネットワークを含む、請求項1に記載のコンピュータ実装方法
  8. ブロックチェーンネットワークにおいてビュー切り換えを実行する動作を実行するための、コンピュータシステムによって実行可能な1つまたは複数の命令を記憶する非一時的コンピュータ可読媒体であって、前記ブロックチェーンネットワークがプライマリノードおよび複数のバックアップノードを含み、前記プライマリノードが前記ブロックチェーンネットワーク内のサービス要求に関するコンセンサスを開始し、前記サービス要求がビュー切り換えを開始するためのものではなく、前記命令が、
    ブロックチェーンプライマリノードにより、ブロックチェーンネットワーク内のビュー切り換え条件のトリガリングを受信するステップであって、前記トリガリングが、
    (a)前記サービス要求を受信すること、前記サービス要求に関する前記コンセンサスを開始すること、および前記サービス要求に関する前記コンセンサスの結果を決定すること、あるいは、
    (b)所定の時間内に前記サービス要求に関する前記コンセンサスを開始することに失敗すること、
    のうちの一つを示す、受信するステップと、
    前記ブロックチェーンプライマリノードにより、前記ビュー切り換え条件の前記トリガリングに基づいて前記複数のバックアップノードから後継ノードを選択するステップと、
    前記ブロックチェーンプライマリノードにより前記後継ノードに基づいて、現在のビューを、前記後継ノードを後続のブロックチェーンプライマリノードとして使用する次のビューに切り換えるステップであって、前記後続のブロックチェーンプライマリノードが、前記次のビューにおいてコンセンサスを開始する、切り換えるステップと
    を含む、非一時的コンピュータ可読媒体。
  9. 前記ビュー切り換え条件の前記トリガリングを受信するステップは、
    前記ブロックチェーンプライマリノードにより、サービス要求を受信するステップと、
    前記サービス要求に関するコンセンサスを所定の時間内に開始することに失敗すると決定するステップと
    を含む、請求項8に記載の非一時的コンピュータ可読媒体。
  10. 前記サービス要求に関する前記コンセンサスを前記所定の時間内に開始することに失敗すると決定するステップは、
    前記サービス要求内に含まれるデータが不正確であると決定するステップ
    を含む、請求項9に記載の非一時的コンピュータ可読媒体。
  11. 前記サービス要求に関する前記コンセンサスを前記所定の時間内に開始することに失敗すると決定するステップは、
    前記ブロックチェーンプライマリノードが、コンセンサスフェーズを示す不正確な通知メッセージを前記後継ノードに送信したと決定するステップ
    を含む、請求項9に記載の非一時的コンピュータ可読媒体。
  12. 前記ブロックチェーンプライマリノードにより、前記後継ノードを選択するステップは、
    前記ブロックチェーンプライマリノードにより、前記現在のビューの次のビューを決定するステップと、
    前記次のビューに対応する後継ノードを選択するステップと
    を含む、請求項8に記載の非一時的コンピュータ可読媒体。
  13. 前記現在のビューを、前記後継ノードを前記後続のブロックチェーンプライマリノードとして使用する前記次のビューに切り換えるステップは、
    前記現在のビューを前記次のビューに切り換えるステップであって、前記後継ノードは、前記次のビューにおいてのブロックチェーンプライマリノードとして使用される、切り換えるステップ
    を含む、請求項12に記載の非一時的コンピュータ可読媒体。
  14. 前記ブロックチェーンネットワークは、コンソーシアムブロックチェーンネットワークまたはプライベートブロックチェーンネットワークを含む、請求項8に記載の非一時的コンピュータ可読媒体。
  15. 1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータと相互動作可能に結合され、前記1つまたは複数のコンピュータによって実行されると、ブロックチェーンネットワークにおいてビュー切り換えを実行するための1つまたは複数の動作を実行する1つまたは複数の命令を格納する有形の非一時的機械可読媒体を有する1つまたは複数のコンピュータメモリデバイスとを備えるコンピュータ実装システムであって、前記ブロックチェーンネットワークがプライマリノードおよび複数のバックアップノードを含み、前記プライマリノードが前記ブロックチェーンネットワーク内のサービス要求に関するコンセンサスを開始し、前記サービス要求がビュー切り換えを開始するためのものではなく、前記1つまたは複数の命令が、
    ブロックチェーンプライマリノードにより、ブロックチェーンネットワーク内のビュー切り換え条件のトリガリングを受信するステップであって、前記トリガリングが、
    (a)前記サービス要求を受信すること、前記サービス要求に関する前記コンセンサスを開始すること、および前記サービス要求に関する前記コンセンサスの結果を決定すること、あるいは、
    (b)所定の時間内に前記サービス要求に関する前記コンセンサスを開始することに失敗すること、
    のうちの一つを示す、受信するステップと、
    前記ブロックチェーンプライマリノードにより、前記ビュー切り換え条件の前記トリガリングに基づいて前記複数のバックアップノードから後継ノードを選択するステップと、
    前記ブロックチェーンプライマリノードにより前記後継ノードに基づいて、現在のビューを、前記後継ノードを後続のブロックチェーンプライマリノードとして使用する次のビューに切り換えるステップであって、前記後続のブロックチェーンプライマリノードが、前記次のビューにおいてコンセンサスを開始する、切り換えるステップと
    を含む、コンピュータ実装システム。
  16. 前記ビュー切り換え条件の前記トリガリングを受信するステップは、
    前記ブロックチェーンプライマリノードにより、サービス要求を受信するステップと、
    前記サービス要求に関するコンセンサスを所定の時間内に開始することに失敗すると決定するステップと
    を含む、請求項15に記載のコンピュータ実装システム。
  17. 前記サービス要求に関する前記コンセンサスを前記所定の時間内に開始することに失敗すると決定するステップは、
    前記サービス要求内に含まれるデータが不正確であると決定するステップ
    を含む、請求項16に記載のコンピュータ実装システム。
  18. 前記サービス要求に関する前記コンセンサスを前記所定の時間内に開始することに失敗すると決定するステップは、
    前記ブロックチェーンプライマリノードが、コンセンサスフェーズを示す不正確な通知メッセージを前記後継ノードに送信したと決定するステップ
    を含む、請求項16に記載のコンピュータ実装システム。
JP2019527429A 2017-03-10 2018-03-06 コンセンサス方法およびデバイス Active JP6756918B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710142252.1 2017-03-10
CN201710142252.1A CN107391320B (zh) 2017-03-10 2017-03-10 一种共识方法及装置
PCT/CN2018/078169 WO2018161901A1 (zh) 2017-03-10 2018-03-06 一种共识方法及装置

Publications (3)

Publication Number Publication Date
JP2020507142A JP2020507142A (ja) 2020-03-05
JP2020507142A5 JP2020507142A5 (ja) 2020-05-28
JP6756918B2 true JP6756918B2 (ja) 2020-09-16

Family

ID=60338823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019527429A Active JP6756918B2 (ja) 2017-03-10 2018-03-06 コンセンサス方法およびデバイス

Country Status (16)

Country Link
US (1) US10684925B2 (ja)
EP (1) EP3525102B1 (ja)
JP (1) JP6756918B2 (ja)
KR (1) KR102140903B1 (ja)
CN (1) CN107391320B (ja)
AU (1) AU2018230202B2 (ja)
BR (1) BR112019009591B1 (ja)
CA (1) CA3043532C (ja)
ES (1) ES2880448T3 (ja)
MX (1) MX2019005525A (ja)
PH (1) PH12019501053A1 (ja)
PL (1) PL3525102T3 (ja)
RU (1) RU2733221C1 (ja)
TW (1) TW201833855A (ja)
WO (1) WO2018161901A1 (ja)
ZA (1) ZA201902935B (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391320B (zh) * 2017-03-10 2020-07-10 创新先进技术有限公司 一种共识方法及装置
CN106789095B (zh) * 2017-03-30 2020-12-08 腾讯科技(深圳)有限公司 分布式系统及消息处理方法
CN107395665B (zh) * 2017-05-22 2020-04-24 创新先进技术有限公司 一种区块链业务受理及业务共识方法及装置
CN108182635A (zh) * 2017-12-18 2018-06-19 深圳前海微众银行股份有限公司 区块链共识方法、系统和计算机可读存储介质
US10599835B2 (en) 2018-02-06 2020-03-24 Vmware, Inc. 32-bit address space containment to secure processes from speculative rogue cache loads
CN108282539A (zh) * 2018-02-06 2018-07-13 北京奇虎科技有限公司 基于双层网络的去中心化存储系统
US11700265B2 (en) 2018-03-06 2023-07-11 Americorp Investments Llc Customized view of restricted information recorded into a blockchain
KR102240120B1 (ko) 2018-03-06 2021-04-13 아메리코프 인베스트먼트스 엘엘씨 블록체인에 기록된 제한된 정보의 맞춤형 뷰
US10951626B2 (en) 2018-03-06 2021-03-16 Americorp Investments Llc Blockchain-based commercial inventory systems and methods
CN108416593B (zh) * 2018-03-20 2021-02-12 杨鉴 一种基于网络分散度证明的区块链共识方法和系统
CN108596622A (zh) * 2018-05-02 2018-09-28 北京链链信息技术有限公司 交易信息的共享系统及方法
WO2019222993A1 (zh) * 2018-05-25 2019-11-28 北京大学深圳研究生院 一种基于信任关系的区块链共识方法
US10747629B2 (en) * 2018-06-11 2020-08-18 Vmware, Inc. Linear view-change BFT with optimistic responsiveness
US10713133B2 (en) * 2018-06-11 2020-07-14 Vmware, Inc. Linear view-change BFT
GB2574828A (en) * 2018-06-19 2019-12-25 Setl Ltd Leader selection for permissioned blockchain
CN109087204B (zh) * 2018-07-27 2023-04-14 杭州复杂美科技有限公司 跨链交易校验方法、设备和存储介质
CN112689834A (zh) * 2018-08-02 2021-04-20 神经技术有限公司 在区块链上进行选举的证明的方法和系统
CN109039750B (zh) * 2018-08-13 2021-06-15 浙商银行股份有限公司 一种提升区块链应用系统多城多园区部署灾备能力的方法
BR112019007995A2 (pt) * 2018-11-30 2019-11-12 Alibaba Group Holding Ltd “método implementado por computador, meio legível por computador e sistema para implementar um método
CN111291110A (zh) * 2018-12-06 2020-06-16 中国电信股份有限公司 基于区块链网络的共识方法和系统
CN111327436B (zh) * 2018-12-13 2023-04-07 北京果仁宝软件技术有限责任公司 预测区块链出块节点的方法、装置和系统
KR102134549B1 (ko) * 2018-12-13 2020-07-27 알리바바 그룹 홀딩 리미티드 분산 시스템에서 프라이머리 노드의 체인지 수행
CN109660545B (zh) * 2018-12-27 2021-04-09 北京新唐思创教育科技有限公司 一种联盟链共识方法及计算机存储介质
CN109886681B (zh) * 2019-01-31 2021-06-18 北京瑞卓喜投科技发展有限公司 区块链共识方法及共识系统
US11263067B2 (en) 2019-03-18 2022-03-01 Advanced New Technologies Co., Ltd. System and method for ending view change protocol
WO2019101241A2 (en) 2019-03-18 2019-05-31 Alibaba Group Holding Limited System and method for ending view change protocol
US11418322B2 (en) * 2019-03-26 2022-08-16 International Business Machines Corporation Information management in a decentralized database including a fast path service
US11269858B2 (en) 2019-03-26 2022-03-08 International Business Machines Corporation Information management in a decentralized database including a fast path service
US11398895B2 (en) 2019-03-26 2022-07-26 International Business Machines Corporation Information management in a decentralized database including a fast path service
SG11202004685RA (en) * 2019-06-05 2020-06-29 Alibaba Group Holding Ltd Consensus system and method
US10944624B2 (en) 2019-06-28 2021-03-09 Advanced New Technologies Co., Ltd. Changing a master node in a blockchain system
CN110351133B (zh) * 2019-06-28 2021-09-17 创新先进技术有限公司 用于区块链系统中的主节点切换处理的方法及装置
CN114401150B (zh) * 2019-09-05 2023-10-20 创新先进技术有限公司 区块链网络中加入节点的方法和区块链系统
CN110673914B (zh) * 2019-09-24 2021-06-29 支付宝(杭州)信息技术有限公司 一种区块链共识的视图切换方法及区块链系统
KR102151939B1 (ko) * 2019-11-18 2020-09-04 주식회사 아이콘루프 패치 트랜잭션을 이용한 블록체인 생성 방법
CN115632933A (zh) * 2019-12-24 2023-01-20 杭州趣链科技有限公司 一种基于pbft算法的集群异常恢复方法
CN111327414A (zh) * 2020-01-20 2020-06-23 布比(北京)网络技术有限公司 一种区块链共识方法、系统及计算机存储介质、电子设备
WO2021166928A1 (ja) * 2020-02-21 2021-08-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、制御装置、及び、プログラム
CN111510317B (zh) * 2020-03-06 2022-08-26 杜晓楠 弱化dbft中连续多个节点故障导致的延迟的方法、计算机可读存储介质和dbft网络
CN112511326B (zh) * 2020-03-16 2024-02-02 中兴通讯股份有限公司 一种切换方法、装置、设备和存储介质
CN111464356B (zh) * 2020-04-01 2021-11-05 腾讯科技(深圳)有限公司 一种区块共识周期切换方法、装置及计算机设备
CN111698315B (zh) * 2020-06-09 2021-10-15 腾讯科技(深圳)有限公司 针对区块的数据处理方法、数据处理装置及计算机设备
CN111522683B (zh) 2020-07-03 2020-10-02 支付宝(杭州)信息技术有限公司 蜜獾拜占庭容错共识机制的共识节点变更方法及相关装置
CN112182113B (zh) * 2020-10-23 2024-06-25 网易(杭州)网络有限公司 区块链共识方法、系统、电子设备及存储介质
CN112507019A (zh) * 2020-11-20 2021-03-16 南京航空航天大学 一种基于智能合约的pbft共识系统及方法
CN112991066A (zh) * 2021-04-27 2021-06-18 支付宝(杭州)信息技术有限公司 联盟链中的共识方法、装置和电子设备
CN113395165B (zh) * 2021-05-28 2022-08-16 网易(杭州)网络有限公司 共识流程处理方法、装置、存储介质及计算机设备
WO2023281690A1 (ja) * 2021-07-08 2023-01-12 富士通株式会社 判定方法、情報処理装置、判定システム、及び判定プログラム
CN114047980B (zh) * 2021-11-29 2024-01-19 珠海格力电器股份有限公司 可编程控制器配置数据的管理系统
JPWO2024009650A1 (ja) * 2022-07-04 2024-01-11

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1984003158A1 (en) * 1983-02-09 1984-08-16 Ibm A method for achieving multiple processor agreement optimized for no faults
US6671821B1 (en) * 1999-11-22 2003-12-30 Massachusetts Institute Of Technology Byzantine fault tolerance
US7499865B2 (en) * 2004-12-17 2009-03-03 International Business Machines Corporation Identification of discrepancies in actual and expected inventories in computing environment having multiple provisioning orchestration server pool boundaries
US7917596B2 (en) * 2009-01-07 2011-03-29 Oracle International Corporation Super master
US8639793B2 (en) * 2010-10-29 2014-01-28 Cisco Technology, Inc. Disaster recovery and automatic relocation of cloud services
DE102011088884A1 (de) * 2011-12-16 2013-06-20 Siemens Aktiengesellschaft Verfahren zur Übertragung von Daten in einem Kommunikationsnetz
US9501363B1 (en) * 2013-03-15 2016-11-22 Nuodb, Inc. Distributed database management system with node failure detection
US9329950B2 (en) * 2014-01-01 2016-05-03 International Business Machines Corporation Efficient fail-over in replicated systems
US11394773B2 (en) 2014-06-19 2022-07-19 Jim Austin Joseph Cryptographic currency block chain based voting system
TWI524289B (zh) 2014-11-12 2016-03-01 Jetsream Holding Ltd Data transfer method between bit currency trading devices
CN104679604A (zh) * 2015-02-12 2015-06-03 大唐移动通信设备有限公司 一种主节点和备节点切换的方法和装置
CN106161495A (zh) * 2015-03-25 2016-11-23 中兴通讯股份有限公司 一种主节点选举方法、装置及存储系统
EP3286699A1 (en) * 2015-04-20 2018-02-28 OGY Docs Inc. A method of distributed management of electronic documents of title (edt) and system thereof
CN105488665A (zh) * 2015-11-25 2016-04-13 布比(北京)网络技术有限公司 一种去中心化的交易方法
CN106060036B (zh) * 2016-05-26 2019-07-16 布比(北京)网络技术有限公司 去中心化共识方法及装置
CN106157142A (zh) * 2016-06-30 2016-11-23 惠众商务顾问(北京)有限公司 一种区块链共识及同步方法、系统和装置
CN106385319B (zh) * 2016-09-29 2020-11-27 江苏通付盾科技有限公司 区块链网络中信息的验证方法及系统
EP3281115B1 (en) * 2016-10-04 2019-06-19 Nec Corporation Method and system for byzantine fault-tolerance replicating of data on a plurality of servers
CN107391320B (zh) * 2017-03-10 2020-07-10 创新先进技术有限公司 一种共识方法及装置
US10601907B2 (en) * 2017-09-22 2020-03-24 Artiste QB Net Inc. System and method for platform to securely distribute compute workload to web capable devices
US10671492B2 (en) * 2017-12-18 2020-06-02 International Business Machines Corporation Forecast recommended backup destination
US11474994B2 (en) * 2018-12-27 2022-10-18 Intel Corporation Distributed blockchain oracle

Also Published As

Publication number Publication date
PH12019501053A1 (en) 2021-02-05
RU2733221C1 (ru) 2020-09-30
BR112019009591B1 (pt) 2021-11-23
AU2018230202B2 (en) 2020-07-16
ES2880448T3 (es) 2021-11-24
ZA201902935B (en) 2020-05-27
US10684925B2 (en) 2020-06-16
EP3525102A1 (en) 2019-08-14
KR102140903B1 (ko) 2020-08-04
CA3043532C (en) 2022-08-30
EP3525102A4 (en) 2019-12-25
MX2019005525A (es) 2019-08-12
CN107391320A (zh) 2017-11-24
CN107391320B (zh) 2020-07-10
WO2018161901A1 (zh) 2018-09-13
AU2018230202A1 (en) 2019-05-30
TW201833855A (zh) 2018-09-16
EP3525102B1 (en) 2021-05-05
CA3043532A1 (en) 2018-09-13
BR112019009591A2 (pt) 2019-12-17
PL3525102T3 (pl) 2021-10-25
JP2020507142A (ja) 2020-03-05
KR20190077000A (ko) 2019-07-02
US20190294514A1 (en) 2019-09-26

Similar Documents

Publication Publication Date Title
JP6756918B2 (ja) コンセンサス方法およびデバイス
KR102255724B1 (ko) 블록체인 기반 합의 방법 및 디바이스
JP6794551B2 (ja) トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイス
KR102340223B1 (ko) 블록체인 합의 방법 및 디바이스
JP6859510B2 (ja) メッセージをブロードキャストするための方法およびデバイス
KR20190091484A (ko) 블록체인 합의 방법 및 디바이스
CN112153143A (zh) Kubernetes集群的流量调度方法、装置及电子设备
CN109361542A (zh) 客户端的故障处理方法、装置、系统、终端和服务器
WO2024045980A1 (zh) 一种分布式定时消息系统测试方法、装置以及设备
CN110673793B (zh) 存储设备节点事件管理方法、系统及电子设备和存储介质
WO2024160035A1 (zh) 一种boot程序的升级装置、方法和电子设备
CN116010173A (zh) 基于主从操作系统的异常响应方法、装置及电子设备
CN113612703A (zh) 交换机的启动控制方法、装置、设备及介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190626

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200417

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200417

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200811

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200827

R150 Certificate of patent or registration of utility model

Ref document number: 6756918

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250