JP2020516973A - トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイス - Google Patents

トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイス Download PDF

Info

Publication number
JP2020516973A
JP2020516973A JP2019534718A JP2019534718A JP2020516973A JP 2020516973 A JP2020516973 A JP 2020516973A JP 2019534718 A JP2019534718 A JP 2019534718A JP 2019534718 A JP2019534718 A JP 2019534718A JP 2020516973 A JP2020516973 A JP 2020516973A
Authority
JP
Japan
Prior art keywords
transaction information
consensus
consensus node
node
transaction
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
JP2019534718A
Other languages
English (en)
Other versions
JP6794551B2 (ja
JP2020516973A5 (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 JP2020516973A publication Critical patent/JP2020516973A/ja
Publication of JP2020516973A5 publication Critical patent/JP2020516973A5/ja
Application granted granted Critical
Publication of JP6794551B2 publication Critical patent/JP6794551B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • 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
    • 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/104Peer-to-peer [P2P] networks
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Retry When Errors Occur (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本出願の実施形態では、トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイスを開示している。トランザクション受容ステージにおいて、別のコンセンサスノードが受容ノードによって送信されたトランザクション情報を受信できない場合に、別のコンセンサスノードが、前処理ブロック含まれるトランザクション情報が別のコンセンサスノードのトランザクションプール中に存在しないと決定した場合は、別のコンセンサスノードは、コンセンサス検証ステージにおいて、トランザクション情報の情報識別子を含むコンセンサス検証失敗通知を受容ノードに送信することができ、その結果、受容ノードはトランザクション情報を別のコンセンサスノードに再送する。本出願の実施形態によれば、各コンセンサスノードのトランザクションプールに記憶されたトランザクション情報は最大限首尾一貫しており、したがって、各コンセンサスノードのコンセンサス検証結果の精度は低下しないということを保証することができる。

Description

本出願はブロックチェーン技術の分野に関し、詳細には、トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイスに関する。
ブロックチェーン技術の分野において、トランザクションに対してコンセンサス検証を実施する責任があるブロックチェーンノードは、コンセンサスノードと呼ばれる。
コンセンサス検証フェーズにおいて、コンセンサス検証を開始するコンセンサスノードは、ある期間内に生成されたトランザクションのトランザクション情報を、前処理ブロックにパックし、その前処理ブロックをコンセンサス検証のために別のコンセンサスノードに送信する必要があり、その別のコンセンサスノードは、その別のコンセンサスノードのトランザクションプールが、前処理ブロックにおけるすべてのトランザクション情報を含むかどうか検証する。検証結果は、トランザクションプールが前処理ブロック中にすべてのトランザクション情報を含む場合、コンセンサス検証は成功であるということになる。検証結果は、トランザクションプールが前処理ブロック中にすべてのトランザクション情報を含むわけではない場合、コンセンサス検証は失敗であるということになる。次に、コンセンサスノードは、前処理ブロック上のコンセンサスノードの検証結果に基づいて、前処理ブロック中のトランザクション情報が有効または無効といったコンセンサスに到達し、前処理ブロック上のコンセンサスノードによるコンセンサス検証実施の結果として、そのコンセンサスを使用する。したがって、コンセンサスノードのコンセンサス検証結果をできるだけ正確にするために、コンセンサスノードのトランザクションプールに記憶されたトランザクション情報が首尾一貫していることを保証する必要がある。
様々なトランザクションに対するトランザクション取扱いフェーズにおいて、各コンセンサスノードは、トランザクションのトランザクション情報を取得するために、トランザクション取扱いノード(以下取扱いノードと呼ぶ)として働くことができる。トランザクションに対して、トランザクションに対応する取扱いノードは、トランザクション情報を各別のコンセンサスノードに送信する必要があり、トランザクション情報を受信する別のコンセンサスノードは、そのトランザクション情報を別のコンセンサスノードのトランザクションプールに記憶する。コンセンサスノードは、こうした方法を使用することにより、コンセンサスノードのトランザクションプールに記憶された首尾一貫したトランザクション情報を保持する。
しかし、ネットワーク障害は常に避けられないため、ネットワークの不安定性によりコンセンサスノード間の情報送信がしばしば不安定となり、一部のコンセンサスノードは、送信情報の受信ができない場合がある。たとえば、取扱いノードはトランザクション情報を他のコンセンサスノードに送信する。ネットワーク障害が発生すると、取扱いノードにより他のコンセンサスノードに送信されたトランザクション情報は、他のすべてのコンセンサスノードによって受信されない場合がある。その結果、コンセンサスノードのトランザクションプールに記憶されたトランザクション情報は、首尾一貫性を保持することができず、それによりコンセンサスノードのコンセンサス検証結果の精度が低下する。
本出願の実施形態は、トランザクション情報を送信しコンセンサス検証を実施するための既存の方法を使用することによるコンセンサスノードのコンセンサス検証結果の精度が低下するという問題を軽減するために、トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイスを提供する。
以前の技術的問題を軽減するために、本出願の実施形態は以下のように実施される。
本出願の一実施形態は、トランザクション情報を送信するための方法を提供し、この方法は以下の、コンセンサスノードによりトランザクション情報を取得すること、トランザクション情報を別のコンセンサスノードに送信すること、および、別のコンセンサスノードによって送信されトランザクション情報の情報識別子を含むコンセンサス検証失敗通知を受信したとき、そのコンセンサス検証失敗通知に基づいてトランザクション情報を再送することを含む。
本出願の一実施形態は、コンセンサス検証のための方法を提供し、この方法は以下の、別のコンセンサスノードによって送信された前処理ブロックをコンセンサスノードによって受信すること、トランザクションプールに記憶されたトランザクション情報および前処理ブロックに含まれたトランザクション情報に基づいて、前処理ブロックについてコンセンサス検証を実施すること、および、コンセンサス検証プロセスにおいて、前処理ブロックに含まれる少なくとも1つのトランザクション情報がトランザクションプールに存在しないと決定された場合、前処理ブロックに含まれるトランザクション情報中のトランザクションプールから消失したトランザクション情報の情報識別子を決定し、その情報識別子を含むコンセンサス検証失敗通知を他のコンセンサスノードに送信することを含む。
本出願の一実施形態は、トランザクション情報を送信するためのデバイスを提供し、このデバイスは以下の、トランザクション情報を取得するように構成された取得モジュール、トランザクション情報を別のコンセンサスノードに送信するように構成された第1の送信モジュール、および、別のコンセンサスノードによって送信されトランザクション情報の情報識別子を含むコンセンサス検証失敗通知が受信されたとき、コンセンサス検証失敗通知に基づいて、トランザクション情報を再送するように構成された第2の送信モジュールを備える。
本出願の一実施形態は、コンセンサス検証のためのデバイスを提供し、このデバイスは以下の、別のコンセンサスノードによって送信された前処理ブロックを受信するように構成された受信モジュール、トランザクションプールに記憶されたトランザクション情報および前処理ブロックに含まれたトランザクション情報に基づいて、前処理ブロックについてコンセンサス検証を実施するように構成されたコンセンサス検証モジュール、ならびに、コンセンサス検証プロセスにおいて、前処理ブロックに含まれる少なくとも1つのトランザクション情報がトランザクションプールに存在しないと決定された場合、前処理ブロックに含まれるトランザクション情報中のトランザクションプールから消失したトランザクション情報の情報識別子を決定し、その情報識別子を含むコンセンサス検証失敗通知を他のコンセンサスノードに送信するように構成された送信モジュールを備える。
本出願の以前の実施形態に適用された技術的ソリューションから、本出願の実施形態において、別のコンセンサスノードがトランザクション取扱いフェーズの取扱いノードによって送信されたトランザクション情報を受信できない場合、別のコンセンサスノードが、前処理ブロックに含まれるトランザクション情報が別のコンセンサスノードのトランザクションプールに存在しないと決定したとき、別のコンセンサスノードは、トランザクション情報の情報識別子を含むコンセンサス検証失敗通知をコンセンサス検証フェーズの取扱いノードに送信することができ、その結果、取扱いノードはトランザクション情報を別のコンセンサスノードに再送する、ということが理解できる。本出願の本実施形態によれば、コンセンサスノードのトランザクションプールに記憶されたトランザクション情報は首尾一貫しており、したがって、コンセンサスノードのコンセンサス検証結果の精度は低下しないということができる限り保証できる。
本出願の実施形態または既存の技術における技術的ソリューションをより明確に説明するために、次に、実施形態または既存の技術を説明するために必要な添付図面を簡単に説明する。以下に記載の添付図面は、単に本出願のいくつかの実施形態を示しており、当業者であれば、こうした添付図面から創造的な努力をせずにさらに他の図面を導き出すことが可能であることは明らかである。
本出願の一実施形態による、トランザクション情報を送信するための方法を示す流れ図である。 本出願の一実施形態による、トランザクション取扱いフェーズにおける信頼できる機構を示す概略図である。 本出願の一実施形態による、コンセンサス検証のための方法を示す流れ図である。 本出願の一実施形態による、トランザクション情報を送信するためのデバイスを示す概略図である。 本出願の一実施形態による、コンセンサス検証のためのデバイスを示す概略図である。
本出願の実施形態は、トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイスを提供する。
当業者に本出願の技術的ソリューションをより良く理解させるために、以下に本出願の実施形態に添付の図面を参照しながら、本出願の実施形態の技術的ソリューションを明確かつ包括的に説明する。記載の実施形態は、本出願の実施形態の単に一部であり、すべてではないことは明らかである。当業者により本出願の実施形態に基づいて創造的な努力なしに取得される他のすべての実施形態は、本出願の保護範囲内に属するものとする。
本出願の実施形態において提供された技術的ソリューションは、添付図面を参照しながら以下で詳細に説明される。
図1は、本出願の一実施形態によるトランザクション情報を送信するための方法を示す流れ図である。この方法は以下のステップを含む。
S101.コンセンサスノードがトランザクション情報を取得する。
本出願の本実施形態において、トランザクション情報は、アカウントアドレス、トランザクション量およびトランザクションタイプといった、トランザクションに含まれるすべての詳細とすることができる。
トランザクション取扱いフェーズにおいて、コンセンサスノードは取扱いノードとして働き、クライアントデバイスによって送信されるトランザクション情報を受信することができる。クライアントデバイスは、トランザクションに関与するブロックチェーンノードのクライアントデバイスとすることができる。確実に、コンセンサスノードは自らトランザクションを開始することができ、トランザクションのトランザクション情報を生成することができる。
説明を簡単にするために、以下で説明する取扱いノードは、取扱いフェーズでトランザクションを取り扱うコンセンサスノードであり、本出願の本実施形態の実施体である。
S102.トランザクション情報を別のコンセンサスノードに送信する。
トランザクション情報を取得後、取扱いノードは、取扱いノードのトランザクションプール中のトランザクション情報を記憶し、トランザクション情報を別のコンセンサスノードに送信する。それにより、別のコンセンサスノードは、トランザクション情報を受信後、別のコンセンサスノードのトランザクションプール中のトランザクション情報を記憶する。次いで、コンセンサス検証フェーズにおいて、各コンセンサスノードは、コンセンサスノードのトランザクションプールに記憶されたトランザクション情報が、前処理ブロックのすべてのトランザクション情報を含むかどうかを決定することにより、前処理ブロックを検証することができる。
別のコンセンサスノードは、取扱いノード以外のコンセンサスノードである。トランザクションプールは、トランザクション情報を記憶するために使用されるデータベースである。各コンセンサスノードは、それ自体のトランザクションプールを有する。トランザクションプールは、コンセンサスノードまたはコンセンサスノードの外部記憶装置のメモリに構築することができる。
各コンセンサスノードは、多重プロセス作業を実行し、すなわち、同時にトランザクションAを処理し、トランザクション情報の束を含む前処理ブロック(これはトランザクションAを含まない)に係るコンセンサス検証に関与することができるということは強調する価値がある。コンピューティング能力が十分である限り、コンセンサスノードは、異なるトランザクションを同時に処理する、または複数のプロセスを通じてコンセンサス検証を実行することができる。
本出願の本実施形態において、各別のコンセンサスノードがトランザクションのトランザクション情報を受信するということを出来るだけ保証する方法を詳細に説明するために、トランザクション取扱いフェーズおよびコンセンサス検証フェーズは、同一のトランザクションのトランザクション情報に関して説明される。
本出願の本実施形態において、コンセンサスノードは、各別のコンセンサスノードのためにスレッドを作成し、トランザクション情報をスレッドを通して別のコンセンサスノードに送信することができる。コンセンサスノードは、非同期呼び出し技術を使用してトランザクション情報をスレッド通して送信することができる。トランザクション情報が送信された後で、別のコンセンサスノードがトランザクション情報を受信できるかどうかにかかわらず、スレッドは取り消される。それに代えて、コンセンサスノードは、同期呼び出し技術を使用してトランザクション情報を送信することができる。トランザクション情報を送信後、コンセンサスノードは、別のコンセンサスノードがトランザクション情報を受信した後に別のコンセンサスノードによって返信される応答信号の受信を待つために、そのスレッドを使用し続ける。
S103.別のコンセンサスノードによって送信され、トランザクション情報の情報識別子を含むコンセンサス検証失敗通知を受信したとき、そのコンセンサス検証失敗通知に基づいて、トランザクション情報を再送する。
本出願の本実施形態において、コンセンサス検証失敗通知は、後続のコンセンサス検証フェーズにおいて別のコンセンサスノードによって送信される。コンセンサス検証フェーズにおいて、コンセンサスを開始するコンセンサスノード(以下リーダノードと呼ぶ)は、コンセンサスノードのトランザクションプール中の一束のトランザクションのうちのトランザクション情報を前処理ブロックにパックし、その前処理ブロックをリーダノード以外のコンセンサスノード(レプリカノードと呼ぶ)に送信する。その結果、コンセンサスノード(リーダノードおよびレプリカノード)は前処理ブロックに対してコンセンサス検証を実施する。リーダノードは、コンセンサスノードによって選ばれてもよく、または任意に特定されてもよい。
本出願の本実施形態が、トランザクション取扱いフェーズにおいて取扱いノードによって実施されるということを強調することは価値のあることである。コンセンサス検証フェーズにおいて、取扱いノードはリーダノードまたはレプリカノードとすることができる。実施形態は本出願では制限されていない。さらに、別のコンセンサスノードは、取扱いフェーズ中の取扱いノード以外のコンセンサスノードであり、別のコンセンサスノードは通常レプリカノードまたはリーダノードとすることができる。
要するに、各コンセンサスノードのアイデンティティは、トランザクション取扱いフェーズからコンセンサス検証フェーズへの遷移後、それにしたがって変わり得る。以前の取扱いノードはレプリカノードとなってよく、別の以前のコンセンサスノードはリーダノードとなってよい。
本出願の本実施形態において、前処理ブロックを検証するとき、レプリカノードは、前処理ブロック中のトランザクション情報をレプリカノードのトランザクションプールに記憶されたトランザクション情報と比較する。レプリカノードのトランザクションプールに記憶されたトランザクション情報が、前処理ブロックのすべてのトランザクション情報を含む場合、レプリカノードが、以前のトランザクション取扱いフェーズにおいてトランザクション情報を首尾よく受信したことを示す。
レプリカノードのトランザクションプールに記憶されたトランザクション情報が、前処理ブロックのすべてのトランザクション情報を含まない場合、言い換えれば、前処理ブロックの一部のトランザクション情報が、レプリカノードのトランザクションプールに記憶されたトランザクション情報から消失した場合、レプリカノードが、以前のトランザクション取扱いフェーズにおいてトランザクション情報を首尾よく受信できなかったことを示す。この場合、レプリカノードにより前処理ブロックに対して実施された検証が失敗し、レプリカノードは、消失したトランザクション情報の情報識別子を含むコンセンサス検証失敗通知を他のレプリカノードおよびリーダノードに一斉送信する。コンセンサス検証失敗通知を受信する各コンセンサスノードは、コンセンサスノードのトランザクションプールをチェックすることができ、そのコンセンサスノードのトランザクションプールが、コンセンサス検証失敗通知に含まれる情報識別子に対応するトランザクション情報を記憶する(コンセンサスノードがトランザクション取扱いフェーズにおいてトランザクション情報を首尾よく受信する、またはコンセンサスノードが取扱いノードである)場合、情報識別子に対応するトランザクション情報を、コンセンサス検証失敗通知を送信するレプリカノードに送信することができる。
通常、前処理ブロックに含まれた非常に多くのトランザクション情報があり、そのトランザクション情報は、通常様々な取扱いノードによって一斉送信されるということを強調することは価値がある。したがって、コンセンサス検証フェーズにおいて、各コンセンサスノードは、前処理ブロックに含まれる一部のトランザクション情報を欠く場合がある。各コンセンサスノードが欠くトランザクション情報は、トランザクション情報を最初に一斉送信する取扱いノードのトランザクションプールに確かに記憶されている。さらに、各コンセンサスノードが欠くトランザクション情報は、2つ以上の他のコンセンサスノードのトランザクションプールに記憶することができる。言い換えれば、コンセンサス検証フェーズにおいて、各コンセンサスノードが欠くトランザクション情報は、他のコンセンサスノードが共同して援助することにより補うことができる。
たとえば、ブロックチェーンネットワーク中にA、B、C、DおよびEの5つのコンセンサスノードがある。コンセンサス検証フェーズにおいて、リーダノードとして働くAは、前処理ブロックを生成し、前処理ブロックに含まれるトランザクション情報はL、MおよびNである。LはEが取扱いノードとして働くときEによって一斉送信され、MはAが取扱いノードとして働くときAによって一斉送信され、NはDが取扱いノードとして働くときDによって一斉送信される。BおよびCはLの取扱いフェーズにおいてLを受信するのに失敗し、BおよびEはMの取扱いフェーズにおいてMを受信するのに失敗し、BはNの取扱いフェーズにおいてNを受信するのに失敗すると仮定する。この場合、コンセンサス検証フェーズにおいて、Aが前処理ブロックをB、C、DおよびEに送信した後に、Bは、L、MおよびNの情報識別子を含むコンセンサス検証失敗通知をA、C、DおよびEに送信する。というのは、L、MおよびNがBのトランザクションプールから消失しているからである。したがって、BはAによって送信されたL、MおよびN、Cによって送信されたMおよびN、Dによって送信されたL、MおよびN、ならびに、Eによって送信されたLおよびNを個々に受信する。言い換えれば、Bのトランザクションプールから消失したトランザクション情報は、A、C、DおよびのEのコンセンサス援助により補うことができる。
さらに、ネットワーク障害により、コンセンサス検証失敗通知を受信したすべてのコンセンサスノードは、トランザクション情報をレプリカノードに補うために送信する。実際、レプリカノードがトランザクション情報を高い確率で受信することが確実となり、その結果、ネットワーク障害が軽減され、コンセンサスノードのトランザクションプールにおける一貫性が保証される。
結論として、本出願の本実施形態において、トランザクション情報を別のコンセンサスノードに送信した後で、各別のコンセンサスノードがトランザクション情報を受信したかどうかにかかわらず、コンセンサスノードは、コンセンサス検証フェーズが、補うために、トランザクショ情報を受信されたコンセンサス検証失敗通知に基づいてコンセンサス検証失敗通知を送信する別のコンセンサスノードに再送するまで、待つことができる。
図1で示された情報を送信するための方法によれば、別のコンセンサスノードが、トランザクション取扱いフェーズの取扱いノードによって送信されたトランザクション情報を受信できない場合、別のコンセンサスノードが、前処理ブロックに含まれたトランザクション情報が別のコンセンサスノードのトランザクションプールに存在しないと決定した場合に、別のコンセンサスノードは、トランザクション情報の情報識別子を含むコンセンサス検証失敗通知をコンセンサス検証フェーズの取扱いノードに送信することができ、その結果、取扱いノードはトランザクション情報を別のコンセンサスノードに再送する、ということが理解できる。本出願の本実施形態によれば、コンセンサスノードのトランザクションプールに記憶されたトランザクション情報は首尾一貫しており、したがって、コンセンサスノードのコンセンサス検証結果の精度は低下しないということができる限り保証できる。
さらに、本出願の本実施形態において、トランザクション取扱いフェーズにおいていくつかの信頼できる機構を使用して、コンセンサスノードによりトランザクション情報を別のコンセンサスノードに送信する信頼性を高めることができる。
ステップS102において、コンセンサスノードは、各別のコンセンサスノードのためにスレッドを作成し、トランザクション情報をスレッドを通して別のコンセンサスノードに送信し、別のコンセンサスノードがトランザクション情報を受信できないと決定される場合に、別のコンセンサスノードがトランザクション情報を受信する、または、所定の送信中止条件が満たされていると決定されるまで、トランザクション情報をスレッドを通して別のコンセンサスノードに再送する。
別のコンセンサスノードによって返信された応答信号が特定の期間内にスレッドを通して受信される場合、別のコンセンサスノードはトランザクション情報を受信すると決定される。別のコンセンサスノードによって返信された応答信号が特定の期間内にスレッドを通して受信されない場合、別のコンセンサスノードはトランザクション情報を受信できないと決定される。
所定の送信中止条件は、以下のようにすることができる。トランザクション情報を別のコンセンサスノードに送信する回数が所定の回数に達する、または、トランザクション情報が初回に別のコンセンサスノードに送信された以降に経過した時間が所定の継続時間を超えるとき。所定の回数および所定の継続時間は本出願では制限されていない。
コンセンサスノードは、トランザクション情報を毎回以下の方法を使用することによりスレッドを通して別のコンセンサスノードに送信することができる、ということを言及することは価値がある。コンセンサスノードは、以前の送信が失敗したと決定される場合にトランザクション情報を再送できる、または、送信を遅らせるために一定の時間間隔待つことができる。一定の時間間隔を設定することができ、個々の再送を待つ一定の時間間隔は同一であっても異なっていてもよい。たとえば、一定の時間間隔は徐々に増加または減少する。
たとえば、コンセンサスノードは、各別のコンセンサスノードのためにスレッドを作成し、最初にトランザクション情報をスレッドを通して別のコンセンサスノードに送信する。コンセンサスノードは、別のコンセンサスノードが応答信号を返信しない場合、5秒の遅延の後にトランザクション情報を再送でき、応答信号が依然として受信されない場合、15分の遅延の後にトランザクション情報を再送でき、それでも対応する信号が受信されない場合、より長時間の遅延の後にトランザクション情報を再送できる。トランザクション情報の再送は、このようにして送信回数が所定の回数に達するまで、または、トランザクション情報が別のコンセンサスノードに初めて送信された以降の経過時間が所定の継続時間を超過するまで継続する。
特に、以前の例において、コンセンサスノードがトランザクション情報を送信する回数が所定の回数に達した場合、コンセンサスノードはさらにトランザクション情報をバックキューに追加し、特にバックキューを走査するために使用されるスレッドRecoveryを作成することができる。Recoveryは、特別な時間間隔ごとにバックキューを走査してトランザクション情報を識別し、トランザクション情報は、Recoveryを通して、トランザクション情報が初めて別のコンセンサスノードに送信された以降の経過時間が所定の継続時間を超過するまで送信される。Recoveryがバックキューを走査する特定の時間間隔もまた設定できるということは確かである。すなわち、トランザクション情報を送信する回数が所定の回数に到達したスレッドは、コンセンサスノードの資源を節約するために取り消され、トランザクション情報は、バックキューに追加され、常設のRecoveryスレッドはバックキューを走査し、特定の時間間隔ごとにトランザクション情報を送信する責任がある。したがって、コンセンサスノードにより比較的大量のスレッドを保持することによって引き起こされる資源の浪費を軽減することができる。
以前の例において、コンセンサスノードは実際、弱い同期呼び出し技術を使用してトランザクション情報を別のコンセンサスノードに送信する。各別のコンセンサスノード用のスレッドを非同期的に呼び出した後で、コンセンサスノードは、同期呼び出しを使用することによりトランザクション情報をスレッドを通して別のコンセンサスノードに送信する。スレッドは、コンセンサスノードのコンピューティングリソースを占有し、コンセンサスノードは、別のコンセンサスノードが応答信号を返信するのをスレッドを通して待つ。さらに、別のコンセンサスノードが、特定の期間内に応答信号を返信するのに失敗した場合、それは別のコンセンサスノードがトランザクション情報を受信するのに失敗したことを示し、コンセンサスノードはトランザクション情報をスレッドを通して別のコンセンサスノードに再送する。したがって、トランザクション取扱いフェーズにおいて弱い同期呼び出し技術を使用することにより、コンセンサスノードは、より重要な作業工程を脇において、別のコンセンサスノードにより応答信号が返信されるのをわざわざ待つ必要がなくなり、コンセンサスノードも各別のコンセンサスノードに対応するスレッドを使用して、応答信号を待ち、トランザクション情報を繰り返し送信することができ、これにより、別のコンセンサスノードが首尾よくトランザクション情報を受信することを保証する。
さらに、本出願の本実施形態において、所定の送信中止条件が満たされているとき、別のコンセンサスノードがなお応答信号を返信しない場合は、トランザクション情報は所定のキューに追加することができる。コンセンサス検証失敗通知を受信すると、キューは、コンセンサス検証失敗通知に含まれる情報識別子に基づいて、情報識別子に対応するトランザクション情報を求めて検索され、トランザクション情報が送信される。
キューは、コンセンサスノードのメモリ中の記憶空間であり、コンセンサスノードが取扱いフェーズにおいて繰り返し送信しようと試みるが、まだ各別のコンセンサスノードによって受信されていないトランザクション情報を記憶するように構成されている。コンセンサスノードが繰り返し送信しようと試みるが、まだ受信されていないトランザクション情報は、コンセンサスノードのトランザクションプールがメモリ中に作成されていない場合には、キューに記憶され、その結果、コンセンサスノードは、トランザクション情報を、コンセンサス検証フェーズにおいてトランザクション情報を欠く別のコンセンサスノードにより迅速に送信することができる。
特に、コンセンサス検証フェーズにおいて、トランザクションプールがメモリに作成されていないとき、レプリカノードによって送信されたコンセンサス検証失敗通知を受信した場合、コンセンサスノードは、コンセンサスノードのトランザクションプールをチェックする代わりに、コンセンサスノードのキューが、レプリカノードが欠くトランザクション情報を含んでいるかどうかをチェックすべきであり、コンセンサスノードのキューがレプリカノードが欠くトランザクション情報を含んでいる場合には、トランザクション情報をレプリカノードに送信することができ、または、コンセンサスノードのキューがレプリカノードが欠くトランザクション情報を含んでいない場合には、(たとえコンセンサスノードのトランザクションプールがレプリカノードが欠くトランザクションを含んでいたとしても)トランザクション情報をレプリカノードに送信する必要はない。したがって、レプリカノードがトランザクション情報Xを欠いたとしても、トランザクション情報Xを一斉送信する取扱いノードは、取扱いノードのキューからトランザクション情報Xを取得し、トランザクション情報Xを送信することが常に保証される。したがって、トランザクション情報を欠くレプリカノードは、常に迅速に補うことができる。
図2は、本出願の一実施形態によるトランザクション取扱いフェーズにおける信頼できる機構を示す概略図である。図2に示すように、トランザクション取扱いフェーズにおいて、取扱いノードは、トランザクション情報を5秒の遅延または10分の遅延といった方法を使用して別のコンセンサスノードに送信しようと試みる、しかしトランザクション情報を送信しようとする方法は制限される。すなわち、トランザクション情報は、送信回数の数が3よりも大きい場合、より長い遅延を使用して送信される。トランザクション情報のアクティブな期間(トランザクション情報が初回に別のコンセンサスノードに送信されて以降の経過時間)が所定の継続時間(たとえば、1時間)を超える場合、トランザクション情報は、所定のキューおよび送信中止に追加される。コンセンサス検証フェーズにおいて、コンセンサスノードは、コンセンサス検証失敗通知を受信したときのみキュー中のトランザクション情報をアクティブにする。
所定の継続時間は、各コンセンサスノードがコンセンサス検証を実施する期間に基づいて決定することができる、または一般的なネットワーク障害のトラブルシューティング期間に基づいて決定することができるということは強調する価値がある。
図2に示された信頼できる機構によれば、コンセンサスノードは、トランザクション情報を送信しようとする試みを遅らせ、コンセンサスノードがトランザクション情報を5秒の遅延の後に繰り返し2度送信した後で、一時的に解決できない送信障害が発生したと示される(これはトランザクション情報を首尾よく受信できなかった別のコンセンサスノードがダウンした、または大規模な障害がネットワークに発生したのかもしれない)。その結果、コンセンサスノードは、トランザクション情報を別のコンセンサスノードに送信することを一時的に停止する。比較的長い時間(たとえば、10分)待った後で、送信障害は解消される場合があり、その場合、コンセンサスノードは、トランザクション情報を送信し続ける。トランザクション情報のアクティブな期間が長すぎる場合、トランザクション情報は、トランザクショ情報をそれを欠く別のコンセンサスノードに、補うために、引き続き再送するのを待つために、所定のキューに追加することができる。
本出願の本実施形態において、コンセンサス検証フェーズにおいて、コンセンサスノードは、トランザクション情報を欠く個々のコンセンサスノードを共同で補い、それにより、ネットワーク障害によって引き起こされる、コンセンサスノードのトランザクションプール中の不一致という問題は十分軽減することができる。これを基礎に、図2に示した信頼できる機構にしたがって、トランザクション取扱いフェーズにおいて様々な手段を使用して、別のコンセンサスノードによるトランザクション情報受信の成功率を向上させることができる。
図3は、本出願の一実施形態によるコンセンサス検証のための方法である。この方法は以下のステップを含む。
S301.コンセンサスノードは、別のコンセンサスノードによって送信された前処理ブロックを受信する。
S302.トランザクションプールに記憶されたトランザクション情報および前処理ブロックに含まれたトランザクション情報に基づいて、前処理ブロックに対してコンセンサス検証を実施する。
S303.コンセンサス検証プロセスにおいて、前処理ブロックに含まれる少なくとも1つのトランザクション情報がトランザクションプールに存在しないと決定された場合、前処理ブロックに含まれるトランザクション情報中のトランザクションプールから消失したトランザクション情報の情報識別子を決定する。
S304.情報識別子を含むコンセンサス検証失敗通知を他のコンセンサスノードに送信する。
本出願の本実施形態において、コンセンサスノードは、コンセンサス検証フェーズにおいて、前処理ブロックを検証するコンセンサスノード、すなわち、レプリカノードである。別のコンセンサスノードは、コンセンサスを開始するノード、すなわち、リーダノードである。
図3に示したコンセンサス検証のための方法の詳細な説明は、図1に示したトランザクション情報を送信するための方法の説明に記録してきた。ここでは話を簡単にするため詳細は省略する。
図1に示したトランザクション情報を送信するための方法に基づいて、本出願の一実施形態は、さらに同様に、トランザクション情報を送信するためのデバイスを提供する。図4に示すように、このデバイスは以下の、トランザクション情報を取得するように構成された取得モジュール401、トランザクション情報を別のコンセンサスノードに送信するように構成された第1の送信モジュール402、および、別のコンセンサスノードによって送信されトランザクション情報の情報識別子を含むコンセンサス検証失敗通知が受信されたとき、コンセンサス検証失敗通知に基づいて、トランザクション情報を再送するように構成された第2の送信モジュール403を備える。
取得モジュール401は、クライアントデバイスによって送信されたトランザクション情報を受信するように構成される。
第1の送信モジュール402は、各別のコンセンサスノードのためのスレッドを作成し、トランザクション情報をそのスレッド通して別のコンセンサスノードに送信するように構成される。
第1の送信モジュール402は、別のコンセンサスノードがトランザクション情報を受信できないと決定される場合に、別のコンセンサスノードがトランザクション情報を受信する、または、所定の送信中止条件が満たされていると決定されるまで、トランザクション情報をスレッドを通して別のコンセンサスノードに再送するように構成される。
第1の送信モジュール402は、別のコンセンサスノードによって返信された応答信号が特定の期間内にスレッドを通して受信される場合、別のコンセンサスノードはトランザクション情報を受信すると決定するように構成され、または、別のコンセンサスノードによって返信された応答信号が特定の期間内にスレッドを通して受信されない場合、別のコンセンサスノードはトランザクション情報を受信できないと決定するように構成される。
所定の送信中止条件は以下のことを含むことができる。トランザクション情報を別のコンセンサスノードに送信する回数が所定の回数に達する、または、トランザクション情報が初回に別のコンセンサスノードに送信された以降に経過した時間が所定の継続時間を超える。
デバイスは、所定の送信中止条件が満たされているとき、トランザクション情報を所定のキューに追加するように構成された追加モジュール404をさらに含む。
第2の送信モジュール403は、コンセンサス検証失敗通知に含まれる情報識別子に基づいて、情報識別子に対応するトランザクション情報を求めてキューを検索し、トランザクション情報を送信するように構成される。
図3に示した、コンセンサス検証のための方法に基づいて、本出願の一実施形態は、コンセンサス検証のためのデバイスをさらに同様に提供する。図5に示すように、デバイスは以下の、別のコンセンサスノードによって送信された前処理ブロックを受信するように構成された受信モジュール501、トランザクションプールに記憶されたトランザクション情報および前処理ブロックに含まれたトランザクション情報に基づいて、前処理ブロックについてコンセンサス検証を実施するように構成されたコンセンサス検証モジュール502、ならびに、コンセンサス検証プロセスにおいて、前処理ブロックに含まれる少なくとも1つのトランザクション情報がトランザクションプールに存在しないと決定された場合、前処理ブロックに含まれるトランザクション情報中のトランザクションプールから消失したトランザクション情報の情報識別子を決定し、その情報識別子を含むコンセンサス検証失敗通知を他のコンセンサスノードに送信するように構成された送信モジュール503を備える。
1990年代においては、技術進歩はハードウェアの進歩(たとえば、ダイオード、トランジスタまたはスイッチなどの回路構造の進歩)であるかソフトウェアの進歩(方法手続きの進歩)であるかは、明確に区別することができた。しかし、技術が発展するにつれて、現在の多くの方法手続きの進歩は、ハードウェア回路構造の直接の進歩であると考えることができる。設計者は通常、改良された方法手続きをハードウェア回路にプログラミングして、対応するハードウェア回路構造を取得する。したがって、方法手続きは、ハードウェアエンティティモジュールを使用することによって改良することができる。たとえば、プログラム可能論理回路(PLD : programmable logic device)(たとえば、フィールドプログラマブルゲートアレイ(FPGA : field programmable gate array))は、こうした集積回路であり、PLDの論理機能は、デバイスのプログラミングを通してユーザによって決定される。設計者は、チップの製造業者に特定用途向け集積回路チップの設計および製造を依頼する必要なく、プログラミングを実施してデジタルシステムをPLDに「組み込む」。さらに、今のところ、集積回路チップを手作業で製造する代わりに、こうしたプログラミングは、「論理コンパイラ」ソフトウェアを使用してほとんど実装される。論理コンパイラソフトウェアは、プログラムを開発し書くために使用されるソフトウェアコンパイラに似ている。オリジナルコードは、コンパイルするために特定のプログラミング言語で書く必要がある。その言語は、ハードウェア記述言語(HDL : hardware description language)と呼ばれる。先進論理式言語(ABEL : Advanced Boolean Expression Language)、可変ハードウェア記述言語(AHDL : Altera Hardware Description Language)、合流コーネル大学プログラミング言語(CUPL)、HDCal、ジャバハードウェア記述言語(JHDL : Java(登録商標) Hardware Description Language)、Lava、Lola、MyHDL、PALASM、およびルビーハードウェア記述言語(RHDL : Ruby
Hardware Description Language)といった、多くのHDLがある。超高速集積回路ハードウェア記述言語(VHDL : very-high-speed integrated circuit hardware description language)およびVerilogが、最も一般的に使用される。当業者はまた、論理方法手続きを実装するハードウェア回路は、いったん方法手続きがいくつかの記載されたハードウェア記述言語を使用して論理的にプログラミングされ集積回路にプログラムされると、容易に入手できるということを理解すべきである。
制御装置は、任意の適切な方法を使用して実装することができる。たとえば、制御装置は、マイクロプロセッサまたはプロセッサ、および、マイクロプロセッサまたはプロセッサ、論理ゲート、スイッチ、特定用途向け集積回路(ASIC : application-specific integrated circuit)、プログラマブル論理制御装置、または組込みマイクロコントローラによって実行できるコンピュータ可読プログラムコード(ソフトウェアまたはファームウェアなど)を記憶するコンピュータ可読媒体とすることができる。制御装置の例としては、以下のマイクロプロセッサ、すなわち、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、および、Silicone 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 : electrically erasable programmable read-only memory)、フラッシュメモリもしくは別のメモリ技術、コンパクトディスクリードオンリメモリ(CD-ROM)デジタル多用途ディスク(DVD)もしくは別の光学式記憶装置、磁気カセット、磁気テープ、磁気テープ/磁気ディスクメモリもしくは別の磁気ストレージデバイス、または、コンピューティングデバイスによってアクセスできるメッセージを記憶するために使用することができる任意の他の非伝送媒体が挙げられるが、これだけには限られない。本明細書の定義に基づいて、コンピュータ可読媒体は、変調されたデータ信号およびキャリヤといった、一時的なコンピュータ可読媒体(一時的媒体)は含まない。
「include」、「comprise」またはそれらのいかなる他の変異形の用語は、非排他的な包含関係を含もうとするものであり、そのため、要素の一覧表を含むプロセス、方法、製品またはデバイスは、これらの要素を含むだけでなく明白に表に載せていない他の要素も含む、あるいは、こうしたプロセス、方法、製品またはデバイスに固有の要素もさらに含むということにさらに言及することは価値のあることである。さらなる制限なしに、「includes...」に続く要素は、要素を含むプロセス、方法、製品またはデバイス中の追加的な同一の要素の存在を排除しない。
当業者は、本出願の一実施形態は、方法、システムまたはコンピュータプログラム製品として提供できるということを理解すべきである。したがって、本開示は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、または、ソフトウェアとハードウェアとを組み合せた実施形態の形式を使用することができる。さらに、本出願は、コンピュータが使えるプログラムコードを含む、1つまたは複数のコンピュータが使える記憶媒体(ディスクメモリ、CD-ROM、光学メモリ等を含むがこれだけには限られない)に実装されたコンピュータプログラム製品の形式を使用することができる。
本出願は、たとえば、プログラムモジュールといった、コンピュータによって実行されるコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実行する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本出願はまた、分散されたコンピューティング環境で実行することができる。分散されたコンピューティング環境において、タスクは通信ネットワークを通して接続された遠隔の処理デバイスによって実行される。分散されたコンピューティング環境において、プログラムモジュールは、記憶デバイスを含むローカルおよび遠隔の両方のコンピュータ記憶媒体に配置することができる。
本明細書における実施形態は段階的に記載されている。実施形態の同一または類似の部分について、実施形態への言及がなされ得る。各実施形態は、他の実施形態との相違に焦点が当てられている。特に、システムの実施形態は、基本的に方法の実施形態と類似しており、したがって簡単に記載されている。関連する部分については、方法の実施形態の関連する記載への言及がなされ得る。
以前の実施形態は、本出願の実施形態であり、本出願を制限しようとするものではない。当業者は、本出願に様々な変更および変化を加えることができる。本出願の趣旨および原理から逸脱することなくなされた、どのような変更、同等の置換え、または改良も、本出願における特許請求の範囲内に当てはまるものとする。
401 取得モジュール
402 第1の送信モジュール
403 第2の送信モジュール
501 受信モジュール
502 コンセンサス検証モジュール
503 送信モジュール

Claims (16)

  1. トランザクション情報を送信するための方法であって、
    トランザクション情報をコンセンサスノードによって取得するステップと、
    前記トランザクション情報を別のコンセンサスノードに送信するステップと、
    前記別のコンセンサスノードによって送信され、前記トランザクション情報の情報識別子を含むコンセンサス検証失敗通知の受信に応答して、前記コンセンサス検証失敗通知に基づいて前記トランザクション情報を再送するステップと、
    を含む、トランザクション情報を送信するための方法。
  2. コンセンサスノードによりトランザクション情報を取得する前記ステップが、クライアントデバイスによって送信されたトランザクション情報を前記コンセンサスノードによって受信するステップを含む、請求項1に記載の方法。
  3. 前記トランザクション情報を別のコンセンサスノードに送信する前記ステップが、
    各別のコンセンサスノードのためのスレッドを作成するステップと、
    前記トランザクション情報を前記別のコンセンサスノードに前記スレッドを通して送信するステップと、を含む、請求項1に記載の方法。
  4. 前記トランザクション情報を前記別のコンセンサスノードに前記スレッドを通して送信する前記ステップが、
    前記別のコンセンサスノードが前記トランザクション情報を受信できないとの決定に応答して、前記別のコンセンサスノードが前記トランザクション情報を受信する、または、所定の送信中止条件が満たされていると決定されるまで、前記トランザクション情報を前記スレッドを通して前記別のコンセンサスノードに再送するステップを含む、請求項3に記載の方法。
  5. 前記別のコンセンサスノードが前記トランザクション情報を受信すると決定する前記ステップが、
    前記別のコンセンサスノードによって返信された応答信号が特定の期間内に前記スレッドを通して受信されるとの決定に応答して、前記別のコンセンサスノードが前記トランザクション情報を受信したと決定するステップを含み、または、
    前記別のコンセンサスノードが前記トランザクション情報を受信できない決定する前記ステップが、
    前記別のコンセンサスノードによって返信された応答信号が前記特定の期間内に前記スレッドを通して受信されないとの決定に応答して、前記別のコンセンサスノードが前記トランザクション情報を受信できないと決定するステップを含む、請求項4に記載の方法。
  6. 前記所定の送信中止条件が、
    前記トランザクション情報を前記別のコンセンサスノードに送信する回数が所定の回数に達すること、または、
    前記トランザクション情報が初回に前記別のコンセンサスノードに送信された以降に経過した時間が所定の継続時間を超えることを含む、請求項4に記載の方法。
  7. 前記所定の送信中止条件が満たされているとき、
    前記トランザクション情報を所定のキューに追加するステップをさらに含み、かつ、
    コンセンサス検証失敗通知に基づいて前記トランザクション情報を再送する前記ステップが、
    前記コンセンサス検証失敗通知に含まれる前記情報識別子に基づいて、前記情報識別子に対応する前記トランザクション情報を求めて前記キューを検索するステップと、
    前記トランザクション情報を送信するステップと、を含む、請求項4に記載の方法。
  8. コンセンサス検証のための方法であって、
    別のコンセンサスノードによって送信された前処理ブロックをコンセンサスノードによって受信するステップと、
    トランザクションプールに記憶されたトランザクション情報、および前記前処理ブロックに含まれたトランザクション情報に基づいて、前記前処理ブロックについてコンセンサス検証を実施するステップと、
    コンセンサス検証プロセスにおいて、前記前処理ブロックに含まれる少なくとも1つのトランザクション情報が前記トランザクションプールに存在しないとの決定に応答して、前記前処理ブロックに含まれる前記トランザクション情報中の前記トランザクションプールから消失した前記トランザクション情報の情報識別子を決定するステップと、
    前記情報識別子を含むコンセンサス検証失敗通知を前記他のコンセンサスノードに送信するステップと、
    を含む、コンセンサス検証のための方法。
  9. トランザクション情報を送信するためのデバイスであって、
    トランザクション情報を取得するように構成された取得モジュールと、
    前記トランザクション情報を別のコンセンサスノードに送信するように構成された第1の送信モジュールと、
    前記別のコンセンサスノードによって送信され、前記トランザクション情報の情報識別子を含むコンセンサス検証失敗通知の受信に応答して、前記コンセンサス検証失敗通知に基づいて前記トランザクション情報を再送するように構成された第2の送信モジュールと
    を備える、トランザクション情報を送信するためのデバイス。
  10. 前記取得モジュールが、クライアントデバイスによって送信されたトランザクション情報を受信するように構成される、請求項9に記載のデバイス。
  11. 前記第1の送信モジュールが、各別のコンセンサスノードのためのスレッドを作成するように構成され、前記トランザクション情報を前記スレッドを通して前記別のコンセンサスノード送信する、請求項9に記載のデバイス。
  12. 前記別のコンセンサスノードが前記トランザクション情報を受信できないとの決定に応答して、前記別のコンセンサスノードが前記トランザクション情報を受信する、または、所定の送信中止条件が満たされていると決定されるまで、前記第1の送信モジュールが前記トランザクション情報を前記スレッドを通して前記別のコンセンサスノードに再送するように構成される、請求項11に記載のデバイス。
  13. 前記第1の送信モジュールが、前記別のコンセンサスノードによって返信された応答信号が特定の期間内に前記スレッドを通して受信されるとの決定に応答して、前記別のコンセンサスノードは前記トランザクション情報を受信すると決定するように、または、前記別のコンセンサスノードによって返信された応答信号が前記特定の期間内に前記スレッドを通して受信されないとの決定に応答して、前記別のコンセンサスノードは前記トランザクション情報を受信できないと決定するように構成される、請求項12に記載のデバイス。
  14. 前記所定の送信中止条件が、
    前記トランザクション情報を前記別のコンセンサスノードに送信する回数が所定の回数に達すること、または、
    前記トランザクション情報が初回に前記別のコンセンサスノードに送信された以降に経過した時間が所定の継続時間を超えることを含む、請求項12に記載のデバイス。
  15. 前記デバイスが、
    前記所定の送信中止条件が満たされているとき、前記トランザクション情報を所定のキューに追加するように構成された追加モジュールをさらに備え、かつ、
    前記第2の送信モジュールが、前記コンセンサス検証失敗通知に含まれる前記情報識別子に基づいて前記情報識別子に対応する前記トランザクション情報を求めて前記キューを検索し、前記トランザクション情報を送信するように構成される、請求項12に記載のデバイス。
  16. コンセンサス検証のためのデバイスであって、
    別のコンセンサスノードによって送信された前処理ブロックを受信するように構成された受信モジュールと、
    トランザクションプールに記憶されたトランザクション情報、および前記前処理ブロックに含まれたトランザクション情報に基づいて、前記前処理ブロックについてコンセンサス検証を実施するように構成されたコンセンサス検証モジュールと、
    コンセンサス検証プロセスにおいて、前記前処理ブロックに含まれた少なくとも1つのトランザクション情報が前記トランザクションプールに存在しないとの決定に応答して、前記前処理ブロックに含まれる前記トランザクション情報中の前記トランザクションプールから消失した前記トランザクション情報の情報識別子を決定し、前記情報識別子を含むコンセンサス検証失敗通知を前記他のコンセンサスノードに送信するように構成された送信モジュールと、
    を備える、コンセンサス検証のためのデバイス。
JP2019534718A 2017-03-24 2018-03-19 トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイス Active JP6794551B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710181241.4 2017-03-24
CN201710181241.4A CN107392611B (zh) 2017-03-24 2017-03-24 一种发送交易信息和共识验证的方法及装置
PCT/CN2018/079439 WO2018171545A1 (zh) 2017-03-24 2018-03-19 一种发送交易信息和共识验证的方法及装置

Publications (3)

Publication Number Publication Date
JP2020516973A true JP2020516973A (ja) 2020-06-11
JP2020516973A5 JP2020516973A5 (ja) 2020-08-20
JP6794551B2 JP6794551B2 (ja) 2020-12-02

Family

ID=60338903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019534718A Active JP6794551B2 (ja) 2017-03-24 2018-03-19 トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイス

Country Status (15)

Country Link
US (1) US10679217B2 (ja)
EP (1) EP3543937A4 (ja)
JP (1) JP6794551B2 (ja)
KR (1) KR102151899B1 (ja)
CN (2) CN111612468B (ja)
AU (1) AU2018240159B2 (ja)
BR (1) BR112019012905A2 (ja)
CA (1) CA3047884C (ja)
MX (1) MX2019007557A (ja)
PH (1) PH12019501470A1 (ja)
RU (1) RU2735156C1 (ja)
SG (1) SG10202107139RA (ja)
TW (1) TWI727120B (ja)
WO (1) WO2018171545A1 (ja)
ZA (1) ZA201904053B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111612468B (zh) * 2017-03-24 2024-03-19 创新先进技术有限公司 一种发送交易信息和共识验证的方法及装置
CN108009824A (zh) * 2017-11-28 2018-05-08 北京博晨技术有限公司 数据共识方法、装置及电子设备
CN108537525B (zh) 2018-03-09 2020-06-09 阿里巴巴集团控股有限公司 一种共识验证方法、装置及设备
CN108600163B (zh) * 2018-03-13 2020-12-15 南京邮电大学 一种云环境分布式哈希链架构及云数据完整性验证方法
GB2572340A (en) * 2018-03-26 2019-10-02 Fetch Ai Ltd Data processing system using directed acyclic graph and method of use thereof
CN108765150A (zh) * 2018-05-11 2018-11-06 中国联合网络通信集团有限公司 交易信息处理方法及存储节点
CN108665365B (zh) * 2018-05-16 2021-07-13 四川大学 一种混合区块链架构系统、处理方法及处理系统
CN108960604B (zh) * 2018-06-25 2021-06-29 山东大海集团有限公司 一种信息处理的方法、系统及装置
CN109191135A (zh) * 2018-08-27 2019-01-11 北京京东金融科技控股有限公司 基于区块链的交易重试方法、装置、设备及可读存储介质
CN109461079B (zh) * 2018-10-29 2022-04-05 众安信息技术服务有限公司 基于区块链的交易处理方法和装置
CN111182009B (zh) * 2018-11-09 2023-06-20 北京天德科技有限公司 一种区块链交易消息多汇点分发的方法
CN109639656B (zh) * 2018-12-03 2020-12-25 北京瑞卓喜投科技发展有限公司 一种区块链隐私数据传输方法及隐私数据传输系统
CN111353884B (zh) * 2018-12-20 2024-05-03 上海智知盾科技有限公司 区块链交易处理方法及系统
CN109831425B (zh) * 2019-01-25 2022-02-15 中国联合网络通信集团有限公司 区块链共识方法、装置、设备及计算机可读存储介质
CN110033271B (zh) * 2019-03-22 2023-12-22 湖南天河国云科技有限公司 一种跨链交易方法、系统及计算机可读存储介质
CN110570171B (zh) * 2019-09-11 2022-03-11 杭州秘猿科技有限公司 交易池节点同步方法、电子设备和计算机可读存储介质
CN110782255B (zh) * 2019-11-06 2022-11-15 杭州复杂美科技有限公司 延时交易取消方法、设备和存储介质
CN111064813B (zh) * 2020-03-16 2020-06-30 支付宝(杭州)信息技术有限公司 在区块链共识处理时进行处理消息同步的方法及装置
US11321149B1 (en) 2021-02-08 2022-05-03 Visa International Service Association Synchronization consensus token system and method
CN112883068A (zh) * 2021-04-30 2021-06-01 支付宝(杭州)信息技术有限公司 区块链交易执行方法、区块链节点及控制装置
CN113379542B (zh) * 2021-05-28 2024-01-09 中邮信息科技(北京)有限公司 一种区块链交易的查询方法、装置、介质及电子设备
CN113269645B (zh) * 2021-05-28 2024-05-17 中邮信息科技(北京)有限公司 一种区块链的交易信息调度方法、装置、介质及电子设备
CN113378240B (zh) * 2021-06-23 2023-03-28 浪潮云信息技术股份公司 一种基于区块链的同步调用用户身份认证方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819020A (en) * 1995-10-16 1998-10-06 Network Specialists, Inc. Real time backup system
US5931917A (en) * 1996-09-26 1999-08-03 Verifone, Inc. System, method and article of manufacture for a gateway system architecture with system administration information accessible from a browser
US7620680B1 (en) * 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
US20060235795A1 (en) 2005-04-19 2006-10-19 Microsoft Corporation Secure network commercial transactions
CN102792325B (zh) * 2010-04-09 2017-09-01 维萨国际服务协会 用于安全地证实交易的系统和方法
US11270298B2 (en) * 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US11232415B2 (en) * 2015-05-28 2022-01-25 OX Labs Inc. Method for cryptographically managing title transactions
CN105488665A (zh) * 2015-11-25 2016-04-13 布比(北京)网络技术有限公司 一种去中心化的交易方法
CN105630609B (zh) 2016-02-24 2021-05-11 杭州复杂美科技有限公司 区块链的打包存储方法
CN106060036B (zh) * 2016-05-26 2019-07-16 布比(北京)网络技术有限公司 去中心化共识方法及装置
RU2016123959A (ru) 2016-06-16 2017-12-21 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запроса на транзакцию в распределенных системах обработки данных
CN106445711B (zh) * 2016-08-28 2019-04-30 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
CN106372868B (zh) * 2016-09-06 2020-02-18 联动优势科技有限公司 一种对写入区块链的交易数据的验证方法和装置
CN106503589A (zh) * 2016-10-26 2017-03-15 北京瑞卓喜投科技发展有限公司 区块链交易信息正确性的校验方法、装置及系统
CN106506146A (zh) * 2016-10-26 2017-03-15 北京瑞卓喜投科技发展有限公司 基于区块链技术的交易信息校验方法、装置及系统
US10862959B2 (en) * 2016-11-28 2020-12-08 Keir Finlow-Bates Consensus system and method for adding data to a blockchain
CN111612468B (zh) * 2017-03-24 2024-03-19 创新先进技术有限公司 一种发送交易信息和共识验证的方法及装置

Also Published As

Publication number Publication date
JP6794551B2 (ja) 2020-12-02
MX2019007557A (es) 2019-09-06
CN107392611A (zh) 2017-11-24
BR112019012905A2 (pt) 2019-12-03
CN111612468B (zh) 2024-03-19
AU2018240159B2 (en) 2021-02-04
WO2018171545A1 (zh) 2018-09-27
TW201835831A (zh) 2018-10-01
CA3047884C (en) 2021-01-19
PH12019501470A1 (en) 2020-02-24
CA3047884A1 (en) 2018-09-27
ZA201904053B (en) 2021-01-27
KR102151899B1 (ko) 2020-09-03
RU2735156C1 (ru) 2020-10-28
EP3543937A1 (en) 2019-09-25
EP3543937A4 (en) 2019-12-04
SG10202107139RA (en) 2021-08-30
KR20190086747A (ko) 2019-07-23
TWI727120B (zh) 2021-05-11
CN111612468A (zh) 2020-09-01
CN107392611B (zh) 2020-04-24
US20190347663A1 (en) 2019-11-14
US10679217B2 (en) 2020-06-09
AU2018240159A1 (en) 2019-07-11

Similar Documents

Publication Publication Date Title
JP6794551B2 (ja) トランザクション情報を送信するためのおよびコンセンサス検証のための方法およびデバイス
KR20190099222A (ko) 블록체인 기반 합의 방법 및 디바이스
WO2018161901A1 (zh) 一种共识方法及装置
JP6876806B2 (ja) ブロックチェーンコンセンサス形成の方法およびデバイス
CN113766035B (zh) 一种业务受理及共识的方法及装置
WO2018171543A1 (zh) 一种广播消息的方法及装置
CN116069792A (zh) 一种数据库容灾系统、方法、装置、存储介质及电子设备
CN116954952A (zh) 一种机器人的自适应混合通信方法、装置、介质及设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190820

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200706

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200706

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200928

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201111

R150 Certificate of patent or registration of utility model

Ref document number: 6794551

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