(57)【要約】  本出願は、業務検証方法および装置を開示している。方法においては、第1のブロックチェーンノードは、それ自身の業務メモリから獲得した少なくとも1つの業務リクエストをプリプロセス済みブロックにまとめて、プリプロセス済みブロックを第2のブロックチェーンノードにブロードキャストする。それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないことに気付いた場合には、第2のブロックチェーンノードは、別のブロックチェーンノードから業務リクエストの一部を獲得し、業務リクエストの一部とそれ自身の業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロックに対するコンセンサス検証を実行し得る。第2のブロックチェーンノードが、プリプロセス済みブロックを受信した後に、それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないことに気付いた場合には、第2のブロックチェーンノードは、プリプロセス済みブロックをコンセンサス検証に失敗したと直ちにみなすことはしない。その代わりに、第2のブロックチェーンノードは、別のブロックチェーンノードから逸失した業務リクエストを獲得して、プリプロセス済みブロックに対するコンセンサス検証を実行する。したがって、ブロックチェーン業務全体の業務処理精度が効率的に改善される。【特許請求の範囲】
【請求項１】
業務検証方法であって、
第1のブロックチェーンノードによって、端末によって送信された業務リクエストを受信するステップと、
前記第1のブロックチェーンノードに対応する業務メモリに前記業務リクエストを記憶し、第2のブロックチェーンノードがそれぞれの対応する業務メモリに前記業務リクエストを記憶するように、前記業務リクエストを前記第2のブロックチェーンノードにブロードキャストするステップと、
前記業務メモリから少なくとも1つの業務リクエストを獲得し、前記獲得した少なくとも1つの業務リクエストをプリプロセス済みブロックにまとめて、それに対応する前記業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの一部を含んでいないと決定すると前記第2のブロックチェーンノードの各々が別のブロックチェーンノードから前記業務リクエストの前記一部を獲得して前記業務リクエストの前記一部とそれ自身の前記業務メモリに記憶されている業務リクエストとを使用して前記プリプロセス済みブロックに対するコンセンサス検証を実行するように、前記プリプロセス済みブロックを前記第2のブロックチェーンノードにブロードキャストするステップと
を含む、方法。
【請求項２】
前記業務メモリは、業務リクエストを記憶しているデータベースである、請求項1に記載の方法。
【請求項３】
前記第1のブロックチェーンノードに対応する業務メモリに前記業務リクエストを記憶する前記ステップは、
事前に設定された分散型ミドルウェアを使用して前記業務メモリに前記業務リクエストを記憶するステップを特に含む、請求項2に記載の方法。
【請求項４】
前記業務メモリから少なくとも1つの業務リクエストを獲得する前記ステップは、
前記業務メモリから、設定された優先度より高い業務タイプを有する所定の数の業務リクエストを獲得するステップを特に含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記第1のブロックチェーンノードに対応する業務メモリに前記業務リクエストを記憶する前記ステップは、
前記業務リクエストの前記業務タイプと前記業務タイプの事前に設定された優先順位とに従って前記業務メモリに前記業務リクエストを記憶するステップを特に含む、請求項4に記載の方法。
【請求項６】
前記第1のブロックチェーンノードは、コンソーシアムチェーンコンセンサスアルゴリズムにおけるリーダーノードであり、前記第2のブロックチェーンノードは、前記コンソーシアムチェーンコンセンサスアルゴリズムにおける非リーダーノードである、請求項1に記載の方法。
【請求項７】
業務検証方法であって、
第2のブロックチェーンノードによって、第1のブロックチェーンノードによってブロードキャストされた業務リクエストを受信するステップと、
前記第2のブロックチェーンノードに対応する業務メモリに前記業務リクエストを記憶するステップと、
前記第1のブロックチェーンノードによってブロードキャストされるとともに少なくとも1つの業務リクエストを含むプリプロセス済みブロックを受信し、それに対応する前記業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの一部を含んでいないと決定されると別のブロックチェーンノードから前記業務リクエストの前記一部を獲得するステップと、
前記業務リクエストの前記一部と前記第2のブロックチェーンノードに対応する前記業務メモリに記憶されている業務リクエストとを使用して前記プリプロセス済みブロックに対するコンセンサス検証を実行するステップと
を含む、方法。
【請求項８】
前記第2のブロックチェーンノードに対応する前記業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの前記一部を含んでいないと決定されると別のブロックチェーンノードから前記業務リクエストの一部を獲得する前記ステップは、
前記業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの前記一部を含んでいないと決定されると前記業務リクエストの前記一部を獲得するためのクエリメッセージを別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに送信するステップと、
前記別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードによって返信された応答メッセージを受信するステップであって、前記応答メッセージは、前記応答メッセージを送信している前記別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに対応する業務メモリが前記業務リクエストの前記一部を記憶していることを示す、ステップと、
前記応答メッセージを送信している前記第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに対応する前記業務メモリから前記業務リクエストの前記一部を獲得するステップと
を特に含む、請求項7に記載の方法。
【請求項９】
業務検証装置であって、
端末によって送信された業務リクエストを受信するように構成される、受信モジュールと、
前記装置に対応する業務メモリに前記業務リクエストを記憶し、第2のブロックチェーンノードがそれぞれの対応する業務メモリに前記業務リクエストを記憶するように、前記業務リクエストを前記第2のブロックチェーンノードにブロードキャストするように構成される、記憶モジュールと、
前記業務メモリから少なくとも1つの業務リクエストを獲得し、前記獲得した少なくとも1つの業務リクエストをプリプロセス済みブロックにまとめて、それに対応する前記業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの一部を含んでいないと決定すると前記第2のブロックチェーンノードの各々が別のブロックチェーンノードから前記業務リクエストの前記一部を獲得して前記業務リクエストの前記一部とそれ自身の前記業務メモリに記憶されている業務リクエストとを使用して前記プリプロセス済みブロックに対するコンセンサス検証を実行するように、前記プリプロセス済みブロックを前記第2のブロックチェーンノードにブロードキャストするように構成される、リクエスト獲得モジュールと
を含む、装置。
【請求項１０】
前記業務メモリは、業務リクエストを記憶しているデータベースであり、必要に応じて、前記記憶モジュールは、事前に設定された分散型ミドルウェアを使用して前記業務メモリに前記業務リクエストを記憶するように構成される、請求項9に記載の装置。
【請求項１１】
前記リクエスト獲得モジュールは、前記業務メモリから、設定された優先度より高い業務タイプを有する所定の数の業務リクエストを獲得するように構成される、請求項9から10のいずれか一項に記載の装置。
【請求項１２】
前記記憶モジュールは、前記業務リクエストの前記業務タイプと業務タイプの事前に設定された優先順位とに従って前記業務メモリに前記業務リクエストを記憶するように構成される、請求項11に記載の装置。
【請求項１３】
前記装置は、コンソーシアムチェーンコンセンサスアルゴリズムにおけるリーダーノードであり、前記第2のブロックチェーンノードは、前記コンソーシアムチェーンコンセンサスアルゴリズムにおける非リーダーノードである、請求項9に記載の装置。
【請求項１４】
業務検証装置であって、
第1のブロックチェーンノードによってブロードキャストされた業務リクエストを受信するように構成される、リクエスト受信モジュールと、
前記装置に対応する業務メモリに前記業務リクエストを記憶するように構成される、リクエスト記憶モジュールと、
前記第1のブロックチェーンノードによってブロードキャストされるとともに少なくとも1つの業務リクエストを含むプリプロセス済みブロックを受信し、それに対応する前記業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの一部を含んでいないと決定されると別のブロックチェーンノードから前記業務リクエストの前記一部を獲得するように構成される、受信モジュールと、
前記業務リクエストの前記一部とそれに対応する前記業務メモリに記憶されている業務リクエストとを使用して前記プリプロセス済みブロックに対するコンセンサス検証を実行するように構成される、検証モジュールと
を含む、装置。
【請求項１５】
前記受信モジュールは、
前記業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの前記一部を含んでいないと決定されると前記業務リクエストの前記一部を獲得するためのクエリメッセージを別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに送信することと、
前記別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードによって返信された応答メッセージを受信することであって、前記応答メッセージは、前記応答メッセージを送信している前記別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに対応する業務メモリが前記業務リクエストの前記一部を記憶していることを示す、ことと、
前記応答メッセージを送信している前記第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに対応する前記業務メモリから前記業務リクエストの前記一部を獲得することと
をするように構成される、請求項14に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、その全体が参照によりここに組み込まれている、2017年2月22日に出願した中国特許出願第201710096987.5号に対する優先権を主張する。
【０００２】
本出願は、コンピュータ技術の分野に関し、詳細には、業務検証方法および装置に関する。
【背景技術】
【０００３】
ブロックチェーン技術は、分散帳簿技術とも称される。ブロックチェーンに記憶されているデータは、改竄耐性および分散化などの特性を有している。したがって、ブロックチェーン技術は、人々にとってより安全なデータストレージ環境を提供するとともに、人々にとってより利便性の高いデータストレージを創出している。
【０００４】
現在、端末によって送信された業務リクエストを受信すると、ブロックチェーンノードは、それ自身の業務メモリに業務リクエストを記憶し得る。同時に、他のブロックチェーンノードが、業務リクエストを受信した後に、それぞれの対応する業務メモリに業務リクエストを記憶するように、ブロックチェーンノードは、業務リクエストをコンセンサスネットワーク全体中にある他のブロックチェーンノードにブロードキャストし得る。
【０００５】
ブロックチェーンノードは、その後、それ自身の業務メモリから所定の数の業務リクエストを獲得し、これらの業務リクエストをプリプロセス済みブロックにまとめて、業務リクエストをブロックとしてブロックチェーンに記憶する必要があるかどうかを決定するためにコンセンサスに至るようにコンセンサスネットワーク全体中にある他のブロックチェーンノードにプリプロセス済みブロックをブロードキャストすることになる。
【０００６】
実際の適用では、コンソーシアムチェーン内のブロックチェーンノードが他のブロックチェーンノードに受信した業務リクエストをブロードキャストするプロセスにおいて、コンセンサスネットワーク全体中にあるいくつかの他のブロックチェーンノードが、ネットワーク障害などの要因の影響に起因してブロックチェーンノードによってブロードキャストされた業務リクエストを受信しない場合がある。換言すれば、一方のブロックチェーンノードに対応する業務メモリには記憶されている業務リクエストに関して、他方のブロックチェーンノードに対応する業務メモリでは業務リクエストの一部が欠落した状態となっている場合がある。業務リクエストの一部が欠落した状態のブロックチェーンノードは、ある範囲のコンセンサスネットワーク全体のコンセンサス検証結果に大きく影響を及ぼし得る。
【０００７】
例えば、コンセンサスネットワーク全体は3つのブロックチェーンノードA、B、およびCを有していると仮定する。ブロックチェーンノードAは、5つの業務リクエスト#1、#2、#3、#4、および#5を記憶している。ブロックチェーンノードBは、4つの業務リクエスト#1、#2、#3、および#4を記憶している。ブロックチェーンノードCは、3つの業務リクエスト#1、#2、および#3を記憶している。業務リクエストはすべて、ブロックチェーンノードに対応する業務メモリに記憶されている。ブロックチェーンノードAが、5つの業務リクエスト#1、#2、#3、#4、および#5をプリプロセス済みブロックにまとめて、5つの業務リクエストに対するコンセンサス検証を実行するために他の2つのブロックチェーンノードにプリプロセス済みブロックをブロードキャストした場合には、ブロックチェーンノードBおよびCが両方とも5つの業務リクエストの一部が欠落した状態となっているために、ブロックチェーンノードBおよびCは、5つの業務リクエストを含むプリプロセス済みブロックをコンセンサス検証に失敗したと直ちにみなし得る。このように、コンセンサスネットワーク全体中にあるブロックチェーンノードの半分以上がプリプロセス済みブロックをコンセンサス検証に失敗したとみなすと、プリプロセス済みブロック含まれている5つの業務リクエストは、コンセンサスネットワーク全体のコンセンサス検証をパスすることができなくなる。5つの業務リクエストは、その後、コンセンサスネットワーク全体のブロックチェーンに記録されることもない。
【０００８】
他のブロックチェーンノードは、プリプロセス済みブロック内の業務リクエストの一部が不正に改竄されているとみなすのではなく、プリプロセス済みブロック内の業務リクエストの一部が他のブロックチェーンノードに対応する業務メモリに記憶されていないという理由だけでプリプロセス済みブロックをコンセンサス検証に失敗したとみなしてしまう。したがって、プリプロセス済みブロックがコンセンサスネットワーク全体のコンセンサス検証をパスすることができない確率が大幅に上昇することになる。しかしながら、プリプロセス済みブロック含まれている業務リクエストは、実際にはいかなる問題も有していない場合がある。結果として、通常の業務リクエストは、従来技術ではブロックチェーンノードのコンセンサス検証に失敗する可能性がとても高くなり、それによって、ブロックチェーン業務全体の業務処理精度に影響を及ぼすことになる。
【発明の概要】
【課題を解決するための手段】
【０００９】
本出願の実施形態は、従来技術におけるブロックチェーン業務の低い業務処理精度の問題を解決するための業務検証方法を提供している。
【００１０】
本出願の実施形態は、業務検証方法を提供しており、業務検証方法は、
第1のブロックチェーンノードによって、端末によって送信された業務リクエストを受信するステップと、
第1のブロックチェーンノードに対応する業務メモリに業務リクエストを記憶し、第2のブロックチェーンノードがそれぞれの対応する業務メモリに業務リクエストを記憶するように、業務リクエストを第2のブロックチェーンノードにブロードキャストするステップと、
業務メモリから少なくとも1つの業務リクエストを獲得し、獲得した少なくとも1つの業務リクエストをプリプロセス済みブロックにまとめて、それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないと決定すると第2のブロックチェーンノードの各々が別のブロックチェーンノードから業務リクエストの一部を獲得して業務リクエストの一部とそれ自身の業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロックに対するコンセンサス検証を実行するように、プリプロセス済みブロックを第2のブロックチェーンノードにブロードキャストするステップとを含む。
【００１１】
本出願の実施形態は、従来技術におけるブロックチェーン業務の低い業務処理精度の問題を解決するための業務検証装置を提供している。
【００１２】
本出願の実施形態は、業務検証装置を提供しており、業務検証装置は、
端末によって送信された業務リクエストを受信するように構成される、受信モジュールと、
装置に対応する業務メモリに業務リクエストを記憶し、第2のブロックチェーンノードがそれぞれの対応する業務メモリに業務リクエストを記憶するように、業務リクエストを第2のブロックチェーンノードにブロードキャストするように構成される、記憶モジュールと、
業務メモリから少なくとも1つの業務リクエストを獲得し、獲得した少なくとも1つの業務リクエストをプリプロセス済みブロックにまとめて、それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないと決定すると第2のブロックチェーンノードの各々が別のブロックチェーンノードから業務リクエストの一部を獲得して業務リクエストの一部とそれ自身の業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロックに対するコンセンサス検証を実行するように、プリプロセス済みブロックを第2のブロックチェーンノードにブロードキャストするように構成される、リクエスト獲得モジュールとを含む。
【００１３】
本出願の実施形態は、従来技術におけるブロックチェーン業務の低い業務処理精度の問題を解決するための業務検証方法を提供している。
【００１４】
本出願の実施形態は、業務検証方法を提供しており、業務検証方法は、
第2のブロックチェーンノードによって、第1のブロックチェーンノードによってブロードキャストされた業務リクエストを受信するステップと、
第2のブロックチェーンノードに対応する業務メモリに業務リクエストを記憶するステップと、
第1のブロックチェーンノードによってブロードキャストされるとともに少なくとも1つの業務リクエストを含むプリプロセス済みブロックを受信し、第2のブロックチェーンノードに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないと決定されると別のブロックチェーンノードから業務リクエストの一部を獲得するステップと、
業務リクエストの一部と第2のブロックチェーンノードに対応する業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロックに対するコンセンサス検証を実行するステップとを含む。
【００１５】
本出願の実施形態は、従来技術におけるブロックチェーン業務の低い業務処理精度の問題を解決するための業務検証装置を提供している。
【００１６】
本出願の実施形態は、業務検証装置を提供しており、業務検証装置は、
第1のブロックチェーンノードによってブロードキャストされた業務リクエストを受信するように構成される、リクエスト受信モジュールと、
装置に対応する業務メモリに業務リクエストを記憶するように構成される、リクエスト記憶モジュールと、
第1のブロックチェーンノードによってブロードキャストされるとともに少なくとも1つの業務リクエストを含むプリプロセス済みブロックを受信し、それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないと決定されると別のブロックチェーンノードから業務リクエストの一部を獲得するように構成される、受信モジュールと、
業務リクエストの一部とそれに対応する業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロックに対するコンセンサス検証を実行するように構成される、検証モジュールとを含む。
【００１７】
本出願の実施形態によって使用される少なくとも1つの上記の技術的ソリューションは、以下の有益な効果を達成し得る。
【００１８】
本出願の実施形態においては、第2のブロックチェーンノードが、第1のブロックチェーンノードによってブロードキャストされるとともに業務リクエストを含むプリプロセス済みブロックを受信した後に、それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないことに気付いた場合には、第2のブロックチェーンノードは、ローカルコンセンサス検証に失敗したとプリプロセス済みブロックを直ちにみなすことはしない。その代わりに、第2のブロックチェーンノードは、コンセンサスネットワーク全体中にある他のブロックチェーンノードから逸失した業務リクエストを獲得し、獲得した業務リクエストとそれ自身の業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロック含まれている業務リクエストに対するコンセンサス検証を実行し得る。このように、ネットワーク障害によって生じる業務リクエストのコンセンサス検証に対する悪影響を大幅に低減しており、それによって、ブロックチェーン業務全体の業務処理精度を改善している。
【００１９】
本明細書に記載の添付の図面は、本出願のさらなる理解を提供するために使用されており、本出願の一部を構成する。本出願の例示的な実施形態およびその図は、本出願を説明するために使用しており、本出願に対するいかなる不適切な限定を形成することも意図していない。添付の図面は以下の通りである。
【図面の簡単な説明】
【００２０】
【図１】本出願の実施形態による、業務効率化プロセスの概略図である。
【図２】本出願の実施形態による、ブロックチェーンノードによって、事前に設定された分散型ミドルウェアを使用してそれぞれそれに対応する業務メモリに受信した業務リクエストを記憶する概略図である。
【図３】本出願の実施形態による、検証用の全体特性値を決定する概略図である。
【図４】本出願の実施形態による、第1のブロックチェーンノードによって送信されたプリプロセス済みブロックについてのコンセンサスネットワークによるコンセンサスを確立する概略図である。
【図５】本出願の実施形態による、業務検証装置の概略図である。
【図６】本出願の実施形態による、別の業務検証装置の概略図である。
【発明を実施するための形態】
【００２１】
現在、ブロックチェーンノードによって業務処理を実行するプロセスは、実質的に次の通りになっており、端末が業務リクエストをブロックチェーンノードに送信した後に、ブロックチェーンノードが、ブロードキャスト処理によって他のブロックチェーンノードに受信した業務リクエストを送信し得る。他のブロックチェーンノードは、それに対応する業務メモリに受信した業務リクエストを記憶し得る。結局のところ、業務リクエストを他のブロックチェーンノードに送信するブロックチェーンノードもそれ自身の業務メモリに業務リクエストを記憶し得る。
【００２２】
ブロックチェーンノードによって形成されるコンセンサスネットワークにおいて、各ブロックチェーンノードは、他のブロックチェーンノードに対するコンセンサスリクエストを開始する権利を有する。ブロックチェーンノードは、それ自身の業務メモリに記憶されている所定の数の業務リクエストをある順序で配列して業務リクエストキューを取得し、業務リクエストキューについてのHash値を生成し得る。ブロックチェーンノードは、その後、業務リクエストキューおよびHashをプリプロセス済みブロックにまとめて、コンセンサス検証を実行するためにブロードキャスト処理によって他のブロックチェーンノードにプリプロセス済みブロックを送信し得る。
【００２３】
コンセンサス検証中に、プリプロセス済みブロックを受信した後に、他のブロックチェーンノードは、プリプロセス済みブロック含まれている業務リクエストの非対称署名の正当性を検証することになる。すなわち、ブロックチェーンノードは、それ自身が所有している公開鍵(または、業務リクエストが暗号化された際に秘密鍵もしくは公開鍵が使用されているかどうかに応じて、秘密鍵)に従ってプリプロセス済みブロック含まれている業務リクエストを解析して、業務リクエストが正当な業務リクエストであるかどうかを検証し得る。
【００２４】
加えて、端末によって送信された業務リクエストを受信すると、ブロックチェーンノードは、業務リクエストを他のブロックチェーンノードにブロードキャストし得る。したがって、ブロックチェーンノードに対応する業務メモリはすべて、一般的に、コンセンサスネットワーク全体によって受信される業務リクエストを記憶する。このことに基づいて、プリプロセス済みブロックを受信した後に、他のブロックチェーンノードは、プリプロセス済みブロック内の業務リクエストのHash完全性を検証し得る。すなわち、ブロックチェーンノードは、プリプロセス済みブロック含まれている業務リクエストについてそれ自身の業務メモリを検索し、プリプロセス済みブロック内の業務リクエストの配列順序に従って発見した業務リクエストを配列して業務リクエストキューを取得し得る。ブロックチェーンノードは、その後、業務リクエストキューについてのHash値を生成し、プリプロセス済みブロック内の業務リクエストの内容が不正に改竄されていたかどうかを決定するために取得したHash値をプリプロセス済みブロック含まれているHash値と比較し得る。
【００２５】
非対称署名正当性検証とプリプロセス済みブロックについて実行されたHash完全性検証とに従って、ブロックチェーンノードの各々は、プリプロセス済みブロック全体が正当なものであるかどうかに関するそれ自身の検証結果を取得し、ブロードキャスト処理を介して他のブロックチェーンノードにそれ自身によって取得した検証結果をブロードキャストすることになる。
【００２６】
プリプロセス済みブロックについての他のブロックチェーンノードによって送信された検証結果とそれ自身によって取得した検証結果とに従って、ブロックチェーンノードの各々は、コンセンサスネットワーク全体中にあるブロックチェーンノードについての、プリプロセス済みブロックが検証をパスしたかどうかに関する、総合検証結果を取得し、ブロードキャスト処理を介して他のブロックチェーンノードに取得した総合検証結果をさらにブロードキャストすることになる。
【００２７】
互いにブロードキャストした総合検証結果を受信した後に、コンセンサスネットワーク中にあるブロックチェーンノードの各々は、コンセンサスネットワーク中にあるブロックチェーンノードによって取得された総合検証結果の大半が検証が成功したことを示しているかどうかをさらに判断することになる。yesの場合には、プリプロセス済みブロック内の業務リクエストをブロックとしてそれ自身のブロックチェーンに記憶する、または、noの場合には、プリプロセス済みブロック内の業務リクエストを拒否する。
【００２８】
ブロックとしてそれ自身のブロックチェーンにプリプロセス済みブロック内の業務リクエストを記憶した後に、ブロックチェーンノードの各々は、開放後の業務メモリがブロックチェーンノードによって受信された業務リクエストを継続して記憶することができるように、それ自身の業務メモリからプリプロセス済みブロック含まれている業務リクエストを開放し得る。
【００２９】
しかしながら、従来技術では、ブロックチェーンノードが他のブロックチェーンノードに受信した業務リクエストをブロードキャストするプロセスにおいて、いくつかの他のブロックチェーンノードが、ネットワーク障害などの要因の影響に起因してブロックチェーンノードによってブロードキャストされた業務リクエストを受信しない場合がある。結果として、ブロックチェーンノードが所定の数の業務リクエストを含むプリプロセス済みブロックをコンセンサス検証のために他のブロックチェーンノードにその後ブロードキャストしても、いくつかのブロックチェーンノードの対応する業務メモリはプリプロセス済みブロック内の業務リクエストの一部が欠落した状態となっているため、これらのブロックチェーンノードは、プリプロセス済みブロックがブロックチェーンノードのローカルコンセンサス検証に失敗したと直ちにみなし得る。したがって、プリプロセス済みブロックがコンセンサスネットワーク全体のコンセンサス検証に失敗する確率が大幅に上昇することになり、それによって、ブロックチェーン業務全体の業務処理精度に影響を及ぼすことになる。
【００３０】
さらに、実際の適用では、業務リクエストがコンセンサスネットワーク全体のコンセンサス検証に失敗した場合には、ブロックチェーンノードは、業務リクエストの処理の失敗を示すメッセージをユーザ端末に返信することになる。したがって、上記の状況はさらに、ユーザに対して大きな不便をもたらし得る。
【００３１】
上記の問題を効率的に解決するために、本出願においては、第2のブロックチェーンノードが、第1のブロックチェーンノードによってブロードキャストされるとともに業務リクエストを含むプリプロセス済みブロックを受信した後に、それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないことに気付いた場合には、第2のブロックチェーンノードは、コンセンサスネットワーク全体中にある他のブロックチェーンノードから逸失した業務リクエストを獲得し、獲得した業務リクエストとそれ自身の業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロック含まれている業務リクエストに対するコンセンサス検証を実行し得る。このように、ネットワーク障害によって生じる業務リクエストのコンセンサス検証に対する悪影響を大幅に低減しており、それによって、ブロックチェーン業務全体の業務処理精度を改善している。
【００３２】
当業者に本出願における技術的ソリューションをより理解してもらうために、本出願の実施形態における技術的ソリューションは、本出願の実施形態において添付の図面を用いて明確かつ十分に説明している。説明した実施形態が実施形態のすべてではなく本出願の実施形態の一部に過ぎないことは明白であろう。本出願の実施形態に基づいて、いかなる創造的努力もなく当業者によって導出されたすべての他の実施形態は、本出願の保護範囲含まれているものとする。
【００３３】
図1は、本出願の実施形態による、業務効率化プロセスの概略図であり、業務効率化プロセスは、以下のステップを特に含む。
【００３４】
S101: 第1のブロックチェーンノードが端末によって送信された業務リクエストを受信する。
【００３５】
本出願の実施形態においては、業務処理中に、ユーザは、ユーザが把持しているユーザ端末に対応する業務処理内容を入力し得る。端末は、ユーザによって入力された業務処理内容に従って対応する業務リクエストを生成し、業務リクエストをコンセンサスネットワーク全体中にある第1のブロックチェーンノードに送信することになる。ここで述べる端末は、コンピュータまたはスマートフォンなどのデバイスであり得る。結局のところ、ユーザも、端末にインストールされたクライアントターミナルを使用して第1のブロックチェーンノードに業務リクエストを送信し得る。すなわち、ユーザが、端末上のクライアントターミナルに提示されたインターフェースに対応する業務処理内容を入力する。クライアントターミナルは、インターフェースにユーザによって入力された業務処理内容に従って対応する業務リクエストを生成し、さらに、端末を使用して業務リクエストを第1のブロックチェーンノードに送信する。
【００３６】
実際の適用では、コンセンサスネットワーク全体が複数のブロックチェーンノードを含んでいることに留意されたい。本出願の実施形態において述べている第1のブロックチェーンノードは、端末の業務リクエストを受信するブロックチェーンノードを指す。第1のブロックチェーンノード以外のブロックチェーンノードを本出願の実施形態における第2のブロックチェーンノードと称し得る。第1のブロックチェーンノードと第2のブロックチェーンノードとは相対的な概念である。すなわち、端末から業務リクエストを受信するブロックチェーンノードが第1のブロックチェーンノードであり、第1のブロックチェーンノードによってブロードキャストされた業務リクエストを受信するブロックチェーンノードを第2のブロックチェーンノードと称する。コンセンサスネットワーク中にあるブロックチェーンノードはすべて、端末によって送信された業務リクエストを受信し得る、したがって、ブロックチェーンノードのすべてが実質的に第1のブロックチェーンノードまたは第2のブロックチェーンノードであり得る。ブロックチェーンノードが第1のブロックチェーンノードであるかまたは第2のブロックチェーンノードであるかは、受信した業務リクエストがどこから来たものであるかによって決まる。
【００３７】
結局のところ、コンセンサス検証中に、ブロックチェーンノードが第1のブロックチェーンノードであるかまたは第2のブロックチェーンノードであるかも、コンセンサス検証を開始するノードに従って決定されてもよい。すなわち、少なくとも1つの業務リクエストを含むプリプロセス済みブロックをコンセンサスネットワーク全体にブロードキャストするコンセンサス検証の開始ノードは、第1のブロックチェーンノードであり得るし、プリプロセス済みブロックを受信するブロックチェーンノードを第2のブロックチェーンノードと称し得る。
【００３８】
S102: 業務リクエストが第1のブロックチェーンノードに対応する業務メモリに記憶され、第2のブロックチェーンノードがそれぞれの対応する業務メモリに業務リクエストを記憶するように、業務リクエストが第2のブロックチェーンノードにブロードキャストされる。
【００３９】
コンセンサス検証中に、第1のブロックチェーンノードは、それに対応する業務メモリから業務リクエストの一部を獲得し、業務リクエストの一部をプリプロセス済みブロックにまとめて、コンセンサスネットワーク全体中にある第2のブロックチェーンノードにプリプロセス済みブロックをブロードキャストする必要がある。業務リクエストの一部を含むプリプロセス済みブロックを受信した後に、第2のブロックチェーンノードは、それらのそれぞれの対応する業務メモリに含まれているとともに業務リクエストの一部と一致する業務リクエストに従って、プリプロセス済みブロック内の業務リクエストの一部に対するコンセンサス検証を実行する必要がある。第2のブロックチェーンノードのそれぞれの対応する業務メモリに含まれているとともに業務リクエストの一部と一致する業務リクエストは、第1のブロックチェーンノードから獲得される必要がある。
【００４０】
このことに基づいて、本出願の実施形態においては、端末によって送信された業務リクエストを受信した後に、第1のブロックチェーンノードは、それに対応する業務メモリに業務リクエストを記憶し得る。同時に、第1のブロックチェーンノードは、第2のブロックチェーンノードがそれらのそれぞれの対応する業務メモリに業務リクエストを記憶するように、ブロードキャスト処理によってコンセンサスネットワーク全体中にある第2のブロックチェーンノードに業務リクエストを送信し得る。
【００４１】
従来技術では、第1のブロックチェーンノードは、それ自身のキャッシュに受信した業務リクエストを一般的に記憶する。すなわち、従来技術では、業務メモリは、ブロックチェーンノードのキャッシュである。キャッシュは、制限された記憶領域を有する。したがって、キャッシュの記憶領域が完全に占有されると、第1のブロックチェーンノードは、端末によって送信された業務リクエストを継続して受信することができなくなる。キャッシュ内の業務リクエストの一部がコンセンサスネットワーク全体中にあるブロックチェーンノードのすべてによって実行されるコンセンサス検証をパスした後のみ、業務リクエストのこの一部によって占有されている記憶領域を活用して端末によって送信された業務リクエストを継続して記憶することができる。したがって、従来技術では、キャッシュの記憶領域は、ブロックチェーン業務の業務処理効率にとって非常に大きな制限となっている。
【００４２】
従来技術における問題を効率的に解決するために、本出願の実施形態においては、ブロックチェーンノードのオペレーションスタッフおよびメンテナンススタッフが、ブロックチェーンノードに対してデータベースの形式で業務メモリをそれぞれ設定し得る。すなわち、各ブロックチェーンノードは、それに対応する形でデータベースの形式で業務メモリを有し得る。換言すれば、本出願の実施形態において述べている業務メモリは、業務リクエストを記憶するために使用されるデータベースである。このように、端末によって送信された業務リクエストを受信した後に、第1のブロックチェーンノードは、第1のブロックチェーンノードに対応する業務メモリに業務リクエストを記憶し、その後の処理において業務メモリに記憶されている業務リクエストに対するコンセンサス検証を実行し得る。
【００４３】
データベース形式の業務メモリの記憶領域は、キャッシュの記憶領域よりかなり大きなものとなっている。したがって、第1のブロックチェーンノードがコンセンサスネットワーク全体を使用して業務メモリ内の業務リクエストの一部に対するコンセンサス検証を実行する際に、第1のブロックチェーンノードは端末によって送信された業務リクエストをそのまま継続して受信し得る。すなわち、コンセンサス検証をパスしている業務リクエストの一部によって占有されている記憶領域を活用して端末によって送信された業務リクエストを受信することを必要としない。従来技術と比較して、第1のブロックチェーンノードは、ブロックチェーン業務の業務ボリュームが絶えず肥大化するという要件を大いに満たし、ブロックチェーン業務の業務処理効率を改善している。
【００４４】
さらに、従来技術では、コンセンサスネットワーク全体中にあるブロックチェーンノードはすべて、それら自身のキャッシュ(すなわち、従来技術では業務メモリはキャッシュである)に業務リクエストを記憶しているため、ブロックチェーンノードがダウンするまたは他の障害を有すると、それ自身のキャッシュに記憶されている業務リクエストも消失することになる。しかしながら、本出願の実施形態においては、業務リクエストは、ブロックチェーンノードに対応するデータベース形式の業務メモリに記憶されている。したがって、ブロックチェーンノードがダウンするまたは他の障害を有するような場合でさえも、データベース形式の業務メモリに記憶されている業務リクエストが消失することはなく、それによって、業務リクエストのセキュリティをさらに保証している。
【００４５】
本出願の実施形態においては、コンセンサスネットワーク全体中にあるブロックチェーンノードと業務メモリとの間のデータ伝送は、事前に設定された分散型ミドルウェアを使用して実施され得る。すなわち、端末によって送信された業務リクエストを受信した後に、第1のブロックチェーンノードは、業務リクエストを分散型ミドルウェアに送信し得る。分散型ミドルウェアは、記憶するために第1のブロックチェーンノードに対応する業務メモリに業務リクエストを第1のブロックチェーンノードのノード識別子に従って送信し得る。同様に、第1のブロックチェーンノードによってブロードキャストされた業務リクエストを受信した後に、第2のブロックチェーンノードは、業務リクエストを分散型ミドルウェアに送信し得る。分散型ミドルウェアはまた、図2に示しているように、記憶するために第2のブロックチェーンノードに対応する業務メモリに業務リクエストを第2のブロックチェーンノードのノード識別子に従って送信し得る。
【００４６】
図2は、本出願の実施形態による、ブロックチェーンノードによって、事前に設定された分散型ミドルウェアを使用してそれぞれそれに対応する業務メモリに受信した業務リクエストを記憶する概略図である。
【００４７】
例としてトランザクション業務を取り上げると、ユーザが送金業務を実行する必要がある場合には、ユーザは、ユーザが把持している端末において送金オブジェクトを選択し、送金額を入力し得る。端末は、ユーザによって入力された内容に従って対応するトランザクションリクエストを生成し、トランザクションリクエストを第1のブロックチェーンノードに送信することになる。
【００４８】
端末によって送信されたトランザクションリクエスト(すなわち、業務リクエスト)を受信した後に、第1のブロックチェーンノードは、事前に設定された分散型ミドルウェアが、第1のブロックチェーンノードのノード識別子に従って、第1のブロックチェーンノードに対応する業務メモリにトランザクションリクエストを記憶することができるように、トランザクションリクエストを事前に設定された分散型ミドルウェアに送信し得る。
【００４９】
トランザクションリクエストを受信すると、第1のブロックチェーンノードは、その後、ブロードキャスト処理によってコンセンサスネットワーク全体中にある他のブロックチェーンノード、すなわち、第2のブロックチェーンノードにトランザクションリクエストを送信し得る。トランザクションリクエストを受信した後に、第2のブロックチェーンノードも、事前に設定された分散型ミドルウェアが、第2のブロックチェーンノードのそれぞれのノード識別子に従って、第2のブロックチェーンノードに対応するそれぞれの業務メモリにトランザクションリクエストを記憶するように、トランザクションリクエストを事前に設定された分散型ミドルウェアに送信し得る。
【００５０】
第1のブロックチェーンノードによって送信された業務リクエストを受信すると、第2のブロックチェーンノードはまた、ブロードキャスト処理によってコンセンサスネットワーク全体中にある他のブロックチェーンノードに業務リクエストを送信し得ることに留意されたい。正常かつ正当な業務リクエストについては、業務リクエストがブロックチェーンノードによって実行されるコンセンサス検証をパスすることができることがコンセンサスネットワーク全体によって実際には求められている。したがって、コンセンサス検証が実行される前に業務リクエストがブロックチェーンノードに対応する業務メモリに存在していることがコンセンサスネットワーク全体によって実際には求められている。
【００５１】
しかしながら、実際の適用では、ブロックチェーンノード間のネットワーク通信は、一般的に、ネットワーク機能停止およびネットワークジッターなどの障害を有する。業務リクエストが第1のブロックチェーンノードだけによってブロードキャストされている一方で他のブロックチェーンノード(すなわち、第2のブロックチェーンノード)が業務リクエストを再度ブロードキャストすることをしなければ、第1のブロックチェーンノードと1つまたは複数の第2のブロックチェーンノードとの間のネットワーク通信に障害が発生すると、1つまたは複数の第2のブロックチェーンノードは業務リクエストを受信することができなくなり、それによって、その後の処理における業務リクエストについてのコンセンサス検証に影響を及ぼすことになる。
【００５２】
可能な限りこのような状況を回避するために、本出願の実施形態においては、第1のブロックチェーンノードによって送信された業務リクエストを受信した後に、第2のブロックチェーンノードは、ブロードキャスト処理によってコンセンサスネットワーク全体中にある他のブロックチェーンノードに業務リクエストをさらにブロードキャストし得る。業務リクエストを受信する際に、他のブロックチェーンノードは、業務リクエストが以前受信したことがあるかどうかをまず判断してもよい。yesの場合には、他のブロックチェーンノードは業務リクエストを無視し、noの場合には、他のブロックチェーンノードは事前に設定された分散型ミドルウェアを使用してそれに対応する業務メモリに業務リクエストを記憶する。
【００５３】
例えば、図2では、第1のブロックチェーンノードと第2のブロックチェーンノード3との間のネットワーク通信に障害が発生すると、第2のブロックチェーンノード3は、第2のブロックチェーンノード2および第2のブロックチェーンノード4を使用してトランザクションリクエストを変わらず受信することができる。したがって、トランザクションリクエストが正常かつ正当なトランザクションリクエストである限りは、トランザクションリクエストがコンセンサスネットワーク全体中にあるブロックチェーンノードの業務メモリに記憶されているであろうことが保証されている。
【００５４】
本出願の実施形態においては、業務リクエストを記憶するプロセスにおいて、第1のブロックチェーンノードは、まず、業務リクエストに対応する業務タイプを決定し、業務タイプの事前に設定された優先順位に従って業務リクエストと以前受信した業務リクエストとをランク付けし得る。
【００５５】
実際の適用では、異なる業務では業務処理に関して異なる遅延が必要となる。例えば、トランザクションタイプの業務は、一般的に、業務処理遅延に対して比較的高い要件を有する。すなわち、コンセンサスネットワーク全体が迅速に業務を処理し終えることができることが求められている。公益タイプの業務は、業務処理遅延に対して比較的低い要件を有する。すなわち、業務は、コンセンサスネットワーク全体が長時間の後に業務を処理したとしても、大きく影響を受けることはない。
【００５６】
このことに基づいて、本出願の実施形態においては、第1のブロックチェーンノードに対応する業務メモリに業務リクエストを記憶する場合には、第1のブロックチェーンノードは、業務の優先順位に従って業務メモリ内の業務リクエストをランク付けし得るし、それによって、業務リクエストを含む業務キューを取得している。業務キューでは、遅延に対して高い要件を有する業務リクエストが高いランクを有する一方で、遅延に対して低い要件を有する業務リクエストは低いランクを有する。具体的なランク付け方式は、オペレーションスタッフおよびメンテナンススタッフによって事前に設定された業務タイプの優先順位に従って決定される。
【００５７】
本出願の実施形態においては、業務タイプの優先順位に従って業務キュー内の配列順序の業務リクエストを決定することに加えて、第1のブロックチェーンノードはまた、業務メモリ内の業務リクエストの記憶時間に従って業務メモリ内の業務リクエストの配列順序を総合的に決定し得ることに留意されたい。すなわち、業務メモリ内の業務リクエストの記憶時間が長過ぎる場合には、業務リクエストは、業務リクエストが遅延に対して低い要件を有している場合であっても、業務キュー全体にとっての最前線へと引き上げられ得る。
【００５８】
S103: 少なくとも1つの業務リクエストが業務メモリから獲得され、獲得した少なくとも1つの業務リクエストがプリプロセス済みブロックにまとめられ、それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないと決定すると第2のブロックチェーンノードの各々が別のブロックチェーンノードから業務リクエストの一部を獲得して業務リクエストの一部とそれ自身の業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロックに対するコンセンサス検証を実行するように、プリプロセス済みブロックが第2のブロックチェーンノードにブロードキャストされる。
【００５９】
本出願の実施形態においては、第1のブロックチェーンノードが、コンセンサスネットワーク全体を使用してそれに対応する業務メモリに記憶されている業務リクエストについてのコンセンサスを確立して、業務リクエストを処理し終える必要がある。したがって、第1のブロックチェーンノードは、それに対応する業務メモリから少なくとも1つの業務リクエストを獲得し、その後の処理においてコンセンサスネットワーク全体を使用して少なくとも1つの業務リクエストについてのコンセンサスをその後確立し得る。
【００６０】
第1のブロックチェーンノードは、業務メモリから設定された優先度より高い業務タイプを有する業務リクエストを獲得してもよい。例えば、ある境界としてある業務タイプを使用して、第1のブロックチェーンノードは、業務メモリからその業務タイプより高い優先度を有する業務タイプの業務リクエストを獲得してもよい。
【００６１】
結局のところ、第1のブロックチェーンノードはまた、業務メモリから所定の数の業務リクエストを獲得してもよい。例えば、業務リクエストが上記の業務キューの形式で業務メモリに記憶されている場合には、第1のブロックチェーンノードは、業務キューから所定の数の業務リクエストを獲得してもよい。さらに、所定の数がNで表される場合には、第1のブロックチェーンノードは、業務キューからN個の第1の業務リクエストを獲得してもよい。
【００６２】
所定の数に従って業務リクエストを獲得することに加えて、第1のブロックチェーンノードはまた、別の基準に従って業務リクエストを獲得してもよい。例えば、第1のブロックチェーンノードは、業務メモリ内の事前に設定された時間長を超過している記憶時間を有する業務リクエストを獲得してもよい。あるいは、コンセンサスネットワーク全体を使用して業務リクエストについてのコンセンサスを確立する際に、第1のブロックチェーンノードは、業務を選択し、業務メモリから業務に対応する業務リクエストを獲得してもよい。第1のブロックチェーンノードは、ランダムに業務を選択してもよいしまたはある順序に従って業務を選択してもよい。結局のところ、第1のブロックチェーンノードは、本明細書で詳細に説明していない他の基準に従って業務リクエストをさらに獲得してもよい。
【００６３】
第1のブロックチェーンノードが所定の数の業務リクエストを獲得した後に、業務リクエストに対応するサブ特性値が、事前に設定された特性値決定ルールに従ってそれぞれ決定される。例えば、事前に設定された特性値決定ルールがHashアルゴリズムである場合には、第1のブロックチェーンノードは、業務リクエストに対応するサブHash値をそれぞれ決定し得る。事前に設定された特性値決定ルールがMessage Digest Algorithm(MD5)である場合には、第1のブロックチェーンノードは、業務リクエストに対応するサブMD5値をそれぞれ決定し得る。
【００６４】
第1のブロックチェーンノードが業務リクエストに対応するサブ特性値を決定した後に、業務リクエストに一意に対応する検証用の特性値は、決定した特性値と業務メモリ内の業務リクエストの配列順序とに従って決定されてもよい。
【００６５】
検証用の特性値は、業務リクエスト全体に一意に対応する。すなわち、業務リクエストのうちの業務リクエストの内容が変化すると、検証用の特性値が変化することになる。第1のブロックチェーンノードによって検証用の特性値を決定する方式は、図3に示しているようなものとなる。
【００６６】
図3は、本出願の実施形態による、検証用の特性値を決定する概略図である。
【００６７】
図3では、第1のブロックチェーンノードによって使用される特性値決定ルールは、Hashアルゴリズムである。第1のブロックチェーンノードがそれに対応する業務メモリから所定の数の(4つの)業務リクエストを獲得すると仮定する。業務キュー内の4つの業務リクエストの配置は、図3に示しているようなものとなる。4つの業務リクエストに対応する4つのHash値をそれぞれ決定した後に、第1のブロックチェーンノードは、業務キュー内の4つの業務リクエストのランクに従って左から右へとMerkleツリーの4つのリーフノードに4つのHash値を配置し、それに応じてMerkleツリーの非リーフノードおよびルートノードを決定し得る。第1のブロックチェーンノードは、その後、4つの業務リクエストに一意に対応している検証用の特性値としてMerkleツリーのルートノードHash7を決定し得る。
【００６８】
上記で説明した検証用の特性値を毛呈する方法はその方法だけではないことに留意されたい。第1のブロックチェーンノードはまた、検証用の特性値がある順序で業務リクエストに一意に対応していることが保証されているならば、他の方式で決定を実行してもよい。
【００６９】
業務リクエスト(すなわち、業務メモリから獲得した少なくとも1つの業務リクエスト)に一意に対応する検証用の特性値を決定した後に、第1のブロックチェーンノードは、検証用の特性値と業務リクエストとをプリプロセス済みブロックにまとめ得るし、プリプロセス済みブロックは、業務リクエストと検証用の特性値とを含む。同時に、プリプロセス済みブロック内の業務リクエストは、業務メモリ内の業務リクエストの配列順序に従って配列される。
【００７０】
第1のブロックチェーンノードは、ブロードキャスト処理によってコンセンサスネットワーク全体中にある他のブロックチェーンノード(すなわちに、第2のブロックチェーンノード)に決定したプリプロセス済みブロックを送信し得るし、その後、コンセンサスネットワーク全体は、図4に示しているように、プリプロセス済みブロック含まれている業務リクエストに対するコンセンサスを確立する。
【００７１】
図4は、本出願の実施形態による、第1のブロックチェーンノードによって送信されたプリプロセス済みブロックについてのコンセンサスネットワークによるコンセンサスを確立する概略図である。
【００７２】
図4では、第1のブロックチェーンノードが、プリプロセス済みブロックをコンセンサスネットワーク全体中にある第2のブロックチェーンノードにブロードキャストし得る。第2のブロックチェーンノードの各々については、第1のブロックチェーンノードによって送信されたプリプロセス済みブロックを受信すると、第2のブロックチェーンノードは、プリプロセス済みブロックを解析して、プリプロセス済みブロック含まれている業務リクエストと検証用の特性値とを決定し得る。
【００７３】
第2のブロックチェーンノードの各々に関しては、解析処理によってプリプロセス済みブロックから業務リクエストを取得した後に、第2のブロックチェーンノードは、その後、業務リクエストがすべて正当な業務リクエストであるかどうかを検証するために、解析処理によって取得した業務リクエストに対する非対称署名正当性検証を行う必要がある。
【００７４】
特に、業務リクエストをブロックチェーンノードに送信する場合には、端末は、一般的に、所有している秘密鍵(結局のところ公開鍵でもあり得る)を使用して業務リクエストを暗号化(署名)し得る。したがって、プリプロセス済みブロック含まれている業務リクエストに対する非対称署名正当性検証を実行する際には、第2のブロックチェーンノードは、公開鍵を使用して業務リクエストを解析(または、端末が公開鍵を使用して暗号化を実行している場合には、第2のブロックチェーンノードは、所有している秘密鍵を使用して業務リクエストを解析)し、解析処理を解して得られた内容を検証する必要がある。
【００７５】
例えば、プリプロセス済みブロック内のトランザクションリクエスト(すなわち、業務リクエスト)に対する非対称署名正当性検証を実行する際には、第2のブロックチェーンノードは、トランザクションリクエスト含まれている両方のトランザクション関係者のアカウントアドレスを取得し、それによって、両方のトランザクション関係者のアカウントアドレスが正当なものであるかどうかを検証するために、それ自身が所有している公開鍵を使用してトランザクションリクエストを復号し得る。トランザクションリクエスト含まれている両方のトランザクション関係者のアカウントアドレスが正当なアカウントであり、トランザクションの開始ノードのアカウントに記憶されている金額がトランザクションリクエスト含まれている送金額以上であると決定されると、トランザクションリクエストが非対称署名正当性検証をパスしたと決定され、さもなければ、トランザクションリクエストが非対称署名正当性検証に失敗したと決定される。
【００７６】
プリプロセス済みブロック含まれている業務リクエストがすべて非対称署名正当性検証をパスしたと決定した後に、第2のブロックチェーンノードは、事前に設定された特性値決定ルールを使用して業務リクエストに対応するサブ特性値をさらに決定し得る。第2のブロックチェーンノードによって使用される特性値決定ルールは、第1のブロックチェーンノードによって使用されるものと同一である。
【００７７】
業務リクエストに対応するサブ特性値を決定した後に、第2のブロックチェーンノードは、プリプロセス済みブロック内の業務リクエストの配列順序とサブ特性値とに従って業務リクエスト全体に一意に対応する特性値を決定し得る。第2のブロックチェーンノードは、その後、特性値をプリプロセス済みブロック内の検証用の特性値と比較する。2つの特性値が同一である場合には、それに対するコンセンサスを第1のブロックチェーンノードによって確立する必要がある業務リクエストの内容が変更されていないと決定され得る、すなわち、業務リクエストがHash完全性検証をパスしたと決定される。
【００７８】
第2のブロックチェーンノードが上記の方法に従ってプリプロセス済みブロックに対する非対称署名正当性検証とHash完全性検証とを実行した後に、プリプロセス済みブロックについてのローカル検証結果がそれぞれ取得され得る(プリプロセス済みブロック内の業務リクエストがすべて非対称署名正当性検証とHash完全性検証とをパスした場合のみ、プリプロセス済みブロックのローカル検証結果が成功を示すことができ、検証のどちらかが成功していない場合には、プリプロセス済みブロックのローカル検証結果は障害を示している)。第2のブロックチェーンノードの各々は、その後、コンセンサスネットワーク全体のコンセンサス検証プロシージャを始めるために、ブロードキャスト処理によってコンセンサスネットワーク全体中にある他のブロックチェーンノードにそれぞれの取得した検証結果を送信し得る。互いにブロードキャストした検証結果を受信した後に、コンセンサスネットワーク全体中にあるブロックチェーンノードの各々は、受信した検証結果およびそれ自身によって取得した検証結果に従ってコンセンサスネットワーク全体中にあるブロックチェーンノードについての、プリプロセス済みブロック含まれている業務リクエストが検証をパスしたかどうかに関する、総合検証結果を取得し得る。取得した総合検証結果は、その後、コンセンサスネットワーク全体中にある他のブロックチェーンノードにさらにブロードキャストされる。
【００７９】
互いにブロードキャストした総合検証結果を受信した後に、コンセンサスネットワーク中にあるブロックチェーンノードの各々は、コンセンサスネットワーク中にあるブロックチェーンノードによって取得された総合検証結果の大半が検証が成功したことを示しているかどうかをさらに判断し得る。yesの場合には、プリプロセス済みブロック含まれている業務リクエストは記憶するためにブロックに書き込まれ、そのブロックはブロックを記憶するブロックチェーンに時間系列に従ってさらに書き込まれる、または、noの場合には、業務リクエストは拒否される。
【００８０】
上記で説明したコンセンサスネットワーク全体のコンセンサス検証プロシージャは、一般的なコンセンサス検証プロシージャである。本出願の実施形態においては、コンセンサスネットワーク全体によって所定の数の業務リクエストに対するコンセンサス検証を実行するプロシージャは、Practical Byzantine Fault Tolerance(PBFT)アルゴリズム、一貫性アルゴリズム(Raft)、およびPaxoアルゴリズムなどといった複雑なコンセンサスアルゴリズムをさらに含み得る。本出願の実施形態におけるコンセンサスアルゴリズムを含むプロシージャは、従来技術におけるものと同一であるため、本明細書では詳細に説明することはしない。
【００８１】
ブロックチェーンノード(ここで述べるブロックチェーンノードは第1のブロックチェーンノードまたは第2のブロックチェーンノードであり得る)がブロックとしてブロックチェーンに業務リクエストを記憶した後に、それぞれの業務メモリにおいて業務リクエストによって占有されている記憶領域を開放してもよく、業務リクエストは業務リクエスト履歴を記憶するために使用されるデータベースに移される。
【００８２】
第2のブロックチェーンノードが第1のブロックチェーンノードの業務リクエストをさらにブロードキャストし得ることに留意されたい。しかしながら、コンセンサスネットワーク全体中にあるいくつかのブロックチェーンノードは、ネットワーク状況についての影響に起因して効率的に業務リクエストを受信することを未だできない場合がある。したがって、コンセンサス段階中に、第2のブロックチェーンノードが、それに対応する業務メモリから、プリプロセス済みブロック内の業務リクエストの一部を発見することがなかった場合には、第2のブロックチェーンノードは、事前に設定された分散型ミドルウェアを使用して別のブロックチェーンノードに業務リクエストのこの一部を取得するためのクエリメッセージを送信し得る。クエリメッセージを受信した後に、別のブロックチェーンノードは、それに対応する業務メモリが業務リクエストのこの一部を含んでいるかどうかを判定し得る。yesの場合には、別のブロックチェーンノードは第2のブロックチェーンノードに応答メッセージを返信し、noの場合には、別のブロックチェーンノードは第2のブロックチェーンノードに応答メッセージを返信しない。
【００８３】
応答メッセージを受信した後に、第2のブロックチェーンノードは、事前に設定された分散型ミドルウェアを使用して、応答メッセージを送信するブロックチェーンノードに対応する業務メモリから業務リクエストのこの一部を獲得し得る。第2のブロックチェーンノードは、その後、業務リクエストのこの一部に対する非対称署名正当性検証を実行し得る。業務リクエストのこの一部が非対称署名正当性検証をパスしたと決定すると、第2のブロックチェーンノードは、それに対応する業務メモリに業務リクエストのこの一部を記憶する。第2のブロックチェーンノードは、プリプロセス済みブロック内の業務リクエストの配列順序に従ってそれに対応する業務メモリに業務リクエストのこの一部を記憶し得る。業務リクエストのこの一部が非対称署名正当性検証をパスしなかったと決定すると、第2のブロックチェーンノードは、業務リクエストのこの一部を記憶することはせずに、第1のブロックチェーンノードによって送信されたプリプロセス済みブロックがローカル(すなわち、第2のブロックチェーンノード)コンセンサス検証に失敗したと決定する。
【００８４】
別のブロックチェーンノードから業務リクエストのこの一部を受信した後に、第2のブロックチェーンノードが他のブロックチェーンノードから業務リクエストのこの一部をさらに受信した場合には、第2のブロックチェーンノードは、以降に受信した業務リクエストのこの一部を無視し得るし、以降に受信した業務リクエストのこの一部に対する非対称署名正当性検証を実行して記憶する必要はない。
【００８５】
本出願の実施形態においては、コンセンサスネットワーク全体は、コンソーシアムチェーンのコンセンサスネットワークであり得るし、ブロックチェーンノードは、コンソーシアムチェーン内のブロックチェーンノードであり得る。本出願の実施形態においては、第1のブロックチェーンノードは、コンソーシアムチェーンコンセンサスアルゴリズムにおけるリーダーノードであり得るし、第2のブロックチェーンノードは、コンソーシアムチェーンコンセンサスアルゴリズムにおける非リーダーノードであり得る。
【００８６】
第2のブロックチェーンノードが、第1のブロックチェーンノードによってブロードキャストされた業務リクエストを受信した後に、それに対応する業務メモリが業務リクエストのいくつかを含んでいないことに気付いた場合には、第2のブロックチェーンノードは、ローカルコンセンサス検証に失敗したと業務リクエストを直ちにみなすことはしないことは、上記の方法から理解できよう。その代わりに、第2のブロックチェーンノードは、コンセンサスネットワーク全体中にある他のブロックチェーンノードから逸失した業務リクエストを獲得し、獲得した業務リクエストとそれ自身の業務メモリに記憶されている業務リクエストとを使用して第1のブロックチェーンノードから受信した業務リクエストに対するコンセンサス検証を実行し得る。このように、ネットワーク障害によって生じる業務リクエストのコンセンサス検証に対する悪影響を大幅に低減しており、それによって、ブロックチェーン業務全体の業務処理精度を改善している。
【００８７】
さらに、本出願の実施形態においては、各ブロックチェーンノードについての、業務リクエストを記憶するための、業務メモリは、データベースとして存在する。各ブロックチェーンノードがそれぞれのキャッシュを使用して業務リクエストを記憶している従来技術と比較して、本出願の実施形態において提供したデータベースの形式の業務メモリは、業務リクエストのための記憶性能を大幅に改善している。さらに、ブロックチェーンノードがコンセンサスネットワーク全体を使用して業務メモリ内の業務リクエストの一部に対するコンセンサス検証を実行する際に、ブロックチェーンノードは端末によって送信された業務リクエストをそのまま継続して受信することができる。すなわち、コンセンサス検証をパスしている業務リクエストの一部によって占有されている記憶領域を活用して端末によって送信された業務リクエストを受信することを必要としておらず、ブロックチェーン業務の業務処理効率をさらに改善している。
【００８８】
本出願の実施形態において提供した業務検証方法を前述では説明しており、同じ考えに基づいて、本出願の実施形態は、図5および図6に示しているように、2つのタイプの業務検証装置をさらに提供している。
【００８９】
図5は、本出願の実施形態による、業務検証装置の概略図であり、特に、業務検証装置は、
端末によって送信された業務リクエストを受信するように構成される、受信モジュール501と、
装置に対応する業務メモリに業務リクエストを記憶し、第2のブロックチェーンノードがそれぞれの対応する業務メモリに業務リクエストを記憶するように、業務リクエストを第2のブロックチェーンノードにブロードキャストするように構成される、記憶モジュール502と、
業務メモリから少なくとも1つの業務リクエストを獲得し、獲得した少なくとも1つの業務リクエストをプリプロセス済みブロックにまとめて、それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないと決定すると第2のブロックチェーンノードの各々が別のブロックチェーンノードから業務リクエストの一部を獲得して業務リクエストの一部とそれ自身の業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロックに対するコンセンサス検証を実行するように、プリプロセス済みブロックを第2のブロックチェーンノードにブロードキャストするように構成される、リクエスト獲得モジュール503とを含む。
【００９０】
業務メモリは、業務リクエストを記憶しているデータベースである。
【００９１】
記憶モジュール502は、事前に設定された分散型ミドルウェアを使用して業務メモリに業務リクエストを記憶するように構成される。
【００９２】
リクエスト獲得モジュール503は、業務メモリから、設定された優先度より高い業務タイプを有する所定の数の業務リクエストを獲得するように構成される。
【００９３】
記憶モジュール502は、業務リクエストの業務タイプと業務タイプの事前に設定された優先順位とに従って業務メモリに業務リクエストを記憶するように構成される。
【００９４】
装置は、コンソーシアムチェーンコンセンサスアルゴリズムにおけるリーダーノードであり、第2のブロックチェーンノードは、コンソーシアムチェーンコンセンサスアルゴリズムにおける非リーダーノードである。
【００９５】
図6は、本出願の実施形態による、別の業務検証装置の概略図であり、特に、別の業務検証装置は、
第1のブロックチェーンノードによってブロードキャストされた業務リクエストを受信するように構成される、リクエスト受信モジュール601と、
装置に対応する業務メモリに業務リクエストを記憶するように構成される、リクエスト記憶モジュール602と、
第1のブロックチェーンノードによってブロードキャストされるとともに少なくとも1つの業務リクエストを含むプリプロセス済みブロックを受信し、それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないと決定されると別のブロックチェーンノードから業務リクエストの一部を獲得するように構成される、受信モジュール603と、
業務リクエストの一部とそれに対応する業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロックに対するコンセンサス検証を実行するように構成される、検証モジュール604とを含む。
【００９６】
受信モジュール603は、業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないと決定されると業務リクエストの一部を獲得するためのクエリメッセージを別の第2のブロックチェーンノードまたは第1のブロックチェーンノードに送信することと、別の第2のブロックチェーンノードまたは第1のブロックチェーンノードによって返信された応答メッセージを受信することであって、応答メッセージは、応答メッセージを送信している別の第2のブロックチェーンノードまたは第1のブロックチェーンノードに対応する業務メモリが業務リクエストの一部を記憶していることを示す、ことと、応答メッセージを送信している第2のブロックチェーンノードまたは第1のブロックチェーンノードに対応する業務メモリから業務リクエストの一部を獲得することとをするように構成される。
【００９７】
本出願の実施形態においては、第1のブロックチェーンノードは、第1のブロックチェーンノードの業務メモリから獲得した少なくとも1つの業務リクエストをプリプロセス済みブロックにまとめて、プリプロセス済みブロックを第2のブロックチェーンノードにブロードキャストする。それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないことに気付いた場合には、第2のブロックチェーンノードは、別のブロックチェーンノードから業務リクエストの一部を獲得し、業務リクエストの一部とそれ自身の業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロック含まれている業務リクエストに対するコンセンサス検証を実行し得る。第2のブロックチェーンノードが、第1のブロックチェーンノードによってブロードキャストされたプリプロセス済みブロックを受信した後に、それに対応する業務メモリがプリプロセス済みブロック内の業務リクエストの一部を含んでいないことに気付いた場合には、第2のブロックチェーンノードは、ローカルコンセンサス検証に失敗したとプリプロセス済みブロックを直ちにみなすことはしない。その代わりに、第2のブロックチェーンノードは、コンセンサスネットワーク全体中にある他のブロックチェーンノードから逸失した業務リクエストを獲得し、獲得した業務リクエストとそれ自身の業務メモリに記憶されている業務リクエストとを使用してプリプロセス済みブロックに対するコンセンサス検証を実行し得る。このように、ネットワーク障害によって生じる業務リクエストのコンセンサス検証に対する悪影響を大幅に低減しており、それによって、ブロックチェーン業務全体の業務処理精度を改善している。
【００９８】
1990年代においては、技術に対する改善を、ハードウェアに対する改善(例えば、ダイオード、トランジスタ、およびスイッチなどの回路構造に対する改善)として、または、ソフトウェアに対する改善(方法の手順に対する改善)として、明確に区別し得た。しかしながら、技術の発展に伴い、今日の多くの方法の手順の改善は、ハードウェア回路構造に対する直接的な改善として扱われ得る。ほぼすべての設計者が、改善した方法の手順をハードウェア回路にプログラムして、対応するハードウェア回路構造を得ている。したがって、方法の手順の改善がハードウェアエンティティモジュールを使用して実施され得ないという考えは適切ではない。例えば、Programmable Logic Device(PLD)(例えば、Field Programmable Gate Array(FPGA))がそのような集積回路であり、そのロジック機能はユーザによってプログラムされたデバイスによって決定される。設計者は、チップ製造業者に専用集積回路チップを設計および製造するように要求する必要もなく、デジタルシステムをPLDに「統合」するようにその者ら自身によってプログラムする。さらに、現在、プログラミングは、集積回路チップを手動で製造する代わりに、ロジックコンパイラソフトウェアを使用してほとんど実施される。ロジックコンパイラソフトウェアは、プログラムを開発および書き込むために使用されるソフトウェアコンパイラに類似しており、コンパイルする前の元のコードはまた、Hardware Description Language(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が存在しており、そ
の中でも、Very-High-Speed Integrated Circuit Hardware Description Language(VHDL)とVerilogとが今日最も一般的に使用されている。上記のいくつかのハードウェア記述言語を使用して方法の手順を論理的にわずかにプログラムしそれを集積回路にプログラムすることによって論理的な方法の手順を実施するためのハードウェア回路を容易に得ることができることは当業者も理解するところであろう。
【００９９】
コントローラは、任意の適切な方式で実装され得る。例えば、コントローラは、例えば、マイクロプロセッサまたはプロセッサと、(マイクロ)プロセッサ、ロジックゲート、スイッチ、Application Specific Integrated Circuit(ASIC)、プログラマブルロジックコントローラ、および組み込みマイクロコンピュータによって実行可能なコンピュータ可読プログラムコード(例えば、ソフトウェアまたはファームウェア)を記憶するコンピュータ可読媒体との形式であり得る。コントローラの例としては、ARC625D、Atmel AT91SAM、Microchip PIC18F26K20、およびSilicone Labs C8051F320といったマイクロコンピュータを含むがこれらに限定されない。メモリコントローラはまた、メモリの制御ロジックの一部として実装され得る。当業者も知っての通り、コントローラを純粋なコンピュータ可読プログラムコードを使用して実装し得るし、加えて、コントローラがロジックゲート、スイッチ、特定用途向け集積回路、プログラマブルロジックコントローラ、および組み込みマイクロコントローラの形式で同一の機能を実施することができるように、方法のステップを論理的にプログラムし得る。したがって、このタイプのコントローラはハードウェアコンポーネントとしてみなされ得るし、様々な機能を実施するためにそれに含まれる装置もハードウェアコンポーネント内の構造とみなされ得る。または、様々な機能を実施するために使用される装置は、方法を実施するためのソフトウェアモジュールおよびハードウェアコンポーネント内の構造の両方とさえみなされ得る。
【０１００】
上記の実施形態において説明したシステム、装置、モジュール、またはユニットは、コンピュータチップもしくはエンティティを使用して、またはある機能を有する製品を使用して、特に実装され得る。典型的な実施デバイスがコンピュータである。特に、コンピュータは、例えば、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【０１０１】
説明を簡潔にするために、装置を説明する際に、それぞれの説明のために機能の観点から様々なユニットに分割している。結局のところ、本出願を実施する際には、ユニットの機能が同一または複数のソフトウェアおよび/またはハードウェアで実装され得る。
【０１０２】
本発明の実施形態が方法、システム、またはコンピュータプログラム製品として提供され得ることを当業者は理解されたい。したがって、本発明は、完全なるハードウェア実施形態、完全なるソフトウェア実施形態、またはソフトウェアとハードウェアとを組み合わせた実施形態として実施され得る。さらに、本発明は、コンピュータ使用可能プログラムコードを含む(磁気ディスクメモリ、CD-ROM、光学メモリなどを含むがこれらに限定されない)1つまたは複数のコンピュータ使用可能記憶媒体上で実施されるコンピュータプログラム製品であり得る。
【０１０３】
本出願は、本発明の実施形態による方法、デバイス(システム)、およびコンピュータプログラム製品に従ってフローチャートおよび/またはブロック図を参照して説明している。コンピュータプログラム命令がフローチャートおよび/またはブロック図中の各プロセスおよび/またはブロックとフローチャートおよび/またはブロック図中のプロセスおよび/またはブロックの組合せとを実施するために使用され得ることを理解されたい。このようなコンピュータプログラム命令は、コンピュータまたは任意の他のプログラマブルデータ処理デバイスのプロセッサによって実行された命令がフローチャート中の1つまたは複数のプロセスにおけるおよび/またはブロック図中の1つまたは複数のブロックにおける指定の機能を実施するための装置を生成するように、汎用コンピュータ、特殊用途コンピュータ、組み込みプロセッサ、または任意の他のプログラマブルデータ処理デバイスのプロセッサに提供され、機構を生成し得る。
【０１０４】
このようなコンピュータプログラム命令はまた、コンピュータ可読メモリに記憶されている命令が命令装置を含むアーチファクトを生成するように、コンピュータ可読メモリに記憶され得るし、コンピュータまたは任意の他のプログラマブルデータ処理デバイスが特定の方式で動作するように命令し得る。命令装置は、フローチャート中の1つまたは複数のプロセスにおけるおよび/またはブロック図中の1つまたは複数のブロックにおける指定の機能を実施する。
【０１０５】
このようなコンピュータプログラム命令はまた、コンピュータまたは別のプログラマブルデータ処理デバイスにロードされ得るし、その結果一連の動作ステップがコンピュータまたは別のプログラマブルデバイス上で行われ、それによって、コンピュータ実施処理を生成している。したがって、コンピュータまたは別のプログラマブルデバイス上で実行される命令は、フローチャート中の1つまたは複数のプロセスにおけるおよび/またはブロック図中の1つまたは複数のブロックにおける指定の機能を実施するためのステップを提供する。
【０１０６】
典型的な設定においては、計算デバイスは、1つまたは複数の中央処理ユニット(CPU)、I/Oインターフェース、ネットワークインターフェース、およびメモリを含む。
【０１０７】
メモリは、例えば、Read-Only Memory(ROM)またはフラッシュRAMといった、揮発性メモリ、Random Access Memory(RAM)、および/または不揮発性メモリなどのコンピュータ可読媒体を含み得る。メモリは、コンピュータ可読媒体の例である。
【０１０８】
コンピュータ可読媒体は、不揮発性および揮発性媒体もムーバブルおよび非ムーバブル媒体も含み、任意の方法または技術を用いて情報ストレージを実装し得る。情報は、コンピュータ可読命令、データ構造、およびプログラムのモジュールまたは他のデータであり得る。コンピュータの記憶媒体は、例えば、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、他のタイプのRAM、ROM、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリ、もしくは他のメモリ技術と、コンパクトディスクリードオンリーメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、もしくは他の光学ストレージと、カセットテープ、磁気テープ/磁気ディスクストレージ、もしくは他の磁気ストレージデバイスと、または任意の他の非伝送媒体とを含むがこれらに限定されず、コンピューティングデバイスによってアクセスされる情報を記憶するために使用され得る。本記載の定義によれば、コンピュータ可読媒体は、変調データ信号およびキャリアなどといった、一時的媒体を含まない。
【０１０９】
「含む」、「備える」といった用語、またはそれらの他の類型は、非排他的な包含をカバーすることを意図しており、その結果、一連の要素を含むプロセス、方法、商品、もしくはデバイスが、その要素を含むだけでなく、明示的に記載していない他の要素も含む、または、そのようなプロセス、方法、商品、もしくはデバイスに本来備わっている要素をさらに含むことにさらに留意されたい。「・・・を含む」で終わる要素は、さらなる制約がないケースでは、要素を含むプロセス、方法、商品、またはデバイスが他の同一要素をさらに有することを除外することはしない。
【０１１０】
本出願の実施形態が方法、システム、またはコンピュータプログラム製品として提供され得ることを当業者は理解されたい。したがって、本出願は、完全なるハードウェア実施形態、完全なるソフトウェア実施形態、またはソフトウェアとハードウェアとを組み合わせた実施形態として実施され得る。さらに、本出願は、コンピュータ使用可能プログラムコードを含む(磁気ディスクメモリ、CD-ROM、光学メモリなどを含むがこれらに限定されない)1つまたは複数のコンピュータ使用可能記憶媒体上で実施されるコンピュータプログラム製品の形式であり得る。
【０１１１】
本出願は、例えば、プログラムモジュールといった、コンピュータによって実行されるコンピュータ実行可能命令の一般的な状況において説明し得る。一般的に、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データタイプを実施するために使用される、ルーチン、プログラム、オブジェクト、アセンブリ、データ構造などを含む。本出願はまた分散コンピューティング環境において実施され得るし、分散コンピュータ環境では、タスクが通信ネットワークを介して接続されたリモート処理デバイスによって実行される。分散コンピュータ環境においては、プログラムモジュールは、ストレージデバイスを含むローカルコンピュータ記憶媒体およびリモートコンピュータ記憶媒体に位置し得る。
【０１１２】
本明細書内の実施形態は漸進的に説明しており、実施形態の同一または同様の部分は互いに参照してもよく、各実施形態は他の実施形態と異なる部分を重視している。特に、システムの実施形態は、方法の実施形態と基本的に同様である、そのため、簡潔に説明しており、関連する部分については、方法の実施形態におけるその部分の説明を参照してもよい。
【０１１３】
上記の説明は、本出願の実施形態に過ぎず、本出願を限定することは意図していない。当業者のために、本出願は様々な修正および変形を有し得る。本出願の精神および原理から逸脱することなくなされた任意の修正、均等物との置換、改良などは、本出願の特許請求の範囲の範囲内に含まれるものとする。
【符号の説明】
【０１１４】
501  受信モジュール
502  記憶モジュール
503  リクエスト獲得モジュール
601  リクエスト受信モジュール
602  リクエスト記憶モジュール
603  受信モジュール
604  検証モジュール
【図１】
2020509690.tif 000002
【図２】
2020509690.tif 000003
【図３】
2020509690.tif 000004
【図４】
2020509690.tif 000005
【図５】
2020509690.tif 000006
【図６】
2020509690.tif 000007
【手続補正書】
【提出日】平成31年3月26日(2019.3.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
業務検証方法であって、
コンセンサスネットワーク全体中にある第1のブロックチェーンノードによって、端末によって送信された業務リクエストを受信するステップと、
前記第1のブロックチェーンノードにおいて、前記第1のブロックチェーンノードに対応する業務メモリに前記業務リクエストを記憶し、前記業務リクエストを前記コンセンサスネットワーク全体の第2のブロックチェーンノードにブロードキャストするステップと、
前記第2のブロックチェーンノードのうちのいくつかの第2のブロックチェーンノードにおいて、前記第2のブロックチェーンノードのうちのいくつかの第2のブロックチェーンノードのそれぞれの対応する業務メモリに前記業務リクエストを記憶するステップであって、前記第1のブロックチェーンノードは、前記受信した業務リクエストを前記第2のブロックチェーンノードにブロードキャストし、前記第2のブロックチェーンノードのいくつかは、ネットワーク障害などの影響要因に起因して、前記第1のブロックチェーンノードによってブロードキャストされた前記業務リクエストを受信していない、ステップと、
前記第1のブロックチェーンノードにおいて、前記第1のブロックチェーンノードの前記業務メモリから少なくとも1つの業務リクエストを獲得するステップと、
前記第1のブロックチェーンノードにおいて、前記獲得した少なくとも1つの業務リクエストをプリプロセス済みブロックにまとめて、コンセンサス検証のために、前記少なくとも1つの業務リクエストの前記プリプロセス済みブロックを前記第2のブロックチェーンノードにブロードキャストするステップと、
前記第2のブロックチェーンノードによって、前記少なくとも1つの業務リクエストの前記プリプロセス済みブロックを受信するステップと、
前記第2のブロックチェーンノードにおいて、それぞれの対応する業務メモリに含まれているとともに前記第1のブロックチェーンノードの前記業務メモリからの前記少なくとも1つの業務リクエストと一致する業務リクエストに従って前記少なくとも1つの業務リクエストの前記プリプロセス済みブロックに対するコンセンサス検証を実行するステップであって、
前記第2のブロックチェーンノードがそれに対応する業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの一部を含んでいないことに気付いた場合には、前記第2のブロックチェーンノードは、前記少なくとも1つの業務リクエストの前記プリプロセス済みブロックをローカルコンセンサス検証に失敗したと直ちにみなすことはしない、ステップと、
前記第2のブロックチェーンノードによって、前記コンセンサスネットワーク全体中にある他のブロックチェーンノードから逸失している前記業務リクエストの前記一部を獲得するステップと、
前記第2のブロックチェーンノードにおいて、前記業務リクエストの前記獲得した一部と前記第2のブロックチェーンノードの前記業務メモリに記憶されている業務リクエストとを使用して前記プリプロセス済みブロックに含まれている前記業務リクエストに対するコンセンサス検証を実行するステップと
を含む、方法。
【請求項２】
前記第1のブロックチェーンノードと前記第2のブロックチェーンノードとの前記業務メモリは、業務リクエストを記憶しているデータベースの形式で設定され、前記メモリのうちのある業務メモリは、対応するブロックチェーンノードの失敗の際に消失しない、請求項1に記載の方法。
【請求項３】
前記第1のブロックチェーンノードに対応する前記業務メモリに前記業務リクエストを記憶する前記ステップは、
前記コンセンサスネットワーク全体中にある前記ブロックチェーンノードと前記業務メモリとの間のデータ伝送のために事前に設定された分散型ミドルウェアに前記端末から送信された前記業務リクエストを送信するステップと、
事前に設定された分散型ミドルウェアを使用して、前記第1のブロックチェーンノードのノード識別子に従って、前記第1のブロックチェーンノードに対応する前記業務メモリに前記業務リクエストを記憶するステップを特に含む、請求項2に記載の方法。
【請求項４】
前記業務メモリから少なくとも1つの業務リクエストを獲得する前記ステップは、
前記業務メモリから、設定された優先度より高い業務タイプを有する所定の数の業務リクエストを獲得するステップを特に含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記第1のブロックチェーンノードに対応する業務メモリに前記業務リクエストを記憶する前記ステップは、
前記業務リクエストの前記業務タイプに従って前記業務メモリに前記業務リクエストを記憶するステップと、
前記第1のブロックチェーンノードによって、前記業務タイプの事前に設定された優先順位に従って前記業務リクエストと以前受信した業務リクエストとをランク付けするステップとを特に含む、請求項4に記載の方法。
【請求項６】
前記第1のブロックチェーンノードは、コンソーシアムチェーンコンセンサスアルゴリズムにおけるリーダーノードであり、前記第2のブロックチェーンノードは、前記コンソーシアムチェーンコンセンサスアルゴリズムにおける非リーダーノードである、請求項1に記載の方法。
【請求項７】
前記第2のブロックチェーンノードによって、前記コンセンサスネットワーク全体中にある他のブロックチェーンノードから逸失している前記業務リクエストの前記一部を獲得する前記ステップは、
前記第2のブロックチェーンノードの前記業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの前記一部を含んでいないと決定されると前記業務リクエストの前記一部を獲得するためのクエリメッセージを別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに送信するステップと、
前記別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードによって返信された応答メッセージを受信するステップであって、前記応答メッセージは、前記応答メッセージを送信している前記別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに対応する業務メモリが前記業務リクエストの前記一部を記憶していることを示す、ステップと、
前記応答メッセージを送信している前記第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに対応する前記業務メモリから前記業務リクエストの前記一部を獲得するステップと
を特に含む、請求項1に記載の方法。
【請求項８】
前記第1のブロックチェーンノードによって送信された前記業務リクエストを受信した後に、前記第2のブロックチェーンノードにおいて、前記コンセンサスネットワーク全体中にある他のブロックチェーンノードに前記業務リクエストをさらにブロードキャストするステップと、
前記他のブロックチェーンノードにおいて、前記業務リクエストを受信すると、前記業務リクエストが以前受信したことがあるかどうかを判断するステップであって、
yesの場合には、前記他のブロックチェーンノードは前記業務リクエストを無視し、
noの場合には、前記他のブロックチェーンノードは事前に設定された分散型ミドルウェアを使用してそれに対応する業務メモリに前記業務リクエストを記憶する、ステップと
をさらに含む、請求項1に記載の方法。
【請求項９】
前記コンセンサス検証中に、前記業務リクエストを受信すると、前記第2のブロックチェーンノードによって、前記プリプロセス済みブロック含まれている前記業務リクエストの非対称署名の正当性を検証するステップをさらに含む、請求項8に記載の方法。
【請求項１０】
前記非対称署名正当性検証と前記プリプロセス済みブロックについて実行されたHash完全性検証とに従って、前記ブロックチェーンノードの各々によって、前記プリプロセス済みブロック全体が正当なものであるかどうかに関するそれ自身の検証結果を取得するステップと、
前記ブロックチェーンノードの各々によって、他のブロックチェーンノードにそれ自身によって取得した前記検証結果をブロードキャストするステップと、
前記プリプロセス済みブロックについての前記他のブロックチェーンノードによって送信された検証結果とそれ自身によって取得した前記検証結果とに従って、前記ブロックチェーンノードの各々によって、前記コンセンサスネットワーク全体中にある前記ブロックチェーンノードについての、前記プリプロセス済みブロックが前記検証をパスしたかどうかに関する、総合検証結果を取得するステップと、
前記他のブロックチェーンノードに前記取得した総合検証結果をさらにブロードキャストするステップと、
互いにブロードキャストした前記総合検証結果を受信した後に、前記コンセンサスネットワーク中にある前記ブロックチェーンノードの各々によって、前記コンセンサスネットワーク中にある前記ブロックチェーンノードによって取得された前記総合検証結果の大半が前記検証が成功したことを示しているかどうかを判断するステップであって、
yesの場合には、前記プリプロセス済みブロック内の前記業務リクエストをブロックとしてそれ自身のブロックチェーンに記憶し、
noの場合には、前記プリプロセス済みブロック内の前記業務リクエストを拒否する、ステップと
をさらに含む、請求項9に記載の方法。
【請求項１１】
業務検証装置であって、
コンセンサスネットワーク全体中にある第2のブロックチェーンノードに前記コンセンサスネットワーク全体中にある第1のブロックチェーンノードによってブロードキャストされた業務リクエストを受信するように構成される、リクエスト受信モジュールと、
事前に設定された分散型ミドルウェアを使用して前記第1のブロックチェーンノードと前記第2のブロックチェーンノードのうちからのいくつかの第2のブロックチェーンノードに対応する業務メモリに前記業務リクエストを記憶するように構成される、リクエスト記憶モジュール(502、602)であって、前記第1のブロックチェーンノードが前記業務リクエストを前記第2のブロックチェーンノードにブロードキャストした際に、前記第2のブロックチェーンノードのいくつかは、ネットワーク障害などの影響要因に起因して、前記第1のブロックチェーンノードによってブロードキャストされた前記業務リクエストを受信していない、リクエスト記憶モジュール(502、602)と、
前記第2のブロックチェーンノードによって、前記第1のブロックチェーンノードによってブロードキャストされるとともに少なくとも1つの業務リクエストを含むプリプロセス済みブロックを受信することと、
それぞれの対応する業務メモリに含まれているとともに前記第1のブロックチェーンノードの前記業務メモリからの前記少なくとも1つの業務リクエストと一致する業務リクエストに従って前記少なくとも1つの業務リクエストの前記プリプロセス済みブロックに対するコンセンサス検証を実行することであって、
前記第2のブロックチェーンノードがそれに対応する業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの一部を含んでいないことに気付いた場合には、前記第2のブロックチェーンノードは、前記少なくとも1つの業務リクエストの前記プリプロセス済みブロックをローカルコンセンサス検証に失敗したと直ちにみなすことはしない、ことと、
前記第2のブロックチェーンノードによって、前記コンセンサスネットワーク全体中にある別のブロックチェーンノードから逸失している前記業務リクエストの前記一部を獲得することと
をするように構成される、受信モジュール(501)と、
前記業務リクエストの前記獲得した一部と前記第2のブロックチェーンノードに対応する前記業務メモリに記憶されている業務リクエストとを使用して前記プリプロセス済みブロックに対するコンセンサス検証を実行するように構成される、検証モジュール(604)と
を含む、装置。
【請求項１２】
前記第1のブロックチェーンノードと前記第2のブロックチェーンノードとの前記業務メモリは、業務リクエストを記憶しているデータベースの形式で設定され、前記メモリのうちのある業務メモリは、対応するブロックチェーンノードの失敗の際に消失しない、請求項11に記載の装置。
【請求項１３】
前記リクエスト記憶モジュール(502)は、
前記コンセンサスネットワーク全体中にある前記ブロックチェーンノードと前記業務メモリとの間のデータ伝送のために事前に設定された分散型ミドルウェアに前記業務リクエストを送信することと、
事前に設定された分散型ミドルウェアを使用して、前記第1のブロックチェーンノードと前記第2のブロックチェーンノードとのノード識別子に従って、前記第1のブロックチェーンノードと前記第2のブロックチェーンノードとに対応する前記業務メモリに前記業務リクエストを記憶することであって、前記業務リクエストを記憶することは、前記業務リクエストの業務タイプに従う、ことと、
前記第1のブロックチェーンノードによって、前記業務タイプの事前に設定された優先順位に従って前記業務リクエストと以前受信した業務リクエストとをランク付けすることと
をするように構成される、請求項11に記載の装置。
【請求項１４】
前記受信モジュールは、
前記第2のブロックチェーンノードの前記業務メモリが前記プリプロセス済みブロック内の前記業務リクエストの前記一部を含んでいないと決定されると前記業務リクエストの前記一部を獲得するためのクエリメッセージを別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに送信することと、
前記別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードによって返信された応答メッセージを受信することであって、前記応答メッセージは、前記応答メッセージを送信している前記別の第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに対応する業務メモリが前記業務リクエストの前記一部を記憶していることを示す、ことと、
前記応答メッセージを送信している前記第2のブロックチェーンノードまたは前記第1のブロックチェーンノードに対応する前記業務メモリから前記業務リクエストの前記一部を獲得することと
をするように構成される、請求項11に記載の装置。
【請求項１５】
前記検証モジュール(604)は、
前記業務リクエストを受信すると、前記第2のブロックチェーンノードによって、前記プリプロセス済みブロック含まれている前記業務リクエストの非対称署名の正当性を検証することと、
前記非対称署名正当性検証と前記プリプロセス済みブロックについて実行されたHash完全性検証とに従って、前記ブロックチェーンノードの各々によって、前記プリプロセス済みブロック全体が正当なものであるかどうかに関するそれ自身の検証結果を取得することと、
前記ブロックチェーンノードの各々によって、他のブロックチェーンノードにそれ自身によって取得した前記検証結果をブロードキャストすることと、
前記プリプロセス済みブロックについての前記他のブロックチェーンノードによって送信された検証結果とそれ自身によって取得した前記検証結果とに従って、前記ブロックチェーンノードの各々によって、前記コンセンサスネットワーク全体中にある前記ブロックチェーンノードについての、前記プリプロセス済みブロックが前記検証をパスしたかどうかに関する、総合検証結果を取得することと、
前記他のブロックチェーンノードに前記取得した総合検証結果をさらにブロードキャストすることと、
互いにブロードキャストした前記総合検証結果を受信した後に、前記コンセンサスネットワーク中にある前記ブロックチェーンノードの各々によって、前記コンセンサスネットワーク中にある前記ブロックチェーンノードによって取得された前記総合検証結果の大半が前記検証が成功したことを示しているかどうかを判断することであって、
yesの場合には、前記プリプロセス済みブロック内の前記業務リクエストをブロックとしてそれ自身のブロックチェーンに記憶し、
noの場合には、前記プリプロセス済みブロック内の前記業務リクエストを拒否する、ことと
をするように構成される、請求項11に記載の装置。
【国際調査報告】
2020509690.tif 000008
2020509690.tif 000009