JP2020514865A - ブロックチェーンを基にしたコンセンサス方法およびデバイス - Google Patents

ブロックチェーンを基にしたコンセンサス方法およびデバイス Download PDF

Info

Publication number
JP2020514865A
JP2020514865A JP2019535848A JP2019535848A JP2020514865A JP 2020514865 A JP2020514865 A JP 2020514865A JP 2019535848 A JP2019535848 A JP 2019535848A JP 2019535848 A JP2019535848 A JP 2019535848A JP 2020514865 A JP2020514865 A JP 2020514865A
Authority
JP
Japan
Prior art keywords
consensus
server
procedure
message
database
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.)
Granted
Application number
JP2019535848A
Other languages
English (en)
Other versions
JP6756924B2 (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 JP2020514865A publication Critical patent/JP2020514865A/ja
Application granted granted Critical
Publication of JP6756924B2 publication Critical patent/JP6756924B2/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/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/2048Error 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 where the redundant components share neither address space nor persistent storage
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Abstract

1つのブロックチェーンノードが、第1のサーバ、第2のサーバ、および少なくとも1つのデータベースを備える、ブロックチェーンを基にしたコンセンサス方法およびデバイスが、本願の実施形態において開示される。方法は、データベースが、第1のサーバおよび第2のサーバが、コンセンサスを実行している最中に、データを呼び出すことができるように、コンセンサスを実行するために必要なコンセンサスデータを記憶するステップと、コンセンサスを実行する前に、またはコンセンサスを実行している最中に第1のサーバに異常が発生すると、コンセンサスデータをデータベースから取得し、コンセンサスを、コンセンサスデータに従って実行し、コンセンサス結果を生成できるように、第1のサーバが、第2のサーバに置き換えられるステップと、第2のサーバが、コンセンサス結果をデータベースに記憶するステップと、を含む。本願の実施形態によれば、コンセンサスデータをデータベースから取得し、コンセンサスを実行し、それによってコンセンサスの正常な実行を保証できるよう、ノード内の正常なサーバが、異常なサーバの役目を引き継いでもよく、これにより、コンセンサスプロセスの成功率を一定程度高めることができ、ならびにブロックチェーンのサービス処理効率を高めることができる。

Description

本願は、コンピュータテクノロジの分野に関し、詳細には、ブロックチェーンを基にしたコンセンサス方法およびデバイスに関する。
現在、ブロックチェーンテクノロジは、広く利用され、またその分散モードは、データが容易に不正変更されず、それによりセキュリティを改善することを確実にする。
実際の適用シナリオでは、ブロックチェーンは、対応するサービスをクライアントに提供することができ、ブロックチェーンノードは、ユーザのサービス要求を処理し、対応する処理結果を生成することができる。しかし、ブロックチェーンは、悪意のあるノードまたは異常のあるノードを含む恐れがある。それは、間違いなく、クライアントが得るサービスに影響を与える。したがって、例えば、実用ビザンチンフォールトトレランス(PBFT)を基にしたコンセンサス手順は、ブロックチェーン内のノードの間で実行でき、これにより、ノードは、正しい処理結果について合意することができる。
PBFTを基にしたコンセンサス手順を、例として使用する。図1に示すように、PBFTを基にしたコンセンサス手順は、事前準備(pre-prepare)段階、準備(prepare)段階、およびコミット(commit)段階を含む。サービス要求をクライアント(図1においてCによって表される)から受信するノード(図1において0と番号付けされるノード)は、コンセンサス手順を実行するために、サービス要求を他のノード(例えば、1、2、3と番号付けされるノード)に送信する。各段階において、ノードは、コンセンサスメッセージを互いに送信し、これにより、ノードは、コンセンサス手順を実行する。3段階のコンセンサス手順の後、コンセンサスが得られたと見なすことができる。この場合、ノードは、個別にサービス要求を処理し、それぞれ処理結果をクライアントにフィードバックする。
既存のテクノロジにおけるいくつかのシナリオでは、大量のコンセンサス手順を処理するために、複数のサーバが、通常、先に説明したブロックチェーン内の各ノードに配置され、また様々なサーバが、個別に様々なコンセンサス手順に参加して、ブロックチェーンの処理量および処理効率を改善することができる。
しかし、実際には、ノード内のサーバは、異常がある可能性、例えば、オフラインであるか再起動されている可能性がある。例えば、PBFTを基にしたコンセンサス手順では、サーバに異常があると、サーバは、コンセンサスへの参加を継続できず、コンセンサスを得る確率に影響を与える。コンセンサスが一定のラウンドにおいて得られない場合、コンセンサスは、現在ブロックチェーンが位置するコンセンサス段階にかかわらず、事前準備段階から再開始される必要がある。明らかであろうが、それは、間違いなく、ブロックチェーンのコンセンサス効率に影響を与え、さらに、ブロックチェーンのサービス処理効率に影響を与える。
本願の実装形態は、ノード内のサーバに異常があると、コンセンサス効率が相対的に低いという現在の問題を解決するために、ブロックチェーンを基にしたコンセンサス方法およびデバイスを提供する。
本願の実装形態は、ブロックチェーンを基にしたコンセンサス方法を提供する。1つのブロックチェーンノードは、第1のサーバ、第2のサーバ、および少なくとも1つのデータベースを備える。方法は、データベースにより、コンセンサス手順を実行するために必要なコンセンサスデータを記憶するステップであって、コンセンサスデータが、コンセンサス手順の間に、第1のサーバおよび第2のサーバによって呼び出される、ステップと、第1のサーバの代わりに前記第2のサーバにより、コンセンサスデータをデータベースから得、コンセンサス手順の前に、またはコンセンサス手順の間に第1のサーバに異常があるという判定に応答して、コンセンサスデータに基づいてコンセンサス手順を実行してコンセンサス結果を生成するステップと、第2のサーバにより、コンセンサス結果をデータベースに記憶するステップと、を含む。
本願の実装形態は、ブロックチェーンを基にしたコンセンサスデバイスを提供し、1つのブロックチェーンノードが、第1のサーバ、第2のサーバ、および少なくとも1つのデータベースを備え、データベースが、コンセンサス手順を実行するために必要なコンセンサスデータを記憶し、コンセンサスデータが、コンセンサス手順の間に、第1のサーバおよび第2のサーバによって呼び出され、第1のサーバに、コンセンサス手順の前に、またはコンセンサス手順の間に異常があり、デバイスが、コンセンサスメッセージに対応するコンセンサスデータを、データベースから、コンセンサスメッセージに基づいて得るように構成された取得モジュールと、コンセンサスデータに基づいてコンセンサス手順を実行してコンセンサス結果を生成するように構成されたコンセンサス実行モジュールと、コンセンサスメッセージおよびコンセンサス結果をデータベースに記憶するように構成された記憶モジュールとを備える。
本願の実装形態において提供されるブロックチェーンを基にしたコンセンサス方法およびデバイスによれば、ブロックチェーンノード内の各サーバのために、一定のコンセンサス手順に参加するサーバは、様々なコンセンサス段階におけるコンセンサスメッセージ、またはサーバが生成する現段階におけるコンセンサス結果を「パブリックに」記憶する。すなわち、サーバは、ブロックチェーンノード内のデータベースに、様々なコンセンサス段階におけるコンセンサスメッセージ、またはサーバが生成する現段階におけるコンセンサス結果を記憶し、データベースは、ブロックチェーンノード内のすべてのサーバのために使用可能である。したがって、一定のラウンドのコンセンサスに参加するサーバが、異常がある、例えば、オフラインであるか再起動されている場合、サーバのコンセンサスデータは、ブロックチェーンノード内の別のサーバによって使用することができ、別のサーバが、異常のあるサーバの代わりに、対応するコンセンサス手順の実行を継続することができる。
明らかであろうが、既存のテクノロジに比べて、ブロックチェーンノード内の各サーバがコンセンサスデータをブロックチェーンノード内のデータベースに記憶する方法では、あるサーバに異常があるときでさえ、正常に動作するサーバが、異常のあるサーバの代わりに、対応するコンセンサスデータをデータベースから得てコンセンサスを完了することができる。これによってコンセンサス手順の正常な実行を確保できるため、コンセンサス手順の成功率を一定程度改善することができ、一方コンセンサス再開始の回数が減少し、その結果、ブロックチェーンのサービス処理効率を改善する。
ここで説明する添付図面は、本願のさらなる理解の実現を意図するものであり、本願の一部を構成する。本願の例示的実装形態およびその説明は、本願の説明を意図するものであり、本願を限定するものとはならない。添付図面は、以下のとおりである。
既存のテクノロジにおけるPBFTを基にしたコンセンサス手順を示す図である。 本願の実装形態による、ブロックチェーンを基にしたコンセンサス手順における、ブロックチェーンのアーキテクチャを示す図である。 本願の実装形態による、ブロックチェーンを基にしたコンセンサス手順における、ブロックチェーンノードのアーキテクチャを示す図である。 本願の実装形態による、サーバ側における、ブロックチェーンを基にしたコンセンサス手順を示す図である。 本願の実装形態による、別のタイプのブロックチェーンノードのアーキテクチャを示す図である。 本願の実装形態による、図3bと同じコンセンサス手順におけるサーバ変更プロセスを示す概略図である。 本願の実装形態による、図3aと同じコンセンサス手順におけるサーバ変更プロセスを示す概略図である。 本願の実装形態による、サーバ側における、ブロックチェーンを基にしたコンセンサスデバイスを示す概略構造図である。
本願の目的、技術的な解決策、および利点をより明確にするために、以下は、本願の技術的な解決策について、本願の特定の実装形態および対応する添付図面を参照して明確で包括的に説明する。明らかであろうが、説明される実装形態は、本願の実装形態の単にいくつかであってすべてではない。当業者が本願の実装形態に基づいて、創造的な努力をすることなく得る他のすべての実装形態は、本願の保護範囲に含まれるものとする。
上述のように、ブロックチェーン内のノード間で実行される任意のコンセンサス時間の間に、任意のノードにおいて現在のコンセンサス時間に参加するサーバは、異常がある可能性、例えば、オフラインであるか再起動されている可能性があり、その結果としてサーバは、コンセンサスへの参加を継続できない。したがって、コンセンサスの成功率が低下する恐れがある。具体的には、PBFTを基にしたコンセンサスの場合、コンセンサスの一定数の失敗は、各サーバ内のコンセンサスデータをクリーンな状態にするために、PBFT下で不要データ収集メカニズムを起動する恐れがある。明らかであろうが、それは、間違いなく、ブロックチェーンのサービス処理に影響を与える。
先の説明に従って、本願の実装形態は、ブロックチェーンを基にしたコンセンサス方法を提供する。方法では、コンセンサスデータは、ブロックチェーンノード内のデータベース内に記憶され、これにより、サーバに異常がある(サーバがオフラインであるか再起動されている)と、ブロックチェーンノード内の正常に動作するサーバが同様に、異常のあるサーバの代わりに、データベース内に記憶されたコンセンサスデータを読み取り、コンセンサス手順の実行を継続することができる。もちろん、本願の実装形態におけるブロックチェーンを基にしたコンセンサス方法は、PBFTを基にしたコンセンサス手順のみに限定されるものではなく、Paxosなどのコンセンサスアルゴリズムに基づくコンセンサス手順においてもさらに使用することができる。
本願の実装形態においては、ブロックチェーンを基にしたコンセンサス方法において使用されるアーキテクチャを図2aに示すことに留意されたい。図2aから、ブロックチェーンが複数のブロックチェーンノードを備えることを理解することができる。後の説明の簡略化のために、ブロックチェーンノードは、以下、簡潔にノードと呼ぶ。
複数のクライアントが、ブロックチェーンとサービス上の対話を実行することができる。ブロックチェーンは、コンソーシアムチェーンおよび/またはプライベートチェーンであり得、サービスをユーザに提供することができる。クライアントは、ブラウザ、アプリケーションなどを備えてもよい。クライアントは、端末、サーバ、データベースなどにおいて動作可能である。実装形態は、ここでは特に限定されるものではない。
図2aに示すアーキテクチャに基づいて、任意のノードのアーキテクチャを図2bに示すことができる。図2bから、ノードがn台のサーバ、およびサーバによって共有される1つのデータベースを備えることを理解することができる。様々なサーバが、様々なコンセンサス手順に参加することができ、サーバは、互いに独立して動作可能である。データベースは、データ記憶サービスを、ノード内のサーバに提供するように構成される。すなわち、各サーバは、コンセンサス手順において、対応するコンセンサスデータをデータベースに記憶することができる。もちろん、図2bに示すノード内のデータベースの数は、単によく用いられる数である。実際には、ノード内のデータベースの数は、実際の需要に基づいて、調整することができる。さらに、いくつかのシナリオでは、ノード内のサーバは、コンピュータなどの、コンピューティング処理機能を有するデバイスと置き換えることができる。
さらに、説明の簡略化のために、以下では、動作中に異常を伴う可能性があるサーバを第1のサーバと呼び、正常に動作可能であるサーバを第2のサーバと呼ぶことに留意されたい。したがって、図2bに示すアーキテクチャにおいて、アーキテクチャは、第1のサーバと第2のサーバという2種類のサーバを含むと見なすことができる。先の内容は、本願を限定するものと見なされるべきではない。
図2bに示す関係アーキテクチャに基づいて、本願の実装形態は、ブロックチェーンを基にしたコンセンサス手順を提供する。図2cに示すように、手順は、具体的には、以下のステップを含む。
S201。データベースが、コンセンサス手順を実行するために必要なコンセンサスデータを記憶し、コンセンサスデータが、コンセンサス手順の間に、第1のサーバおよび第2のサーバによって呼び出される。
図2bのアーキテクチャに基づいて、データベースは、内部にサーバが設置されたノード内に配置され、ノード内のすべてのサーバによって共有される。コンセンサスメッセージを受信するか、コンセンサス結果を生成した後、ノード内の任意のサーバが、コンセンサスメッセージまたはコンセンサス結果をデータベースに記憶する。次いで、サーバは、データベースから、コンセンサス手順を実行するために必要なコンセンサスデータを得ることができる。コンセンサスデータには、サーバによって別のノード内のサーバから受信されるコンセンサスメッセージ、そのサーバによって生成されるコンセンサス結果、クライアントによって送信され、コンセンサス手順を起動することができるサービス要求などが含まれてもよい。
ここでは、コンセンサスデータをデータベースに記憶することは、コンセンサスデータがノード内のすべてのサーバに利用可能であるようにすることに留意されたい。すなわち、第1のサーバに異常がある場合、第1のサーバは、コンセンサスへの参加を継続できないが、ノード内の第2のサーバは、異常のあるサーバの代わりに、データベース内に記憶されたコンセンサスデータに基づいて、コンセンサスを実行することができる。
S202。第2のサーバが、コンセンサス手順の前に、またはコンセンサス手順の間に第1のサーバに異常があるという判定に応答して、第1のサーバの代わりに、コンセンサスデータをデータベースから得て、コンセンサスデータに基づいてコンセンサス手順を実行してコンセンサス結果を生成する。
実際の実行中、コンセンサスに参加する第1のサーバは、異常がある(例えば、故障しているか再起動されている)可能性があり、障害が不規則に起きる恐れもあるが、コンセンサス手順の実装形態は、第1のサーバの異常がコンセンサス手順の前にあるか、コンセンサス手順の間にあるかにかかわらず、影響を受ける。この場合、コンセンサス手順が影響を受けないようにするため、ブロックチェーンノード内の正常に動作する第2のサーバは、異常がある第1のサーバの代わりに、コンセンサスを実行することができる。
第1のサーバに異常があると、コンセンサスの実行を継続できない。したがって、第2のサーバは、コンセンサスメッセージを第1のサーバの代わりに受信し、第1のサーバが元々は参加しているコンセンサス手順に参加することができる。
上述のように、ノード内の任意のサーバは、コンセンサスデータをデータベースに記憶し、これにより、第2のサーバは、コンセンサス手順に必要なコンセンサスデータについてデータベースを検索し、そのコンセンサスデータを得ることができ、異常がある第1のサーバの代わりにコンセンサスを実行し、さらに、対応するコンセンサス結果を生成する。
明らかであろうが、正常に動作するサーバは、異常のあるサーバの代わりにコンセンサスを実行し、これにより、コンセンサス手順が影響を受けないことを確実にする。
S203。第2のサーバが、コンセンサス結果をデータベースに記憶する。
本願の本実装形態では、第1のサーバの代わりにコンセンサスを実行する第2のサーバはまた、コンセンサス結果を、コンセンサスデータの一種として、本願におけるデータ記憶メカニズムに基づいて、データベースに記憶する。
先のステップによれば、ブロックチェーンノード内の各サーバのために、一定のコンセンサス手順に参加するサーバは、様々なコンセンサス段階におけるコンセンサスメッセージ、またはサーバが生成する現段階におけるコンセンサス結果を「パブリックに」記憶する。すなわち、サーバは、ブロックチェーンノード内のデータベースに、様々なコンセンサス段階におけるコンセンサスメッセージ、またはサーバが生成する現段階におけるコンセンサス結果を記憶し、データベースは、ブロックチェーンノード内のすべてのサーバのために使用可能である。したがって、一定のラウンドのコンセンサスに参加するサーバが、異常がある、例えば、オフラインであるか再起動されている場合、サーバのコンセンサスデータは、ブロックチェーンノード内の別のサーバによって使用することができ、別のサーバが、異常のあるサーバの代わりに、対応するコンセンサス手順の実行を継続することができる。
明らかであろうが、既存のテクノロジに比べて、ノード内の各サーバがコンセンサスデータをノード内のデータベースに記憶する方法では、あるサーバに異常があるときでさえ、正常に動作するサーバが、異常のあるサーバの代わりに、対応するコンセンサスデータをデータベースから得てコンセンサスを完了することができる。これによってコンセンサス手順の正常な実行を確保できるため、コンセンサス手順の成功率を一定程度改善することができ、一方コンセンサス再開始の回数が減少し、その結果、ブロックチェーンのサービス処理効率を改善する。
ここでは、コンセンサス手順の間に、ノード内の任意のサーバは、同じコンセンサス手順に参加する別のデバイスによって送信されるコンセンサスメッセージを受信することに留意されたい。別のデバイスには、コンセンサス手順に参加する別のノードおよび/またはクライアントが含まれるが、それに限定されるものではない。コンセンサスメッセージは、クライアントによって送信され、コンセンサスを起動することができるサービス要求を含んでもよく、またコンセンサス手順において別のノードによって送信されるコンセンサスデータを含んでもよい。
明らかであろうが、一定のコンセンサス手順の場合、第1のサーバに異常がある場合、第2のサーバが、コンセンサスメッセージを、第1のサーバの代わりに受信して、第1のサーバのコンセンサス手順に参加する。
したがって、コンセンサス手順の前に第1のサーバに異常があるという判定に応答して、第2のサーバが、第1のサーバの代わりに、コンセンサスデータをデータベースから得ることは、第1のサーバの代わりに第2のサーバにより、コンセンサス手順に参加する別のデバイスによって送信されるコンセンサスメッセージを受信することと、コンセンサス手順の前に第1のサーバに異常があるという判定に応答して、コンセンサスメッセージに対応するコンセンサスデータを、データベースから、コンセンサスメッセージに基づいて得ることと、を含むことができる。
さらに、本願の本実装形態には、再試行メカニズムがある。具体的には、コンセンサス手順に参加する別のデバイスが、一定のコンセンサスメッセージまたはサービス要求を送信した後、別のデバイスが、ピアエンドから指定された時間内に応答を何も受信しない場合、別のデバイスが、同じコンセンサスメッセージまたはサービス要求を再送信する。コンセンサス手順の間に第1のサーバに異常がある場合、第1のサーバは、指定された時間に、別のデバイスに応答できないことがわかる。
したがって、コンセンサス手順の間に第1のサーバに異常があるという判定に応答して、第2のサーバが、第1のサーバの代わりに、コンセンサス手順に参加する別のデバイスが送信を再試行するコンセンサスメッセージを受信し、またコンセンサスメッセージに対応するコンセンサスデータを、データベースから、コンセンサスメッセージに基づいて得る。
第2のサーバは、通常、コンセンサスデータを、データベースから、コンセンサスメッセージ内の対応する識別子に基づいて得る。以下、コンセンサスデータをデータベースから得るプロセスを説明する。
PBFTを基にしたコンセンサス手順の間に、1つのサービス要求が、1つのコンセンサス手順に対応し、サービス要求をクライアントから受信するノード(マスタノードとも呼ばれる)が、サービス要求に番号付けする(例えば、索引付けする)。すなわち、サービス要求に関連付けられた番号は、1つのコンセンサス手順に一意に対応し得る。
具体的には、ノード内の任意のサーバが参加する一定のコンセンサス手順において、コンセンサス手順内のサービス要求の番号(すなわち、サービス要求識別子)は、1つのコンセンサス手順を一意に識別することができる。サービス要求に関連付けられた番号は、コンセンサス手順を、ノード内の別のサーバが参加するコンセンサス手順から区別するために使用することができる。したがって、サーバが、一定のサービス要求に関連付けられた番号を伝送するコンセンサスメッセージを受信した場合、サーバは、同じサービス要求番号を有するコンセンサスデータ(獲得されるコンセンサスデータおよびコンセンサスメッセージは、同じコンセンサス手順に属する)を、データベースから、サービス要求番号に基づいて得ることができる。
例えば、コンセンサス手順において、コンセンサスメッセージのフォーマットは、<コンセンサス段階識別子,ビュー番号(view number),サービス要求番号,サービス要求ダイジェスト(service request digest)>であり得る。サーバが、一定のコンセンサスメッセージ<commit, v, n, D(m)>を受信すると仮定され、ここで、commitは、ノードがコミット段階に入ったことを示し、vは、ビュー番号を示し、nは、サービス要求に関連付けられた番号を示し、D(m)は、通知メッセージを送信するノードの、サービス要求に対する署名を示す。この場合、サーバは、番号「n」に基づいて、番号「n」に対応するすべてのコンセンサスデータについてデータベースを検索することができる。
先の説明に従って、第2のサーバにより、データベースから、コンセンサスメッセージに対応するコンセンサスデータを得るプロセスは、次のとおりである。第2のサーバは、コンセンサスメッセージに含まれるサービス要求識別子に基づいて、識別子に対応するコンセンサスデータについてデータベースを検索し、識別子に対応するコンセンサスデータを得る。
先の内容に加えて、実際には、コンセンサスメッセージが異常がある第1のサーバに送信されるのを防止するために、本願の本実装形態では、コンセンサスメッセージを、ノード内のゲートウェイを使用することによってスケジュールすることができる。すなわち、ブロックチェーンノードは、ゲートウェイをさらに備える。この場合、ノードのアーキテクチャは、図2dに示すことができる。ゲートウェイは、ノード内のサーバへのコンセンサスメッセージをスケジュールする責任を負うことがわかる。第1のサーバに異常があると、ゲートウェイは、コンセンサスメッセージを異常がある第1のサーバに送信せず、代わりにコンセンサスメッセージを正常に動作する第2のサーバに送信する。
したがって、具体的には、第2のサーバの場合、コンセンサスメッセージを受信するプロセスは、次のとおりであり得る。
ゲートウェイが、コンセンサス手順の前に第1のサーバに異常があると判定すると、ゲートウェイは、コンセンサス手順に参加する別のデバイスによって送信される受信したコンセンサスメッセージを正常に動作する第2のサーバに転送する。この場合、第2のサーバは、コンセンサス手順に参加する別のデバイスによって送信され、またゲートウェイによって転送されるコンセンサスメッセージを受信する。
さらに、ゲートウェイが、コンセンサス手順の間に第1のサーバに異常があると判定すると、ゲートウェイは、コンセンサス手順に参加する別のデバイスが送信を再試行する受信したコンセンサスメッセージを正常に動作する第2のサーバに転送する。それに対応して、第2のサーバは、コンセンサス手順に参加する別のデバイスが送信を再試行し、またゲートウェイによって転送されるコンセンサスメッセージを受信する。
本願の本実装形態では、ゲートウェイが、コンセンサスメッセージをノード内の正常な第2のサーバに転送すると理解することができる。すなわち、ゲートウェイは、異常のあるサーバおよびノード内で正常に動作し続けているサーバを知る必要がある。
本願の本実装形態では、ノード内の各サーバは、ハートビート機構を使用することによってゲートウェイと通信することができ、これにより、ゲートウェイは、各サーバの動作状況を知ることができる。すなわち、ゲートウェイは、第1のサーバの動作状況および第2のサーバの動作状況を、以下の方法で、すなわち、ゲートウェイにより、所定の期間に基づいて第1のサーバおよび第2のサーバによってゲートウェイに送信される動作状況メッセージを受信することと、ゲートウェイにより、動作状況メッセージに基づいて第1のサーバの動作状況および第2のサーバの動作状況を判定することとで判定する。
すなわち、ゲートウェイが周期的な動作状況メッセージを受信できる場合、ゲートウェイは、動作状況メッセージを送信するサーバが正常に動作していると判定することができ、またゲートウェイが、動作状況メッセージを一定のサーバから一定の時間内、何も受信しない場合、ゲートウェイは、サーバに異常があると判定することができる。
以下、適用例を説明に使用する。
例えば、図3aに示すように、ノード1内のサーバ11とノード2内のサーバ21の両方が一定のコンセンサス手順に参加すると仮定される(図3aは、グレーで、2つのサーバが同じコンセンサス手順に従うことを示す)。さらに、サーバ21はオフラインである(すなわち、ノード2において、サーバ21は第1のサーバである)と仮定される。この事例では、サーバ11は、一定のコンセンサスメッセージをサーバ21に送信する。明らかであろうが、サーバ21はオフラインなので、サーバ21は、どんなフィードバックも提供しない。この事例では、特定の期間待った後、サーバ11は、再試行(再試行は、ノード1によって開始される再試行と見なすこともできる)を開始する、すなわち、コンセンサスメッセージを再送信する。ノード2内のゲートウェイが、ノード1が送信を再試行するコンセンサスメッセージを受信した後、ゲートウェイは、ノード1の再試行を処理するために、ノード2内で正常に動作する一定のサーバを選択する。図3bに示すように、この例では、ノード2内のサーバ22が選択される(すなわち、サーバ22は、第2のサーバである)。すなわち、ゲートウェイは、サーバ22に、ノード1が送信を再試行するコンセンサスメッセージを転送し、サーバ22は、サーバ21の代わりにコンセンサス手順を実行する。
さらに、第2のサーバにより、コンセンサスデータをサーバに記憶するプロセスの場合、本願の本実装形態における方法では、第2のサーバは、コンセンサスメッセージを受信した後、即座に、受信したコンセンサスメッセージ(コンセンサスメッセージは、コンセンサスデータの一種と見なすことができる)をデータベースに記憶し、またコンセンサス結果をコンセンサス手順を通じて生成した後、コンセンサスメッセージに対応するコンセンサス結果(コンセンサス結果も、コンセンサスデータの一種と見なすことができる)をデータベースに記憶することができる。
さらに、本願の本実装形態における別の方法では、コンセンサスメッセージを受信した後、第2のサーバは、前述のプロセスを通じて生成するコンセンサス結果を待ち、次いで、コンセンサスメッセージを、コンセンサス結果と共にデータベースに記憶する。
先の2つの記憶方法は、本願を限定するものとはならない。
本願の実装形態において提供される、ブロックチェーンを基にしたコンセンサス方法が、上述されている。同じ概念に基づいて、図4に示すように、本願の実装形態は、ブロックチェーンを基にしたコンセンサスデバイスをさらに提供する。1つのブロックチェーンノードは、複数のサーバおよび少なくとも1つのデータベースを備える。データベースは、コンセンサス手順を実行するために必要なコンセンサスデータを記憶し、コンセンサスデータが、コンセンサス手順の間に、第1のサーバおよび第2のサーバによって呼び出される。
第1のサーバに、コンセンサス手順の前に、またはコンセンサス手順の間に異常がある。
ブロックチェーンを基にしたコンセンサスデバイスは、少なくとも受信モジュール401、取得モジュール402、コンセンサス実行モジュール403、および記憶モジュール404を備える。
取得モジュール402は、コンセンサスデータをデータベースから得るように構成される。
コンセンサス実行モジュール403は、コンセンサスデータに基づいてコンセンサス手順を実行してコンセンサス結果を生成するように構成される。
記憶モジュール404は、コンセンサス結果をデータベースに記憶するように構成される。
受信モジュール401は、コンセンサス手順に参加する別のデバイスによって送信されるコンセンサスメッセージを受信するように構成され、取得モジュールが、コンセンサス手順の前に第1のサーバに異常があるという判定に応答して、コンセンサスメッセージに対応するコンセンサスデータを、データベースから、コンセンサスメッセージに基づいて得るように構成される。
受信モジュール401は、コンセンサス手順に参加する別のデバイスが送信を再試行するコンセンサスメッセージを受信するように構成され、取得モジュールが、コンセンサス手順の間に第1のサーバに異常があるという判定に応答して、コンセンサスメッセージに対応するコンセンサスデータを、データベースから、コンセンサスメッセージに基づいて得るように構成される。
別のデバイスが、コンセンサスメッセージを送信するが、指定された時間の後に、応答を何も受信しないとき、別のデバイスは、コンセンサスメッセージの送信を再試行する。
コンセンサスメッセージは、サービス要求識別子を含む。取得モジュール402は、コンセンサスメッセージに含まれるサービス要求識別子に基づいて、識別子に対応するコンセンサスデータについてデータベースを検索し、識別子に対応するコンセンサスデータを得るように構成される。
さらに、ブロックチェーンノードは、ゲートウェイをさらに備えることができる。この場合、デバイスは、少なくともゲートウェイ受信モジュール405、動作状況判定モジュール406、および転送モジュール407をさらに備える。
動作状況判定モジュール406が、コンセンサス手順の前に第1のサーバに異常があると判定すると、転送モジュール407は、正常に動作する第2のサーバに、コンセンサス手順に参加する別のデバイスによって送信される受信したコンセンサスメッセージを転送するように構成される。
動作状況判定モジュール406が、コンセンサス手順の間に第1のサーバに異常があると判定すると、転送モジュール407は、コンセンサス手順に参加する別のデバイスが送信を再試行する受信したコンセンサスメッセージを正常に動作する第2のサーバに転送するように構成される。
ゲートウェイ受信モジュール405は、所定の期間に基づいて第1のサーバおよび第2のサーバによってゲートウェイに送信される動作状況メッセージを受信するように構成される。
動作状況判定モジュール406は、第1のサーバの動作状況および第2のサーバの動作状況を動作状況メッセージに基づいて判定するように構成される。
1990年代には、技術的な改善が、ハードウェアの改善(例えば、ダイオード、トランジスタ、スイッチなどの回路構造の改善)であるか、ソフトウェアの改善(方法手順の改善)であるかは、明確に区別することができている。しかし、テクノロジが発展すると、多くの方法手順の現在の改善は、ハードウェア回路構造の直接的な改善と見なすことができる。ほとんどすべての設計者は、改善した方法手順をハードウェア回路内にプログラムして、対応するハードウェア回路構造を得る。したがって、方法手順は、ハードウェアエンティティモジュールを使用することによって改善することができる。例えば、プログラマブル論理デバイス(PLD)(例えば、フィールドプログラマブルゲートアレイ(FPGA))はそのような集積回路であり、PLDの論理関数は、ユーザによって、デバイスプログラミングを通じて決定される。設計者は、半導体メーカーに特定用途向け集積回路チップの設計および製造を依頼することなく、デジタルシステムをPLDに「組み込む」ために、プログラミングを実行する。さらに、現在では、手動で集積回路チップを製造する代わりに、このタイプのプログラミングはたいてい、「論理コンパイラ」ソフトウェアを使用することによって実装される。「論理コンパイラ」ソフトウェアは、プログラムを開発し記述するために使用されるソフトウェアコンパイラに類似している。元のコードは、コンパイルされる前に特定のプログラミング言語で記述される必要がある。言語は、ハードウェア記述言語(HDL)と呼ばれる。Advanced Boolean Expression Language(ABEL)、Altera Hardware Description Language(AHDL)、Confluence、Cornell University Programming Language(CUPL)、HDCal、Java Hardware Description Language(JHDL)、Lava、Lola、MyHDL、PALASM、Ruby Hardware Description Language(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)、もしくは別の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクメモリ、もしくは別の磁気記憶デバイス、またはコンピューティングデバイスがアクセスできる情報を記憶するために使用できる任意の他の非伝送媒体が含まれるが、それに限定されるものではない。本明細書における定義に基づいて、コンピュータ可読媒体には、変調データ信号や搬送波などの一時的コンピュータ可読媒体(一時的媒体)は含まれない。
「備える、含む(comprise)」、「備える、含む(include)」という語、または他の、その変化形は、要素のリストを含むプロセス、方法、製品、またはデバイスが、それらの要素だけを含むのではなく、明示的にリストされていない他の要素も含み、またはそうしたプロセス、方法、製品、またはデバイスに固有でない要素をさらに含むように、非排他的な包含をカバーするものであることにさらに留意されたい。さらなる制約なく、「備える、含む(includes a …)」が先行する要素は、要素を含むプロセス、方法、製品、またはデバイスにおいて追加の同一の要素の存在を排除しない。
本願の実装形態は、方法、システム、またはコンピュータプログラム製品として提供できることを当業者なら理解するであろう。したがって、本願は、ハードウェアだけの実装形態、ソフトウェアだけの実装形態、またはソフトウェアとハードウェアを組み合わせた実装形態の形を使用することができる。さらに、本願は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(それだけに限定されるものではないが、磁気ディスクストレージ、CD-ROM、光メモリなど)上に実装されるコンピュータプログラム製品の形を使用することができる。
本願は、コンピュータによって実行されるコンピュータ実行可能命令、例えば、プログラムモジュールの一般的な文脈の中で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するか、特定の抽象データ型を実行するためのルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本願は、代替方法として、分散コンピューティング環境で実施することができる。こうした分散コンピューティング環境では、タスクは、通信ネットワークを介して接続されるリモート処理デバイスによって実行される。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方の、記憶デバイスを含む、コンピュータ記憶媒体に配置することができる。
本明細書における実装形態は、漸進的に説明されている。実装形態の同一または類似の部分については、実装形態を相互に参照することができる。各実装形態は、他の実装形態との違いに焦点を合わせている。特に、システムの実装形態は、基本的に方法の実装形態に類似しており、したがって簡潔に説明される。関連する部分については、方法の実装形態のいくつかの説明を参照することができる。
先の説明は、単に本願の実装形態であり、本願を限定することは意図されない。当業者であれば、本願に様々な修正および変更を加えることができる。本願の趣旨および原理から逸脱することなく実施される、任意の修正、同等な置換え、改善などは、本願の請求項の範囲に含まれるものとする。
1 ノード
2 ノード
11 サーバ
12 サーバ
21 サーバ
22 サーバ
401 受信モジュール
402 取得モジュール
403 コンセンサス実行モジュール
404 記憶モジュール
405 ゲートウェイ受信モジュール
406 動作状況判定モジュール
407 転送モジュール

Claims (10)

  1. ブロックチェーンを基にしたコンセンサス方法であって、1つのブロックチェーンノードが、第1のサーバ、第2のサーバ、および少なくとも1つのデータベースを備え、前記方法が、
    前記データベースにより、コンセンサス手順を実行するために必要なコンセンサスデータを記憶するステップであって、前記コンセンサスデータが、前記コンセンサス手順の間に、前記第1のサーバおよび前記第2のサーバによって呼び出される、ステップと、
    前記第1のサーバの代わりに前記第2のサーバにより、前記データベースからコンセンサスデータを得るステップと、
    前記コンセンサス手順の前に、または前記コンセンサス手順の間に前記第1のサーバに異常があるという判定に応答して、前記コンセンサスデータに基づいて前記コンセンサス手順を実行してコンセンサス結果を生成するステップと、
    前記第2のサーバにより、前記コンセンサス結果を前記データベースに記憶するステップと、
    を備える、ブロックチェーンを基にしたコンセンサス方法。
  2. 前記コンセンサス手順の前に前記第1のサーバに異常があるという判定に応答して、前記第1のサーバの代わりに前記第2のサーバにより、前記データベースからコンセンサスデータを前記得るステップが、具体的に、
    前記第1のサーバの代わりに前記第2のサーバにより、前記コンセンサス手順に参加する別のデバイスによって送信されるコンセンサスメッセージを受信するステップと、
    前記コンセンサス手順の前に前記第1のサーバに異常があるという判定に応答して、前記コンセンサスメッセージに基づいて前記データベースから前記コンセンサスメッセージに対応するコンセンサスデータを得るステップと、を備え、
    前記コンセンサス手順の間に前記第1のサーバに異常があるという判定に応答して、前記第1のサーバの代わりに前記第2のサーバにより、前記データベースからコンセンサスデータを前記得るステップが、具体的に、
    前記第1のサーバの代わりに前記第2のサーバにより、前記コンセンサス手順に参加する別のデバイスが送信を再試行するコンセンサスメッセージを受信するステップと、
    前記コンセンサス手順の間に前記第1のサーバに異常があるという判定に応答して、前記コンセンサスメッセージに基づいて前記データベースから前記コンセンサスメッセージに対応するコンセンサスデータを得るステップと、を備え、
    前記別のデバイスが、前記コンセンサスメッセージを送信するが、指定された時間の後に、応答を何も受信しないとき、前記別のデバイスが、前記コンセンサスメッセージの送信を再試行する、請求項1に記載の方法。
  3. 前記コンセンサスメッセージが、サービス要求識別子を含み、
    前記コンセンサスメッセージに基づいて前記データベースから前記コンセンサスメッセージに対応するコンセンサスデータを前記得るステップが、具体的に、
    前記第2のサーバにより、前記コンセンサスメッセージに含まれる前記サービス要求識別子に基づいて、前記識別子に対応するコンセンサスデータについて前記データベースを検索し、前記識別子に対応するコンセンサスデータを得るステップを備える、請求項2に記載の方法。
  4. 前記ブロックチェーンノードが、ゲートウェイをさらに備え、
    前記コンセンサス手順に参加する別のデバイスによって送信されるコンセンサスメッセージを前記受信するステップが、具体的に、
    前記ゲートウェイにより、前記コンセンサス手順の前に前記第1のサーバに異常があるという判定に応答して、前記コンセンサス手順に参加する前記別のデバイスによって送信される前記受信したコンセンサスメッセージを前記正常に動作する第2のサーバに転送するステップと、
    前記第2のサーバにより、前記コンセンサス手順に参加する前記別のデバイスによって送信され、前記ゲートウェイによって転送される前記コンセンサスメッセージを受信するステップと、を備え、
    前記コンセンサス手順に参加する別のデバイスが送信を再試行するコンセンサスメッセージを前記受信するステップが、具体的に、
    前記ゲートウェイにより、前記コンセンサス手順の間に前記第1のサーバに異常があるという判定に応答して、前記コンセンサス手順に参加する前記別のデバイスが送信を再試行する前記受信したコンセンサスメッセージを前記正常に動作する第2のサーバに転送するステップと、
    前記第2のサーバにより、前記コンセンサス手順に参加する前記別のデバイスが送信を再試行し、前記ゲートウェイによって転送される前記コンセンサスメッセージを受信するステップと、を備え、請求項2に記載の方法。
  5. 前記ゲートウェイが、前記第1のサーバの動作状況および前記第2のサーバの動作状況を、以下の方法で、すなわち、
    前記ゲートウェイにより、所定の期間に基づいて前記第1のサーバおよび前記第2のサーバによって前記ゲートウェイに送信される動作状況メッセージを受信するステップと、
    前記ゲートウェイにより、前記動作状況メッセージに基づいて前記第1のサーバの前記動作状況および前記第2のサーバの前記動作状況を判定するステップと、で判定する、請求項4に記載の方法。
  6. ブロックチェーンを基にしたコンセンサスデバイスであって、1つのブロックチェーンノードが、第1のサーバ、第2のサーバ、および少なくとも1つのデータベースを備え、
    前記データベースが、コンセンサス手順を実行するために必要なコンセンサスデータを記憶し、前記コンセンサスデータが、前記コンセンサス手順の間に、前記第1のサーバおよび前記第2のサーバによって呼び出され、
    前記コンセンサス手順の前に、または前記コンセンサス手順の間に前記第1のサーバに異常があり、
    前記デバイスが、
    前記データベースからコンセンサスデータを得るように構成された取得モジュールと、
    前記コンセンサスデータに基づいて前記コンセンサス手順を実行してコンセンサス結果を生成するように構成されたコンセンサス実行モジュールと、
    前記コンセンサス結果を前記データベースに記憶するように構成された記憶モジュールと、
    を備える、ブロックチェーンを基にしたコンセンサスデバイス。
  7. 前記デバイスが、受信モジュールをさらに備え、
    前記受信モジュールが、前記コンセンサス手順に参加する別のデバイスによって送信されるコンセンサスメッセージを受信するように構成され、
    前記取得モジュールが、前記コンセンサス手順の前に前記第1のサーバに異常があるという判定に応答して、前記コンセンサスメッセージに基づいて前記データベースから前記コンセンサスメッセージに対応するコンセンサスデータを得るように構成され、
    前記受信モジュールが、前記コンセンサス手順に参加する別のデバイスが送信を再試行するコンセンサスメッセージを受信するように構成され、
    前記取得モジュールが、前記コンセンサス手順の間に前記第1のサーバに異常があるという判定に応答して、前記コンセンサスメッセージに基づいて前記データベースから前記コンセンサスメッセージに対応するコンセンサスデータを得るように構成され、
    前記別のデバイスが、前記コンセンサスメッセージを送信するが、指定された時間の後に、応答を何も受信しないという判定に応答して、前記別のデバイスが、前記コンセンサスメッセージの送信を再試行する、請求項6に記載のデバイス。
  8. 前記コンセンサスメッセージが、サービス要求識別子を含み、
    前記取得モジュールが、前記コンセンサスメッセージに含まれる前記サービス要求識別子に基づいて、前記識別子に対応するコンセンサスデータについて前記データベースを検索し、前記識別子に対応するコンセンサスデータを得るように構成された、請求項7に記載のデバイス。
  9. 前記ブロックチェーンノードが、ゲートウェイをさらに備え、
    前記デバイスが、動作状況判定モジュールおよび転送モジュールをさらに備え、
    前記転送モジュールが、前記コンセンサス手順の前に前記第1のサーバに異常があるという判定に応答して、前記コンセンサス手順に参加する前記別のデバイスによって送信される前記受信したコンセンサスメッセージを前記正常に動作する第2のサーバに転送するように構成され、
    前記転送モジュールが、前記コンセンサス手順の間に前記第1のサーバに異常があるという判定に応答して、前記コンセンサス手順に参加する前記別のデバイスが送信を再試行する前記受信したコンセンサスメッセージを前記正常に動作する第2のサーバに転送するように構成された、請求項8に記載のデバイス。
  10. 前記デバイスが、ゲートウェイ受信モジュールをさらに備え、前記ゲートウェイ受信モジュールが、所定の期間に基づいて前記第1のサーバおよび前記第2のサーバによって前記ゲートウェイに送信される動作状況メッセージを受信するように構成され、
    前記動作状況判定モジュールが、前記第1のサーバの動作状況および前記第2のサーバの動作状況を前記動作状況メッセージに基づいて判定するように構成された、請求項9に記載のデバイス。
JP2019535848A 2017-03-28 2018-03-26 ブロックチェーンを基にしたコンセンサス方法およびデバイス Active JP6756924B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710190786.1 2017-03-28
CN201710190786.1A CN107368507B (zh) 2017-03-28 2017-03-28 一种基于区块链的共识方法及装置
PCT/CN2018/080513 WO2018177255A1 (zh) 2017-03-28 2018-03-26 一种基于区块链的共识方法及装置

Publications (2)

Publication Number Publication Date
JP2020514865A true JP2020514865A (ja) 2020-05-21
JP6756924B2 JP6756924B2 (ja) 2020-09-16

Family

ID=60304778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019535848A Active JP6756924B2 (ja) 2017-03-28 2018-03-26 ブロックチェーンを基にしたコンセンサス方法およびデバイス

Country Status (15)

Country Link
US (2) US10642699B2 (ja)
EP (1) EP3547170B1 (ja)
JP (1) JP6756924B2 (ja)
KR (1) KR102255724B1 (ja)
CN (2) CN111327703B (ja)
AU (1) AU2018241568B2 (ja)
BR (1) BR112019013379B1 (ja)
CA (1) CA3048742C (ja)
MX (1) MX2019007808A (ja)
MY (1) MY192616A (ja)
PH (1) PH12019501519A1 (ja)
RU (1) RU2731331C1 (ja)
TW (1) TWI696083B (ja)
WO (1) WO2018177255A1 (ja)
ZA (1) ZA201904224B (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419225B2 (en) 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
US10411897B2 (en) 2017-02-17 2019-09-10 Factom, Inc. Secret sharing via blockchains
US10817873B2 (en) 2017-03-22 2020-10-27 Factom, Inc. Auditing of electronic documents
CN111327703B (zh) * 2017-03-28 2022-05-31 创新先进技术有限公司 一种基于区块链的共识方法及装置
CN110445619B (zh) * 2017-03-30 2020-10-16 腾讯科技(深圳)有限公司 区块链系统、消息处理方法及存储介质
US10685399B2 (en) 2017-03-31 2020-06-16 Factom, Inc. Due diligence in electronic documents
US10270599B2 (en) 2017-04-27 2019-04-23 Factom, Inc. Data reproducibility using blockchains
CN108111604B (zh) * 2017-12-21 2020-08-14 广州广电运通金融电子股份有限公司 区块链共识方法、装置和系统、标识信息处理方法和装置
CN108200208B (zh) * 2018-02-11 2021-01-05 南宁师范大学 基于云计算的物流区块链共识算法
CN108537525B (zh) 2018-03-09 2020-06-09 阿里巴巴集团控股有限公司 一种共识验证方法、装置及设备
CN108763302A (zh) * 2018-04-19 2018-11-06 深圳市网心科技有限公司 区块链共识处理方法、电子装置及计算机可读存储介质
CN108665363B (zh) * 2018-05-09 2021-08-03 合肥达朴汇联科技有限公司 一种区块链共识达成装置
CN110569395A (zh) * 2018-05-18 2019-12-13 北京天德科技有限公司 一种稳定可靠的区块链拜占庭共识流程设计方法
US11170366B2 (en) 2018-05-18 2021-11-09 Inveniam Capital Partners, Inc. Private blockchain services
US10783164B2 (en) * 2018-05-18 2020-09-22 Factom, Inc. Import and export in blockchain environments
US11134120B2 (en) 2018-05-18 2021-09-28 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
US11620642B2 (en) 2018-08-06 2023-04-04 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11989208B2 (en) 2018-08-06 2024-05-21 Inveniam Capital Partners, Inc. Transactional sharding of blockchain transactions
US11328290B2 (en) 2018-08-06 2022-05-10 Inveniam Capital Partners, Inc. Stable cryptocurrency coinage
CN109144781B (zh) * 2018-08-13 2021-06-18 浙商银行股份有限公司 一种提升基于区块链技术实现的应用系统单园区部署灾备能力的方法
CN110969527B (zh) * 2018-09-29 2023-02-24 北京天能博信息科技有限公司 一种区块链的数据处理方法及相关设备
WO2019072263A2 (en) * 2018-11-07 2019-04-18 Alibaba Group Holding Limited FACILITATION OF BLOCK CHAIN CONSENSUS AND NODE SYNCHRONIZATION FOR PRACTICAL TOLERANCE TO ARBITRARY FAILURES
CN111291110A (zh) * 2018-12-06 2020-06-16 中国电信股份有限公司 基于区块链网络的共识方法和系统
CN110221938A (zh) * 2019-05-06 2019-09-10 深圳壹账通智能科技有限公司 电子装置、区块链共识的方法及存储介质
CN110266765B (zh) * 2019-05-21 2022-03-01 西安中星测控有限公司 一种基于区块链的物联网在线共识节点实时更新方法和装置
CN110492988B (zh) * 2019-07-03 2020-07-21 特斯联(北京)科技有限公司 一种多路并行复用的大数据系统及其处理方法
CN110336707A (zh) * 2019-08-07 2019-10-15 卓尔智联(武汉)研究院有限公司 区块链共识装置、方法及计算机可读存储介质
CN111104282B (zh) * 2019-11-26 2024-01-16 众安信息技术服务有限公司 一种基于区块链的节点处理方法和装置
CN111125131B (zh) * 2019-12-16 2023-06-06 武汉大学 一种具备状态缓冲能力的两级共识区块链系统及部署方法
CN111147261B (zh) * 2019-12-31 2022-07-12 南京可信区块链与算法经济研究院有限公司 在区块链中使用HotStuff共识算法的方法及系统
US11444749B2 (en) 2020-01-17 2022-09-13 Inveniam Capital Partners, Inc. Separating hashing from proof-of-work in blockchain environments
JPWO2021166931A1 (ja) * 2020-02-21 2021-08-26
CN111064813B (zh) * 2020-03-16 2020-06-30 支付宝(杭州)信息技术有限公司 在区块链共识处理时进行处理消息同步的方法及装置
CN111654415B (zh) * 2020-05-28 2021-09-10 腾讯科技(深圳)有限公司 基于区块链的信息处理方法、装置、设备及可读存储介质
CN112286731A (zh) * 2020-07-03 2021-01-29 支付宝(杭州)信息技术有限公司 区块链共识节点的重启处理方法、共识节点及区块链系统
CN111522696B (zh) * 2020-07-03 2020-12-29 支付宝(杭州)信息技术有限公司 区块链共识节点的宕机处理方法、数据持久化方法及硬件
CN111522822A (zh) 2020-07-03 2020-08-11 支付宝(杭州)信息技术有限公司 一种区块链共识方法、装置及电子设备
CN112100234B (zh) * 2020-08-12 2021-09-10 北京大学 基于随机共识的图式账本的内容寻址方法和系统
CN112564902A (zh) * 2020-12-09 2021-03-26 苏州市星际云通区块链科技有限公司 一种区块链上可验证随机函数的共识方法及其系统
CN112738178B (zh) * 2020-12-23 2023-04-07 北京米弘科技有限公司 区块链共识方法和装置
US12008526B2 (en) 2021-03-26 2024-06-11 Inveniam Capital Partners, Inc. Computer system and method for programmatic collateralization services
CN113254306B (zh) * 2021-05-10 2022-03-25 支付宝(杭州)信息技术有限公司 运行状态监控方法、装置、设备和存储介质
CN113067895B (zh) * 2021-06-02 2021-08-31 支付宝(杭州)信息技术有限公司 组建区块链子网的方法和区块链系统
US12007972B2 (en) 2021-06-19 2024-06-11 Inveniam Capital Partners, Inc. Systems and methods for processing blockchain transactions
CN113572140B (zh) * 2021-07-15 2024-04-12 国网上海市电力公司 基于可变共识机制的配网故障隔离指令传输方法和设备
CN114064343B (zh) * 2022-01-13 2022-04-08 北京溪塔科技有限公司 一种区块链的异常处置方法及装置
CN114640500B (zh) * 2022-02-14 2023-07-28 南京邮电大学 一种基于服务的联盟链高效共识方法
US11881980B2 (en) 2022-04-22 2024-01-23 Red Hat, Inc. Byzantine fault prevention in mesh networks
CN115471301B (zh) * 2022-11-11 2023-04-07 浙江云针信息科技有限公司 无人驾驶车辆去中心化派单方法及装置、存储介质和终端

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6215766B1 (en) * 1998-01-30 2001-04-10 Lucent Technologies Inc. Hierarchical rate control of receivers in a communication system transmitting layered video multicast data with retransmission (LVMR)
US9361311B2 (en) 2005-01-12 2016-06-07 Wandisco, Inc. Distributed file system using consensus nodes
TWI416901B (zh) 2005-11-30 2013-11-21 Ibm 故障容忍之異動處理系統
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
CN101394306B (zh) * 2008-07-08 2010-10-27 国电南瑞科技股份有限公司 一种双服务器系统的无缝切换方法
CN102724272B (zh) * 2011-12-30 2017-12-29 新奥特(北京)视频技术有限公司 一种电视台业务发布数据的备份方法
RU2510623C2 (ru) * 2012-04-19 2014-04-10 Государственное казенное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Способ репликации информации в распределенных базах данных с конкурентным распределением потоков
WO2014008495A2 (en) * 2012-07-06 2014-01-09 Cornell University Managing dependencies between operations in a distributed system
CN103220165B (zh) * 2013-03-20 2017-04-19 杭州华三通信技术有限公司 一种服务器主动宕机的处理方法和装置
US9553982B2 (en) * 2013-07-06 2017-01-24 Newvoicemedia, Ltd. System and methods for tamper proof interaction recording and timestamping
CN103744809B (zh) * 2013-12-23 2016-10-05 天泽信息产业股份有限公司 基于vrrp的车辆信息管理系统双机热备方法
US20150310476A1 (en) * 2014-04-24 2015-10-29 Elizabeth M. Gadwa System and method for attention based currency
US20160125403A1 (en) * 2014-04-28 2016-05-05 Chin-hao Hu Offline virtual currency transaction
US9690675B2 (en) * 2014-07-17 2017-06-27 Cohesity, Inc. Dynamically changing members of a consensus group in a distributed self-healing coordination service
US9436923B1 (en) * 2015-02-26 2016-09-06 Skuchain, Inc. Tracking unitization occurring in a supply chain
TWI676943B (zh) * 2015-05-06 2019-11-11 現代財富控股有限公司 加密貨幣的電子交易系統及其方法
US20170048209A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US10268744B2 (en) * 2015-09-22 2019-04-23 Walmart Apollo, Llc System for maintaining consistency across a decentralized database cluster and method therefor
CN105719185B (zh) * 2016-01-22 2019-02-15 杭州复杂美科技有限公司 区块链的数据对比及共识方法
CN105912618B (zh) * 2016-04-07 2019-04-23 浙江万马新能源有限公司 基于区块链的充电桩充电交易通讯方法及装置
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
CN106060036B (zh) * 2016-05-26 2019-07-16 布比(北京)网络技术有限公司 去中心化共识方法及装置
CN106101242B (zh) * 2016-06-24 2019-08-06 深圳前海微众银行股份有限公司 区块链云服务平台的构建方法和装置
CN106209877A (zh) * 2016-07-19 2016-12-07 井创(北京)科技有限公司 一种以区块链后台为认证核心的防伪认证系统
CN106296191A (zh) * 2016-08-13 2017-01-04 深圳市樊溪电子有限公司 一种区块链功耗感知的PoW共识机制
CN106445711B (zh) * 2016-08-28 2019-04-30 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
CN106339639A (zh) * 2016-08-30 2017-01-18 弗洛格(武汉)信息科技有限公司 基于区块链的学分成绩管理方法及系统
US20180062831A1 (en) * 2016-08-31 2018-03-01 Jiangang Zhang Massively Scalable Blockchain Ledger
CN106452785B (zh) * 2016-09-29 2019-05-17 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
US10158527B2 (en) * 2016-10-28 2018-12-18 International Business Machines Corporation Changing an existing blockchain trust configuration
CN106528775B (zh) * 2016-10-28 2020-01-03 济南大学 支持逻辑多链的私有区块链运行支撑系统及其工作方法
CN106341421B (zh) * 2016-10-31 2019-04-02 杭州云象网络技术有限公司 一种基于区块链技术的数据交换方法
CN106534273B (zh) * 2016-10-31 2022-04-15 中金云金融(北京)大数据科技股份有限公司 区块链元数据存储系统及其存储方法与检索方法
US10862959B2 (en) 2016-11-28 2020-12-08 Keir Finlow-Bates Consensus system and method for adding data to a blockchain
WO2018112949A1 (zh) * 2016-12-23 2018-06-28 深圳前海达闼云端智能科技有限公司 区块链的挖矿方法、装置和节点设备
US10291413B2 (en) * 2017-02-17 2019-05-14 Accenture Global Solutions Limited Hardware blockchain corrective consensus operating procedure enforcement
US20180267539A1 (en) * 2017-03-17 2018-09-20 Jeanne Louise Shih Distributive networks of groups of moveable autonomous devices
CN111327703B (zh) * 2017-03-28 2022-05-31 创新先进技术有限公司 一种基于区块链的共识方法及装置
US10984134B2 (en) * 2017-07-14 2021-04-20 Microsoft Technology Licensing, Llc Blockchain system for leveraging member nodes to achieve consensus

Also Published As

Publication number Publication date
US20200201719A1 (en) 2020-06-25
KR102255724B1 (ko) 2021-05-27
RU2731331C1 (ru) 2020-09-01
EP3547170B1 (en) 2021-09-01
CN107368507B (zh) 2020-03-27
WO2018177255A1 (zh) 2018-10-04
JP6756924B2 (ja) 2020-09-16
US10846182B2 (en) 2020-11-24
CN111327703B (zh) 2022-05-31
MY192616A (en) 2022-08-29
CA3048742A1 (en) 2018-10-04
BR112019013379B1 (pt) 2022-03-15
TWI696083B (zh) 2020-06-11
BR112019013379A2 (pt) 2019-12-17
CN111327703A (zh) 2020-06-23
TW201837748A (zh) 2018-10-16
EP3547170A1 (en) 2019-10-02
MX2019007808A (es) 2019-09-04
CN107368507A (zh) 2017-11-21
EP3547170A4 (en) 2019-11-20
AU2018241568A1 (en) 2019-07-18
CA3048742C (en) 2021-07-20
AU2018241568B2 (en) 2020-12-03
ZA201904224B (en) 2021-05-26
US10642699B2 (en) 2020-05-05
US20190324867A1 (en) 2019-10-24
KR20190099222A (ko) 2019-08-26
PH12019501519A1 (en) 2020-03-09

Similar Documents

Publication Publication Date Title
JP2020514865A (ja) ブロックチェーンを基にしたコンセンサス方法およびデバイス
CN113766035B (zh) 一种业务受理及共识的方法及装置
JP6794551B2 (ja) トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイス
WO2018161901A1 (zh) 一种共识方法及装置
US20180081770A1 (en) Preventing split-brain scenario in a high-availability cluster
US10749954B2 (en) Cross-data center hierarchical consensus scheme with geo-aware leader election
US10819641B2 (en) Highly available servers
CN116405554A (zh) 一种网络通信的方法、装置、存储介质及电子设备
US11012537B2 (en) Method for handling long-running client-server processes
CN115174587B (zh) 一种数据传输系统、方法、装置、计算机可读存储介质及电子设备
CN114612238A (zh) 返回区块链交易执行结果的方法和装置
CN118264665A (en) Message sending method, device, system and electronic equipment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190823

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200708

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: 6756924

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