(57)【特許請求の範囲】
【請求項１】
ノードによって第１のブロックを継続的に生成し、ブロックチェーン上に前記第１のブロックを記憶するステップと、
ブロック生成規則を取得するエンドユーザデバイスに対して前記ブロックチェーンを提供するステップと、
前記エンドユーザデバイスによってサービスプラットフォームから前記ブロック生成規則を取得するステップと、
前記ブロックチェーンに基づいて、前記ブロック生成規則に合致する前処理ブロックを生成するステップと、
前記エンドユーザデバイスによって、１つまたは複数の他のエンドユーザデバイスおよび前記ノードを使用することによって前記前処理ブロックに対してコンセンサス手順を実施するステップと、
前記前処理ブロックに対する前記コンセンサスが達成されると判定したことに応答して、前記ブロックチェーン上に前記前処理ブロックを第２のブロックとして記憶するステップと、
所定の条件が満たされるとの判定に応答して、少なくとも１つのエンドユーザデバイスまたは少なくとも１つのノードから、現瞬間でのブロックチェーンの少なくとも一部を前記サービスプラットフォームによって取得するステップと、
所定の瞬間に基づいて、取得した現瞬間での前記ブロックチェーンから第１のブロックを前記サービスプラットフォームによって決定するステップと、
決定した前記第１のブロックに基づいて第２のブロックを選択するステップと、
選択した前記第２のブロック内に含まれるユーザ識別子に基づいて、前記サービスプラットフォームによってサービスを実行するステップと
を含むサービス実行方法。
【請求項２】
ノードが第１のブロックを継続的に生成し、ブロックチェーン上に前記第１のブロックを記憶し、ブロック生成規則を取得するエンドユーザデバイスに対して前記ブロックチェーンを提供する、サービス実行方法であって、
サービスプラットフォームによって、前記エンドユーザデバイスによって送られた資格取得要求を受信するステップと、
前記資格取得要求に基づいて前記エンドユーザデバイスに前記ブロック生成規則を返し、その結果、前記エンドユーザデバイスが、前記ブロックチェーンおよび前記ブロック生成規則に基づいて第２のブロックを生成する、ステップと、
前記ブロックチェーン上に前記第２のブロックを記憶するステップと、
所定の条件が満たされるとの判定に応答して、少なくとも１つのエンドユーザデバイスまたは少なくとも１つのノードから、現瞬間でのブロックチェーンの少なくとも一部を取得するステップと、
所定の瞬間に基づいて、取得した前記現瞬間でのブロックチェーンから第１のブロックを決定するステップと、
決定した前記第１のブロックに基づいて第２のブロックを選択するステップと、
選択した前記第２のブロック内に含まれるユーザ識別子に基づいてサービスを実行するステップと
を含むサービス実行方法。
【請求項３】
所定の瞬間に基づいて、取得した前記現瞬間でのブロックチェーンから第１のブロックを決定する前記ステップと、決定した前記第１のブロックに基づいて第２のブロックを選択する前記ステップが、
前記ブロックチェーン上のすべての前記第１のブロックの生成時間を決定するステップと、
生成時間が前記所定の瞬間に最も近い第１のブロックを決定するステップと、
前記第１のブロックをマーク済みブロックと決定するステップと、
取得した前記現瞬間でのブロックチェーンから、前記マーク済みブロックの後に位置する第２のブロックを選択するステップと
を含む請求項２に記載のサービス実行方法。
【請求項４】
取得した前記現瞬間でのブロックチェーンから、前記マーク済みブロックの後に位置する第２のブロックを選択する前記ステップが、
前記現瞬間での前記ブロックチェーンから、前記現瞬間での前記ブロックチェーン上のブロックのランキングシーケンスにおいて、前記マーク済みブロックの後に位置する所定の数の第２のブロックを選択するステップ
を含む請求項３に記載のサービス実行方法。
【請求項５】
ノードが第１のブロックを継続的に生成し、ブロックチェーン上に前記第１のブロックを記憶し、ブロック生成規則を取得するエンドユーザデバイスに対して前記ブロックチェーンを提供する、サービス実行方法であって、
前記エンドユーザデバイスによってサービスプラットフォームに資格取得要求を送り、その結果、前記サービスプラットフォームが前記エンドユーザデバイスに前記ブロック生成規則を返す、ステップと、
前記ブロックチェーンおよび前記ブロック生成規則に基づいて前処理ブロックを生成するステップと、
１つまたは複数の他のエンドユーザデバイスおよび前記ノードを使用することによって前記前処理ブロックに対してコンセンサス手順を実施するステップと、
前記コンセンサスが達成される前記前処理ブロックを第２のブロックとして前記ブロックチェーン上に記憶するステップと、
前記サービスプラットフォームによって送られた資格確認情報を受信したことに応答して、前記エンドユーザデバイスによって記憶されている現瞬間での前記ブロックチェーンを前記サービスプラットフォームに送り、その結果、前記サービスプラットフォームが、前記現瞬間での前記ブロックチェーン上の第１のブロックおよび第２のブロックに基づいてサービスを実行する、ステップと
を含むサービス実行方法。
【請求項６】
前記ブロックチェーンおよび前記ブロック生成規則に基づいて前処理ブロックを生成する前記ステップが、
前記ブロックチェーン上の最後のブロックのブロック特徴値を決定するステップと、
調節パラメータ、前記ブロック特徴値、およびユーザ識別子を使用することによって生成される検証すべき特徴値が前記ブロック生成規則を満たすように前記調節パラメータを決定するステップと、
前記検証すべき特徴値、前記ブロック特徴値、前記調節パラメータ、および前記ユーザ識別子に基づいて前記前処理ブロックを生成するステップと
を含む請求項５に記載のサービス実行方法。
【請求項７】
ノードが第１のブロックを継続的に生成し、ブロックチェーン上に前記第１のブロックを記憶し、ブロック生成規則を取得するエンドユーザデバイスに対して前記ブロックチェーンを提供する、サービス実行デバイスであって、
前記エンドユーザデバイスによって送られた資格取得要求を受信するように構成された受信モジュールと、
前記資格取得要求に基づいて前記エンドユーザデバイスに前記ブロック生成規則を返すように構成された返しモジュールであって、その結果、前記エンドユーザデバイスが、前記ブロックチェーンおよび前記ブロック生成規則に基づいて第２のブロックを生成し、前記ブロックチェーン上に前記第２のブロックを記憶する、返しモジュールと、
所定の条件が満たされるとの判定に応答して、少なくとも１つのエンドユーザデバイスまたは少なくとも１つのノードから、現瞬間での前記ブロックチェーンの少なくとも一部を取得するように構成された取得モジュールと、
所定の瞬間に基づいて、取得した前記現瞬間でのブロックチェーンから第１のブロックを決定し、決定した前記第１のブロックに基づいて第２のブロックを選択するように構成された選択モジュールと、
選択した前記第２のブロック内に含まれるユーザ識別子に基づいてサービスを実行するように構成された実行モジュールと
を備えるサービス実行デバイス。
【請求項８】
前記選択モジュールが、
前記ブロックチェーン上のすべての前記第１のブロックの生成時間を決定し、
生成時間が前記所定の瞬間に最も近い第１のブロックを決定し、
前記第１のブロックをマーク済みブロックと決定し、
取得した前記現瞬間でのブロックチェーンから前記マーク済みブロックの後に位置する第２のブロックを選択する
ように構成される請求項７に記載のサービス実行デバイス。
【請求項９】
前記選択モジュールが、前記現瞬間での前記ブロックチェーンから、前記現瞬間での前記ブロックチェーン上のブロックのランキングシーケンスにおいて、前記マーク済みブロックの後に位置する所定の数の第２のブロックを選択するように構成される請求項８に記載のサービス実行デバイス。
【請求項１０】
ノードが第１のブロックを継続的に生成し、ブロックチェーン上に前記第１のブロックを記憶し、ブロック生成規則を取得するデバイスに対して前記ブロックチェーンを提供する、サービス実行デバイスであって、
サービスプラットフォームに資格取得要求を送るように構成された送信モジュールであって、その結果、前記サービスプラットフォームが前記デバイスに前記ブロック生成規則を返す、送信モジュールと、
前記ブロックチェーンおよび前記ブロック生成規則に基づいて前処理ブロックを生成するように構成された生成モジュールと、
１つまたは複数の他のエンドユーザデバイスおよび前記ノードを使用することによって前記前処理ブロックに対してコンセンサス手順を実施し、前記コンセンサスが達成される前記前処理ブロックを第２のブロックとして前記ブロックチェーン上に記憶するように構成されたコンセンサスモジュールと、
前記サービスプラットフォームによって送られた資格確認情報を受信したことに応答して、前記デバイスによって記憶されている現瞬間での前記ブロックチェーンを前記サービスプラットフォームに送るように構成された受信モジュールであって、その結果、前記サービスプラットフォームが、前記現瞬間での前記ブロックチェーン上の第１のブロックおよび第２のブロックに基づいてサービスを実行する、受信モジュールと
を備えるサービス実行デバイス。
【請求項１１】
前記生成モジュールが、
前記ブロックチェーン上の最後のブロックのブロック特徴値を決定し、
調節パラメータ、前記ブロック特徴値、およびユーザ識別子を使用することによって生成される検証すべき特徴値が前記ブロック生成規則を満たすように前記調節パラメータを決定し、
前記検証すべき特徴値、前記ブロック特徴値、前記調節パラメータ、および前記ユーザ識別子に基づいて前記前処理ブロックを生成する
ように構成される請求項１０に記載のサービス実行デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、コンピュータ技術の分野に関し、詳細には、サービス実行方法およびデバイスに関する。
【背景技術】
【０００２】
コンピュータ技術の連続的な発展と共に、複数の新興のサービスパターンが相次いで現れている。これらの新興のサービスパターンはユーザのサービス実行を容易にし、パターンの革新により、サービス実行プロセスにおいて真新しい体験がユーザにもたらされる。
【０００３】
現在、これらの新興のサービスパターンにおいて、フラッシュセールなどのいくつかのサービスは、特に魅力的で人気がある。ユーザは、サービスによって指定された時間内の競合を通じた低価格で、サービスを実行するための資格を取得し得る。
【０００４】
実際には、現瞬間がサービスの所定の瞬間であることをサービスプラットフォームが検出すると、サービスの資格取得活動に参加するためのウィンドウがすべてのユーザに開かれる。それに対応して、すべてのユーザは、サービスを求める資格取得要求をこの時にサービスプラットフォームに送り得、サービスプラットフォームは、資格取得要求を送るユーザから数人のユーザを選択し、選択したユーザにサービスを実行する資格を授与し得る。
【０００５】
たとえば、商品フラッシュセール（ここで述べる商品セキル（ｓｅｃｋｉｌｌ）は、ユーザのためにサービスプラットフォームによって提供されるサービスである）では、エンドユーザデバイスを使用することによって商品フラッシュセールが開始する（言い換えれば、サービスの所定の瞬間が到来する）ことを発見したとき、すべてのユーザが商品セキル要求（すなわち、以前の資格取得要求）を、商品フラッシュセールを提供するサービスプラットフォームに送り、サービスプラットフォームは、商品セキル要求を送る最初の数人のユーザに、商品を首尾よくセキルする資格を授与する（言い換えれば、サービスを実行するための資格を授与する）。確かに、商品フラッシュセールが開始した後、サービスプラットフォームは、すべてのユーザによって送られた商品セキル要求を最初に継続的に受け取り得、商品セキル要求を受信するためのデッドラインが到来したとき、この期間内に商品セキル要求を送るユーザから数人のユーザをランダムに選択し、選択したユーザに商品セキル資格を授与し得る。
【０００６】
時には、所定の瞬間が到来したとき、サービスプラットフォームは、サービスを求める多数のユーザによって送られる資格取得要求を瞬間的に受信する。したがって、サービスプラットフォームは、この期間内に多量のアクセス圧力に直面し、それによってサービスプラットフォームの運用障害が引き起こされ、サービス実行効率が低下する。
【発明の概要】
【課題を解決するための手段】
【０００７】
本願の実装は、所定の瞬間が到来したときにサービスプラットフォームが比較的高いアクセス圧力に直面するという既存の技術における問題を軽減するためのサービス実行システムを提供する。
【０００８】
本願の一実装は、ノードによって第１のブロックを継続的に生成し、ブロックチェーン上に第１のブロックを記憶し、ブロック生成規則を取得するエンドユーザデバイスに対してブロックチェーンを提供すること、エンドユーザデバイスによってサービスプラットフォームからブロック生成規則を取得し、ブロックチェーンに基づいて、ブロック生成規則に合致する前処理ブロックを生成すること、エンドユーザデバイスによって、１つまたは複数の他のエンドユーザデバイスおよびノードを使用することによって前処理ブロックに対してコンセンサス手順を実施し、前処理ブロックに対してコンセンサスが達成されると判定した後、ブロックチェーン上に前処理ブロックを第２のブロックとして記憶すること、所定の条件が満たされると判定したとき、少なくとも１つのエンドユーザデバイスまたは少なくとも１つのノードから、現瞬間でのブロックチェーンの少なくとも一部をサービスプラットフォームによって取得すること、所定の瞬間に基づいて、取得した現瞬間でのブロックチェーンから第１のブロックをサービスプラットフォームによって決定し、決定した第１のブロックに基づいて第２のブロックを選択すること、および選択した第２のブロック内に含まれるユーザ識別子に基づいて、サービスプラットフォームによってサービスを実行することを含むサービス実行方法を提供する。
【０００９】
本願の実装は、所定の瞬間が到来したときにサービスプラットフォームが比較的高いアクセス圧力に直面するという既存の技術における問題を軽減するためのサービス実行方法を提供する。
【００１０】
本願の一実装は、ノードが第１のブロックを継続的に生成し、ブロックチェーン上に第１のブロックを記憶し、ブロック生成規則を取得するエンドユーザデバイスに対してブロックチェーンを提供する、サービス実行方法であって、サービスプラットフォームによって、エンドユーザデバイスによって送られた資格取得要求を受信すること、資格取得要求に基づいてエンドユーザデバイスにブロック生成規則を返し、その結果、エンドユーザデバイスが、ブロックチェーンおよびブロック生成規則に基づいて第２のブロックを生成し、ブロックチェーン上に第２のブロックを記憶すること、所定の条件が満たされると判定したとき、少なくとも１つのエンドユーザデバイスまたは少なくとも１つのノードから、現瞬間でのブロックチェーンの少なくとも一部を取得すること、所定の瞬間に基づいて、取得した現瞬間でのブロックチェーンから第１のブロックを決定し、決定した第１のブロックに基づいて第２のブロックを選択すること、および選択した第２のブロック内に含まれるユーザ識別子に基づいてサービスを実行することを含む方法を提供する。
【００１１】
本願の実装は、所定の瞬間が到来したときにサービスプラットフォームが比較的高いアクセス圧力に直面するという既存の技術における問題を軽減するためのサービス実行デバイスを提供する。
【００１２】
本願の一実装は、ノードが第１のブロックを継続的に生成し、ブロックチェーン上に第１のブロックを記憶し、ブロック生成規則を取得するエンドユーザデバイスに対してブロックチェーンを提供する、サービス実行デバイスであって、エンドユーザデバイスによって送られた資格取得要求を受信するように構成された受信モジュールと、資格取得要求に基づいてエンドユーザデバイスにブロック生成規則を返すように構成された返しモジュールであって、その結果、エンドユーザデバイスが、ブロックチェーンおよびブロック生成規則に基づいて第２のブロックを生成し、ブロックチェーン上に第２のブロックを記憶する、返しモジュールと、所定の条件が満たされると判定したとき、少なくとも１つのエンドユーザデバイスまたは少なくとも１つのノードから、現瞬間でのブロックチェーンの少なくとも一部を取得するように構成された取得モジュールと、所定の瞬間に基づいて、取得した現瞬間でのブロックチェーンから第１のブロックを決定し、決定した第１のブロックに基づいて第２のブロックを選択するように構成された選択モジュールと、選択した第２のブロック内に含まれるユーザ識別子に基づいてサービスを実行するように構成された実行モジュールとを含むデバイスを提供する。
【００１３】
本願の実装は、所定の瞬間が到来したときにサービスプラットフォームが比較的高いアクセス圧力に直面するという既存の技術における問題を軽減するためのサービス実行方法を提供する。
【００１４】
本願の一実装は、ノードが第１のブロックを継続的に生成し、ブロックチェーン上に第１のブロックを記憶し、ブロック生成規則を取得するエンドユーザデバイスに対してブロックチェーンを提供する、サービス実行方法であって、エンドユーザデバイスによってサービスプラットフォームに資格取得要求を送り、その結果、サービスプラットフォームがエンドユーザデバイスにブロック生成規則を返すこと、ブロックチェーンおよびブロック生成規則に基づいて前処理ブロックを生成すること、１つまたは複数の他のエンドユーザデバイスおよびノードを使用することによって前処理ブロックに対してコンセンサス手順を実施し、コンセンサスが達成される前処理ブロックを第２のブロックとしてブロックチェーン上に記憶すること、およびサービスプラットフォームによって送られた資格確認情報を受信したとき、エンドユーザデバイスによって記憶されている現瞬間でのブロックチェーンをサービスプラットフォームに送り、その結果、サービスプラットフォームが、現瞬間でのブロックチェーン上の第１のブロックおよび第２のブロックに基づいてサービスを実行することを含む方法を提供する。
【００１５】
本願の実装は、所定の瞬間が到来したときにサービスプラットフォームが比較的高いアクセス圧力に直面するという既存の技術における問題を軽減するためのサービス実行デバイスを提供する。
【００１６】
本願の一実装は、ノードが第１のブロックを継続的に生成し、ブロックチェーン上に第１のブロックを記憶し、ブロック生成規則を取得するデバイスに対してブロックチェーンを提供する、サービス実行デバイスであって、サービスプラットフォームに資格取得要求を送るように構成された送信モジュールであって、その結果、サービスプラットフォームがデバイスにブロック生成規則を返す、送信モジュールと、ブロックチェーンおよびブロック生成規則に基づいて前処理ブロックを生成するように構成された生成モジュールと、１つまたは複数の他のエンドユーザデバイスおよびノードを使用することによって前処理ブロックに対してコンセンサス手順を実施し、コンセンサスが達成される前処理ブロックを第２のブロックとしてブロックチェーン上に記憶するように構成されたコンセンサスモジュールと、サービスプラットフォームによって送られた資格確認情報を受信したとき、デバイスによって記憶されている現瞬間でのブロックチェーンをサービスプラットフォームに送るように構成された受信モジュールであって、その結果、サービスプラットフォームが、現瞬間でのブロックチェーン上の第１のブロックおよび第２のブロックに基づいてサービスを実行する、受信モジュールとを含むデバイスを提供する。
【００１７】
本願の実装において使用される以前の技術的解決策のうちの少なくとも１つが、以下の有益な効果を達成し得る。
【００１８】
本願の実装では、エンドユーザデバイスによって送られた資格取得要求を受信した後、サービスプラットフォームは、所定の瞬間が到来したときにだけエンドユーザデバイスにブロック生成規則を返すのではなく、エンドユーザデバイスにブロック生成規則を返し得る。したがって、エンドユーザデバイスが所定の瞬間の前にサービスプラットフォームに資格取得要求を送る場合であっても、サービスプラットフォームは、依然としてエンドユーザデバイスにブロック生成規則を返す。言い換えれば、サービスプラットフォームは、サービス資格を取得することに参加するユーザを時間の点で分離し得、その結果、あるユーザは、所定の瞬間の前にブロック生成規則を取得し、次いで所定の瞬間が到来したとき、取得したブロック生成規則に基づいてサービスに参加し得る。
【００１９】
さらに、サービスを実行するユーザを選択するとき、サービスプラットフォームは、ブロックチェーン上に含まれる第１のブロックを時間基準として使用することによって第２のブロックを選択し、選択した第２のブロックに基づいて、サービスを実行するユーザを決定し得る。したがって、エンドユーザデバイスがサービスを実行するために様々な時点においてブロック生成規則を取得し得る場合であっても、エンドユーザデバイスは、時間基準（例えば、第１のブロック）に基づいて、ブロック生成規則を満たす第２のブロックを生成し得る。したがって、所定の瞬間が到来したときにサービスプラットフォームが直面するアクセス圧力が大いに軽減され得るだけではなく、所定の瞬間が到来した後のサービスプラットフォームの正常な実行も保証され得る。エンドユーザデバイスを使用することによってユーザがサービスを実行し得る場合、所定の瞬間の前にエンドユーザデバイスを使用することによってブロック生成規則が取得される場合であっても、ブロック生成規則を満たす第２のブロックを生成する必要があるのは、所定の瞬間が到来したときだけであることがさらに保証され得、それによってサービス実行の公平性が保証される。
【００２０】
ここで説明する添付の図面は、本願のより一層の理解を与えるためのものであり、本願の一部を構成する。本願の例示的実装およびその説明は、本願を説明するためのものであり、本願に関する限定を構成するものではない。
【図面の簡単な説明】
【００２１】
【図１】本願の一実装による、サービス実行システムを示す概略図である。
【図２】本願の一実装による、サービス実行プロセスを示す概略図である。
【図３】本願の一実装による、サービスによって指定される所定の瞬間の後に生成される、ブロックチェーンの一部を示す概略図である。
【図４】本願の一実装による、サービス実行デバイスを示す概略図である。
【図５】本願の一実装による、別のサービス実行デバイスを示す概略図である。
【発明を実施するための形態】
【００２２】
本願の実装では、図１に示されるように、サービスプラットフォーム、少なくとも１つのノード、および少なくとも１つのエンドユーザデバイスがサービス実行システムを形成し得る。
【００２３】
図１は、本願の一実装による、サービス実行システムを示す概略図である。
【００２４】
図１に示されるシステムでは、サービスプラットフォームは、実行すべきサービスをユーザに提供し、エンドユーザデバイスを使用することによってユーザによって送られる、サービスを求める資格取得要求を受信したとき、対応するブロック生成規則をエンドユーザデバイスに返し得、その結果、ブロック生成規則を受信するエンドユーザデバイスが、サービスを実行する機会を有し得る。後に、サービスプラットフォームは、資格取得要求を送るノードまたは少なくとも１つのエンドユーザデバイスからブロックチェーンを取得し、サービスを実行するユーザをブロックチェーンから決定する必要がある。
【００２５】
システム内に少なくとも１つのノードが存在し得、これらのノードは小規模コンセンサスネットワークを形成し得る。各ノードは継続的に前処理ブロックを生成し、ノードによって生成された前処理ブロックを、コンセンサスのための小規模コンセンサスネットワークに送り得る。ノードによって生成された前処理ブロックに対するコンセンサスが達成されると判定すると、ノードは、ノードによって記憶されたブロックチェーン上に前処理ブロックを第１のブロックとして記憶し得る。
【００２６】
システム内のノードは、サービスプラットフォームと、サービスの資格取得活動に参加するすべてのエンドユーザデバイスとについての時間基準を提供するように働き、その結果、エンドユーザデバイスが様々な時点においてサービスプラットフォームからブロック生成規則を取得する場合であっても、エンドユーザデバイスは、同一の時間基準に基づいて、ブロック生成規則を満たす第２のブロックを生成する必要がある。したがって、各ユーザによるサービスの実行への参加の公平性が、可能な限り保証され得る。ノードによって第１のブロックを生成することによって形成されるブロックチェーンが時間基準として働き得る理由は、後で説明される。
【００２７】
システムでは、ユーザがサービスの資格取得活動に参加したい場合、ユーザは、ユーザが所有するエンドユーザデバイスを使用して、サービスを求める資格取得要求をサービスプラットフォームに送り、サービスプラットフォームによって返されるブロック生成規則と、ノードから取得されるブロックチェーンとに基づいて、ブロック生成規則を満たす前処理ブロックを生成し得る。本願のこの実装では、エンドユーザデバイスは、任意の時点においてサービスプラットフォームに資格取得要求を送り、所定の瞬間が到来したときにサービスプラットフォームが直面するアクセス圧力を効果的に軽減し得る。たとえば、エンドユーザデバイスは、所定の瞬間が到来する前、到来したとき、または到来した後に、サービスプラットフォームに資格取得要求を送り得る。しかしながら、サービスプラットフォームがエンドユーザデバイスによって送られた資格取得要求を受信したときにはいつでも、サービスプラットフォームは、エンドユーザデバイスにブロック生成規則を返し得る。
【００２８】
ブロックチェーン上に含まれる第１のブロックが、ノードによって、前処理ブロックを継続的に生成することによって取得される。具体的には、ノードによって生成された前処理ブロックに対するコンセンサスが達成されると、前処理ブロックが、ブロックチェーン上に第１のブロックとして記憶され得る。ノードは、サービス用ではない第１のブロックを生成する。第１のブロックをレギュラーブロックと理解することができ、第１のブロックは、サービスについてのどのようなデータも含まないことがある。
【００２９】
前述の第２のブロックが、エンドユーザデバイスによって、前処理ブロックを生成することによって取得される。具体的には、ブロックチェーンおよびブロック生成規則に基づいてエンドユーザデバイスによって生成された前処理ブロックに対するコンセンサスが達成されると、前処理ブロックが、ブロックチェーン上に第２のブロックとして記憶され得る。第２のブロックは、サービスのためにエンドユーザデバイスによって生成される。言い換えれば、第２のブロックは、ユーザ識別子などの、サービスについてのデータを含み得る。ここでの「第１」および「第２」は、相異なるブロックを区別するために使用されるに過ぎず、特別な意味を持たない。
【００３０】
本願での技術的解決策を当業者により良く理解させるために、以下では、本願の実装での添付の図面を参照しながら、本願の実装での技術的解決策を明確に、包括的に説明する。明らかに、説明される実装は、本願の実装のすべてではなく、一部に過ぎない。創造的な努力なしに本願の実装に基づいて当業者によって得られるすべての他の実装は、本願の保護範囲内に包含されるものとする。
【００３１】
本願の実装において提供されるサービス実行方法の説明を容易にするために、以下では、商品セキルシナリオでのサービス実行プロセス全体を詳細に説明する。
【００３２】
図２は、本願の一実装によるサービス実行プロセスを示す概略図である。サービス実行プロセスは以下のステップを含む。
【００３３】
Ｓ２０１：エンドユーザデバイスが、サービスプラットフォームに資格取得要求を送り、その結果、サービスプラットフォームは、エンドユーザデバイスにブロック生成規則を返す。
【００３４】
本願のこの実装では、ユーザが商品セキルサービスを実行するプロセスが、大まかには以下の２つの段階に分割され得る。
【００３５】
１．資格取得段階：この段階では、サービスを実行したいユーザが、ユーザによって所有されるエンドユーザデバイスを使用することによって、サービスを求める資格取得要求をサービスプラットフォームに送り得る。この段階では、サービスプラットフォームは、エンドユーザデバイスによって送られた資格取得要求を受信したとき、エンドユーザデバイスにブロック生成規則を返し、その結果、ブロック生成規則を取得するエンドユーザデバイスは、サービスを実行する機会を有し得、言い換えれば、商品をセキルする機会を有し得る。
【００３６】
２．資格確認段階：資格取得段階の後、サービスプラットフォームは、一定の方法において、資格取得段階において資格取得要求を送るユーザから、サービスを実行することのできるユーザを選択し、サービスを実行することのできる、決定したユーザ（商品を首尾よくセキルするユーザ）を発行する必要がある。
【００３７】
本願のこの実装では、サービスの所定の瞬間が到来したときにサービスプラットフォームが直面するアクセス圧力を軽減し、サービスプラットフォームの正常な実行を保証するために、サービスプラットフォームがエンドユーザデバイスによって送られた資格取得要求を受信したときにはいつでも、サービスプラットフォームは、エンドユーザデバイスにブロック生成規則を返し得る。言い換えれば、サービスの所定の瞬間が到来する前、到来したとき、または到来した後に、ユーザがエンドユーザデバイスを使用することによってサービスプラットフォームに資格取得要求を送るかの如何に関わらず、エンドユーザデバイスは、サービスプラットフォームからブロック生成規則を取得し得る。したがって、所定の瞬間が到来したときにサービスプラットフォームが直面するアクセス圧力を効果的に軽減するように、エンドユーザデバイスがサービスプラットフォームに資格取得要求を送る時点は離散的でよい。ここで述べる所定の瞬間は、サービスの資格取得段階の開始時間、すなわち商品フラッシュセールの開始時間でよい。所定の瞬間が到来したとき、ユーザは商品フラッシュセールに参加し得る。
【００３８】
所定の瞬間（すなわち、商品フラッシュセールの開始時間）が到来する前にブロック生成規則を取得したとき、エンドユーザデバイスは実際には商品フラッシュセールに参加しないことに留意されたい。エンドユーザデバイスは、所定の瞬間が到来したときにだけ、商品フラッシュセールに実際に参加する。
【００３９】
本願のこの実装では、所定の瞬間が到来する前に、エンドユーザデバイスがサービス（商品フラッシュセール）を求める資格取得要求をサービスプラットフォームに送る特定の方法は、以下の通りであり得る。サービスプラットフォームは、所定の瞬間が到来する前に、サービスプラットフォーム上のサービスについての情報を発行し得る。ユーザがエンドユーザデバイス上のサービスプラットフォームに対応するクライアントソフトウェアを開始するとき、サービスプラットフォームにサービスを求める資格取得要求を送るようにエンドユーザデバイスがトリガされ、その結果、サービスプラットフォームは、エンドユーザデバイスによって送られた資格取得要求に基づいて、対応するブロック生成規則をエンドユーザデバイスに返し得る。
【００４０】
さらに、ユーザが、エンドユーザデバイス上のサービスプラットフォームに対応するクライアントソフトウェアを開始したとき、ユーザは、クライアントにおいて指定の動作を実施し得、その結果、エンドユーザデバイスは、ユーザが指定の動作を実施したことを検出した後、サービスを求める資格取得要求をサービスプラットフォームに送る。たとえば、ユーザがエンドユーザデバイス上のクライアントソフトウェアを開始した後、クライアントソフトウェアが商品フラッシュセールおよび動作制御についての情報をユーザに表示し得ると仮定する。ユーザがクライアントソフトウェアにおいて動作制御をクリックしたことを検出したとき、エンドユーザデバイスは、商品フラッシュセールを求める資格取得要求をサービスプラットフォームに送り得る。
【００４１】
もちろん、本願のこの実装では、前の２つのケースに加えて、エンドユーザデバイスは、サービスを求める資格取得要求をサービスプラットフォームに送るために他の方法でトリガされ得る。たとえば、クライアントソフトウェアが実行され、サービス（商品フラッシュセール）についての情報がクライアントソフトウェアにおいて発行されたことをエンドユーザデバイスが検出したとき、エンドユーザデバイスは、サービスの所定の瞬間が到来する前に、サービスを求める資格取得要求をサービスプラットフォームにアクティブに送り得る。エンドユーザデバイスは、所定の瞬間より前の任意の瞬間に、または所定の瞬間から指定の持続時間の間隔の瞬間に、サービスを求める資格取得要求をサービスプラットフォームに送り得る。
【００４２】
別の例では、サービスプラットフォームはまた、特定の条件に基づいて、商品フラッシュセールに参加し得るユーザを選択し得る。たとえば、サービスプラットフォームは、メンバシップレベルが指定のレベルに達するユーザを、商品フラッシュセールに参加し得るユーザと決定し、ユーザアカウント番号を使用することによって、ユーザが商品フラッシュセールに参加する必要があるかどうかについての照会メッセージをユーザにアクティブに送り得る。ユーザが照会メッセージを閲覧し、商品フラッシュセールに参加することを決定したことを検出したとき、エンドユーザデバイスは、商品フラッシュセールを求める資格取得要求をサービスプラットフォームに送り得る。それに対応して、サービスプラットフォームもまた、対応するブロック生成規則をエンドユーザデバイスに返し得る。さらに、他のトリガ方法もある。簡潔のためにここでは例を省略する。
【００４３】
Ｓ２０２：ブロックチェーンおよびブロック生成規則に基づいて前処理ブロックを生成する。
【００４４】
本願のこの実装では、所定の瞬間が到来したと判定したとき、エンドユーザデバイスは、少なくとも１つの所定のノードによって記憶されたブロックチェーンを、現瞬間にノードから取得し、ブロックチェーンに基づいて、ブロック生成規則を満たす前処理ブロックをさらに生成し得る。
【００４５】
本願のこの実装では、サービスの所定の瞬間が到来したと判定したとき、エンドユーザデバイスは、少なくとも１つの所定のノードからブロックチェーンを取得する必要がある。所定の瞬間の前に、エンドユーザデバイスは、サービス（商品フラッシュセール）についてのブロック生成規則をサービスプラットフォームから取得し得、ブロック生成規則を取得した後、エンドユーザデバイスは、ブロック生成規則を満たす前処理ブロックの生成を直ちに開始し得るからである。したがって、所定の瞬間の前に、エンドユーザデバイスは、ブロック生成規則を満たす前処理ブロックの生成を完了し得る。所定の瞬間が到来したとき、エンドユーザデバイスは、生成した前処理ブロックをコンセンサスのためのコンセンサスネットワークに直接的に送る。言い換えれば、所定の瞬間の後にブロック生成規則を取得するエンドユーザデバイスと比較して、所定の瞬間の前にブロック生成規則を優先的に取得するエンドユーザデバイスは、「先取得先生成（ｆｉｒｓｔ  ｏｂｔａｉｎｉｎｇ  ａｎｄ  ｆｉｒｓｔ  ｇｅｎｅｒａｔｉｏｎ）」の方法で、エンドユーザデバイスによって生成され、ブロック生成規則を満たす前処理ブロックを、コンセンサスのためのコンセンサスネットワークに優先的に送り得る。
【００４６】
しかしながら、所定の瞬間の後にブロック生成規則を取得するエンドユーザデバイスでは、エンドユーザデバイスの実際のコンピューティング能力が考慮されないとき、エンドユーザデバイスがブロック生成規則を取得する時間は、エンドユーザデバイスが所定の瞬間の前にブロック生成規則を取得する時間よりも後である。したがって、所定の瞬間の後にブロック生成規則を取得するエンドユーザデバイスはまた、所定の瞬間の前にブロック生成規則を取得するエンドユーザデバイスよりも後に前処理ブロックを生成する可能性が高くなり得る。それに対応して、エンドユーザデバイスはまた、所定の瞬間の前にブロック生成規則を取得するエンドユーザデバイスよりも後に、エンドユーザデバイスによって生成された前処理ブロックを、コンセンサスのためのコンセンサスネットワークに送る。
【００４７】
したがって、すべてのエンドユーザデバイス（所定の瞬間の前にブロック生成規則を取得するエンドユーザデバイスと、所定の瞬間の後にブロック生成規則を取得するエンドユーザデバイスのどちらも含む）がブロック生成規則を満たす前処理ブロックを可能な限り同時に（または同一の時間基準で）生成することを開始することを保証することができない場合、ブロック生成規則を最初に取得するエンドユーザデバイスが、前述の「先取得先生成」の方法で、ブロック生成規則を満たす前処理ブロックを最初に生成し得る確率が非常に高く、その結果、エンドユーザデバイスによってサービスを実行する確率（すなわち、商品をセキルする確率）が一定の範囲まで改善される。したがって、サービスの実行における公平性が欠けている。
【００４８】
前の問題を効果的に軽減するために、本願のこの実装では、少なくとも１つのノードがあらかじめ決定され得、これらのノードが、経時的に前処理ブロックを継続的に生成し、コンセンサスが達成される前処理ブロックを、ノードのブロックチェーン上に第１のブロックとして記憶し得る。言い換えれば、これらのノードが小規模コンセンサスネットワークを形成することと同等である。各ノードは、サービス用ではない前処理ブロックを継続的に生成し、生成した前処理ブロックを、コンセンサスのための小規模コンセンサスネットワークに送り得る。小規模コンセンサスネットワークが前処理ブロックに対するコンセンサスを達成した後、小規模コンセンサスネットワーク内の各ノードはまた、ノードのブロックチェーン上に前処理ブロックを第１のブロックとして記憶し得る。
【００４９】
ノードによって生成される時間基準が第１のブロックによって達成され得る理由は以下の通りである。実際には、ブロックチェーン上の各ブロックは、前のブロックのヘッダハッシュを含む。したがって、エンドユーザデバイスが、これらのノードによって記憶されたブロックチェーンに基づいて、ブロック生成規則を満たす前処理ブロックを生成し得るとき、エンドユーザデバイスが、サービスの所定の瞬間の前に、ブロック生成規則を満たす前処理ブロックを生成する場合、前処理ブロック内に含まれる前のブロックのヘッダハッシュに対応するブロック（ブロックは第１のブロックでよく、または第２のブロックでよい）は、必然的にブロックチェーン上の所定の瞬間の前に生成されたブロックである。したがって、前処理ブロックに対するコンセンサスが達成されると、前処理ブロックが必然的にブロックの後に接続され、これらのノードは依然として継続的に前処理ブロックを生成し、コンセンサスが達成される前処理ブロックを（エンドユーザデバイスによって生成された）前処理ブロックに第１のブロックとして接続する。
【００５０】
したがって、所定の瞬間の前にブロック生成規則を取得するエンドユーザデバイスが所定の瞬間の後にブロック生成規則を取得するエンドユーザデバイスよりもサービスを実行する（商品をセキルする）高い確率を有し得る発生率を低減するために、サービスを実行し得るユーザを決定するために、サービスプラットフォームは、所定の瞬間を境界として使用することによって、各エンドユーザデバイス（この時にブロック生成規則を取得するエンドユーザデバイス）またはノードから取得されるブロックチェーンからブロックチェーンの後半部分を取得し、ブロックチェーンの後半部分を、サービスを実行する機会を有し得るユーザを決定するためのブロックチェーンとして使用し得る。
【００５１】
そのようなケースでは、エンドユーザデバイスがサービスの所定の瞬間の前に、ブロック生成規則を満たす前処理ブロックの生成を完了する場合、前処理ブロック内に含まれる前のブロックのヘッダハッシュに対応するブロックが、ブロックチェーン上の所定の瞬間の前に生成されたブロック内に配置されるので、所定の瞬間が到来したときにだけ、エンドユーザデバイスがコンセンサスのためのコンセンサスネットワークに前処理ブロックを送る場合であっても、前処理ブロックに対するコンセンサスが達成された後、前処理ブロックは、必然的にブロック（すなわち前のブロック）の後に第２のブロックとして接続され、したがって、第２のブロックは、ブロックチェーン上の所定の瞬間の前の部分に入る可能性が非常に高い。それに対応して、資格確認段階において、サービスプラットフォームは、ブロックチェーン上の所定の瞬間の前の部分を無視し得、その結果、エンドユーザデバイスによって以前に実施された処理は無効となる。
【００５２】
したがって、所定の瞬間が到来する前にブロック生成規則を取得するエンドユーザデバイスがサービスを実行したい場合、現瞬間がサービスの所定の瞬間であると判定したとき、エンドユーザデバイスは、所定のノードから現瞬間にノードによって記憶されたブロックチェーンを取得する必要があり、その結果、ブロックチェーンに基づいてエンドユーザデバイスによって生成され、ブロック生成規則を満たす前処理ブロックだけが、前処理ブロックに対するコンセンサスが達成された後に、サービスプラットフォームによって選択され得、前処理ブロックを生成するエンドユーザデバイス（すなわち、エンドユーザデバイスを所有するユーザ）がサービスを実行し（商品をセキルし）得る確率がある。
【００５３】
本願のこの実装では、少なくとも１つの所定のノードから現瞬間に記憶されたブロックチェーンを取得した後、エンドユーザデバイスは、現瞬間でのブロックチェーン上の最後のブロックのブロック特徴値をさらに決定し、ブロック特徴値、ユーザ識別子、および調節パラメータに基づいて、ブロック生成規則を満たす、検証すべき特徴値を生成し、生成した検証すべき特徴値、ユーザ識別子、ブロック特徴値、および調節パラメータに基づいて、ブロック生成規則を満たす前処理後ブロックをさらに生成し得る。
【００５４】
前述の特徴値（ブロック特徴値と検証すべき特徴値のどちらも含む）はブロックを一意に特定し得、ブロックチェーン上のブロックの一意性を保証する。ここで述べるブロック特徴値は、前のブロックのヘッダハッシュと理解され得、検証すべき特徴値は、前処理ブロックのヘッダハッシュと理解され得る。本願のこの実装では、ブロック特徴値は、ハッシュ値の形態に加えて一形態として存在し得る。たとえば、メッセージダイジェストアルゴリズム５（ＭＤ５）が使用される場合、ブロック特徴値はＭＤ５値の形態として存在し得る。もちろん、それに対応して、検証すべき特徴値もＭＤ５値の形態として存在し得る。特定の形態の特徴値は、取得される特徴値が一意であることを条件として、特定の非対称暗号化アルゴリズムに基づいて決定され得る。
【００５５】
前述のユーザ識別子は、エンドユーザデバイスを使用することによってユーザが前処理ブロックを生成するときに使用されるユーザ識別子（ユーザアカウント番号や識別カード番号など）である。後に、サービスプラットフォームは、ブロックチェーン上の第２のブロック内に含まれるユーザ識別子を使用することによって、サービスを実行し得るユーザ（すなわち、商品を首尾よくセキルするユーザ）を決定する必要がある。したがって、前処理ブロックを生成するとき、エンドユーザデバイスは、前処理ブロック内に含まれる内容として前処理ブロック内にユーザ識別子を書き込む必要がある。
【００５６】
前述の調節パラメータは、ブロック特徴値、ユーザ識別子、および調節パラメータに基づいてエンドユーザデバイスによって生成される検証すべき特徴値がブロック生成規則を満たすようにさせるために使用される。たとえば、エンドユーザデバイスによって生成される検証すべき特徴値は最初の８ビットが０であるハッシュ値である必要があることを、ブロック生成規則が指定すると仮定する。ブロック特徴値（すなわち、前のブロックのハッシュ値）、ユーザ識別子、および１つのランダムに選択された調節パラメータに基づいてエンドユーザデバイスによって生成される検証すべき特徴値が要件を満たさない場合、エンドユーザデバイスは、調節パラメータを継続的に調節し得、その結果、数回の調節の後、エンドユーザデバイスは、ブロック特徴値、ユーザ識別子、および調節パラメータに基づいて、最初の８ビットが０である検証すべき特徴値を取得し得る。
【００５７】
ブロック生成規則を満たす検証すべき特徴値を生成した後、エンドユーザデバイスは、生成した検証すべき特徴値、ユーザ識別子、ブロック特徴値、および最終的に取得された調節パラメータに基づいて、ブロック生成規則を満たす前処理ブロックをさらに生成し、後のプロセスにおいて、コンセンサスのためのコンセンサスネットワークに前処理ブロックをさらに送り得る。
【００５８】
Ｓ２０３：１つまたは複数の他のエンドユーザデバイスおよびノードを使用することによって前処理ブロックに対するコンセンサス手順を実施し、コンセンサスが達成される前処理ブロックを第２のブロックとしてブロックチェーン上に記憶する。
【００５９】
ブロック生成規則を満たす前処理ブロックを生成した後、エンドユーザデバイスは、コンセンサスネットワークに前処理ブロックを送り、コンセンサスネットワークを使用することによって前処理ブロックに対するコンセンサス手順を実施し得る。コンセンサスネットワークは、現瞬間にブロック生成規則を取得する各エンドユーザデバイス（すなわち、現瞬間に商品フラッシュセールに参加する各ユーザによって所有されるエンドユーザデバイス）と、少なくとも１つの所定のノードとを含み得る。したがって、エンドユーザデバイスがコンセンサスネットワークに前処理ブロックを送るプロセスにおいて、エンドユーザデバイスは、サービスプラットフォームから、現瞬間にブロック生成規則を取得する各エンドユーザデバイスのアドレスをまず取得し、次いで取得したアドレスを使用することによってコンセンサスのために各エンドユーザデバイスに前処理ブロックを送り得る。
【００６０】
ノードのアドレスは、前もってエンドユーザデバイス（またはエンドユーザデバイス上にインストールされたクライアントソフトウェア）内に書き込まれ得る。エンドユーザデバイスは、エンドユーザデバイスによって記憶されるノードのアドレスを使用することによって、ノードに前処理ブロックを直接的に送り得、その結果、ノードと、現瞬間にブロック生成規則を取得する各エンドユーザデバイスとは、前処理ブロックに対するコンセンサスを達成する。もちろん、エンドユーザデバイスはまた、サービスプラットフォームからノードのアドレスを取得し得る。
【００６１】
コンセンサスネットワークが前処理ブロックに対するコンセンサスを達成した後、各エンドユーザデバイス（現瞬間にブロック生成規則を取得する各エンドユーザデバイス）および少なくとも１つのノードは、各エンドユーザデバイスまたは少なくとも１つのノードによって記憶されるブロックチェーン上に前処理ブロックを第２のブロックとして記憶し得る。
【００６２】
サービスの所定の瞬間が到来した後、少なくとも１つの所定のノードが、各エンドユーザデバイス（すなわち、ブロック生成規則を取得するエンドユーザデバイス）によって生成された前処理ブロックに対するコンセンサスに参加し得ることに留意されたい。このプロセスでは、ノードは、前処理ブロックを依然として継続的に生成し、コンセンサスのためのコンセンサスネットワークに前処理ブロックを送り得る。サービスの資格取得段階において各ノードによって生成された前処理ブロックは、コンセンサスのために他のノードのみに送られ得、前処理ブロックは、現瞬間でのブロック生成規則を取得するエンドユーザデバイスには送られない。
【００６３】
もちろん、サービスの所定の瞬間が到来したとき、サービスプラットフォームは、所定のノードにメッセージを送り、前処理ブロックの生成を一時的に停止し、ブロック生成規則を取得する各エンドユーザデバイスによって生成された前処理ブロックに対するコンセンサスに参加するようにノードに命令し得る。それに対応して、サービスの資格取得段階において、ブロックチェーンに接続されるすべてのブロックが、ブロック生成規則を取得する各エンドユーザデバイスによって生成される。
【００６４】
Ｓ２０４：サービスプラットフォームによって送られた資格確認情報を受信したとき、エンドユーザデバイスによって記憶されている現瞬間でのブロックチェーンをサービスプラットフォームに送り、その結果、サービスプラットフォームは、現瞬間でのブロックチェーン上の第１のブロックおよび第２のブロックに基づいてサービスを実行する。
【００６５】
サービスが所定の条件を満たすと判定したとき、サービスプラットフォームは、現瞬間に少なくとも１つのエンドユーザデバイスまたは少なくとも１つのノードによって記憶されたブロックチェーンをエンドユーザデバイスまたはノードから取得し、ブロックチェーンから、サービスを実行し得るユーザを決定し得る。
【００６６】
ここで述べる所定の条件は、現瞬間がサービスによって指定される資格取得段階のデッドライン（すなわち、商品フラッシュセールに参加するデッドライン）であるかどうかを監視することであり得る。現瞬間がサービスによって指定される資格取得段階のデッドラインであると判定したとき、サービスプラットフォームは、サービスが所定の条件を満たすと判定し、現瞬間でのブロック生成規則を取得する少なくとも１つのエンドユーザデバイス、または少なくとも１つの所定のノードから、現瞬間に対応するブロックチェーンをさらに取得し得る。
【００６７】
さらに、代替として、ここで述べる所定の条件は、ブロックチェーン上のブロック数がサービスによって指定される所定の数に達したかどうかを監視することであり得る。サービスプラットフォームは、各エンドユーザデバイス（ブロック生成規則を取得するエンドユーザデバイス）または各ノード内に記憶されたブロックチェーン上のブロック数を常に監視し得る。ブロックチェーン上のブロック数がサービスによって指定される所定の数に達したと判定したとき、サービスプラットフォームは、サービスが所定の条件を満たすと判定し、次いで各エンドユーザデバイスまたはノードからブロックチェーンを取得し得る。サービスによって指定される所定の数は、ブロックチェーン上のブロックの総数であり得、またはサービスの所定の瞬間後のブロックチェーンに接続されるブロック数であり得る。もちろん、代替として、所定の条件が別の形態で存在し得、所定の条件の特定の内容が、サービスプラットフォームのスタッフメンバによって設定され得る。簡潔のためにここでは例を省略する。
【００６８】
ブロックチェーンを取得するプロセスにおいて、サービスプラットフォームは、各エンドユーザデバイス（ブロック生成規則を取得する各エンドユーザデバイス）またはノードに資格確認情報を送り得、その結果、資格確認情報を受信したとき、エンドユーザデバイスまたはノードは、現瞬間に対応し、エンドユーザデバイスまたはノードによって記憶されるブロックチェーンをサービスプラットフォームに送り得、その結果、サービスプラットフォームは、ブロックチェーンから、サービスを実行し得るユーザを決定し得る。
【００６９】
資格決定情報を受信した後、エンドユーザデバイスまたはノードは、現瞬間にエンドユーザデバイスもしくはノードによって記憶されたブロックチェーン全体をサービスプラットフォームに送り得、またはブロックチェーンの一部をサービスプラットフォームに送り得る。エンドユーザデバイスまたはノードによってサービスプラットフォームに送られるブロックチェーンの一部は、ブロックチェーン上の、サービスの所定の瞬間が到来した後に生成された一部、たとえばコンセンサスが達成される前処理ブロックを含み、図３に示されるように、商品フラッシュセールが開始した後に第１のブロックまたは第２のブロックの形態でブロックチェーン上に各エンドユーザデバイスまたはノードによって記憶される一部であり得る。
【００７０】
図３は、本願の一実装による、サービスによって指定される所定の瞬間後に生成される、ブロックチェーンの一部を示す概略図である。
【００７１】
図３では、ブロックチェーンは２つのタイプのブロックを含む。一方のタイプのブロックは、ノードによって生成される第１のブロックであり、Ａと表され、他方のタイプのブロックは、エンドユーザデバイスによって生成される第２のブロックであり、Ｂと表される。ブロックチェーンは２つの部分に分割され得る。ブロックチェーンの一方の部分は、サービスによって指定される所定の瞬間の前に形成され、第１の部分と呼ばれ得る。第１の部分では、大部分のブロックは、ノードによって生成される第１のブロック（すなわち、ブロックＡ）である。ブロックチェーンの他方の部分は、ブロックチェーンの第１の部分の後に形成されるブロックチェーンの一部、すなわちサービスによって指定される所定の瞬間が到来した後にエンドユーザデバイスまたはノードによって前処理ブロックを生成することによって形成されるブロックチェーンの一部であり、第２の部分と呼ばれ得る。第２の部分では、いくつかのブロックが、第１のブロック（すなわち、ブロックＡ）を生成することによってノードによって取得され、他のブロックが、第２のブロック（すなわち、ブロックＢ）を生成することによってエンドユーザデバイスによって取得される。
【００７２】
これに基づいて、サービスプラットフォームによって送られた資格確認情報を受信した後、エンドユーザデバイスまたはノードは、ブロックチェーンの第２の部分をサービスプラットフォームに送り得、サービスプラットフォームは、ブロックチェーンの取得した部分に基づいて、サービスを実行するユーザを決定し得る。
【００７３】
もちろん、エンドユーザデバイスまたはノードはまた、取得するためにブロックチェーンの第１の部分の一部をランダムに選択し、ブロックチェーンの他の部分（第１の部分の一部および第２の部分全体を含む）をサービスプラットフォームに送り得る。
【００７４】
ブロックチェーンを取得した後、サービスプラットフォームは、所定の瞬間に基づいて、ブロックチェーンから１つの第１のブロックを決定し、決定した第１のブロックに基づいて、ブロックチェーンから第２のブロックを選択し得る。本願のこの実装では、それぞれの第１のブロックは、第１のブロックの生成時間を含み得る。ブロックチェーン上のブロックが時間シーケンスとして順次接続されるので、サービスプラットフォームは、ブロックチェーンからすべての第１のブロックの生成時間を決定し、生成時間が所定の瞬間に最も近い第１のブロックをさらに決定し、次いで第１のブロックをマーク済みブロックと決定し得る。
【００７５】
本願のこの実装では、マーク済みブロックを決定するとき、サービスプラットフォームは、所定の瞬間を境界として使用することによって、取得したブロックチェーンを２つの部分に分割し得ることに留意されたい。一方の部分内に含まれる各ブロックは、所定の瞬間の前に生成されたブロック（たとえば、図３の第１の部分内に含まれるブロック）であり、他方の部分内の各ブロックは、所定の瞬間の後に生成されたブロック（たとえば、図３の第２の部分内に含まれるブロック）である。サービスプラットフォームは、生成時間が所定の瞬間に最も近い第１のブロックを他方の部分から決定し、第１のブロックをマーク済みブロックと決定し得る。
【００７６】
マーク済みブロックを決定した後、サービスプラットフォームは、マーク済みブロックの後に位置する少なくとも１つの第２のブロックをブロックチェーンから選択し、選択した少なくとも１つの第２のブロック内に含まれるユーザ識別子に基づいて、サービスを実行することのできるユーザ（商品をセキルする機会を有するユーザ）をさらに決定し得る。サービスプラットフォームはまず、マーク済みブロックの後に位置するそれぞれの第２のブロックを選択し得る（ここで述べる第２のブロックは、資格取得段階において各エンドユーザデバイスによって生成されたブロックである）。次いで、所定の数の第１ランクの第２のブロックが、ブロックチェーン上のブロックのランキングシーケンス内で選択され、次いで、所定の数の第２のブロック内に含まれるユーザ識別子に基づいて、サービスを実行するユーザが決定される（すなわち、商品を首尾よくセキルするユーザが決定される）。
【００７７】
サービスプラットフォームは、マーク済みブロックを決定した後、ブロックチェーン上のブロックのランキングシーケンスにおいてマーク済みブロックの後に位置する所定の数のブロックを直接的に選択し得る。所定の数のブロックを選択したとき、サービスプラットフォームがブロックに直面するごとに、サービスプラットフォームは、ブロックが第１のブロックであるか、それとも第２のブロックであるかを判定し得る。ブロックが第１のブロックであるとき、サービスプラットフォームは第１のブロックを選択せず、次のブロックにジャンプし、ブロックが第２のブロックであると判定したとき、サービスプラットフォームはブロックを選択する。言い換えれば、サービスプラットフォームは、そのような方法で、マーク済みブロック後の所定の数の第１ランクの第２のブロックを選択する必要がある。
【００７８】
ブロックチェーンから所定の数の第２のブロックを選択した後、サービスプラットフォームは、第２のブロック内に含まれるユーザ識別子をさらに決定し、サービスを実行し得るユーザをさらに決定し得る。
【００７９】
本願のこの実装では、各エンドユーザデバイスまたはノードからブロックチェーンを取得した後、サービスプラットフォームは、ブロックチェーンからメインチェーンを決定し、メインチェーンに基づいて、サービスを実行し得るユーザを決定し得ることに留意されたい。本願のこの実装では、サービスプラットフォームは、取得したブロックチェーンから最長のチェーンを決定し、最長のチェーンをメインチェーンと決定し得る。
【００８０】
それに対応して、取得したブロックチェーンからメインチェーンを決定した後、サービスプラットフォームは、メインチェーンから、生成時間が所定の瞬間に最も近い第１のブロックを決定し、第１のブロックをマーク済みブロックと決定する。次いで、サービスプラットフォームは、メインチェーンから、メインチェーン上のブロックのランキングシーケンスにおいて、マーク済みブロックの後に位置する所定の数の第２のブロックを選択し、次いで、選択した第２のブロック内に含まれるユーザ識別子に基づいて、サービスを実行するユーザを決定する。
【００８１】
もちろん、本願のこの実装では、サービスプラットフォームのスタッフメンバは、サービスについての資格取得規則を設定し得、資格取得規則は、ユーザがサービスを実行する機会をどのように有し得るかを指定し得る。たとえば、商品セキルサービスについて、サービスに対応する資格取得規則は、各エンドユーザデバイスによって後に記憶されるブロックチェーン上の資格取得規則を満たす１つまたは複数のブロックを指定する。言い換えれば、資格取得規則は、ブロック生成規則を取得するユーザ内のエンドユーザデバイスを使用することによってユーザによって生成された、資格取得規則を満たす１つまたは複数のブロックを指定する。
【００８２】
サービスプラットフォームのスタッフメンバは、実際の状況を参照して、サービスについての複数の資格取得規則を構築し得、その結果、サービスプラットフォームは、「当選」ユーザ（「当選」ユーザとは、商品を首尾よくセキルするユーザである）を決定するためにブロックチェーン上のマーク済みブロックの後に位置する所定の数の第１ランクの第２のブロックを使用するだけではなく、資格取得規則に基づいて、取得したブロックチェーンから資格取得規則を満たす第２のブロックを後で決定し得る。したがって、サービスの所定の瞬間が到来した後、ブロック生成規則を後で取得するユーザは、サービスを実行する機会をも有し、その結果、サービスは、より良好なユーザ体験をユーザにもたらす。
【００８３】
本願のこの実装では、エンドユーザデバイスによって送られたサービスを求める資格取得要求を受信した後、サービスプラットフォームは、サービスに対応するブロック生成規則と、資格取得規則とをエンドユーザデバイスに返し得る。資格取得規則を取得した後、エンドユーザデバイスは資格取得規則を記憶し得る。もちろん、サービスプラットフォームは、ブロック生成規則および資格取得規則を別々にエンドユーザデバイスに送り得る。たとえば、エンドユーザデバイスによって送られた資格取得要求を受信した後、サービスプラットフォームは、エンドユーザデバイスにブロック生成規則のみを返し得、統一された時間枠において各エンドユーザデバイスに資格取得規則を送り得る。
【００８４】
エンドユーザデバイスは資格取得規則を記憶し、その結果、資格確認段階において、サービスを実行し得る少なくとも１人のユーザを決定した後、サービスプラットフォームは、少なくとも１つの選択された第２のブロック内に含まれるユーザ識別子（すなわち、サービスを実行し得るユーザのユーザ識別子）を発行し得る。それに対応して、エンドユーザデバイスは、エンドユーザデバイスによって記憶された資格取得規則を使用することによって、サービスプラットフォームによって発行されたユーザ識別子を検証し、ユーザ識別子に対応するユーザがサービスを実行する資格があるかどうかを判定し得る。
【００８５】
前の方法から、サービスプラットフォームは、サービス資格を取得することに参加するユーザを時間の点で分離し得、その結果、あるユーザは、所定の瞬間の前にブロック生成規則を取得し、次いで所定の瞬間が到来したとき、取得したブロック生成規則に基づいてサービスに参加し得ることがわかる。さらに、サービスを実行するユーザを選択するとき、サービスプラットフォームは、ブロックチェーン上に含まれる第１のブロックを時間基準として使用することによって第２のブロックを選択し、選択した第２のブロックに基づいて、サービスを実行するユーザを決定し得る。したがって、エンドユーザデバイスがサービスを実行するために様々な時点においてブロック生成規則を取得し得る場合であっても、エンドユーザデバイスは、時間基準（例えば、第１のブロック）に基づいて、ブロック生成規則を満たす第２のブロックを生成する必要がある。
【００８６】
したがって、所定の瞬間が到来したときにサービスプラットフォームが直面するアクセス圧力が大いに軽減され得るだけではなく、所定の瞬間が到来した後のサービスプラットフォームの通常の実行も保証され得る。エンドユーザデバイスを使用することによってユーザがサービスを実行し得る場合、所定の瞬間の前にエンドユーザデバイスを使用することによってブロック生成規則が取得される場合であっても、ブロック生成規則を満たす第２のブロックを生成する必要があるのは、所定の瞬間が到来したときだけであることがさらに保証され得、それによってサービス実行の公平性が保証される。
【００８７】
現瞬間がサービスの所定の瞬間であることを検出したとき、サービスプラットフォームは、ノードからブロックチェーンを取得し、現瞬間でのブロックチェーン上の最後のブロックを決定し、次いでブロックをマーク済みブロックと決定し得ることに留意されたい。次いで、サービスが所定の条件を満たすことを検出したとき、サービスプラットフォームは、この時のブロックチェーンをノードまたはエンドユーザデバイスから取得し、この時のブロックチェーン上のマーク済みブロックの後に位置する各ブロックを決定し得る。サービスプラットフォームは、マーク済みブロックの後の各ブロックをマークし、サービスを実行するユーザを決定し得る。ここで述べるマーク済みブロックと、前のマーク済みブロックとの間の違いは、前のマーク済みブロックは第１のブロックに基づいて決定されることである。しかしながら、所定の瞬間にサービスプラットフォームによって取得されるブロックチェーン上で、ブロックチェーン上の最後のブロックは第１のブロックである場合も、または第２のブロックである場合もある。したがって、ここで述べたマーク済みブロックは、第１のブロックに基づいて取得される場合も、または第２のブロックに基づいて取得される場合もある。
【００８８】
前述のサービス実行方法は、商品セキルシナリオと、ライセンスプレートくじ引きや賞品抽選などのサービスシナリオのどちらにも適用され得る。簡潔のためにここでは例を省略する。それに対応して、サービス実行方法は、商品セキルと同様に複数のサービスシナリオに適用可能であり得るので、前述の所定の瞬間は別の時であり得る。たとえば、所定の瞬間は、サービスの資格取得段階のデッドラインでもあり得る。それに対応して、現瞬間が所定の瞬間であることを検出したとき、サービスプラットフォームは、生成時間が所定の瞬間に最も近い第１のブロックを決定し、決定した第１のブロックをマーク済みブロックと決定し得る。次いで、サービスプラットフォームは、ブロックチェーン上のマーク済みブロックの前に位置するそれぞれの第２のブロックをさらに決定し、ブロックチェーン上の第２のブロックのランキングシーケンス内で第２のブロック内のマーク済みブロックに最も近い所定の数の第２のブロックを選択し、選択した第２のブロックを使用することによって、サービスを実行するユーザを決定し得る。
【００８９】
本願のこの実装では、すべてのエンドユーザデバイスまたはノードが同一の瞬間に前処理ブロックを生成し得るが、すべての前処理ブロックに対するコンセンサスが、相異なる時に達成されることにさらに留意されたい。これに基づいて、各エンドユーザデバイスまたはノードが、エンドユーザデバイスによって生成された前処理ブロックに対するコンセンサス手順を実施するとき、エンドユーザデバイスまたはノードは、前処理ブロックに対するコンセンサスが達成されると判定した後、前処理ブロックにタイムスタンプを追加し得る。タイムスタンプは、前処理ブロックに対するコンセンサスが達成された時を示す。したがって、各エンドユーザデバイスまたはノードが、タイムスタンプを含む前処理ブロックをブロックチェーン上に第２のブロックとして後に記憶するとき、エンドユーザデバイスまたはノードは、第２のブロックを時間シーケンスにソートし得、その結果、第２のブロックが可能な限り１つのチェーン上でランク付けされ、それによってブロックチェーン上にブランチチェーンを生成する可能性が低減される。もちろん、ノードによって生成された前処理ブロックに対するコンセンサスが達成された後、タイムスタンプが前処理ブロックに追加され得、前処理ブロックが、時間シーケンス内の第１のブロックの形でブロックチェーン上に記憶される。
【００９０】
本願の実装において提供されるサービス実行方法を上記で説明した。同じ概念に基づいて、本願の実装は、図４および図５に示されるように２つのサービス実行デバイスをさらに提供する。
【００９１】
図４は、本願の一実装による、サービス実行デバイスを示す概略図である。デバイスは、エンドユーザデバイスによって送られた資格取得要求を受信するように構成された受信モジュール４０１と、資格取得要求に基づいてエンドユーザデバイスにブロック生成規則を返すように構成された返しモジュール４０２であって、その結果、エンドユーザデバイスが、ブロックチェーンおよびブロック生成規則に基づいて第２のブロックを生成し、ブロックチェーン上に第２のブロックを記憶する、返しモジュール４０２と、所定の条件が満たされると判定したとき、少なくとも１つのエンドユーザデバイスまたは少なくとも１つのノードから、現瞬間でのブロックチェーンの少なくとも一部を取得するように構成された取得モジュール４０３と、所定の瞬間に基づいて、取得した現瞬間でのブロックチェーンから第１のブロックを決定し、決定した第１のブロックに基づいて第２のブロックを選択するように構成された選択モジュール４０４と、選択した第２のブロック内に含まれるユーザ識別子に基づいてサービスを実行するように構成された実行モジュール４０５とを含む。
【００９２】
選択モジュール４０４は、ブロックチェーン上のすべての第１のブロックの生成時間を決定し、生成時間が所定の瞬間に最も近い第１のブロックを決定し、第１のブロックをマーク済みブロックと決定し、取得した現瞬間でのブロックチェーンから、マーク済みブロックの後に位置する第２のブロックを選択するように構成される。
【００９３】
選択モジュール４０４は、現瞬間でのブロックチェーンから、現瞬間でのブロックチェーン上のブロックのランキングシーケンスにおいて、マーク済みブロックの後に位置する所定の数の第２のブロックを選択するように構成される。
【００９４】
図５は、本願の一実装による、別のサービス実行デバイスを示す概略図である。デバイスは、サービスプラットフォームに資格取得要求を送るように構成された送信モジュール５０１であって、その結果、サービスプラットフォームがデバイスにブロック生成規則を返す、送信モジュール５０１と、ブロックチェーンおよびブロック生成規則に基づいて前処理ブロックを生成するように構成された生成モジュール５０２と、１つまたは複数の他のエンドユーザデバイスおよびノードを使用することによって前処理ブロックに対してコンセンサス手順を実施し、コンセンサスが達成される前処理ブロックを第２のブロックとしてブロックチェーン上に記憶するように構成されたコンセンサスモジュール５０３と、サービスプラットフォームによって送られた資格確認情報を受信したとき、デバイスによって記憶されている現瞬間でのブロックチェーンをサービスプラットフォームに送るように構成された受信モジュール５０４であって、その結果、サービスプラットフォームが、現瞬間でのブロックチェーン上の第１のブロックおよび第２のブロックに基づいてサービスを実行する、受信モジュール５０４とを含む。
【００９５】
生成モジュール５０２は、ブロックチェーン上の最後のブロックのブロック特徴値を決定し、調節パラメータ、ブロック特徴値、およびユーザ識別子を使用することによって生成される、検証すべき特徴値がブロック生成規則を満たすように調節パラメータを決定し、検証すべき特徴値、ブロック特徴値、調節パラメータ、およびユーザ識別子に基づいて前処理ブロックを生成するように構成される。
【００９６】
本願のこの実装では、エンドユーザデバイスによって送られた資格取得要求を受信した後、サービスプラットフォームは、所定の瞬間が到来したときにだけエンドユーザデバイスにブロック生成規則を返すのではなく、エンドユーザデバイスにブロック生成規則を返し得る。したがって、エンドユーザデバイスが所定の瞬間の前にサービスプラットフォームに資格取得要求を送る場合であっても、サービスプラットフォームは、依然としてエンドユーザデバイスにブロック生成規則を返す。言い換えれば、サービスプラットフォームは、サービス資格を取得することに参加するユーザを時間の点で分離し得、その結果、あるユーザは、所定の瞬間の前にブロック生成規則を取得し、次いで所定の瞬間が到来したとき、取得したブロック生成規則に基づいてサービスに参加し得る。
【００９７】
さらに、サービスを実行するユーザを選択するとき、サービスプラットフォームは、ブロックチェーン上に含まれる第１のブロックを時間基準として使用することによって第２のブロックを選択し、選択した第２のブロックに基づいて、サービスを実行するユーザを決定し得る。したがって、エンドユーザデバイスがサービスを実行するために様々な時点においてブロック生成規則を取得し得る場合であっても、エンドユーザデバイスは、時間基準（例えば、第１のブロック）に基づいて、ブロック生成規則を満たす第２のブロックを生成する必要がある。したがって、所定の瞬間が到来したときにサービスプラットフォームが直面するアクセス圧力が大いに軽減され得るだけではなく、所定の瞬間が到来した後のサービスプラットフォームの正常な実行も保証され得る。エンドユーザデバイスを使用することによってユーザがサービスを実行し得る場合、所定の瞬間の前にエンドユーザデバイスを使用することによってブロック生成規則が取得される場合であっても、ブロック生成規則を満たす第２のブロックを生成する必要があるのは、所定の瞬間が到来したときだけであることがさらに保証され得、それによってサービス実行の公平性が保証される。
【００９８】
１９９０年代には、技術的改良がハードウェアの改良（たとえば、ダイオード、トランジスタ、スイッチなどの回路構造に対する改良）であるか、それともソフトウェアの改良（方法手順に対する改良）であるかを明確に区別することができた。しかしながら、技術が発展するにつれて、多くの方法手順に対する現在の改良は、ハードウェア回路構造に対する直接的改良と見なされ得る。設計者は通常、改良型の方法手順をハードウェア回路内にプログラムし、対応するハードウェア回路構造を得る。したがって、方法手順は、ハードウェアエンティティモジュールを使用することによって改良され得る。たとえば、プログラマブル論理デバイス（ＰＬＤ）（たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））はそのような集積回路であり、ＰＬＤの論理的機能は、ユーザによってデバイスプログラミングを通じて決定される。設計者は、チップ製造業者に特定用途向け集積回路チップを設計および製造するように依頼することなく、デジタルシステムをＰＬＤに「統合する」ようにプログラミングを実施する。さらに、現在では、集積チップを手作業で製造する代わりに、このタイプのプログラミングは、大部分は「論理コンパイラ（ｌｏｇｉｃ  ｃｏｍｐｉｌｅｒ）」ソフトウェアを使用することによって実装される。プログラミングは、プログラムを開発し、書くために使用されるソフトウェアコンパイラと同様である。元のコードは、コンパイルのために特定のプログラミング言語で書くことを必要とする。言語はハードウェア記述言語（ＨＤＬ）と呼ばれる。Ａｄｖａｎｃｅｄ  Ｂｏｏｌｅａｎ  Ｅｘｐｒｅｓｓｉｏｎ  Ｌａｎｇｕａｇｅ（ＡＢＥＬ）、Ａｌｔｅｒａ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＡＨＤＬ）、Ｃｏｎｆｌｕｅｎｃｅ、Ｃｏｒｎｅｌｌ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｌａｎｇｕａｇｅ（ＣＵＰＬ）、ＨＤＣａｌ、Ｊａｖａ（登録商標）  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＪＨＤＬ）、Ｌａｖａ、Ｌｏｌａ、ＭｙＨＤＬ、ＰＡＬＡＳＭ、Ｒｕｂｙ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＲＨＤＬ）などの多くのＨＤＬがある。ｖｅｒｙ−ｈｉｇｈ−ｓｐｅｅｄ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  ｈａｒｄｗａｒｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ（ＶＨＤＬ）およびＶｅｒｉｌｏｇが最も一般的に使用されている。いくつかの記載のハードウェア記述言語を使用することによって方法手順が論理的にプログラムされ、集積回路内にプログラムされると、論理的方法手順を実装するハードウェア回路が容易に取得され得ることも当業者は理解されたい。
【００９９】
任意の適切な方法を使用することによってコントローラが実装され得る。たとえば、コントローラはマイクロプロセッサもしくはプロセッサであり得、あるいはマイクロプロセッサもしくはプロセッサ、論理ゲート、スイッチ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理コントローラ、または組込みマイクロコントローラによって実行され得るコンピュータ可読プログラムコード（ソフトウェアやファームウェアなど）を記憶するコンピュータ可読媒体であり得る。コントローラの例には、限定はしないが、以下のマイクロコントローラが含まれる。ＡＲＣ  ６２５Ｄ、Ａｔｍｅｌ  ＡＴ９１ＳＡＭ、Ｍｉｃｒｏｃｈｉｐ  ＰＩＣ１８Ｆ２６Ｋ２０、およびＳｉｌｉｃｏｎｅ  Ｌａｂｓ  Ｃ８０５１Ｆ３２０。メモリコントローラはまた、メモリの制御論理の一部として実装され得る。コンピュータ可読プログラムコードのみを使用することによってコントローラを実装することに加えて、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブル論理コントローラ、および組込みマイクロコントローラの形態でコントローラが同一の機能を実装することを可能にするように方法ステップが論理的にプログラムされ得ることも当業者には知られている。したがって、コントローラはハードウェア構成要素と見なされ得、コントローラ内の様々な機能を実装するように構成されたデバイスも、ハードウェア構成要素内部の構造と見なされ得る。または、様々な機能を実装するように構成されたデバイスはさらに、方法を実装するソフトウェアモジュールと、ハードウェア構成要素内部の構造の両方と見なされ得る。
【０１００】
前の実装において示されるシステム、デバイス、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用することによって実装され得、あるいは一定の機能を有する製品を使用することによって実装され得る。典型的な実装デバイスはコンピュータである。コンピュータは、たとえばパーソナルコンピュータ、ラップトップコンピュータ、セルラーフォン、カメラフォン、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、ｅメールデバイス、ゲームコンソール、タブレットコンピュータ、またはウェアラブルデバイス、あるいはこれらのデバイスの任意の組合せであり得る。
【０１０１】
説明しやすいように、上記のデバイスは、機能を様々なユニットに分割することによって説明される。もちろん、本願が実装されるとき、ユニットの機能は、１つまたは複数のソフトウェアおよび／またはハードウェアとして実装され得る。
【０１０２】
本開示の一実装が方法、システム、またはコンピュータプログラム製品として提供され得ることを当業者は理解されたい。したがって、本開示は、ハードウェアのみの実装、ソフトウェアのみの実装、またはソフトウェアとハードウェアの組合せを有する実装の形態を使用し得る。さらに、本開示は、コンピュータ使用可能プログラムコードを含む１つまたは複数のコンピュータ使用可能記憶媒体（限定はしないが、ディスクメモリ、ＣＤ−ＲＯＭ、光メモリなど）上に実装されるコンピュータプログラム製品の形態を使用し得る。
【０１０３】
本開示は、本開示の実装に基づく方法、デバイス（システム）、およびコンピュータプログラム製品のフローチャートおよび／またはブロック図を参照しながら説明される。フローチャートおよび／またはブロック図内の各プロセスおよび／または各ブロック、ならびにフローチャートおよび／またはブロック図内のプロセスおよび／またはブロックの組合せを実装するためにコンピュータプログラム命令が使用され得ることを理解されたい。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組込みプロセッサ、または別のプログラマブルデータ処理デバイスのプロセッサがマシンを生成するために提供され得、その結果、コンピュータまたは別のプログラマブルデータ処理デバイスのプロセッサによって実行される命令は、フローチャート内の１つまたは複数の手順における、ならびに／あるいはブロック図内の１つまたは複数のブロックにおける特定の機能を実装するためのデバイスを生成する。
【０１０４】
これらのコンピュータプログラム命令は、コンピュータまたは別のプログラマブルデータ処理デバイスに特定の方式で働くように命令し得るコンピュータ可読メモリ内に記憶され得、その結果、コンピュータ可読メモリ内に記憶された命令は、命令デバイスを含むアーチファクトを生成する。命令デバイスは、フローチャート内の１つまたは複数の手順における、ならびに／あるいはブロック図内の１つまたは複数のブロックにおける特定の機能を実装する。
【０１０５】
これらのコンピュータプログラム命令は、コンピュータまたは別のプログラマブルデータ処理デバイス上にロードされ得、その結果、一連の動作ステップがコンピュータまたは別のプログラマブルデバイス上で実施され、それによってコンピュータ実装処理が生成される。したがって、コンピュータまたは別のプログラマブルデバイス上で実行される命令は、フローチャート内の１つまたは複数の手順における、ならびに／あるいはブロック図内の１つまたは複数のブロックにおける特定の機能を実装するためのステップを提供する。
【０１０６】
典型的な構成では、コンピューティングデバイスは、１つまたは複数のプロセッサ（ＣＰＵ）、１つまたは複数の入力／出力インターフェース、１つまたは複数のネットワークインターフェース、および１つまたは複数のメモリを含む。
【０１０７】
メモリは、非永続的メモリ、ランダムアクセスメモリ（ＲＡＭ）、不揮発性メモリ、および／または別の形態のコンピュータ可読媒体、たとえば読取り専用メモリ（ＲＯＭ）またはフラッシュメモリ（フラッシュＲＡＭ）を含み得る。メモリはコンピュータ可読媒体の一例である。
【０１０８】
コンピュータ可読媒体は、任意の方法または技術を使用することによって情報を記憶し得る永続的、非永続的、移動可能、および移動不能媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータであり得る。コンピュータ記憶媒体の例には、限定はしないが、パラメータランダムアクセスメモリ（ＰＲＡＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、別のカテゴリのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリもしくは別のメモリ技術、コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタルバーサタイルディスク（ＤＶＤ）もしくは別の光ストレージ、カセット磁気テープ、磁気テープ／磁気ディスクストレージ、別の磁気記憶デバイス、または任意の他の非伝送媒体が含まれる。コンピュータ記憶媒体は、コンピューティングデバイスにアクセス可能な情報を記憶するために使用され得る。本明細書での定義に基づいて、コンピュータ可読媒体は、被変調データ信号および搬送波などの一時的コンピュータ可読媒体（一時的媒体）を含まない。
【０１０９】
「含む」、「備える」という用語、またはそれらの任意の他の変形は、非排他的包含をカバーするものとし、したがって要素のリストを含むプロセス、方法、商品、またはデバイスは、それらの要素を含むだけではなく、明白に列挙されていない他の要素をも含み、あるいはそのようなプロセス、方法、商品、またはデバイスに固有の要素をさらに含むことにさらに留意されたい。別の制約なしに、「ｉｎｃｌｕｄｅｓ  ａ  ．．．（．．．を含む）」の後ろの要素は、要素を含むプロセス、方法、商品、またはデバイス内の追加の同一の要素の存在を除外しない。
【０１１０】
本願の一実装が方法、システム、またはコンピュータプログラム製品として提供され得ることを当業者は理解されたい。したがって、本願は、ハードウェアのみの実装、ソフトウェアのみの実装、またはソフトウェアとハードウェアの組合せを有する実装の形態を使用し得る。さらに、本願は、コンピュータ使用可能プログラムコードを含む１つまたは複数のコンピュータ使用可能記憶媒体（限定はしないが、ディスクメモリ、ＣＤ−ＲＯＭ、光メモリなど）上に実装されるコンピュータプログラム製品の形態を使用し得る。
【０１１１】
本願は、コンピュータ、たとえばプログラムモジュールによって実行されるコンピュータ実行可能命令の一般的状況において説明され得る。通常、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データカテゴリを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本願はまた、分散コンピューティング環境でも実施され得る。分散コンピューティング環境では、通信ネットワークを通じて接続されたリモート処理デバイスによってタスクが実施される。分散コンピューティング環境では、プログラムモジュールは、記憶デバイスを含むローカルコンピュータ記憶媒体とリモートコンピュータ記憶媒体のどちらにも配置され得る。
【０１１２】
本明細書での実装は漸進的に説明される。実装の同一または類似の部分について、実装に対して参照が行われ得る。各実装は、他の実装との違いに焦点を当てる。具体的には、システム実装は、基本的には方法実装と同様であり、したがって簡潔に説明される。関連する部分について、方法実装での関連する説明に対して参照が行われ得る。
【０１１３】
前の説明は本願の実装であり、本願を限定しないものとする。当業者は、本願に対する様々な修正および変更を行い得る。本願の精神および原理から逸脱することなく行われる任意の修正、等価な置換、または改良は、本願の特許請求の範囲内に包含されるものとする。
【符号の説明】
【０１１４】
４０１  受信モジュール
４０２  返しモジュール
４０３  取得モジュール
４０４  選択モジュール
４０５  実行モジュール
５０１  送信モジュール
５０２  生成モジュール
５０３  コンセンサスモジュール
５０４  受信モジュール
【図１】
0006727633.tif 000002
【図２】
0006727633.tif 000003
【図３】
0006727633.tif 000004
【図４】
0006727633.tif 000005
【図５】
0006727633.tif 000006