(57)【特許請求の範囲】
【請求項１】
メッセージをブロードキャストするための方法であって、
ブロックチェーンネットワークのコンセンサスノードによって、第1のブロードキャストメッセージを得るステップと、
前記コンセンサスノードによって、前記コンセンサスノードに対応するメッセージ処理デバイスのための第1のスレッドを作成するステップと、
前記コンセンサスノードによって、前記第1のスレッドを用いることによって、前記第1のブロードキャストメッセージを前記メッセージ処理デバイスに送信するステップと、
前記コンセンサスノードによって、前記第1のスレッドをキャンセルするステップと、
前記コンセンサスノードに対応する前記メッセージ処理デバイスによって、前記第1のブロードキャストメッセージを前記コンセンサスノードから受信するステップと、
前記コンセンサスノードに対応する前記メッセージ処理デバイスによって、他の各コンセンサスノードに対応するメッセージ処理デバイスのための第2のスレッドを作成するステップと、
前記コンセンサスノードに対応する前記メッセージ処理デバイスによって、前記第2のスレッドを用いることによって、別のコンセンサスノードに対応するメッセージ処理デバイスに前記第1のブロードキャストメッセージを送信するステップと、
前記別のコンセンサスノードに対応する前記メッセージ処理デバイスが前記第1のブロードキャストメッセージを受信したとの判断に応答して、前記コンセンサスノードに対応する前記メッセージ処理デバイスによって、前記第2のスレッドをキャンセルするステップと、を含む、方法。
【請求項２】
前記コンセンサスノードは、地域専用通信線を用いることによって前記メッセージ処理デバイスに接続される、請求項1に記載の方法。
【請求項３】
前記コンセンサスノードに対応する前記メッセージ処理デバイスによって送信される第2のブロードキャストメッセージを受信するステップであって、前記第2のブロードキャストメッセージは、前記別のコンセンサスノードに対応する前記メッセージ処理デバイスによってブロードキャストされる、ステップを更に含む、請求項1に記載の方法。
【請求項４】
前記別のコンセンサスノードに対応する前記メッセージ処理デバイスが前記第1のブロードキャストメッセージを受信したと判断するステップは、特に、
各第2のスレッドを用いることによって、受信した応答信号の数をカウントするステップであって、前記応答信号は、前記別のコンセンサスノードに対応する前記メッセージ処理デバイスによって、前記第1のブロードキャストメッセージを受信した後に返される、ステップと、
前記受信した応答信号のカウント数が特定値以上になるまで、前記数が前記特定値よりも小さいとの判断に応答して、各第2のスレッドを用いることによって前記第1のブロードキャストメッセージを再送するステップであって、前記特定値は、0よりも大きい整数である、ステップと、
を含む、請求項1に記載の方法。
【請求項５】
前記別のコンセンサスノードに対応する前記メッセージ処理デバイスによってブロードキャストされる第2のブロードキャストメッセージを受信するステップと、
前記第2のブロードキャストメッセージを前記コンセンサスノードに送信するステップと、
を更に含む、請求項1に記載の方法。
【請求項６】
前記第1のスレッドを作成するステップは、非同期呼技術に基づく、請求項1に記載の方法。
【請求項７】
前記ブロックチェーンネットワークは、コンソーシアムブロックチェーンネットワークを含む、請求項1に記載の方法。
【請求項８】
メッセージをブロードキャストするためのシステムであって、
第1のブロードキャストメッセージを得るように構成された取得モジュールと、
コンセンサスノードに対応するメッセージ処理デバイスのための第1のスレッドを作成し、
前記第1のスレッドを用いることによって、前記第1のブロードキャストメッセージを前記メッセージ処理デバイスに送信するように構成された送信モジュールと、
前記第1のスレッドをキャンセルするように構成されたキャンセルモジュールと
を備えるデバイスと、
前記第1のブロードキャストメッセージを前記デバイスから受信するように構成された受信モジュールと、
他の各コンセンサスノードに対応するメッセージ処理デバイスのための第2のスレッドを作成し、前記第2のスレッドを用いることによって、別のコンセンサスノードに対応するメッセージ処理デバイスに前記第1のブロードキャストメッセージを送信するように構成された送信モジュールと、
前記別のコンセンサスノードに対応する前記メッセージ処理デバイスが前記第1のブロードキャストメッセージを受信したとの判断に応答して、前記第2のスレッドをキャンセルするように構成されたキャンセルモジュールと
を備える前記コンセンサスノードに対応するメッセージ処理デバイスと
を有する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、ブロックチェーン技術の分野に関し、特に、メッセージをブロードキャストするための方法およびデバイスに関する。
【背景技術】
【０００２】
ブロックチェーン技術の分野では、サービスに対するコンセンサス検証を行う役割を果たすブロックチェーンノードが、コンセンサスノードと呼ばれる。ブロックチェーンのグローバル化の傾向にある中、コンセンサスノードは多くの場合、世界中に分布している。
【０００３】
各コンセンサスノードは、通例、サービスハンドリングフェーズ、コンセンサス検証フェーズ、および他のフェーズにおいてコンセンサスノードにメッセージ(例えば、サービスメッセージまたはコンセンサスメッセージ)をブロードキャストする必要がある。グローバル化した異種ネットワークは、メッセージ送信プロセスにおいて不安定性を引き起こす可能性があり、例えば、中国のネットワークおよびアメリカのネットワークは異種ネットワークであり、アメリカのネットワークにおけるコンセンサスノードは、中国のネットワークにおけるコンセンサスノードによってブロードキャストされるメッセージの受信に失敗する場合がある。したがって、他の各コンセンサスノードが比較的高い成功率でメッセージを受信することを確実にするために、メッセージをブロードキャストするコンセンサスノードは、通例、他の各コンセンサスノードのために1つのスレッドを作成し、このスレッドを用いることによって、メッセージを別のコンセンサスノードに送信するタスクを実行する。
【０００４】
特に、スレッドを用いることによってメッセージを別のコンセンサスノードに送信した後、メッセージをブロードキャストするコンセンサスノードは、この別のコンセンサスノードによって返される通知(この別のコンセンサスノードがメッセージを受信したことを知らせる)の受信を待機する。スレッドを用いることによって指定の時間内に通知を受信しない場合、メッセージをブロードキャストするコンセンサスノードが通知を受信するまで、メッセージをブロードキャストするコンセンサスノードは、スレッドを用いることによって、この別のコンセンサスノードにメッセージを再び送信する。代替的に、メッセージをブロードキャストするコンセンサスノードが、メッセージを複数回送信した後、スレッドを用いることによって通知を依然として受信しない場合、メッセージをブロードキャストするコンセンサスノードはスレッドをキャンセルする。したがって、別のコンセンサスノードが比較的高い成功率でメッセージを受信することを確実にすることができる。
【０００５】
しかしながら、実際に、メッセージをブロードキャストするコンセンサスノードによって作成されるスレッドを用いることによって、別のコンセンサスノードにメッセージを送信するタスクを実行するとき、メッセージをブロードキャストするコンセンサスノードは、通例、メッセージを複数回繰り返して送信する必要がある。これにより、メッセージをブロードキャストするコンセンサスノードの多数のコンピューティングリソースが消費され、メッセージをブロードキャストするコンセンサスノードに対する過度の負担が生じる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本出願の実施形態は、メッセージをブロードキャストするための既存の方法により、メッセージをブロードキャストするコンセンサスノードに対する過度の負担が生じる問題を回避するために、メッセージをブロードキャストするための方法およびデバイスを提供する。
【課題を解決するための手段】
【０００７】
上記の技術的問題を回避するために、本出願の実施形態は、以下のように実施される。
【０００８】
本出願の実施形態は、メッセージをブロードキャストするための方法であって、ブロックチェーンネットワークのコンセンサスノードによって、第1のブロードキャストメッセージを得るステップと、コンセンサスノードに対応するメッセージ処理デバイスのための第1のスレッドを作成するステップと、第1のスレッドを用いることによって、第1のブロードキャストメッセージをメッセージ処理デバイスに送信するステップであって、メッセージ処理デバイスは、別のコンセンサスノードに対応するメッセージ処理デバイスに第1のブロードキャストメッセージを送信する、ステップと、第1のスレッドをキャンセルするステップとを含む、方法を提供する。
【０００９】
本出願の実施形態は、メッセージをブロードキャストするための別の方法であって、メッセージ処理デバイスによって、メッセージ処理デバイスに対応するコンセンサスノードによって送信される第1のブロードキャストメッセージを受信するステップと、他の各コンセンサスノードに対応するメッセージ処理デバイスのための第2のスレッドを作成するステップと、第2のスレッドを用いることによって、別のコンセンサスノードに対応するメッセージ処理デバイスに第1のブロードキャストメッセージを送信するステップと、別のコンセンサスノードに対応するメッセージ処理デバイスが第1のブロードキャストメッセージを受信するとの判断に応答して、第2のスレッドをキャンセルするステップとを含む、方法を提供する。
【００１０】
本出願の実施形態は、メッセージをブロードキャストするためのデバイスであって、第1のブロードキャストメッセージを得るように構成された取得モジュールと、送信モジュールであって、デバイスに対応するメッセージ処理デバイスのための第1のスレッドを作成し、第1のスレッドを用いることによって、第1のブロードキャストメッセージをメッセージ処理デバイスに送信するように構成され、メッセージ処理デバイスは、別のコンセンサスノードに対応するメッセージ処理デバイスに第1のブロードキャストメッセージを送信する、送信モジュールと、第1のスレッドをキャンセルするように構成されたキャンセルモジュールとを備える、デバイスを提供する。
【００１１】
本出願の実施形態は、メッセージをブロードキャストするための別のデバイスであって、デバイスに対応するコンセンサスノードによって送信される第1のブロードキャストメッセージを受信するように構成された第1の受信モジュールと、送信モジュールであって、他の各コンセンサスノードに対応するメッセージ処理デバイスのための第2のスレッドを作成し、第2のスレッドを用いることによって、第1のブロードキャストメッセージを別のコンセンサスノードに対応するメッセージ処理デバイスに送信するように構成された送信モジュールと、別のコンセンサスノードに対応するメッセージ処理デバイスが第1のブロードキャストメッセージを受信するとの判断に応答して、第2のスレッドをキャンセルするように構成されたキャンセルモジュールとを備える、デバイスを提供する。
【００１２】
本出願の実施形態において提供される上記の技術的解決策から、本出願の実施形態において、1つのメッセージ処理デバイスが各コンセンサスノードに配分され、コンセンサスノード間でメッセージをブロードキャストする機能が、実施のためにメッセージ処理デバイスにハンドオーバーされることがわかる。特定のコンセンサスノードのために、そのコンセンサスノードに対応するメッセージ処理デバイスは、別のコンセンサスノードに対応するメッセージ処理デバイスがブロードキャストメッセージを受信するまで、この別のコンセンサスノードに対応するメッセージ処理デバイスがメッセージブロードキャスティングタスクを実行するためのスレッドを作成することができる。したがって、メッセージブロードキャスティングタスクを実行するためのスレッドは、コンセンサスノードのリソースを消費することなく、メッセージ処理デバイスのコンピューティングリソースのみを消費する。したがって、コンセンサスノードに対する負荷は生じず、それによって、コンセンサスノードは、サービスに対するコンセンサス検証をより効率的に行うことができる。
【００１３】
本出願の実施形態または既存の技術における技術的解決策をより明確に説明するために、以下は、実施形態または既存の技術を説明するのに必要な添付の図面について簡潔に説明する。明らかに、以下の説明における添付の図面は、本出願のいくつかの実施形態を示すものに過ぎず、当業者は、依然として、創造的取り組みなしでこれらの添付の図面から他の図面を導出することができる。
【図面の簡単な説明】
【００１４】
【図１】本出願の実施形態による、メッセージをブロードキャストするための方法を示すフローチャートである。
【図２】メッセージをブロードキャストするための既存の方法を、本出願において提供されるメッセージをブロードキャストするための方法と比較する例を示す概略図である。
【図３】本出願の実施形態による、メッセージをブロードキャストするためのデバイスを示す概略図である。
【図４】本出願の実施形態による、メッセージをブロードキャストするための別のデバイスを示す概略図である。
【発明を実施するための形態】
【００１５】
本出願の実施形態は、メッセージをブロードキャストするための方法およびデバイスを提供する。
【００１６】
当業者に本出願における技術的解決策をより良好に理解してもらうために、以下において、本出願の実施形態における添付の図面を参照して、本出願の実施形態における技術的解決策を明確にかつ包括的に説明する。明らかに、説明される実施形態は、本出願の実施形態のうちのいくつかに過ぎず、全てではない。本出願の実施形態に基づいて当業者によって創造的取り組みなしで得られる全ての他の実施形態は、本出願の保護範囲内にある。
【００１７】
本出願の実施形態において提供される技術的解決策は、添付の図面を参照して以下に詳細に説明される。
【００１８】
図1は、本出願の実施形態による、メッセージをブロードキャストするための方法を示すフローチャートである。メッセージをブロードキャストするための方法は、以下のステップを含む。
【００１９】
S101.コンセンサスノードが、第1のブロードキャストメッセージを得る。
【００２０】
本出願のこの実施形態において、コンセンサスノードは、ブロックチェーンネットワークにおけるサービスに対するコンセンサス検証に参加するブロックチェーンノードである。典型的なブロックチェーンネットワークにおいて、全てのブロックチェーンノードは、コンセンサスノードとしてコンセンサス検証に参加することができる。しかしながら、特殊なブロックチェーンネットワーク(例えば、コンソーシアムチェーンサブネットワークおよびパブリックチェーンサブネットワークを含むブロックチェーンネットワーク)では、全てのブロックチェーンノードがコンセンサスノードとしてコンセンサス検証に参加することができるわけではない。
【００２１】
サービスハンドリングフェーズ、コンセンサス検証フェーズおよび他のフェーズにおいて、コンセンサスノードが互いにメッセージをブロードキャストまたは送信する必要があることが本出願の実施形態の適用シナリオである。
【００２２】
サービスハンドリングフェーズは、特定のコンセンサスノードがサービスメッセージを受信し、このサービスメッセージを他のコンセンサスノードにブロードキャストし、全てのコンセンサスノードがサービスメッセージを受信するようにすることを意味する。これにより、サービスメッセージに対する後続のコンセンサス検証が容易になる。コンセンサス検証フェーズは、全てのコンセンサスノードが特定のコンセンサスアルゴリズムに準拠して、検証結果に対するコンセンサスに達するフェーズである。コンセンサス検証フェーズでは、全てのコンセンサスノードが互いに検証メッセージを送信してコンセンサスに達する必要がある。
【００２３】
本出願のこの実施形態において、第1のブロードキャストメッセージはサービスメッセージ、検証メッセージ、または特定のコンセンサスノードによって別のコンセンサスノードにブロードキャストまたは送信されるメッセージとすることができる。
【００２４】
本方法は任意のコンセンサスノードによって実行可能であることに留意することが有意義である。サービス処理フェーズにおいて、コンセンサスノードは、クライアントまたは非コンセンサスノードによって送信されたサービスメッセージを受信し、このサービスメッセージを、得られた第1のブロードキャストメッセージとして用いることができる。コンセンサス検証フェーズにおいて、コンセンサスノードは、サービスメッセージを検証した後に検証メッセージを生成し、この検証メッセージを、得られた第1のブロードキャストメッセージとして用いることができる。
【００２５】
S102.コンセンサスノードは、コンセンサスノードに対応するメッセージ処理デバイスのための第1のスレッドを作成し、第1のスレッドを用いることによって、第1のブロードキャストメッセージをメッセージ処理デバイスに送信する。
【００２６】
S103.コンセンサスノードは第1のスレッドをキャンセルする。
【００２７】
本出願のこの実施形態において、コンセンサスノードは、第1のブロードキャストメッセージを、このコンセンサスノードに対応するメッセージ処理デバイスに送信し、第1のブロードキャストメッセージをブロードキャストまたは送信するタスクを、処理のためにこのコンセンサスノードに対応するメッセージ処理デバイスに完全にハンドオーバーすることができ、それによって、メッセージ処理デバイスが、別のコンセンサスノードのメッセージ処理デバイスが第1のブロードキャストメッセージの受信に成功することを確実にする。したがって、コンセンサスノードは、全ての他のコンセンサスノードが第1のブロードキャストメッセージを受信することを確実にするためにコンピューティングリソースを可能な限り多く消費する必要がない。
【００２８】
図2は、メッセージをブロードキャストするための既存の方法を、本出願において提供されるメッセージをブロードキャストするための方法と比較する例を示す概略図である。図2に示すように、コンセンサスノードに対応するメッセージ処理デバイスは、コンセンサスノードから独立したコンピューティングデバイスである。コンセンサスノード間のメッセージ交換は、コンセンサスノードに対応するメッセージ処理デバイスによってそれぞれ実行される。
【００２９】
すなわち、コンセンサスノードは、このコンセンサスノードに対応するメッセージ処理デバイスのための第1のスレッドを作成することしか必要でなく、第1のスレッドを用いることによってコンセンサスノードに対応するメッセージ処理デバイスに第1のブロードキャストメッセージを送信した後、第1のスレッドを継続して維持するためにコンピューティングリソースを消費することなく、第1のスレッドをキャンセルすることができる。
【００３０】
第1のスレッドは、コンセンサスノードに対応するメッセージ処理デバイスのためにコンセンサスノードによって作成されるスレッドであり、以下に説明される第2のスレッドは、メッセージ処理デバイスによって、別のコンセンサスノードに対応するメッセージ処理デバイスのために作成されるスレッドである。
【００３１】
実際に、コンセンサスノードは、非同期呼技術を用いて、コンセンサスノードに対応するメッセージ処理デバイスに第1のブロードキャストメッセージを送信するのに用いられる第1のスレッドを作成する。第1のスレッドを用いることによって第1のブロードキャストメッセージを送信した後、コンセンサスノードは、メッセージ処理デバイスが第1のブロードキャストメッセージを受信するか否かを配慮することなく第1のスレッドを直接キャンセルすることができる。
【００３２】
コンセンサスノードおよびこのコンセンサスノードに対応するメッセージ処理デバイスは、通例、異種ネットワーク内で分散していないことに留意することが有意義である。すなわち、コンセンサスノードと、このコンセンサスノードに対応するメッセージ処理デバイスとの間の情報交換は安定している。したがって、メッセージ処理デバイスは、通例、このメッセージ処理デバイスに対応するコンセンサスノードによって送信されるメッセージを1回で受信することに成功することができる。
【００３３】
更に、第1のブロードキャストメッセージが、第1のブロードキャストメッセージをコンセンサスノードから対応するメッセージデバイスに送信するプロセスにおいて失われないことを完全に確実にするために、地域専用線を用いて、コンセンサスノードを、このコンセンサスノードに対応するメッセージ処理デバイスに接続し、コンセンサスノードと、このコンセンサスノードに対応するメッセージ処理デバイスとの間に存在し得るネットワーク妨害を可能な限り回避することができる。
【００３４】
コンセンサスノードに対応するメッセージ処理デバイスに、メッセージをブロードキャストするように命令することに加えて、コンセンサスノードは、このコンセンサスノードに対応するメッセージ処理デバイスを用いることによって、別のコンセンサスノードによってブロードキャストされるメッセージを更に受信することができる。
【００３５】
特に、コンセンサスノードは、このコンセンサスノードに対応するメッセージ処理デバイスによって送信される第2のブロードキャストメッセージを受信することができる。第2のブロードキャストメッセージは、別のコンセンサスノードに対応するメッセージ処理デバイスによってブロードキャストされる。メッセージ処理デバイスは、別のコンセンサスノードに対応するメッセージ処理デバイスによってブロードキャストされる第2のブロードキャストメッセージを受信し、次に、第2のブロードキャストメッセージをコンセンサスノードに送信することができる。
【００３６】
第1のブロードキャストメッセージおよび第2のブロードキャストメッセージの双方が、コンセンサスノードによってブロードキャストされるブロードキャストメッセージであり、第1のブロードキャストメッセージおよび第2のブロードキャストメッセージの双方が、サービスメッセージ、検証メッセージ等であり得ることに留意することが有意義である。
【００３７】
S104.メッセージ処理デバイスは、他の各コンセンサスノードに対応するメッセージ処理デバイスのための第2のスレッドを作成し、第2のスレッドを用いることによって、第1のブロードキャストメッセージを、別のコンセンサスノードに対応するメッセージ処理デバイスに送信する。
【００３８】
S105.メッセージ処理デバイスが、別のコンセンサスノードに対応するメッセージ処理デバイスが第1のブロードキャストメッセージを受信するとの判断に応じて、第2のスレッドをキャンセルする。
【００３９】
既存の技術において、コンセンサスノードは、メッセージのブロードキャストを担当する。コンセンサスノードは、このコンセンサスノードのコンピューティングリソースを占有するスレッドを作成し、このスレッドを用いて、このコンセンサスノードによってブロードキャストされたメッセージを全ての他のコンセンサスノードが受信することを可能な限り確実にする。
【００４０】
本出願のこの実施形態では、コンセンサスノードは、このコンセンサスノードに対応するメッセージ処理デバイスに第1のブロードキャストメッセージを送信することしか必要でない。コンセンサスノードと独立したコンピューティングデバイスとして、メッセージ処理デバイスは、メッセージのブロードキャストを独立して担当することができる。したがって、コンセンサスノードは解放され、それによって、コンセンサスノードは、限られたコンピューティングリソースを、コンセンサス検証機能をより効率的に行うことに集中させることができる。
【００４１】
本出願のこの実施形態では、メッセージ処理デバイスは、他の各コンセンサスノードに対応するメッセージ処理デバイスのための第2のスレッドを作成し、メッセージ処理デバイスのコンピューティングリソースを消費するこの第2のスレッドを用いて、他の各コンセンサスノードに対応するメッセージ処理デバイスが第1のブロードキャストメッセージの受信に成功することの確認を待機する。
【００４２】
特に、メッセージ処理デバイスは、他の各コンセンサスノードに対応するメッセージ処理デバイスのために作成された第2のスレッドを用いることによって、他の各コンセンサスノードに対応するメッセージ処理デバイスに第1のブロードキャストメッセージを送信し、受信した応答信号の数をカウントし、ここで、応答信号は、別のコンセンサスノードに対応するメッセージ処理デバイスによって、第1のブロードキャストメッセージの受信後に返され、受信した応答信号のカウント数が特定値以上になるまで、カウント数が特定値よりも小さいとの判断に応答して、各第2のスレッドを用いることによって第1のブロードキャストメッセージを再送する。ここで、特定値は、0よりも大きい整数である。特定値は構成可能である。より高い特定値は、より多くのコンセンサスノードが第1のブロードキャストメッセージを受信すること、したがってコンセンサスノードがより高い成功率でメッセージをブロードキャストすることを確実にすることができる。特定値は、本出願では具体的に限定されない。
【００４３】
更に、カウント数が特定値未満である場合、メッセージ処理デバイスは、前回カウントされた受信応答信号の総数が特定値以上になるまで、応答信号を返さないメッセージ処理デバイスに対応する第2のスレッドを用いて、応答信号を返さないメッセージ処理デバイスへの第1のブロードキャストメッセージの送信を継続することができる。代替的に、メッセージ処理デバイスは、次回カウントされる受信応答信号の数が特定値以上になるまで、全ての第2のスレッドを用いることによって全ての他のメッセージ処理デバイスに第1のブロードキャストメッセージを再び送信してもよい。
【００４４】
更に、メッセージ処理デバイスが第2のスレッドを用いることによって指定の回数にわたって別の特定のメッセージ処理デバイスに第1のブロードキャストメッセージを送信した後、メッセージ処理デバイスが、第2のスレッドを用いることによって、別のメッセージ処理デバイスによって返された応答信号を依然として受信しない場合、メッセージ処理デバイスは、別のメッセージ処理デバイスへの第1のブロードキャストメッセージの送信を停止することができる。指定された期間の後、メッセージ処理デバイスは、別のメッセージ処理デバイスへの第1のブロードキャストメッセージの送信を継続する。
【００４５】
例えば、メッセージ処理デバイスは、まず、第1のブロードキャストメッセージを他のメッセージ処理デバイスにブロードキャストすることができ、次に、応答信号を返さない別のメッセージ処理デバイス(すなわち、第1のブロードキャストメッセージの受信に失敗したメッセージ処理デバイス)を特定し、次に、第1のブロードキャストメッセージの受信に失敗したメッセージ処理デバイスに第1のブロードキャストメッセージを再送することができる。これらの動作は繰り返される。メッセージ処理デバイスは、第1のブロードキャストメッセージを同じ別のメッセージ処理デバイスに3回繰り返し送信した後、解決されるべき一時的送信問題があることを示す(この問題は、第1のブロードキャストメッセージの受信に失敗したメッセージ処理デバイスの故障に起因して、または大きなネットワーク障害に起因して生じ得る)。したがって、メッセージ処理デバイスは、まず、別のメッセージ処理デバイスへの第1のブロードキャストメッセージの送信を停止し、次に、(送信問題が解決された場合がある)長い時間待機した後、別のメッセージ処理デバイスへの第1のブロードキャストメッセージの送信を継続する。
【００４６】
本出願のこの実施形態では、メッセージ処理デバイスは、他の各コンセンサスノードに対応するメッセージ処理デバイスが第1のブロードキャストメッセージを受信することを確実にした後にのみ第2のスレッドをキャンセルする。メッセージ処理デバイスが、他の各コンセンサスノードに対応するメッセージ処理デバイスが第1のブロードキャストメッセージを受信することを確実にするために、遅延送達および補償送達(メッセージを受信するのに失敗した対象が、メッセージの補償を能動的に要求する)等の様々なメッセージ送達ポリシを使用可能であることに留意することが有意義である。メッセージ処理デバイスによって用いられるメッセージ送達ポリシは、本出願では具体的に限定されない。
【００４７】
上記の説明から、メッセージ処理デバイスは、実際に、他の各コンセンサスノードに対応するメッセージ処理デバイスのために、他の各コンセンサスノードに対応するメッセージ処理デバイスに第1のブロードキャストメッセージを送信するのに用いられる1つの第2のスレッドを作成するための同期呼技術を用いることがわかる。第2のスレッドを用いることによって第1のブロードキャストメッセージを送信した後、メッセージ処理デバイスは、依然として、第2のスレッドを用いて、他の各コンセンサスノードに対応するメッセージ処理デバイスが第1のブロードキャストメッセージを受信することの確認を待機する。他の各コンセンサスノードに対応するメッセージ処理デバイスが第1のブロードキャストメッセージを受信するのに失敗した場合、メッセージ処理デバイスは、第2のスレッドを用いることによって、他の各コンセンサスノードに対応するメッセージ処理デバイスに第1のブロードキャストメッセージを再送する。第2のスレッドは、他の各コンセンサスノードに対応するメッセージ処理デバイスが、第1のブロードキャストメッセージを確実に受信するまで、または送信停止条件がトリガされるまでの場合にだけ、キャンセルされる。
【００４８】
S106.別のコンセンサスノードに対応するメッセージ処理デバイスは、対応する別のコンセンサスノードに第1のブロードキャストメッセージを送信する。
【００４９】
上記で説明したように、別のコンセンサスノードは、別のコンセンサスノードに対応するメッセージ処理デバイスを用いることによって、別のコンセンサスノードによってブロードキャストされたメッセージを受信することができる。
【００５０】
図1に示すメッセージをブロードキャストするための方法によれば、1つのメッセージ処理デバイスが各コンセンサスノードに配分され、コンセンサスノード間でメッセージをブロードキャストする機能が、実施のためにメッセージ処理デバイスにハンドオーバーされる。特定のコンセンサスノードについて、コンセンサスノードに対応するメッセージ処理デバイスは、他の各コンセンサスノードに対応するメッセージ処理デバイスが、別のコンセンサスノードに対応するメッセージ処理デバイスがブロードキャストを受信するまでメッセージブロードキャスティングタスクを実行するためのスレッドを作成することができる。したがって、メッセージブロードキャスティングタスクを実行するためのスレッドは、コンセンサスノードのリソースを消費することなく、メッセージ処理デバイスのコンピューティングリソースのみを消費する。したがって、コンセンサスノードに対し負担が生じず、それによって、コンセンサスノードは、サービスに対するコンセンサス検証をより効率的に行うことができる。
【００５１】
図1に示すメッセージをブロードキャストするための方法に基づいて、本出願の実施形態は、これに対応して、メッセージをブロードキャストするためのデバイスを更に提供する。図3に示すように、メッセージをブロードキャストするためのデバイスは、第1のブロードキャストメッセージを得るように構成された取得モジュール301と、このデバイスに対応するメッセージ処理デバイスのための第1のスレッドを作成し、第1のスレッドを用いることによって、第1のブロードキャストメッセージをメッセージ処理デバイスに送信するように構成された送信モジュール302であって、それによって、メッセージ処理デバイスは、別のコンセンサスノードに対応するメッセージ処理デバイスに第1のブロードキャストメッセージを送信する、送信モジュール302と、第1のスレッドをキャンセルするように構成されたキャンセルモジュール303とを備える。
【００５２】
デバイスは、地域専用線を用いることによってメッセージ処理デバイスに接続される。
【００５３】
デバイスは、デバイスに対応するメッセージ処理デバイスによって送信される第2のブロードキャストメッセージを受信するように構成された受信モジュール304を更に含み、ここで、第2のブロードキャストメッセージは、別のコンセンサスノードに対応するメッセージ処理デバイスによってブロードキャストされる。
【００５４】
図1に示すメッセージをブロードキャストするための方法に基づいて、本出願の実施形態は、これに対応して、メッセージをブロードキャストするための別のデバイスを更に提供する。図4に示すように、メッセージをブロードキャストするためのデバイスは、デバイスに対応するコンセンサスノードによって送信される第1のブロードキャストメッセージを受信するように構成された第1の受信モジュール401と、他の各コンセンサスノードに対応するメッセージ処理デバイスのための第2のスレッドを作成し、第2のスレッドを用いることによって、第1のブロードキャストメッセージを別のコンセンサスノードに対応するメッセージ処理デバイスに送信するように構成された送信モジュール402と、別のコンセンサスノードに対応するメッセージ処理デバイスが第1のブロードキャストメッセージを受信するとの判断に応答して、第2のスレッドをキャンセルするように構成されたキャンセルモジュール403とを備える。
【００５５】
キャンセルモジュール403は、各第2のスレッドを用いることによって、受信した応答信号の数をカウントし、ここで、応答信号は、別のコンセンサスノードに対応するメッセージ処理デバイスによって、第1のブロードキャストメッセージの受信後に返され、受信した応答信号のカウント数が特定値以上になるまで、カウント数が特定値よりも小さいとの判断に応答して、各第2のスレッドを用いることによって第1のブロードキャストメッセージを再送するように構成され、ここで、特定値は、0よりも大きい整数である。
【００５６】
デバイスは、別のコンセンサスノードに対応するメッセージ処理デバイスによってブロードキャストされる第2のブロードキャストメッセージを受信し、第2のブロードキャストメッセージをコンセンサスノードに送信するように構成された第2の受信モジュール404を更に備える。
【００５７】
1990年代には、技術における改良が、ハードウェアにおける改良(例えば、ダイオード、トランジスタまたはスイッチ等の回路構造における改良)であるか、またはソフトウェアにおける改良(メソッドプロシージャにおける改良)であるかは、明らかに区別可能である。しかしながら、技術の発展にともない、現在における多くのメソッドプロシージャの改良は、ハードウェア回路構造における直接改良とみなされることができる。ほぼ全ての設計者は、ハードウェア回路内に改良されたメソッドプロシージャのプログラミングを行い、対応するハードウェア回路構造を得る。したがって、メソッドプロシージャは、ハードウェアエンティティモジュールを用いることによって改良することができる。例えば、プログラマブルロジックデバイス(PLD)(例えば、フィールドプログラマブルゲートアレイ(FPGA))は、そのような集積回路であり、PLDの論理関数は、ユーザによってデバイスプログラミングを通じて決定される。設計者は、チップ製造業者に特定用途向け集積回路チップを設計し、製造するように依頼する必要なく、デジタルシステムをPLDに「集積する」ようにプログラミングを行う。更に、現在、このタイプのプログラミングは、集積回路チップを手動で製造する代わりに、多くの場合、「ロジックコンパイラ」ソフトウェアを使用することにより実施される。「ロジックコンパイラ」ソフトウェアは、プログラムを開発し、書き込むために使用されるソフトウェアコンパイラに類似している。元のコードは、コンパイルされる前に、特定のプログラミング言語で書き込まれる必要がある。言語は、ハードウェア記述言語(HDL)と称される。アドバンストブール演算式言語(ABEL)、Alteraハードウェア記述言語(AHDL)、Confluence、Cornell Universityプログラミング言語(CUPL)、HDCal、Javaハードウェア記述言語(JHDL)、Lava、Lola、MvHDL、PALASM、およびRubyハードウェア記述言語(RHDL)等の、多くのHDLがある。超高速集積回路ハードウェア記述言語(VHDL)およびVerilogは、現在最も一般的に使用されている。また当業者は、上記のいくつかのハードウェア記述言語を使用することによって、メソッドプロシージャが論理的にプログラミングされ、集積回路内にプログラミングされるならば、ロジックメソッドプロシージャを実装するハードウェア回路が容易に得られることを理解するべきである。
【００５８】
コントローラは、任意の適切な方式において実装されることができる。例えば、コントローラは、マイクロプロセッサ、プロセッサ、マイクロプロセッサもしくはプロセッサにより実行可能なコンピュータ可読プログラムコード(ソフトウェアまたはファームウェア等)を格納するコンピュータ可読媒体、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブルロジックコントローラ、または埋め込み型マイクロプロセッサの形態をとることができる。コントローラの例は、限定ではないが、次のマイクロプロセッサ、すなわち、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、およびSilicone Labs C8051F320を含む。代替的に、メモリコントローラは、メモリの制御ロジックの一部として実装されてもよい。また、当業者は、コンピュータ可読プログラムコードを用いることによってコントローラを実施することに加えて、方法ステップを、コントローラが論理ゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラ、または埋め込み型マイクロコントローラの形態で同じ機能を実施することを可能にするように論理的にプログラムすることができることもわかる。したがって、コントローラは、ハードウェアコンポーネントとみなされることができ、コントローラに含まれ、様々な機能を実施するように構成されたデバイスは、ハードウェアコンポーネント内の構造とみなされることもできる。代替的に、様々な機能を実施するように構成されたデバイスは、方法を実装するためのソフトウェアモジュール、およびハードウェアコンポーネント内の構造の両方とみなされてもよい。
【００５９】
上記の実施形態において示されるシステム、デバイス、モジュールまたはユニットは、コンピュータチップもしくはエンティティを用いることによって、または特定の機能を有する製品を使用することによって特に実装することができる。典型的な実施デバイスはコンピュータである。特に、コンピュータは、例えば、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラフォン、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスのうちの任意のものの組合せとすることができる。
【００６０】
説明を簡単にするために、上記のデバイスは、このデバイスを機能に基づいて様々なユニットに分割することによって説明される。確かに、本出願を実施するときに、ユニットの機能は、1つまたは複数のソフトウェアおよび/またはハードウェアにおいて実施することができる。
【００６１】
当業者は、本開示の実施形態を方法、システムまたはコンピュータプログラム製品として提供することができることを理解するべきである。したがって、本開示は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、またはソフトウェアとハードウェアを組み合わせる実施形態の形態を用いることができる。加えて、本開示は、コンピュータ利用可能プログラムコードを含む(限定ではないが、磁気ディスクストレージ、CD-ROM、光メモリ等を含む)1つまたは複数のコンピュータ利用可能ストレージ媒体において実施されるコンピュータプログラム製品の形態を用いることができる。
【００６２】
本開示は、本開示の実施形態による方法、デバイス(システム)およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照しながら説明される。コンピュータプログラム命令を用いて、フローチャートの各プロセスおよび/またはブロック図の各ブロックならびにフローチャートのプロセスおよび/またはブロック図のブロックの組合せを実施可能であることに留意することが有意義である。これらのコンピュータプログラム命令を、マシンを生成するために汎用コンピュータ、専用コンピュータ、組み込みプロセッサまたは別のプログラマブルデータ処理デバイスのプロセッサに対して提供することができ、それによって、コンピュータまたは別のプログラマブルデータ処理デバイスのプロセッサによって実行される命令は、フローチャートの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、光メモリ等を含むが、これらに限定されるものではない)上で実装されるコンピュータプログラム製品の形態を用いてもよい。
【００７０】
本出願は、コンピュータ、例えば、プログラムモジュールにより実行されるコンピュータ実行可能命令との一般的関連で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するために、または特定の抽象データ型を実装するために、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。代替的に、本出願は、分散コンピューティング環境において実施されてもよい。これらの分散コンピュータ環境において、タスクは、通信ネットワークを介して接続される遠隔処理デバイスにより実行される。分散コンピューティング環境において、プログラムモジュールは、ストレージデバイスを含むローカルおよびリモート双方のコンピュータ記憶媒体内に設置することができる。
【００７１】
本明細書における例示的な実施形態は、漸次に説明される。実施形態の同一の、または同様の部分については、実施形態への相互参照を行うことができる。各実施形態は、他の実施形態との差異に焦点を当てている。特に、システムの実施形態は、方法の実施形態に基本的に類似しているため、簡単に説明される。関連部分については、方法の実施形態におけるいくつかの記載を参照することができる。
【００７２】
上記の説明は本出願の実施形態に過ぎず、本出願を限定することは意図されていない。当業者であれば、本出願に対し様々な変更および変形を行うことができる。本出願の趣旨および原理から逸脱することなく行われる任意の変更、等価な置き換え、改良等が、本出願における特許請求の範囲の適用範囲内に入る。
【符号の説明】
【００７３】
301  取得モジュール
302  送信モジュール
303  キャンセルモジュール
304  受信モジュール
401  第1の受信モジュール
402  送信モジュール
403  キャンセルモジュール
404  第2の受信モジュール
【図１】
0006859510.tif 000002
【図２】
0006859510.tif 000003
【図３】
0006859510.tif 000004
【図４】
0006859510.tif 000005