JP2021515293A - ブロックチェーン・ネットワークのインフラストラクチャのサービス・マネジメントのコンピュータ実装方法、システム、コンピュータ・プログラム、およびブロックチェーン・ネットワーク - Google Patents

ブロックチェーン・ネットワークのインフラストラクチャのサービス・マネジメントのコンピュータ実装方法、システム、コンピュータ・プログラム、およびブロックチェーン・ネットワーク Download PDF

Info

Publication number
JP2021515293A
JP2021515293A JP2020541675A JP2020541675A JP2021515293A JP 2021515293 A JP2021515293 A JP 2021515293A JP 2020541675 A JP2020541675 A JP 2020541675A JP 2020541675 A JP2020541675 A JP 2020541675A JP 2021515293 A JP2021515293 A JP 2021515293A
Authority
JP
Japan
Prior art keywords
nodes
node
service management
group
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020541675A
Other languages
English (en)
Other versions
JP7462561B2 (ja
Inventor
ズン、サイ
ドゥアン、ジュン
ケーブ、アレクセイ
アサーナ、ニーラジ
スレーダール、バグラナム
ジャン−ルイ、ネルラ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021515293A publication Critical patent/JP2021515293A/ja
Application granted granted Critical
Publication of JP7462561B2 publication Critical patent/JP7462561B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

【課題】ブロックチェーン・ネットワークのインフラストラクチャ用のサービス・マネジメントを促進する技法を提供する。【解決手段】システムは、メモリと、メモリに記憶されるコンピュータ実行可能コンポーネントを実行させるプロセッサとを備える。コンピュータ実行可能コンポーネントは、割り当てコンポーネントと、グループ化コンポーネントと、実装コンポーネントとを備えることができる。割り当てコンポーネントは、ブロックチェーン・ネットワーク内で、第1のノード・タイプのノードの第1のグループを動作スロットの第1のセットに、また、第1のノード・タイプとは異なる第2のノード・タイプのノードの第2のグループを動作スロットの第2のセットに割り振ることができる。グループ化コンポーネントは、動作スロットの第2のセットに割り振られたノードの第2のグループを、動作スロットの第1のセット内のノードの第1のグループと集約することができる。実装コンポーネントは、サービス・マネジメント動作を実行することができる。合意アルゴリズムは、サービス・マネジメント動作の実行中に満たされ得る。【選択図】図1

Description

本開示は、分散コンピューティング・システムに関し、より詳細には相互依存性のあるブロックチェーン・ネットワーク機能のためのサービス・マネジメントに関する。
ブロックチェーン・ネットワークでは、サーバのコンテナとして様々なタイプのノードをホストすることができる。様々なタイプのノードのセットが、様々な機能性を提供することができ、そのためノードの様々な機能性を考慮してノードのマネジメントを実施するべきである。
例えば、Carlenら(米国特許第9,645,811号)は、「コンテナが、実施されており、かつ制御ノードの他のコンテナで実施されている他のサービスから隔離されているサービスを含む、制御ノードにおいてコンテナの故障を検出する方法(a method that detects a failure of a container in a controller node where the container includes a service being performed and isolated from other services being performed in other containers on the controller node)」(要約書参照)を議論している。「制御ノードは、サービスを含むコンテナを終了し、そのサービスについての既知の状態を決定する。(The controller node terminates the container including the service and determines a known state for the service.)」(同文献参照)。「制御ノードは、終了されたコンテナを置き換える新しいコンテナでサービスを再開し、ここで、再開されるサービスは変更を使用することなく既知の状態から開始する。(The controller node restarts the service in a new container that replaces the terminated container where the restarted service starts from the known state without using the changes.)」(同文献参照)。
米国特許第9,645,811号
本発明の1つまたは複数の実施形態の基本的な理解を与えるための概要を以下に提示する。この概要は主要もしくは重要な要素を特定すること、または特定の実施形態のいかなる範囲もしくは特許請求の範囲のいかなる範囲をも詳述することを意図されていない。その唯一の目的は、後に提示されるより詳細な説明への導入部として簡素化された形式での概念を提示することである。本明細書において説明される1つまたは複数の実施形態において、ブロックチェーン・ネットワークのインフラストラクチャ用のサービス・マネジメントを促進するシステム、コンピュータ実装方法、装置またはコンピュータ・プログラム製品あるいはその組合せが、提供される。
一実施形態によると、システムは、コンピュータ実行可能コンポーネントを記憶するメモリと、メモリに記憶されるコンピュータ実行可能コンポーネントを実行させるプロセッサとを備えることができる。コンピュータ実行可能コンポーネントは、ブロックチェーン・ネットワーク内で、第1のノード・タイプのノードの第1のグループを動作スロットの第1のセットに、また、第1のノード・タイプとは異なる第2のノード・タイプのノードの第2のグループを動作スロットの第2のセットに割り振る割り当てコンポーネントを備えることができる。コンピュータ実行可能コンポーネントは、動作スロットの第2のセットに割り振られたノードの第2のグループを、動作スロットの第1のセット内のノードの第1のグループと集約するグループ化コンポーネントをさらに備えることができる。動作スロットの第1のセットのうちの1つまたは複数は、ノードの第1のグループおよびノードの第2のグループ両方に対応する複数の割り振られたノードを備えることができる。さらには、コンピュータ実行可能コンポーネントは、動作スロットの第1のセット内でノードの第1のグループとノードの第2のグループとを集約するグループ化コンポーネントに基づいてサービス・マネジメント動作を実行することができる実装コンポーネントを備えることができる。合意アルゴリズムは、サービス・マネジメント動作の実行中に満たされ得る。
一例では、割り当てコンポーネントは、ノードの第1のグループを、ノードの第2のグループの割り振りとは独立して割り振ることができる。別の例によると、第1のノード・タイプは、ブロックチェーン・ネットワークに存在する第1の機能性であり得る。さらには、この例については、第2のノード・タイプは、ブロックチェーン・ネットワークに存在する第2の機能性であり得る。第1の機能性は、第2の機能性とは異なっていることができる。
別の例では、実装コンポーネントは、ブロックチェーン・ネットワーク内の、ノードの第1のグループに関連付けられるエンドースメント・ポリシ、およびノードの第2のグループに関連付けられる合意アルゴリズムに基づいてサービス・マネジメント動作を実行することができる。この例にさらに付け加えると、エンドースメント・ポリシは、取引にデジタル署名を適用することにより取引を承認するために必要とされるノードの第2のグループの最小数を決定することができる。ノードの最小数を維持している間でも、サービス・マネジメント動作が進行中の取引についてのサービスからノードを除去すると、個々の取引を取り消すことができる。この状況では、クライアントは取引を再発行することができる。したがって、検証された取引がブロックチェーンに移ることを確実にすることができる。
一例によると、合意アルゴリズムは、in−serviceであるノードの第1のグループおよびノードの第2のグループの最小数を維持することにより、ブロックチェーンの個々のブロック内の取引のセットについて、正しい順序付けおよび検証の両方を提供することができる。他の例によると、合意アルゴリズムは、in−serviceであるそれぞれ複数のノード・グループ内の最小数のノードを維持することにより、ブロックチェーンの個々のブロック内の取引のセットについて、正しい順序付けおよび検証の両方を提供することができる。別の例によると、グループ化コンポーネントは、実装コンポーネントがサービス・マネジメント動作を実行している間、ノードの第1のグループおよびノードの第2のグループを更新するために実施されるステップ数を最小にすることができる。
別の実施形態は、プロセッサに動作可能に連結されたシステムにより、およびブロックチェーン・ネットワーク内で、第1のノード・タイプのノードの第1のグループを動作スロットの第1のセットに、また、第1のノード・タイプとは異なる第2のノード・タイプのノードの第2のグループを動作スロットの第2のセットに割り振ることを含むことができるコンピュータ実装方法に関する。方法は、システムにより、動作スロットの第2のセットに割り振られたノードの第2のグループを、動作スロットの第1のセット内のノードの第1のグループと集約することをさらに含むことができる。動作スロットの第1のセットのうちの1つまたは複数は、ノードの第1のグループおよびノードの第2のグループ両方に対応する複数の割り振られたノードを備えることができる。さらには、方法は、システムにより、ノードの第1のグループと動作スロットの第1のセット内で集約されるノードの第2のグループとを集約することに基づいてサービス・マネジメント動作を実行することを含むことができる。合意アルゴリズムは、サービス・マネジメント動作の実行中に満たされ得る。
一例によると、ノードの第2のグループは、承認を行うエンティティであり得る。この例にさらに付け加えると、方法は、システムにより、ブロックチェーン・ネットワークにサブミットされる取引を受信することと、システムにより、ノードの第2のグループのうちの2つ以上のノードが取引を承認したことを判断することとを含むことができる。方法は、システムにより、サービス・マネジメント動作の実行中に取引を完了することをさらに含むことができる。
さらに別の実施形態は、ブロックチェーン・インフラストラクチャ用のサービス・マネジメントを促進するためのコンピュータ・プログラム製品に関する。コンピュータ・プログラム製品は、プログラム命令を埋め込まれたコンピュータ可読記憶媒体を備えることができる。プログラム命令は、処理コンポーネントによって実行可能であり得、処理コンポーネントによって、およびブロックチェーン・ネットワーク内で、処理コンポーネントに、第1のノード・タイプのノードの第1のグループを動作スロットの第1のセットに、また、第1のノード・タイプとは異なる第2のノード・タイプのノードの第2のグループを動作スロットの第2のセットに割り振らせる。プログラム命令はさらに処理コンポーネントに、処理コンポーネントにより、動作スロットの第2のセットに割り振られたノードの第2のグループを、動作スロットの第1のセット内のノードの第1のグループと集約させることができる。動作スロットの第1のセットのうちの1つまたは複数は、ノードの第1のグループおよびノードの第2のグループ両方に対応する複数の割り振られたノードを備えることができる。プログラム命令はさらに処理コンポーネントに、処理コンポーネントにより、ノードの第1のグループと動作スロットの第1のセット内で集約されるノードの第2のグループとの集約に基づいてサービス・マネジメント動作を実行させることができる。合意アルゴリズムは、サービス・マネジメント動作の実行中に満たされ得る。
別の実施形態は、ブロックチェーン・ネットワークで第1の機能性を実行するノードの第1のセット、およびブロックチェーン・ネットワークで第2の機能性を実行するノードの第2のセットを備えることができるブロックチェーン・ネットワークに関することができる。第1の機能性は、第2の機能性とは異なっていることができる。ブロックチェーン・ネットワークは、コンピュータ実行可能コンポーネントを記憶するメモリと、メモリに記憶されるコンピュータ実行可能コンポーネントを実行するプロセッサとを備えるサービス・マネジメント・エンジンをさらに備えることができる。コンピュータ実行可能コンポーネントは、ノードの第1のセットが第1の機能性を実行し、ノードの第2のセットが第2の機能性を実行することを判断するカテゴリ化コンポーネントをさらに備えることができる。コンピュータ実行可能コンポーネントは、ノードの第1のセットについてサービス・マネジメント動作を実施するために実行されるステップの第1の数量、およびノードの第2のセットについてサービス・マネジメント動作を実施するために実行されるステップの第2の数量を決定する規則コンポーネントをさらに備えることができる。さらには、コンピュータ実行可能コンポーネントは、ステップの第1の数量とステップの第2の数量との集約に基づいてサービス・マネジメント動作を実行する実装コンポーネントを備えることができる。集約は、サービス・マネジメント動作の実行についてステップの最小数を規定することができる。
一例では、規則コンポーネントは、ノードの第1のセット内のノードの数量が、サービス・マネジメント動作について指定されるノードの規定された数量未満であると判断することができる。この例にさらに付け加えると、コンピュータ実行可能コンポーネントは、ノードの第1のセットに1つまたは複数のノードを追加する挿入コンポーネントをさらに備えることができる。挿入コンポーネントは、ノードの第1のセット内のノードの数量と、ノードの規定された数量との差異に基づいて、追加するノードの数量を決定することができる。
別の例によると、規則コンポーネントは、ノードの第1のセット内のノードの数量が、サービス・マネジメント動作について指定されるノードの規定された数量より多いと判断することができる。加えて、実装コンポーネントは、ブロックチェーン・ネットワークの可用性を損なうことなくノードの第1のセットに対してサービス・マネジメント動作を実行することができる。
さらに別の実施形態は、プロセッサに動作可能に連結されたシステムにより、ブロックチェーン・ネットワーク内のノードの第1のセットが第1の機能性を実行し、ブロックチェーン・ネットワーク内のノードの第2のセットが第1の機能性とは異なる第2の機能性を実行すること、を判断することを含むことができるコンピュータ実装方法に関する。方法は、システムにより、ノードの第1のセットについてサービス・マネジメント動作を実施するために実行されるステップの第1の数量、およびノードの第2のセットについてサービス・マネジメント動作を実施するために実行されるステップの第2の数量を決定することをさらに含むことができる。さらには、方法は、システムにより、ステップの第1の数量とステップの第2の数量との集約に基づいてサービス・マネジメント動作を実行することを含むことができる。集約は、サービス・マネジメント動作の実行についてステップの最小数を規定することができる。
本明細書において説明される1つまたは複数の実施形態による、ブロックチェーン・ネットワークのインフラストラクチャ用のサービス・マネジメントを促進する、例示の、非限定的なシステムのブロック図である。 本明細書において説明される1つまたは複数の実施形態による、簡素化されたバージョンのブロックチェーン・ネットワークの、例示の、非限定的な図である。 本明細書において説明される1つまたは複数の実施形態による、サービス・マネジメントを促進する、例示の、非限定的なブロックチェーン・ネットワークのブロック図である。 本明細書において説明される1つまたは複数の実施形態による、ブロックチェーン・ネットワークにおけるサービス・マネジメントを実行することを促進する、例示の、非限定的なコンピュータ実装方法の流れ図である。 本明細書において説明される1つまたは複数の実施形態による、ブロックチェーン・ネットワーク内においてサービス・マネジメント動作を実施することを促進する、例示の、非限定的なコンピュータ実装方法の流れ図である。 本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的なブロックチェーン・ネットワーク環境の図である。 本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的なブロックチェーン・ネットワーク環境の別の実装形態の図である。 本明細書において説明される1つまたは複数の実施形態による、ブロックチェーン・ネットワークのインフラストラクチャ用のサービス・マネジメントを促進する、例示の、非限定的なコンピュータ実装方法の流れ図である。 本明細書において説明される1つまたは複数の実施形態による、ブロックチェーン・ネットワークのインフラストラクチャに関連付けられる複数のノードに対応するノード・タイプを決定することを促進する、例示の、非限定的なコンピュータ実装方法の流れ図である。 本明細書において説明される1つまたは複数の実施形態による、様々な通信チャネルへのノードの割り振りを最適化することを任意選択で促進する、例示の、非限定的なコンピュータ実装方法の流れ図である。 制御されていないノードの使用の、例示の、非限定な図である。 本明細書において説明される1つまたは複数の実施形態による、制御されているノードの使用の、例示の、非限定な図である。 本明細書において説明される1つまたは複数の実施形態による、サービス・マネジメント動作を割り振るために必要とされる複数の動作スロットを決定することを促進する、例示の、非限定的なコンピュータ実装方法の流れ図である。 本明細書において説明される1つまたは複数の実施形態による、サービス・マネジメント動作を割り振るために必要とされる複数の動作スロットの決定を続行することを促進する、例示の、非限定的なコンピュータ実装方法の流れ図である。 本明細書において説明される1つまたは複数の実施形態による、サービス・マネジメント動作を割り振るために必要とされる複数の動作スロットの決定を続行する、例示の、非限定的なコンピュータ実装方法の流れ図である。 本明細書において説明される1つまたは複数の実施形態による、1つまたは複数のノードを、サービス・マネジメント動作を実施するために必要とされる動作スロットの最大数に割り振るための、例示の、非限定的なコンピュータ実装方法の流れ図である。 本明細書において説明される1つまたは複数の実施形態による、1つまたは複数のノードを、サービス・マネジメント動作を実施するために必要とされる動作スロットの最大数に割り振ることを続行するための、例示の、非限定的なコンピュータ実装方法の流れ図である。 本明細書において説明される1つまたは複数の実施形態による、複数のロールの例の、非限定な概略図である。 本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的な、図18のエンドースメント・ポリシの図である。 本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的な、図18のordererノード・ポリシの図である。 本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的な、図18のKafkaノード・ポリシの図である。 本明細書において説明される1つまたは複数の実施形態による、例示の、非限定な、マージされた複数のロールの図である。 本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的なブロックチェーン・ネットワークのサービス・マネージャ・プログラムの図である。 本明細書において説明される1つまたは複数の実施形態が促進され得る、例示の、非限定的な動作環境のブロック図である。 本明細書において説明される1つまたは複数の実施形態による、クラウド・コンピューティング環境の図である。 本明細書において説明される1つまたは複数の実施形態による、抽象モデル・レイヤの図である。
以下の詳細な説明は例示に過ぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を限定するよう意図されていない。さらには、先の「技術分野」「背景技術」または「発明の概要」セクション、あるいは「発明を実施するための形態」セクションにおいて提示される、いかなる明記されたまたは示唆された情報によっても拘束されるよう意図されていない。
次に1つまたは複数の実施形態を、図面を参照して説明するが、一貫して同一の参照符号は同一の要素を参照するために使用される。以下の説明において、説明目的のため、1つまたは複数の実施形態のより徹底した理解を与えるために、多くの具体的な詳細が説明される。しかしながら、様々な場合において、1つまたは複数の実施形態はこれらの具体的な詳細無しに実践され得ることが明白である。
本明細書において議論される様々な態様は、マネジメント、具体的にはブロックチェーン・ネットワークなどの、ノードのネットワーク上のサービス・マネジメント・アクティビティに関する。本明細書において利用される場合、「ノード」はネットワークに存在する特定の機能性である。さらには、様々な態様はブロックチェーン・ネットワークに関し、ブロックチェーンの用語では、ネットワークとはノードのネットワークを称する。ネットワーク内のノード(または、ノードのセット)は、様々な機能性を有することができる。さらには、クラスタの形態でともに機能する複数のノードが存在し得る。
本明細書において議論される1つまたは複数の実施形態は、可用性、パフォーマンス、コンプライアンス、およびセキュリティについて信頼される事業ネットワーク全体の、エンタープライズ・グレードの、ブロックチェーン・インフラストラクチャ用のサービス・マネジメントに関する場合がある。例えば、サービス・マネジメントのコンテキストにおいて、ブロックチェーン・ネットワーク上のノードの個々のタイプの一意な特徴を捉えることができる。さらには、ブロックチェーン・ネットワーク上の事業関与者同士の取引を中断することなく、インフラストラクチャでメンテナンス動作を実施する可能性を特定することができる。
さらには、ブローカのセットの制御されていない指定によって引き起こされる不十分なサービス・マネジメント動作の問題を、本明細書において与えられる様々な実施形態に見出すことができる。一例では、大規模なブロックチェーン・ネットワークがあり、データが一定の参加者のみで共有されるべき場合、それらの参加者だけのプライベート・チャネルを作成することができる。問題は、ブローカのセットを1つまたは複数のチャネルに明示的に割り当てて、サービス・マネジメント動作の効率を向上させることにより解決することができる。
加えて、本明細書において、中断無しの効率的なメンテナンス手順についての全体設計が提供される。したがって、ブロックチェーン・ネットワーク上で中断されない取引のフローにしたがって運用する様々な業界のあらゆるタイプの事業者によって、1つまたは複数の実施形態を利用することができる。
ブロックチェーン・フレームワークの実装の実装形態は、hyperledger fabricであり得る。様々な態様を説明する目的で、hyperledger fabricの実装形態に関する例を与えることができる。しかしながら、開示される態様はhyperledger fabricの実装形態に限定されず、他のタイプのブロックチェーン・フレームワークの実装形態を開示される態様で利用することができることに留意されたい。さらには、ここにおいては様々な態様を説明するためにノードの様々な名称が利用されるが、開示される態様の実装形態はこの命名の慣例に限定されない。
本明細書において議論される場合、ブロックチェーンのプロトコルについて、ノードを更新するため、または修復するため、あるいはその両方のために、1つまたは複数のノードを停止(例えば、更新、修復などのために)することができる。いくつかの実装形態では、ノードを更新するため、または修復するため、あるいはその両方のために、ターゲット・ノードが停止される際、他のノードに基づく冗長性が存在することができ、そのために効率性が損なわれない。すべてのノード・タイプについて、耐性があるいくつかのf個の障害ノードが存在することがあり、ここでfは整数である。式は考慮するノードのタイプによって異なり得ることに留意されたい。一例では、ノードの第1のタイプ(例えば、順序付けノード)に関して、障害ノードがf個までのクラッシュ合意について、ノードの数が2f+1以上であるべきことを示す式があり得る。したがって、この式については、システム内に最小3つの順序付けノードがなければならない。さらには、システム内に5つの順序付けノードがある場合、2つのノードの故障には耐えることができる。悪意のあるノードが存在し得るビザンチン合意について、この式は3f+1まで変わる。しかしながら、他の実装形態では他の式を利用することができることに留意されたい。
図1は、本明細書において説明される1つまたは複数の実施形態による、ブロックチェーン・ネットワークのインフラストラクチャ用のサービス・マネジメントを促進する、例示の、非限定的なシステム100のブロック図を示している。本開示で説明されるシステム(例えば、システム100など)、装置、または処理の態様は、マシン内で具体化されるマシン実行可能コンポーネントを構成することができ、例えば、1つまたは複数のマシンに関連付けられる1つまたは複数のコンピュータ可読媒体に具体化される。そのようなコンポーネントは、1つまたは複数のマシン、例えばコンピュータ、コンピューティング・デバイス、仮想マシンなどによって実行される時、マシンに説明された動作を実施させることができる。
システム100、またはシステム100のコンポーネントあるいはその両方は、上述の技術、コンピュータ・アーキテクチャなどの進歩により生ずる新しい問題を解決するために採用することができる。システム100の1つまたは複数の実施形態は、コンピューティング・システム、プロセッサ・システム、人工知能システム、または他のシステムあるいはその組合せに対して技術的な改善を提供することができる。システム100の1つまたは複数の実施形態は、処理パフォーマンスを改善すること、処理効率を改善すること、または処理特徴を改善すること、あるいはその組合せにより、技術的な改善をさらに提供することができる。
図1で示される実施形態では、システム100は、割り当てコンポーネント102、グループ化コンポーネント104、実装コンポーネント106、処理コンポーネント108、メモリ110、またはストレージ112あるいはその組合せを備えることができる。メモリ110は、コンピュータ実行可能コンポーネントおよび命令を記憶することができる。処理コンポーネント108(例えば、プロセッサ)は、割り当てコンポーネント102、グループ化コンポーネント104、実装コンポーネント106、または他のシステム・コンポーネントあるいはその組合せによって命令(例えば、コンピュータ実行可能コンポーネントおよび対応する命令)の実行を促進することができる。示されるように、いくつかの実施形態では、システム100の1つまたは複数の機能を実施するために、割り当てコンポーネント102、グループ化コンポーネント104、実装コンポーネント106、処理コンポーネント108、メモリ110、またはストレージ112あるいはその組合せのうちの、1つまたは複数を、電気的に、通信可能に、または動作可能にあるいはその組合せで、互いに接続することができる。
割り当てコンポーネント102は、ブロックチェーン・ネットワーク内で、第1のノード・タイプのノードの第1のグループ114を動作スロットの第1のセットに割り振ることができる。さらには、割り当てコンポーネント102は、ブロックチェーン・ネットワーク内で、第1のノード・タイプとは異なる第2のノード・タイプのノードの第2のグループ116を動作スロットの第2のセットに割り振ることができる。割り当てコンポーネント102は、ノードの第2のグループ116の動作スロットの第2のセットへの割り振りとは独立して、ノードの第1のグループ114を動作スロットの第1のセットに割り振ることができる。
いくつかの実装形態では、第1のノード・タイプはブロックチェーン・ネットワークに存在する第1の機能性であり得、第2のノード・タイプはブロックチェーン・ネットワークに存在する第2の機能性であり得る。第1の機能性は、第2の機能性とは異なっていることができる。具体的で、非限定的な例では、ブロックチェーン・ネットワーク内で、ノードの第1のグループは、ピア・ノードであり得、ノードの第2のグループはordererノードであり得る。
ブロックチェーン・ネットワークでは、ピア・ノードは事業関与者によって使用される。ピア・ノードは、ネットワーク上の取引を相互に承認する。1つまたは複数のタイプの取引を、事業関与者によって合意される特定のエンドースメント・ポリシに関連付けることができる。エンドースメント・ポリシの例としては、以下が挙げられるが、それに限定されない:T(2,’A’,’B’,’C’)は’A’、’B’または’C’のうちからいずれか2つのプリンシパルに署名を要求する;T(1,’A’,T(2,’B’,’C’))はプリンシパルAに1つの署名を要求するか、またはプリンシパルBおよびCにそれぞれの署名を要求するか、のいずれかである。ピア・ノードのメンテナンスは、様々なタイプの取引を作り出し、エンドースメント・ポリシを提案する事業関与者との対話的な方法で実施されるべきである。例えば、いくつかの取引がポリシT(3,’A’,’B’,’C’)を有する場合、どのノードも停止されない場合がある。さらには、動作の実施の前に事業関与者とのコミュニケーションがあるべきである。
ブロックチェーン・ネットワークでは、ordererノードはピア・ノードとインフラストラクチャとの間のゲートウェイである。ordererノードは、パブリックな機能である。ピア・ノードは、選択したあらゆるordererノードに、サービスを順序付けるために接続することができる。ordererノードは、いかなる時にもどの事業関与者も、排他的に使用することができない。さらには、ordererノードは一様であることができ、どのordererノードも特別ではない。これらの特徴のために、ordererノードのメンテナンスの間、1つまたは複数のピア・ノードについて、ピア・ノードの近傍に利用可能なordererノードが十分存在することが保証されるべきである。
グループ化コンポーネント104は、動作スロットの第2のセットに割り振られたノードの第2のグループ116を、動作スロットの第1のセット内のノードの第1のグループ114と集約することができる。さらには、動作スロットの第1のセットの1つまたは複数は、ノードの第1のグループ114およびノードの第2のグループ116両方に対応する複数の割り振られたノードを備えることができる。実装コンポーネント106は、動作スロットの第1のセット内でノードの第1のグループ114とノードの第2のグループ116とを集約するグループ化コンポーネント104に基づいてサービス・マネジメント動作を実行することができる。合意アルゴリズムは、サービス・マネジメント動作の実行中に満たされ得る。
いくつかの実装形態によると、実装コンポーネント106は、ブロックチェーン・ネットワーク内の、ノードの第1のグループ114に関連付けられるエンドースメント・ポリシ、およびノードの第2のグループ116に関連付けられる合意アルゴリズムに基づいてサービス・マネジメント動作を実行することができる。これらの実装形態にさらに付け加えると、エンドースメント・ポリシは、取引にデジタル署名を適用することにより取引を承認するために必要とされるノードの第2のグループの最小数を決定することができる。
一例では、合意アルゴリズムは、in−serviceであるノードの第1のグループおよびノードの第2のグループの最小数を維持することにより、ブロックチェーンの1つまたは複数のブロック内の取引のセットについて、正しい順序付けおよび検証の両方を提供することができる。さらには、いくつかの実装形態によると、グループ化コンポーネント104は、実装コンポーネントがサービス・マネジメント動作を実行している間、ノードの第1のグループおよびノードの第2のグループを更新するために実施されるステップ数を最小にすることができる。
様々な実施形態において、システム100は、プロセッサを備えるあらゆるタイプのコンポーネント、マシン、デバイス、施設、装置、もしくは機器またはその組合せであることができるか、または、有線もしくは無線またはその両方のネットワークと、効果的もしくは動作可能な、またはその両方の通信を可能にすることができるか、あるいはその両方である。システム100を備えることができるコンポーネント、マシン、装置、デバイス、施設、または機器あるいはその組合せは、タブレット・コンピューティング・デバイス、ハンドヘルド・デバイス、サーバ・クラスのコンピューティング・マシンまたはデータベースあるいはその両方、ラップトップ・コンピュータ、ノートブック・コンピュータ、デスクトップ・コンピュータ、携帯電話、スマートフォン、家庭用の電化製品または器具あるいはその両方、工業的または商用あるいはその両方のデバイス、ハンドヘルド・デバイス、携帯情報端末、マルチメディア・インターネット対応電話機、マルチメディア・プレーヤ、などを含むことができる。
様々な実施形態において、性質として高度に技術的であり、抽象的ではなく、また人間による精神的な作用のセットとして実施することができない問題を解決するために、システム100はハードウェアまたはソフトウェアあるいはその両方を採用することができる。さらには、一定の実施形態において、実施されるプロセスのいくつかは、1つまたは複数の特化したコンピュータ(例えば、1つまたは複数の特化された処理ユニット、量子計算コンポーネントで特化したコンピュータなど)によって実施して、サービス・マネジメントに関連して規定されたタスクを遂行することができる。
システム100(例えば、割り当てコンポーネント102、グループ化コンポーネント104、実装コンポーネント106、または他のシステム・コンポーネントあるいはその組合せ)は、人間によって実施することができない(例えば、一人の人間の思考の能力を超えている)ブロックチェーン・ネットワークのためのサービス・マネジメントを実施することを了解されたい。例えば、一定の時間にわたって、システム100(例えば、割り当てコンポーネント102、グループ化コンポーネント104、実装コンポーネント106、または他のシステム・コンポーネントあるいはその組合せ)により処理されるデータ量、処理されるデータ速度、または処理されるデータのデータ・タイプあるいはその組合せは、同じ時間にわたって一人の人間の思考により処理され得る量、速度、データ・タイプよりも多く、速く、また多様であることができる。システム100(例えば、割り当てコンポーネント102、グループ化コンポーネント104、実装コンポーネント106、または他のシステム・コンポーネントあるいはその組合せ)は、上で言及したブロックチェーン・ネットワークのためのサービス・マネジメントをやはり実施しつつ、1つまたは複数の他の機能を実施することに対して完全に動作可能であることもできる(例えば、完全に電源をオンにする、完全に実行するなど)。さらには、システム100(例えば、割り当てコンポーネント102、グループ化コンポーネント104、実装コンポーネント106、または他のシステム・コンポーネントあるいはその組合せ)によって生成され調整される動作スロットは、ユーザによって手動で取得することが不可能な情報を含むことができる。例えば、1つまたは複数のサービス・マネジメント動作を生成して出力するための、情報のタイプ、情報の多様さ、またはシステムの最適化あるいはその組合せは、ユーザによって手動で取得され処理され得る情報よりも複雑である可能性がある。
さらに詳細に、図2は本明細書において説明される1つまたは複数の実施形態による、簡素化されたバージョンのブロックチェーン・ネットワーク200の、例示の、非限定的な表現を示している。本明細書において利用される場合、「取引」は、ブロックチェーン・ネットワークのクライアント同士のビジネス・ロジックである。ある使用事例では、取引は第1のチーム・メンバから第2のチーム・メンバへの金銭の転送であってもよく、または別のタイプの転送(例えば、車両の転送)であってもよい。
「チャネル」は、データの分離性と秘匿性を可能にするプライベートな重なりである。使用事例では、チャネルはチーム・メンバのサブセットであり得、その間の金銭の転送は外部者には不可視である。ブロックチェーン・ネットワークで動作中の、複数の事業エンティティがある可能性がある。その用途についてともに機能する事業エンティティは、1つのチャネルにあることができる。例えば、1チャネルで機能している2つ以上の異なる金融機関エンティティがあることができるが、そのエンティティは異なるチャネル上にある異なる事業エンティティ(例えば、自動車ディーラ)のサブセットを含むチャネルには参加しない。言及したように、特定のチャネルで行われる取引は、1つまたは複数の確立された規則またはポリシあるいはその両方の機能として、そのチャネル上の他のエンティティには可視ではない。
「ステート」は、チャネルの取引に含められるすべてのキーについて、最後の(例えば、最新の)値を表現する。使用事例では、ステートはチーム・メンバのサブセット内のメンバの個々の残高であり得る。例えば、転送が実施される場合、第1のエンティティ(例えば、第1の顧客)の残高が減る場合があり、第2のエンティティ(例えば、第2の顧客)の残高が増える場合がある。
「台帳(ledger)」は、1つまたは複数のチャネル上のすべてのステートの変化の検証可能な履歴である。使用事例では、台帳はチーム・メンバのサブセット間のすべての残高変更の履歴であり得る。「ブロック」は、順序付けられ、暗号化された取引の一覧である。使用事例では、ブロックは、規定された時間範囲(例えば、一週間)内でのチーム・メンバのサブセットにおけるすべての取引であり、時間によって順序付けられ、エンベロープ(仮想的な電子的エンベロープであり得る)に封止されている
したがって、「ブロックチェーン」は、先行するブロックに暗号的にリンクすることができるブロックを含んでいる。ブロックチェーンは、台帳の実装形態を表現することができる。使用事例では、ブロックチェーンはエンベロープの積み重なりであり得、規定された時間範囲(例えば、一週間)によって順序付けられ、個々のエンベロープは先のエンベロープに貼り付けることができる。さらに詳細に、複数の取引はあるブロックに向かうことができ、そのブロックが以前のブロックを指し示すやり方で、そのブロックはブロックチェーン内に向かう。一例では、実施されるハッシュ演算があってもよく、悪意のあるエンティティにより以前のブロックに変更が加えられると、そのノードは除去することができる。
図2には2つの異なる取引が示されており、第1の取引202、および第2の取引202として図示される。2つの取引だけが図示されているが、ブロックチェーン・ネットワーク内では実質的に同時に3つ以上の取引が生じる可能性があることに留意されたい。取引は、銀行アプリケーション、自動車販売アプリケーション、または他のタイプのアプリケーションなど個々のアプリケーションでサブミットすることができる。
1つまたは複数のアプリケーションを別個のチャネル(長く丸みのある四角として図示される)に展開することができる。例えば、第1のアプリケーションを利用する第1の取引202を第1のチャネル204に展開することができ、第2のアプリケーションを利用する第2の取引202を第2のチャネル204に展開することができる。
加えて、合意に参加するノードがある可能性があり、これらは独立したノードである可能性がある。図示されるように、ノード(円によって表現される)は、チャネルには含まれない。一例では、顧客がアプリケーションに要求をサブミットする場合、チャネルに属するすべては取引の一部である。さらには、使用されるアプリケーションに関わらず、取引は、チャネル独立である、ノードの独立したセットから合意を取得しようと企てる。合意は取引以外で生じることに留意されたい。
例示の使用事例では、アプリケーションは、一定の金額の転送は第1の口座から第2の口座のものであるべき(例えば、取引)であることを示す可能性がある。別のアプリケーションは、車両がディーラから顧客の元へ行き、車両の所有がこの2つのエンティティの間で転送されることを示すことができる。これらの2つの異なる取引は異なるチャネル上で生じる。しかしながら、独立した合意が達成される時、取引は同一のブロックにマージすることができる。したがって、同一のブロックに向かう複数の取引があり得、これは合意が達成するものである。さらには、合意は取引の順序付けを容易にすることができる。例えば、合意は取引をブロックに入れ、それをブロックチェーンに追加し、次いでそれをコミッティング・ノードに追加するが、これは取引以外で生じる場合がある。
さらに詳細に、第1のチャネル204は、存続する規定されたステート206にある。規定されたステート206は、チャネルの取引に含められるすべてのキーについて、最新の値を含むことができる。使用事例では、ステートはチーム・メンバのサブセット内の全員の残高を含む。1つまたは複数の取引が完了すると、すべてのブロック210が存続されて、1つまたは複数のチャネル上のステート変化すべての検証可能な履歴を提供することができるブロックチェーン208が存在する。
図3は本明細書において説明される1つまたは複数の実施形態による、サービス・マネジメントを促進する、例示の、非限定的なブロックチェーン・ネットワーク300のブロック図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
ブロックチェーン・ネットワーク300は、システム100のコンポーネントまたは機能性あるいはその両方のうちの1つまたは複数を備えることができ、またその逆もあり得る。ブロックチェーン・ネットワーク300は、ブロックチェーン・ネットワーク300内で第1の機能性を実行することができるノードの第1のセット302を含むことができる。また、ブロックチェーン・ネットワーク300内で第2の機能性を実行することができるノードの第2のセット304も含まれ得る。ノードの第1のセット302によって実行される第1の機能性は、ノードの第2のセット304によって実行される第2の機能性とは異なっている可能性がある。
さらにブロックチェーン・ネットワーク300には、サービス・マネジメント・エンジン306、カテゴリ化コンポーネント308、規則コンポーネント310、実装コンポーネント312、挿入コンポーネント314も含まれ得る。さらには、サービス・マネジメント・エンジン306は、コンピュータ実行可能コンポーネントを記憶することができるメモリ(例えば、メモリ110)、およびメモリに記憶されたコンピュータ実行可能コンポーネントを実行することができるプロセッサ(例えば、処理コンポーネント108)を備えることができる。
カテゴリ化コンポーネント308は、ノードの第1のセット302が第1の機能性を実行し、ノードの第2のセット304が第2の機能性を実行することを判断することができる。規則コンポーネント310は、ノードの第1のセット302についてサービス・マネジメント動作を実施するために実行されるステップの第1の数量、およびノードの第2のセット304についてサービス・マネジメント動作を実施するために実行されるステップの第2の数量を決定することができる。さらには、実装コンポーネント312は、ステップの第1の数量とステップの第2の数量との集約に基づいてサービス・マネジメント動作を実行することができる。例えば、集約は、サービス・マネジメント動作の実行についてステップの最小数を規定することができる。
ある実装形態によると、規則コンポーネント310は、ノードの第1のセット302内のノードの数量が、サービス・マネジメント動作について指定されるノードの規定された数量より少ないと判断することができる。この実装形態にさらに付け加えると、挿入コンポーネント314が1つまたは複数のノードをノードの第1のセット302に追加することができる。例えば、挿入コンポーネント314は、ノードの第1のセット302内のノードの数量とノードの規定された数量との差異に基づいて、追加するノードの数量を決定することができる。
いくつかの実装形態によると、規則コンポーネント310は、ノードの第1のセット302内のノードの数量が、サービス・マネジメント動作について指定されるノードの規定された数量より多いと判断することができる。この実装形態にさらに付け加えると、実装コンポーネント312は、ブロックチェーン・ネットワーク300の故障なくノードの第1のセット302に対してサービス・マネジメント動作を実行することができる。
図4は、本明細書において説明される1つまたは複数の実施形態による、ブロックチェーン・ネットワークにおけるサービス・マネジメントを実行することを促進する、例示の、非限定的なコンピュータ実装方法400の流れ図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
402において、プロセッサに動作可能に連結されブロックチェーン・ネットワーク内にあるシステムは、第1のノード・タイプのノードの第1のグループ(例えば、ノードの第1のグループ114、ノードの第1のグループ302)を動作スロットの第1のセットに、また、第1のノード・タイプとは異なる第2のノード・タイプのノードの第2のグループ(例えば、ノードの第2のグループ116、ノードの第2のグループ304)を動作スロットの第2のセットに割り振ることができる(例えば、割り当てコンポーネント102により)。ある実装形態によると、ノードの第1のグループは、動作スロットの第2のセットに割り振られるノードの第2のグループとは独立して、動作スロットの第1のセットに割り振ることができる。
一例では、第1のノード・タイプは、ブロックチェーン・ネットワークに存在する第1の機能性であり得る。この例にさらに付け加えると、第2のノード・タイプは、ブロックチェーン・ネットワークに存在する第2の機能性であり得る。第1の機能性および第2の機能性は、異なる機能性であることができる。具体的な例では、ノードの第1のグループはピア・ノードであり得、ノードの第2のグループはordererノードであり得る。しかしながら、本明細書において提供される1つまたは複数の実施形態は、この実装形態に限定されず、ノードの第1のグループ、ノードの第2のグループ、またはノードの後続のグループあるいはその組合せについて他のタイプのノードを利用することができることに留意されたい。
404において、動作スロットの第2のセットに割り振られたノードの第2のグループは、システムにより、動作スロットの第1のセット内のノードの第1のグループと集約することができる(例えば、グループ化コンポーネント104により)。動作スロットの第1のセットのうちの1つまたは複数は、ノードの第1のグループおよびノードの第2のグループ両方に対応する複数の割り振られたノードを備えることができる。
さらには、406において、システムは、ノードの第1のグループと動作スロットの第1のセット内で集約されるノードの第2のグループとを集約することに基づいてサービス・マネジメント動作を実行することができる(例えば、実装コンポーネント106により)。合意アルゴリズムは、サービス・マネジメント動作の実行中に満たされ得る。
例えば、サービス・マネジメント動作は、ブロックチェーン・ネットワーク内の、ノードの第1のグループに関連付けられるエンドースメント・ポリシ、およびノードの第2のグループに関連付けられる合意アルゴリズムに基づいて実行することができる。この例にさらに付け加えると、取引にデジタル署名を適用することに基づいて、取引を承認するために必要とされるノードの第2のグループの最小数を決定することができる。
いくつかの実装形態によると、ノードの第2のグループを集約するために、ノードの第1のグループおよびノードの第2のグループを更新するために実施される複数のステップを決定することができる。実施されるステップ数の決定は、例えば、サービス・マネジメント動作が実行される間であり得る。
別の例では、合意アルゴリズムは、in−serviceであるノードの第1のグループおよびノードの第2のグループの最小数を維持することにより、ブロックチェーンの1つまたは複数のブロック内の取引のセットについて、正しい順序付けおよび検証の両方を提供することができる。他の例によると、合意アルゴリズムは、in−serviceであるそれぞれ複数のノード・グループ内の最小数のノードを維持することにより、ブロックチェーンの個々のブロック内の取引のセットについて、正しい順序付けおよび検証の両方を提供することができる。
サービス・マネジメント動作は取引の処理の間に実行することができる。例えば、取引は、サービス・マネジメント動作の開始に先立って、またはその後に、ブロックチェーン・ネットワークにサブミットすることができる。この場合、ノードの第2のグループにおいて1つまたは複数のノードが取引を承認するために利用されることになる場合、サービス・マネジメント動作は一時的に停止する可能性がある。コンピュータ実装方法の406に示されるように、取引が完了した(例えば、1つまたは複数のノードが取引の承認を完了した(または承認を拒否した))と判断された時、またはその後、サービス・マネジメント動作を実行することができる。
図5は、本明細書において説明される1つまたは複数の実施形態による、ブロックチェーン・ネットワーク内においてサービス・マネジメント動作を実施することを促進する、例示の、非限定的なコンピュータ実装方法500の流れ図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
502において、プロセッサに動作可能に連結されたシステムは、ブロックチェーン・ネットワーク内のノードの第1のセットが第1の機能性を実行すること、およびブロックチェーン・ネットワーク内のノードの第2のセットが第1の機能性とは異なる第2の機能性を実行すること、を判断することができる(例えば、カテゴリ化コンポーネント308により)。
504において、ノードの第1のセットについてサービス・マネジメント動作を実施するために実行されるステップの第1の数量、およびノードの第2のセットについてサービス・マネジメント動作を実施するために実行されるステップの第2の数量を、システムにより決定することができる(例えば、規則コンポーネント310により)。
さらには、506において、システムは、ステップの第1の数量とステップの第2の数量との集約に基づいてサービス・マネジメント動作を実行することができる(例えば、実装コンポーネント312により)。集約は、サービス・マネジメント動作の実行のためのステップの最小数を規定することができる。
本明細書において議論されるように、様々な態様が、ネットワーク上の事業関与者がサービス・マネジメント手順に気付かないように、中断無しのやり方で様々なタイプのノードを保持するサーバを管理することができる。さらには、管理は、サーバの利用および時間消費の観点から効率的なやり方で実施することができる。
ブロックチェーン・ネットワークでは、合意はすべてのチャネルに対して保証されるべきであるが、サービス・マネジメントのアクティビティ(例えば、マネジメントの目的で関与者のサーバ/コンテナ/サービスをシャットダウンするなど)は合意に影響を及ぼす可能性があることに留意されたい。さらには、アプリケーションはいかなる1つのブロックチェーン・サービス・エンティティによっても制御されない。やはり、アプリケーションは、ブロックチェーン・サービス・プロバイダによってすらも完全には制御されない。代わりに、複数の事業関与者およびサービス・プロバイダは合意が実現できるように協力するべきである。これはマネジメント動作に余計な複雑性をもたらすものであり、それを開示される態様により克服することができる。
図6は、本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的なブロックチェーン・ネットワーク環境600を示している。図示されるように、様々なエンティティの間で、通信ネットワーク602を介するなど、1つまたは複数の無線(または、有線)の通信リンクを確立することができる。一例では、通信ネットワーク602は、クラウド・コンピューティング・ネットワークである可能性がある。ブロックチェーン・サービス・マネジメント・デバイス604は、本明細書において議論される1つまたは複数の態様の実施を促進することができる。
図示されるように、様々なノードを、ブロックチェーン・ネットワーク環境600に含めることができ、また1つまたは複数のクライアント・アプリケーションが、複数の場所または複数の領域あるいはその両方を表現するノードのセットとインターフェースすることができる(例えば、1つまたは複数のチャネルを介して)。例えば、1つまたは複数のクライアント・アプリケーション605は、エンドーサ・ノード(E0)、エンドーサ・ノード(E1)、エンドーサ・ノード(E2)、コミッティング・ノード(C0)、およびordererノード608を含むことができるノードの第1のセット606と対話することができる。さらには、別のクライアント・アプリケーション610は、エンドーサ・ノード(E3)、コミッティング・ノード(C1)、およびordererノード614を含むことができるノードの第2のセット612と対話することができる。加えて、クライアント・アプリケーション616は、エンドーサ・ノード(E4)、コミッティング・ノード(C2)、およびordererノード620を含むことができるノードの第3のセット618と対話することができる。ordererノードはノードの様々なセット内に図示されているが、ordererノードはブロックチェーン・ネットワーク内ですべてのチャネルによって共有することができる。ノードの1つまたは複数のセットに関して一定の数のノードが図示され説明されているが、開示される態様はこの実装形態に限定されないことに留意されたい。
図7は、本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的なブロックチェーン・ネットワーク環境700の別の実装形態を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
この例示のブロックチェーン・ネットワーク環境700では、1つまたは複数のordererノード702は、ノード間で濃実線と薄実線とによって図示される1つまたは複数のチャネルをサポートすることができる(例えば、エンドーサ・ノード、コミッティング・ノード、または他のタイプのノード)。E0、E2、E3、およびC2は1つのチャネル内にあり(例えば薄実線により表される)、E1、E2、E4、C0およびC1は別のチャネル内にある(濃実線により表される)。この例では、クライアントに特有のordererノードはない。図示されるように、エンドーサ・ノードE2は、両方のチャネルによって使用される。また、図示されるように、1つまたは複数の他のクライアント・アプリケーション605、616、704および706は、所与のチャネルに接続することができる。1つのチャネルに接続するクライアントは、他のチャネルの存在を意識しないが、クライアントは複数のチャネルに接続することができる。
図8は、本明細書において説明される1つまたは複数の実施形態による、ブロックチェーン・ネットワークのインフラストラクチャ用のサービス・マネジメントを促進する、例示の、非限定的なコンピュータ実装方法800の流れ図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
802において、ブロックチェーン・ネットワークのインフラストラクチャに関連付けられる複数のノードに対応するノード・タイプを決定することができる。任意選択で、804において、決定されたノード・タイプのうちの1つに対応するノードの割り振りを、ブロックチェーン・ネットワーク内でセットアップされる様々な通信チャネルに最適化することができる。
さらには、806において、あるノード・タイプ(例えば、x=1・・・n)に対応する1つまたは複数のノード(Nx)について、サービス・マネジメント動作を割り振るために必要とされる複数の動作スロット(Sx)を決定することができる。必要とされる動作スロットの数は、ブロックチェーン・ネットワーク全体の合意プロセスを維持しつつ、決定することができる。例えば、あるノード・タイプの特定のノードを、サービスから除去することができる。この例にさらに付け加えると、特定のノードを除去することができ、そしてソフトウェア・パッチを展開することができる。
運用計画にしたがって、808において、必要とされる動作スロットの最大数(Smax)を、サービス・マネジメント動作を実施するために最多の動作スロットを必要としているノード・タイプの1つのノードに基づいて割り振ることができる。810において、ノード・タイプ(x=1・・・n)に対応する1つまたは複数のノード(N)について、ノード依存性があるかどうかを判断することができる。
さらに、812において、あるノード・タイプ(x=1・・・n)に対応する1つまたは複数のノード(N)について、そのノード・タイプについてノード・リーダが存在するかどうかを判断することができる。本明細書において議論される1つまたは複数の態様によると、ノード・リーダは、過剰なリーダ切り替えを妨げるため、または軽減するため、あるいはその両方のために、停止された最後のノードであることができる。
814において、1つまたは複数のノードを、運用計画、ノード依存性、およびノード・リーダに基づいてサービス・マネジメント動作を実施するために必要とされる動作スロットの最大数(Smax)の1つまたは複数に割り振ることができる。必要とされる動作スロットの最大数(Smax)のうち少なくとも1つのスロットは、様々なノード・タイプのノードの集約を含むことができる。
図9は、本明細書において説明される1つまたは複数の実施形態による、ブロックチェーン・ネットワークのインフラストラクチャに関連付けられる複数のノードに対応するノード・タイプを決定することを促進する、例示の、非限定的なコンピュータ実装方法900の流れ図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
コンピュータ実装方法900は、図8の802に対応することができる。さらに詳細に、902において、特定のブロックチェーン・ネットワーク内のノードおよびそれらの個々のノード・タイプに関連付けられるノード情報更新についての要求を、ネットワーク管理センタ(NMC)に要求することができる。
904において、NMCから応答が受信されたかどうかを判断することができる。応答が受信されている場合(「はい」)、コンピュータ実装方法900は、906に続くことができ、さらなる処理のために図8の804に戻る。代替的には、904において、決定が、応答が受信されなかった(「いいえ」)であった場合、908において、1つまたは複数のノードの個々のノード・タイプに関連付けられるノード情報を集計することができる。例えば、特定のブロックチェーン・ネットワーク内の1つまたは複数のノードを、集計することができる。
910において、特定のブロックチェーン・ネットワーク内の1つまたは複数のノードから応答が受信されたかどうかを判断することができる。1つまたは複数のノードから個々の応答が受信されている場合「はい」、コンピュータ実装方法900は、912に続くことができ、さらなる処理のために図8の804に戻る。
代替的には、910において、1つまたは複数のノードからの個々の応答が受信されていないと判断された場合(「いいえ」)、コンピュータ実装方法900は、914において、所定の時間間隔の間、待機することができ、次いでさらなる処理のために902に戻ることができる。例えば、ノードの1つのセットだけが応答した場合、コンピュータ実装方法900にしたがう処理を、応答しなかったノードの残りのセットの分、繰り返すことができる。
図10は、本明細書において説明される1つまたは複数の実施形態による、様々な通信チャネルへのノードの割り振りを最適化することを任意選択で促進する、例示の、非限定的なコンピュータ実装方法1000の流れ図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
コンピュータ実装方法1000は、図8の804に対応することができる。ノードの割り振りは、決定されたノード・タイプのうちの1つに対応するノードの割り振りであることができる。さらには、様々な通信チャネルは、ブロックチェーン・ネットワーク内でセットアップされる様々な通信チャネルであることができる。
1002において、Kafkaノードが検出されるかどうかを判断することができる。Kafkaノードが検出されない場合(「いいえ」)、コンピュータ実装方法1000は、1004に続くことができ、さらなる処理のために図8の806に戻ることができる。1002における判断が、Kafkaノードが検出されるとのことである場合(「はい」)、1006において、チャネルの最適化が実施されるべきかどうかを判断することができる。チャネルの最適化が実施されるべきではない場合(「いいえ」)、コンピュータ実装方法1000は、1004に続くことができ、さらなる処理のために図8の806に戻ることができる。
代替的には、チャネルの最適化が実施されるべきである場合(「はい」)、1010において、Kafkaノードの数(K)を受信することができる。1012において、Kafkaノードの数(K)に基づいて、Kafkaノード(K)用の複製ファクタ(M)を受信することができる。さらには、コンピュータ実装方法1000の1014において、チャネルごとの(CH−CH)最小の必要とされるKafkaノード(N)を受信することができる。
複製ファクタが3である6つのKafkaノードを有する具体的な例について、1016において、1つまたは複数の偶数チャネル(CH、CH、CH)に、偶数Kafkaノード(K、K、K)を割り振ることができる。同じようなやり方で、1016において、1つまたは複数の奇数チャネル(CH、CH、CHなど)に、奇数Kafkaノード(K、K、K)を割り振ることができる。その後、コンピュータ実装方法1000は、1020に続くことができ、さらなる処理のために図8の806に戻ることができる。
奇数ノードおよび偶数ノードについての上の例は、図10の具体例に当てはまることに留意されたい。以下の汎用アルゴリズムは、あらゆる所与の数のKafkaノード、チャネル、複製ファクタ、およびMin InSync Replicasで動作することができる。
チャネル全体のKafkaノードを分散するための汎用アルゴリズム
For each channel: 0 to MaxChannels do
Start_Position=(ChannelNumber*Replication_Factor) mod
quotient(NumberKafkaNodes,ReplicationFactor)
End_Position=Start_Position+Replication_Factor
For each kafka_node: 0 to MaxKafkaNodes do
If KafkaNodeNumber is between Start_Position andEnd_Position
Assign the kafka_node to the channel
EndIf
EndFor
If the MaxKafkaNodes >=
quotient(NumberKafkaNodes,ReplicationFactor)*Replication_Factor then
Distribute the load from a selectedremainder(NumberKafkaNodes,ReplicationFactor) of kafka nodes to these extranodes
EndIf
EndFor
汎用アルゴリズムによって生成される3つの例示のチャネル割り当ては、以下のように与えられる:
Figure 2021515293
Figure 2021515293
Figure 2021515293
図11は、制御されていないKafkaノードの使用の例示の、非限定な表現1100を図示している。チャネル1102は、垂直軸に示されており、Kafkaノード1104は水平軸に示されている。Kafkaノード(ブローカとも呼ばれる)は、取引ログの複数された記憶を与える。本明細書において利用される場合、変更のない耐障害性が利用される。耐障害性のパフォーマンスは、default.replication.factorおよびmin.insync.replicasによって規定され、これらは1つまたは複数の態様にしたがって変更されないままである。この例では、以下が適用される:default.replication.factor=3かつmin.insync.replicas=2。したがって、チャネルに関しては、そのログは3つのKafkaブローカにわたって複製され、ここで少なくとも2つのブローカはチャネルがアクセス可能であることを維持するためにaliveとなる。デフォルトの設定では、チャネルはそれら自身のブローカのセットを制御されないやり方で選択する。結果としては、Kafkaノードはお互い、相互に排他的となり得る。例えば、ブローカK1とK3は、これらは同時的に停止することがないという意味では相互に排他的であり、そうでなければ、チャネルCh0はアクセス不能となる。この例では、ブローカのすべての対は相互に排他的であることに留意されたい。
Kafkaノードはさらなるチャネルが作成されると容易にもつれを起こすことがあり、それがマネジメント運用についての問題を起こすことがある。例えば、有効なメンテナンス・シーケンスを特定することが困難になることがある(例えば、チャネル上で運用の中断無しに運用を終了できるように、メンテナンス・グループをどのように構成するか)。さらには、短期のメンテナンス・シーケンスが存在しない可能性がある。この例では、ブローカの対が相互に排他的であるため、可能な手法だけが6つのブローカを6つの別個のサーバ上で展開し、1つずつそこで動作する。時間消費およびサーバの利用の両方の観点から、特にネットワークがスケール・アップする際(例えば、さらに多くのKafkaノードがネットワークに含められる場合)、この手法は不十分である。本明細書において議論される様々な態様は、これらの効率性を克服することができる。
図12は、本明細書において説明される1つまたは複数の実施形態による、制御されているKafkaノードの使用の例示の、非限定な表現1106を図示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
表現1106におけるKafkaノードの制御される使用は一例であり、開示される態様にしたがって使用を制御する他のやり方が利用され得ることに留意されたい。この場合、チャネルに任意にブローカを選択させる代わりに、本明細書において議論されるように、チャネルのためのブローカのセットを明示的に指定することができる。この手法により様々な利点を達成することができる。例えば、有効なメンテナンス・シーケンスを特定することが容易となる可能性がある。KafkaブローカK0およびK1は、同時的に停止する可能性があり、そしてブローカK2およびK3は、同時的に停止する可能性があり、最終的にブローカK4およびK5は、同時的に停止する可能性がある。この手順の間、すべてのチャネルはいかなる中断も無しにアクセスすることができる。
別の利点は、運用が効率的に実施され得る可能性があることである。(図11のように)6つのステップの代わりに、図12の実装形態としては3つのステップだけが存在する。これは、いつでもあらゆるチャネルについて停止する可能性があるブローカがせいぜい1つであるため、この例には妥当な解決策である。さらに、ネットワークがスケール・アップする場合、利点がより明白となる。実際、この例ではあらゆる数のKafkaノードについて3つのステップのみが利用される。
Kafkaノードを制御下に置くことにより、メンテナンス・シーケンスの特定を、チャネル運用への中断なく、容易で明確なものとすることができる。さらには、時間消費およびサーバ利用の両方の観点から、効率的なマネジメント運用が可能である。ネットワークがスケール・アップする場合、一定長さのメンテナンス・シーケンスでスケーラビリティに対処することが可能である。さらには、変更のない耐障害性があり得る。耐障害性のパフォーマンスは、default.replication.factorおよびmin.insync.replicasによって規定され得、これは本明細書において提供される様々な態様にしたがって変更されないままである。
図13は、本明細書において説明される1つまたは複数の実施形態による、サービス・マネジメント動作を割り振るために必要とされる複数の動作スロットを決定することを促進する、例示の、非限定的なコンピュータ実装方法1200の流れ図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
コンピュータ実装方法1200は、図8の806に対応することができる。サービス・マネジメント動作を割り振るために必要とされる動作スロットの決定は、ブロックチェーン・ネットワーク全体の合意プロセスを維持しつつ、実施することができる。1202において、ノード・タイプ1に対応するノードNについて、ノードNについてのエンドースメント・ポリシを含むスマート・コントラクトにアクセスすることができる。一実装形態によると、ノード・タイプ1はピア・ノードであり得る。この実装形態にさらに付け加えると、エンドースメント・ポリシは、例えば、エンドースメント・ポリシP、P、Pなどであることができる。
1204において、ノードをサービス外にして動作スロットに割り振ることができる。例えば、ノードはエンドースメント・ポリシ(例えば、エンドースメント・ポリシP)を有するノードであることができる。さらには、ノードは、動作スロットS、S、S、Sなどから選択された動作スロットに割り振ることができる。
1206において、別のノードの同一の動作スロットへの割り振りが可能かどうかを判断することができる。可能ではない場合(「いいえ」)、1204に戻り、別のノードをサービス外として異なる動作スロットに割り振ることができる。別のノードが同一の動作スロットに割り振ることができると判断される場合(「はい」)、1208において、別のノードをサービス外として同一の動作スロットに割り振ることができる。例えば、他のノードは異なるエンドースメント・ポリシ(例えば、エンドースメント・ポリシP)を有するノードであることができる。
1210において、別のノードを同一の動作スロットへ割り振ることができるかどうか別の判断を行うことができる。判断が別のノードが同一の動作スロットに割り振ることができるとのことである場合(「はい」)、1208に戻り、さらなるノードをサービス外として動作スロットに割り振ることができる。これは再帰的であり得ることに留意されたい。
1210における判断が、別のノードは同一の動作スロットに割り振ることができないとのことである場合、1212に続き、第1のノード・タイプ1のすべてのノードNがスロットに割り振られているかどうかの判断を行うことができる。第1のタイプ1のすべてのノードNがスロットに割り振られていない場合(「いいえ」)、1204に戻る。第1のタイプ1のすべてのノードNがスロットに割り振られている場合(「はい」)、図14のコンピュータ実装方法1300に関して議論するように、1214に続く。
図14は、本明細書において説明される1つまたは複数の実施形態による、サービス・マネジメント動作を割り振るために必要とされる複数の動作スロットの決定を続行することを促進する、例示の、非限定的なコンピュータ実装方法1300の流れ図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
1302において、ノード・タイプ2に対応するノードNについて、耐故障規則Nにアクセスすることができる。一例では、ノードNはordererノードであり得る。1304において、ノードNに対応するノードをサービス外にして動作スロットに割り振ることができる。例えば、動作スロットは、動作スロットS’、S’、S’、S’などから選択されたスロットであり得る。
1306において、別のノードを同一の動作スロットへ割り振ることができるかどうかの判断を行うことができる。別のノードを割り振ることができない場合(「いいえ」)、1304に戻る。別のノードを割り振ることができる場合(「はい」)、1308において、ノードNに対応する別のノードをサービス外として同一の動作スロットに割り振ることができる。
1310に進み、別のノードを同一の動作スロットへ割り振ることができるかどうかの判断を行うことができる。そうであれば(「はい」)、1308に戻る。しかしながら、別のノードを割り振ることができない場合(「いいえ」)、1312においてノード・タイプ2のすべてのノードNがスロットに割り振られているかどうかの判断が行われる。
ノード・タイプ2のすべてのノードNがスロットに割り振られていない場合(「いいえ」)、1304に戻り、別のノードをサービス外とすることができる。代替的には、1312における判断がノード・タイプ2のすべてのノードNがスロットに割り振られているとのことである場合(「はい」)、図15のコンピュータ実装方法1400に関して議論するように1314に続く。
図15は、本明細書において説明される1つまたは複数の実施形態による、サービス・マネジメント動作を割り振るために必要とされる動作スロットの数の決定を続行する、例示の、非限定的なコンピュータ実装方法1400の流れ図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
1402において、ノード・タイプ3に対応するノードNについて、耐故障規則Nにアクセスすることができる。一例では、ノードNはKafkaノードであり得る。コンピュータ実装方法1400の1404において、ノードNに対応するノードをサービス外にして動作スロットに割り振ることができる。例えば、動作スロットは、動作スロットS”、S”、S”、S”などから選択されたスロットであり得る。
1406において別のノードを同一の動作スロットへ割り振ることができるかどうかの判断を行うことができる。別のノードを割り振ることができない場合(「いいえ」)、1404に戻り、別のノードを異なる動作スロットに割り振ることができる。1406において別のノードを割り振ることができると判断される場合(「はい」)、1408において、ノードNに対応する別のノードをサービス外として同一の動作スロットに割り振ることができる。
1410に進み、別のノードを同一の動作スロットへ割り振ることができるかどうかの判断を行うことができる。そうであれば(「はい」)、1408に戻る。しかしながら、別のノードを割り振ることができない場合(「いいえ」)、1412においてノード・タイプ3のすべてのノードNがスロットに割り振られているかどうかの判断が行われる。
ノード・タイプ3のすべてのノードNがスロットに割り振られていない場合(「いいえ」)、1404に戻り、別のノードをサービス外とすることができる。代替的には、1412における判断がノード・タイプ3のすべてのノードNがスロットに割り振られているとのことである場合、1414に続き、コンピュータ実装方法800にしたがうさらなる処理のために図8の808に戻る。
図16は、本明細書において説明される1つまたは複数の実施形態による、1つまたは複数のノードを、サービス・マネジメント動作を実施するために必要とされる動作スロットの最大数に割り振るための、例示の、非限定的なコンピュータ実装方法1500の流れ図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
コンピュータ実装方法1500は、図8の814に対応することができる。1502において、ノードの割り振りに必要とされる動作スロットの最大数(Smax)を含むタイプのうちの1つのノード(例えば、N)を選択することができる。最大数の動作スロット(Smax)を有する動作スロットに割り振られた1つまたは複数のノード(例えば、N)のノードについて、1504において、ノードのうちのいずれか1つ(例えば、N)に依存性(例えば、依存性ノードN)を有する他のノードがあるかどうかを判断する。
動作スロットに割り振られたノードのうちのいずれか1つ(例えば、N)に依存性(N)を有する1つまたは複数の他のノードに基づいて、1506において、依存性ノード(N)を、それが依存性を有する対象である対応するノードとともに動作スロットに配置する。
1508において、選択されたノード(例えば、N)についてノード・リーダを決定することができるかどうかの判断を行うことができる。ノード・リーダを決定することができる場合(「はい」)、1510において、ノード・リーダおよびノード・リーダを有するスロット内のあらゆる他のノードを最後のスロットに切り替えることにより、ノード・リーダを再割り振りすることができる。ノード・リーダを再割り振りすることは、例えば、スロット場所が以前にそのノード・リーダによって占有された最後のスロット内で1つまたは複数のノードを再割り振りする間に生じる可能性がある。
ノード・リーダが再割り振りされる時、またはその後、1510において、または1508における判断がノード・リーダを決定することができないとのことである場合(「いいえ」)、1512に続き、そして他のノード・タイプ(例えば、N)のうちの1つのノードを、動作スロットの最大数(Smax)を含むノードの動作スロット(例えば、N)に割り振ることができる。コンピュータ実装方法1500は、図17に続くことができる。
図17は、本明細書において説明される1つまたは複数の実施形態による、1つまたは複数のノードの、サービス・マネジメント動作を実施するために必要とされる動作スロットの最大値への割り振りを続行するための、例示の、非限定的なコンピュータ実装方法1600の流れ図を図示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
1602において、動作スロットに割り振られた1つまたは複数のノード(例えば、N)のノードについて、これらのノードのうちの1つ(例えば、N)に依存性を有する他のノード(N)があるかどうかを判断する。動作スロットに割り振られたノードのうちのいずれか1つ(例えば、N)に依存性(N’)を有する1つまたは複数の他のノードに基づいて、1604において、依存性ノード(N’)を、それが依存性を有する対象である対応するノードとともに動作スロットに配置する。
1606において、選択されたノード(例えば、N)について、ノード・リーダを決定することができるかどうかの判断を行うことができる。ノード・リーダを決定することができる場合(「はい」)、1608において、ノード・リーダおよびノード・リーダを有するスロット内のあらゆる他のノードを最後のスロットに切り替えることにより、ノード・リーダを再割り振りすることができる。ノード・リーダを再割り振りすることは、例えば、スロット場所が以前にそのノード・リーダによって占有された最後のスロット内で1つまたは複数のノードを再割り振りする間に生じる可能性がある。
ノード・リーダが再割り振りされる時、またはその後、1608において、または1606における判断がノード・リーダを決定することができないとのことである場合(「いいえ」)、1610に続き、ネットワーク内に別のノード・タイプ(例えば、N)の他のノードがあるかどうか判断される。ネットワーク内に別のノード・タイプのノードがある場合(「はい」)、コンピュータ実装方法1600は図16に戻ることができる。ネットワーク内に別のノード・タイプのノードがない場合(「いいえ」)、コンピュータ実装方法1600は終了することができる。
図18は、本明細書において説明される1つまたは複数の実施形態による、複数のロールの例1700の、非限定な概略表現を図示している。この例では3つの異なるノードを図示している。図面の左上に図示されているのは、1つまたは複数のzookeeperノード1702であり、これは代替的には、順序付けノードであってもよい(例えば、zookeeperノードと順序付けノードは似たようなやり方で振る舞う)。右上は1つまたは複数のエンドースメント・ノード1704であり、左下は1つまたは複数のKafkaノード1706である。
zookeeperノードは、配信された一貫性のある設定を提示することにより、Kafkaノードの振る舞いを調整することができる。例えば、設定は、図11で図示されるように、第1のチャネル4のすべての取引履歴を3、5、および0で番号付けされた3つのKafkaブローカによって複製することができることを指定することができる。ブロックチェーン・ネットワークの中心部に存在しつつ、zookeeperノードは合意プロトコルによる単純な規則にしたがう:N>2f+1。したがって、メンテナンスの間、いつでもzookeeperノードの厳密に半分超がupであるよう保証されるべきである。そうでなければ、ブロックチェーン・ネットワーク全体がダウンすることになる。
図示されるように、5つのzookeeperノード、すなわちzookeeperノードF 1702、zookeeperノードG 1702、zookeeperノードH 1702、zookeeperノードI 1702、およびzookeeperノードJ 1702がある。zookeeperノードJ 1702は、リーダのzookeeperノードである。5つのピア・ノードまたはエンドースメント・ノード、すなわち、エンドースメント・ノードA 1704、エンドースメント・ノードB 1704、エンドースメント・ノードC 1704、エンドースメント・ノードD 1704、およびエンドースメント・ノードE 1704がある。
ピア・ノード(例えば、エンドースメント・ノード1704)は、ポリシ・ラベルP1、P2、またはP3あるいはその組合せとともに図示されている。複数のポリシがあることができ、またエンドースメント・ノード1704は3つの異なるポリシを表現することができる。例えば、第1のポリシP1は、ネットワークに少なくとも3つのaliveの(例えば、停止されていない)ノードがあるべきであることである。したがって、取引の提案を承認するためには個々の事業関与者から少なくとも1つのピア・ノードが必要である。第2のポリシP2は、ネットワークに少なくとも2つのaliveのノードがあるべきであることである。さらには、第3のポリシP3は、ネットワークに少なくとも1つのaliveのノードがあるべきであることである。図19に図示されるように、エンドースメントが影響されないようなやり方で1つまたは複数のピア・ノードを停止することができる(例えば、少なくとも一時的にサービスから除去される)。hyperledger fabricでは、SmartContractはChaincodeと称される場合があることに留意されたい。
さらには、4つのKafkaノード、すなわちKafkaノードK 1706、KafkaノードL 1706、KafkaノードM 1706、およびKafkaノードN 1706がある。Kafkaノードの場合、ポリシを定義することができる。さらには、Kafkaノード(K)について、ここでKは4である。Minimum insync replicas、Mは2である場合がある。加えて、default.replication.factorについて、Nは3である場合がある。この例では、MはNより少ない可能性があり、NはKより少ない可能性があるというポリシがあり得る(M<N<K)。このポリシは、合意メカニズムにおけるKafkaノードの展開に基づいて決定することができる。この例では、Mは2であり、Nは3である。いくつかの実装形態では、MおよびNが異なる値であり得る可能性があるより大きなKがある可能性がある。3つより多いタイプのノードがある場合があるが、簡略化の目的のために3つのみを図示して説明していることに留意されたい。
図19は、本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的な、図18のエンドースメント・ポリシの表現1800を図示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
この例では、第1の選択ノードB(例えば、エンドースメント・ノードB 1704)が停止される。ノードBが停止されたとしても、P1、P2、およびP3、それぞれのノードのあるインスタンスはダウンし、したがって、1つのノードはP1を実施するために利用可能ではない。これは、P1ポリシをサービスすることができる3つの他のノード、エンドースメント・ノードA 1704、エンドースメント・ノードD 1704、およびエンドースメント・ノードE 1704があるため、許容可能である。したがって、取引が3つのノードからの応答を必要とした場合、ノードBが停止されたとしても応答を与えることができる。
2つの応答が返されるべきである場合、エンドースメント・ノードD 1704およびエンドースメント・ノードE 1704がaliveであるため、ポリシP2についても同様の状況が発生する。加えて、ポリシP3について、エンドースメント・ノードC 1704がaliveであるため、応答をエンドースメント・ノードC 1704から受信することができる。
例によって図示されるように、エンドースメント・ピア・ロール1802用に4つの動作スロットがある。第1のスロット1804がBとともに図示されているが、Bが第1のスロット1804内にある必要はない。第2のスロット1806はノードCおよびノードE用であり、ノードCが停止されたとしてもP3がなおaliveであるため、これらを停止することができるが、なぜなら、その時点でノードBにはパッチが適用され再起動され、そのようにノードBがやはりaliveであるためである。さらには、P2がダウンしたとしても、Bが利用可能であるため、ノードEは停止することができる。第3のスロット1808は、ノードA用であり、第4のスロット1810はノードD用である。したがって、ポリシP1にサービスすることができるノードA、ノードB、およびノードDがある。ポリシP2にさらにサービスすることができるノードDおよびノードBがさらにある。ノードAおよびノードDは任意の順序で停止することができることに留意されたい。
換言すると、第1のロールについて、要求事項は4つの異なるスロット、第1のスロット1804、第2のスロット1806、第3のスロット1808、および第4のスロット1810に細分化されている。したがって、いくつのスロットが必要とされるかに関して判断を行うことができ、これは様々なタイプのノードについて独立的に実施することができる。この例では、図19で図示されるようにエンドースメント・ピア・ロール用に4つの動作スロットが決定されており、やはりこれはこの例における最大数である。
図19は、マルチチャネルを図示しており、単一のチャネル(ノードにインストールされたチェーンコード)内に複数のエンドースメント・ポリシがあることに留意されたい。さらに他のロールは、orderer、Kafka、zookeeper、CouchDB、ChainCodeなどを含むことができるが、それらに限定されない。
図20は、本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的な、図18のordererノード・ポリシの表現1900を図示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
ordererノードについて、f個の故障に耐えるために、Nは2f+1である。5つのノードがあり、f=2ノードまで同時に停止することができる。5つのzookeeperノードがある編成は、1つのquorumを形成するために3つ必要である。したがって、5つの編成により、2つのピアが失敗するが、なおquorumを維持することができる。図20の例は、3つのスロットを利用しており、zookeeperロール1902用の動作スロットによって図示されている。まず、ノードFおよびGを停止することができ、次いでノードHおよびIを停止することができ、次いでノードJを停止することができる。ノードJは最後に停止されるが、これはノードJがリーダだからである。
図21は、本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的な、図18のKafkaノード・ポリシの表現2000を図示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
Kafkaノードは図19および図20で図示される他のノードと同じように動作する。Kafkaについては、一度に1つのノードだけ停止することができ、それによってチャネル作成が影響を受けない。Kafkaロール2002用の動作スロットは特定の順序、ノードK、ノードL、ノードM、そしてノードNで図示しているが、ノードは任意の順序で停止することができる。
図22は、本明細書において説明される1つまたは複数の実施形態による、例示の、非限定な、マージされた複数のロールの表現2100を図示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。
バランスのとれた負荷を維持するために、複数のロールをマージすることができる。最後の動作スロットは、サービス・マネジメント動作がどのように実施され得るかを図示している。第1のスロット2102では、ノードB、ノードF、ノードJ、およびノードKが停止される。第2のスロット2104では、ノードC、ノードE、およびノードLが停止される。第3のスロット2106では、ノードA、ノードH、ノードI、およびノードMが停止される。第4のスロット2108では、ノードD、ノードJ、およびノードNが停止される。
いくつかの実装形態によると、最小数のノードがある可能性があり、したがって、どのノードも停止されない場合がある。この状況では、規定されたロール用に余分な一時的なノードを追加することができる。次いで、すべてのノードにパッチが適用されるまで、一度に1つのノードを停止することができる。代替的には、クラスタ内のノードすべてを置き換える全く新しいノードを開始させることができる(例えば、古いノードすべてを破壊するだけ)。
図23は、本明細書において説明される1つまたは複数の実施形態による、例示の、非限定的なブロックチェーン・ネットワークのサービス・マネージャ・プログラム2200を図示している。内部コンポーネント2202は、ブロックチェーン・ネットワーク・サービス・マネージャ(BNSM)プログラム2204、および1つまたは複数のオペレーティング・システム2206を含むことができ、これらは1つまたは複数の有形ストレージ・デバイス2208に少なくとも部分的に含まれ得る。内部コンポーネントはさらに1つまたは複数のプロセッサ2210、1つまたは複数のランダム・アクセス・メモリ(RAM)2212、および1つまたは複数の読取り専用メモリ(ROM)2214を含むことができ、これらはバス2216を介して動作可能に連結することができる。さらには、ネットワーク・アダプタまたはインターフェース2218を、バス2216に動作可能に連結することができる。読取り/書込みドライブまたはインターフェース2220を、バス2216および1つまたは複数のポータブル有形ストレージ・デバイス2222に動作可能に連結することができ、これらは外部コンポーネントのセット2224に含めることができる。さらには、1つまたは複数のデバイス・ドライバ2226を、バス2216に接続することができ、また外部コンポーネントのセット2224のうちの1つまたは複数のコンポーネントとインターフェースすることができる。例えば、1つまたは複数のデバイス・ドライバ2226は、コンピューティング・デバイス2228、ならびにキーボード2230およびマウス2232として図示される1つまたは複数の入力デバイスとインターフェースすることができる。
説明の簡略化のため、コンピュータ実装方法は、一連の作用として描写され、説明される。主題の革新は図示される作用または作用の順序あるいはその両方によって限定されず、例えば、作用は様々な順序でまたは同時にあるいはその両方で、ならびに本明細書において提示および説明されていない他の作用とともに、発生することができることを理解および了解されたい。さらには、すべての図示される作用が、開示される主題にしたがってコンピュータ実装方法を実装するために必要とされるわけではない。加えて、当業者であれば理解および了解することであるが、コンピュータ実装方法は代替的に、状態図または事象を介して一連の相互に関連付けられる状態として表現することができる。追加的に、本明細書の以降および本明細書全体にわたって開示されるコンピュータ実装方法は、そのようなコンピュータ実装方法を、コンピュータに輸送および移動することを容易にするために製造物品に記憶できることをさらに了解すべきである。本本明細書において使用する場合、製造物品という用語は、あらゆるコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータ・プログラムを包含することが意図されている。
開示される主題の様々な態様についてのコンテキストを与えるために、図24ならびに以下の議論は、開示される主題の様々な態様が実装され得る適切な環境の一般的な説明を与えるよう意図されている。図24は、本明細書において説明される1つまたは複数の実施形態が促進され得る、例示の、非限定的な動作環境のブロック図を示している。本明細書において説明される他の実施形態において採用される類似の要素の繰り返しの説明は簡潔のために省略する。図24を参照すると、本開示の様々な態様を実装するための適切な動作環境2300はまたコンピュータ2312を含むことができる。コンピュータ2312はまた処理ユニット2314、システム・メモリ2316、およびシステム・バス2318を含むことができる。システム・バス2318は、システム・メモリ2316を含むがそれに限定されないシステム・コンポーネントを処理ユニット2314に結合する。処理ユニット2314は様々な利用可能なプロセッサのうちの任意のものであることができる。デュアル・マイクロプロセッサおよび他のマルチプロセッサ・アーキテクチャが、やはり処理ユニット2314として採用され得る。システム・バス2318は、メモリ・バスもしくはメモリ・コントローラ、周辺バスもしくは外部バスを含むいくつかのタイプのバス構造、またはインダストリアル・スタンダード・アーキテクチャ(ISA)、マイクロチャネル・アーキテクチャ(MSA)、拡張ISA(EISA)、Intelligent Drive Electronics(IDE)、VESAローカル・バス(VLB)、Peripheral Component Interconnect(PCI)、カード・バス、ユニバーサル・シリアル・バス(USB)、Advanced Graphics Port(AGP)、ファイヤワイヤ(IEEE 1394)、およびSmall Computer Systems Interface(SCSI)を含むがそれらに限定されないあらゆる多様な利用可能なバス・アーキテクチャを使用するローカル・バス、あるいはその組合せのうちの任意のものであることができる。システム・メモリ2316はまた揮発性メモリ2320および不揮発性メモリ2322を含むことができる。スタートアップの間など、コンピュータ2312内の要素間で情報を伝送するための基本的なルーチンを含んでいるBasic Input/Output System(BIOS)は、不揮発性メモリ2322に記憶される。例示として、限定ではなく、不揮発性メモリ2322は読取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(例えば、強誘電RAM(FeRAM))を含むことができる。揮発性メモリ2320はまた外部キャッシュ・メモリとして作用するランダム・アクセス・メモリ(RAM)を含むことができる。例示として、限定ではなく、RAMは静的RAM(SRAM)、動的RAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、エンハンストSDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、direct Rambus RAM(DRRAM)、direct Rambus dynamic RAM(DRDRAM)、およびRambus dynamic RAMなどの多くの形態で利用可能である。
コンピュータ2312はまたリムーバブル/非リムーバブルの、揮発性/不揮発性のコンピュータ記憶媒体を含むことができる。例えば、図24はディスク・ストレージ2324を図示している。ディスク・ストレージ2324は、磁気ディスク・ドライブ、フロッピー(R)・ディスク・ドライブ、テープ・ドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックのようなデバイスも含むことができるがそれに限定されない。ディスク・ストレージ2324はまた記憶媒体を別個に、またはコンパクト・ディスクROMデバイス(CD−ROM)、CD書込み可能ドライブ(CD−Rドライブ)、CD書換え可能ドライブ(CD−RWドライブ)もしくはデジタル多用途ディスクROMドライブ(DVD−ROM)などの光学ディスク・ドライブを含むがそれに限定されない他の記憶媒体と組み合わせて含むことができる。システム・バス2318へのディスク・ストレージ2324の接続を容易にするために、典型的にはインターフェース2326などのリムーバブルまたは非リムーバブルのインターフェースが使用される。図24はまたユーザと適切な動作環境2300内で説明される基本的なコンピュータ・リソースとの間で中間的なものとして機能するソフトウェアを描写している。そのようなソフトウェアはまた、例えばオペレーティング・システム2328を含むことができる。オペレーティング・システム2328は、ディスク・ストレージ2324に記憶することができ、コンピュータ2312のリソースを制御して割り当てるよう作用する。システム・アプリケーション2330は、例えばシステム・メモリ2316またはディスク・ストレージ2324のいずれかに記憶されるプログラム・モジュール2332およびプログラム・データ2334を通じてオペレーティング・システム2328によるリソースの管理を活用する。本開示は様々なオペレーティング・システムまたはオペレーティング・システムの組合せにより実装することができることを了解されたい。ユーザはコマンドまたは情報を、入力デバイス2336を通じてコンピュータ2312に入力する。入力デバイス2336は、マウスなどのポインティング・デバイス、トラックボール、スタイラス、タッチ・パッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、TVチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含むがそれらに限定しない。これらのおよび他の入力デバイスはインターフェース・ポート2338を介してシステム・バス2318を通じて処理ユニット2314に接続する。インターフェース・ポート2338は例えばシリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)を含む。出力デバイス2340は入力デバイス2336として同一のタイプのポートのうちのいくつかを使用する。したがって、例えばUSBポートはコンピュータ2312に入力を与えるため、およびコンピュータ2312から出力デバイス2340に情報を出力するために使用することができる。出力アダプタ2342は、他の出力デバイス2340の中でも特別なアダプタを必要とする、モニタ、スピーカ、およびプリンタなどのいくつかの出力デバイス2340があることを図示するために与えられる。出力アダプタ2342は、例示として、限定ではなく、出力デバイス2340とシステム・バス2318との間の接続の方法を提供するビデオおよびサウンド・カードを含む。他のデバイスまたはデバイスのシステムあるいはその両方は、リモート・コンピュータ2344などの入力機能および出力機能の両方を提供することに留意すべきである。
コンピュータ2312は、リモート・コンピュータ2344などの1つまたは複数のリモート・コンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモート・コンピュータ2344はコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサ・ベースの電化製品、ピア・デバイス、もしくは他の共通のネットワーク・ノードなどであってもよく、また典型的にはコンピュータ2312に対して説明される要素の多くまたはすべてを含むこともできる。簡略化のため、メモリ・ストレージ・デバイス2346のみをリモート・コンピュータ2344とともに図示する。リモート・コンピュータ2344はネットワーク・インターフェース2348を通じてコンピュータ2312に論理的に接続しており、そして通信接続2350を介して物理的に接続されている。ネットワーク・インターフェース2348は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、セルラ・ネットワークなど有線または無線あるいはその両方の通信ネットワークを包含している。LAN技術はFiber Distributed Data Interface(FDDI)、Copper Distributed Data Interface(CDDI)、イーサネット(R)、トークン・リング、などを含む。WAN技術は、ポイントツーポイントリンク、サービス総合デジタル網(ISDN)などの回路交換ネットワークおよびそれらの変形例、パケット交換ネットワーク、ならびにデジタル加入者線(DSL)を含むがそれらに限定しない。通信接続2350とは、ネットワーク・インターフェース2348をシステム・バス2318に接続するために採用されるハードウェア/ソフトウェアを称する。通信接続2350は、明瞭に図示するためにコンピュータ2312の内部に示してあるが、コンピュータ2312の外部にまたあってもよい。ネットワーク・インターフェース2348への接続のためのハードウェア/ソフトウェアとしてはまた、例示的な目的のみであるが、一般電話機グレード・モデム、ケーブル・モデム、およびDSLモデム、ISDNアダプタ、ならびにイーサネット(R)・カードを含むモデムなどの内部および外部技術を含むことができる。
本発明は、統合のあらゆる可能な技術的詳細レベルにおいてシステム、方法、装置、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは前述のあらゆる適切な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、さらに以下を挙げることができる:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令を記録させるパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる適切な組合せ。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波路もしくは他の送信媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または電線を介して送信される電気的信号など、一過性の信号そのものであると解釈されてはならない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別のコンピューティング/処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを備えることができる。それぞれのコンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための設定データ、あるいはスモールトーク(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語、を含む1つまたは複数のプログラミング言語のあらゆる組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上かつ一部はリモート・コンピュータ上で、またはすべてリモート・コンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ(例えば、インターネット・サービス・プロバイダを使用するインターネットを介して)に対してなされてもよい。一部の実施形態において、例えば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個別化することができる。
本発明の態様は本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フローチャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実装するための方法を作成すべく、汎用目的コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶させるコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実装する命令を含む製造物品を備えるべく、コンピュータ可読記憶媒体に記憶され得、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示するものであってもよい。コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実装するように、コンピュータ実装処理を作るべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能な動作を実施させるものであってもよい。
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態にしたがって、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フローチャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって発生してもよい。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは関与する機能性によっては、時に逆の順で実行されてもよい。ブロック図またはフローチャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、指定される機能もしくは動作を実施する、または特殊目的ハードウェアおよびコンピュータ命令の組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
1つまたは複数のコンピュータで実行するコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的なコンテキストにおいて、主題を上で説明してきたが、当業者であれば本開示はまた他のプログラム・モジュールと組み合わせて実装され得ることを理解されよう。一般的に、プログラム・モジュールは、特定のタスクを実施するか、または特定の抽象的なデータ・タイプを実装するか、あるいはその両方のルーチン、プログラム、コンポーネント、データ構造などを含む。さらには、当業者であれば、本発明のコンピュータ実装方法は、単一プロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータ、ならびにコンピュータ、ハンドヘルド・コンピューティング・デバイス(例えば、PDA、電話機)、マイクロプロセッサ・ベースのまたはプログラマブルの、家庭用または業務用電子機器など、を含む他のコンピュータ・システム構成で実践できることを了解されよう。図示した態様はまた、タスクが通信ネットワークを通じてリンクされたリモート処理デバイスによって実施される分散コンピューティング環境において実践することができる。しかしながら、本開示の、すべてでないにしても一部の態様は、スタンドアロンのコンピュータで実践することができる。分散コンピューティング環境において、プログラム・モジュールはローカルおよびリモートの両方のメモリ・ストレージ・デバイスに配置することができる。
本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書で具陳される教示の実装形態はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ本発明の実施形態は、現在既知のまたは後に開発されるあらゆる他のタイプのコンピューティング環境と併せて実装することができる。
クラウド・コンピューティングは、最小限の管理努力で、またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、便利でオン・デマンドの構成可能なコンピューティング・リソースの共有されるプールへ(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)のネットワーク・アクセスを可能とするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。特徴は、以下の通りである:オン・デマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの人間対話を要求することなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピュータ機能を一方的にプロビジョニングすることができる。幅広いネットワーク・アクセス:機能はネットワーク上で利用可能であり、異質なシンまたはシックなクライアントのプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを通じてアクセスされる。リソース・プール:プロバイダのコンピューティング・リソースは、マルチテナントのモデルを使用する複数の消費者にサービス提供するためにプールされ、異なる物理的および仮想的なリソースが要求にしたがって動的に割り当ておよび再割り当てされる。消費者が提供されるリソースの正確な場所についての制御または情報を一般的に持たない点で、場所の独立性の意味があるが、高レベルの抽象化(例えば、国、州、またはデータ・センタ)において場所を特定できることもある。迅速な順応性:機能は迅速かつ伸縮自在にプロビジョニングすることができ、いくつかの場合において、自動的に、素早くスケール・アウトされ、迅速にリリースされて素早くスケール・インされる。消費者にとって、プロビジョニングのために利用可能な機能は、しばしば無制限なようで、いつでもいくらでも購入することができる。計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適当な抽象化のいくつかのレベルにおいて計測機能を活用することによりリソースの使用を自動的に制御し、最適化する。リソースの使用は監視され、制御され、かつ報告され得、利用されるサービスのプロバイダおよび消費者の両方にとって透明性を与えている。
サービス・モデルは以下の通りである:ソフトウェアを提供するサービス(Software as a Service(SaaS)):消費者に提供される機能は、クラウド・インフラストラクチャで実行するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらには個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理または制御することはなく、例外として限定されたユーザ固有アプリケーションの構成設定が可能である。プラットフォームを提供するサービス(Platform as a Service(PaaS)):消費者に提供される機能は、消費者作成のクラウド・インフラストラクチャ、またはプロバイダによって供給されるプログラミング言語およびツールを使用して作成された取得されたアプリケーションに展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャの管理または制御をしないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションについての制御を有する。インフラストラクチャを提供するサービス(Infrastructure as a Service(IaaS)):消費者に提供される機能は、消費者がオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することができる処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。消費者は、基礎となるクラウド・インフラストラクチャの管理または制御をしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションについての制御を有し、場合によっては選択されたネットワーク・コンポーネント(例えば、ホスト・ファイヤウォール)の限定された制御を有する。
展開モデルは以下の通りである:プライベート・クラウド:クラウド・インフラストラクチャはある組織のためだけに運用される。クラウド・インフラストラクチャはその組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される事案(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス懸案事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャはその組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界団体に対して利用可能とされ、クラウド・サービスを販売する組織によって所有される。ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意なエンティティのままである2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を組み合わせたものであるが、データおよびアプリケーションのポータビリティを可能にする標準化された、または専有的な技術(例えば、クラウド間でロード・バランシングを行うためのクラウド・バースト)によってともに結合される。
クラウド・コンピューティング環境は、ステートレスであること、低い結合性、モジュール性、および意味論的な相互運用性に集中するサービス指向である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
次に図25を参照すると、例示的なクラウド・コンピューティング環境2450が描写されている。示されるように、クラウド・コンピューティング環境2450は、例えば、携帯情報端末(PDA)または携帯電話2454A、デスクトップ・コンピュータ2454B、ラップトップ・コンピュータ2454C、または自動車コンピュータ・システム2454Nあるいはその組合せなどのクラウドの消費者によって使用されるローカルのコンピューティング・デバイスと通信することができる1つまたは複数のクラウド・コンピューティング・ノード2410を含む。ノード2410は互いに通信することができる。本明細書において上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウドまたはその組合せなどの1つまたは複数のネットワークにおいて、これらは物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境2450は、クラウドの消費者がローカルのコンピューティング・デバイスでリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして与えることができる。図25に示されるコンピューティング・デバイス2454A〜Nのタイプは、図示のみを意図されており、コンピューティング・ノード2410およびクラウド・コンピューティング環境2450は、あらゆるタイプのネットワーク上またはネットワーク・アドレス可能接続で(例えば、ウェブ・ブラウザを使用して)あるいはその両方であらゆるタイプのコンピュータ化されたデバイスと通信することができることが理解されよう。
次に図26を参照すると、クラウド・コンピューティング環境2450(図25)によって提供される機能的な抽象化レイヤのセットが示されている。図26に示されるコンポーネント、レイヤ、および機能は、図示のみを意図されており、本発明の実施形態はそれらに限定されないことがまず理解されるべきである。描写されるように、以下のレイヤおよび対応する機能が提供される:ハードウェアおよびソフトウェア・レイヤ2560は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例として、以下が挙げられる:メインフレーム2561、縮小命令セット・コンピュータ(Reduced Instruction Set Computer(RISC))アーキテクチャ・ベースのサーバ2562、サーバ2563、ブレード・サーバ2564、ストレージ・デバイス2565、ならびにネットワークおよびネットワーク・コンポーネント2566。いくつかの実施形態において、ソフトウェア・コンポーネントはネットワーク・アプリケーション・サーバ・ソフトウェア2567、およびデータベース・ソフトウェア2568を含む。
仮想化レイヤ2570は、仮想エンティティの以下の例を提供することができる抽象化レイヤを与える:仮想サーバ2571、仮想ストレージ2572、仮想プライベート・ネットワークを含む仮想ネットワーク2573、仮想アプリケーションおよびオペレーティング・システム2574、および仮想クライアント2575。
一例において、管理レイヤ2580は以下で説明される機能を提供することができる。リソース・プロビジョニング2581は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および課金2582は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を提供する。ユーザ・ポータル2583はクラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理2584は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行2585は、将来的な要求がSLAにしたがって予期されるクラウド・コンピューティング・リソースについての事前申し合わせ、およびクラウド・コンピューティング・リソースの調達を提供する。
ワークロード・レイヤ2590はクラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の例として以下が挙げられる:マッピングおよびナビゲーション2591、ソフトウェア開発およびライフサイクル管理2592、仮想授業教育配信2593、データ分析処理2594、トランザクション処理2595、およびサービス・マネジメント・エンジン2596。
本出願で使用される場合、用語「コンポーネント」、「システム」、「プラットフォーム」、「インターフェース」などは、コンピュータ関連のエンティティ、または1つもしくは複数の特別な機能性を有して動作可能なマシンに関連するエンティティを称することができるか、または含むことができるか、あるいはその両方である。本明細書において開示されるエンティティは、ハードウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであることができる。例えば、コンポーネントは、プロセッサで実行中のプロセス、プロセッサ、オブジェクト、実行可能なもの、実行のスレッド、プログラムまたはコンピュータあるいはその組合せであることができるが、それに限定しない。例示として、サーバ上で実行中のアプリケーションおよびサーバの両方はコンポーネントであることができる。1つまたは複数のコンポーネントはプロセスまたは実行のスレッドあるいはその両方の中に存在することができ、また、コンポーネントは1つのコンピュータに集中してもよく、または2つ以上のコンピュータ間で分散されてもよく、あるいはその両方であってもよい。別の例において、個々のコンポーネントは様々なデータ構造を記憶させる様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータ・パケットを有する信号にしたがうなど、ローカルまたはリモートのプロセスあるいはその両方のプロセスを介して通信することができる(例えば、1つのコンポーネントからのデータは、ローカル・システム内で、分散システム内で、または他のシステムとのインターネットなどのネットワーク全体で、あるいはその組合せで、信号を介して別のコンポーネントと相互作用する)。別の例として、コンポーネントは、電気的または電子的な回路によって動作させられる機械的な部品によって与えられる特別な機能性を有する装置であることができ、プロセッサによって実行されるソフトウェアまたはファームウェア・アプリケーションによって動作させられる。そのような場合、プロセッサは装置に対して内部または外部にあることができ、ソフトウェアまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。さらに別の例として、コンポーネントは機械的な部品無しに電子機器部品を通じて特別な機能性を提供する装置であることができ、ここで、電子機器部品は電子機器部品の機能性を少なくとも一部付与するソフトウェアまたはファームウェアを実行するためのプロセッサまたは他の方法を含むことができる。一態様において、コンポーネントは例えば、クラウド・コンピューティング・システム内で仮想マシンを介して電子機器部品をエミューレートすることができる。
加えて、用語「または(or)」は、排他的「or」ではなく包括的「or」を意味することを意図されている。すなわち、特に明記しない限り、またはコンテキストから離れない限り、「Xは、AまたはBを採用する」とは、自然包括的並べ替えのうちの任意のものを意味することを意図されている。すなわち、XがAを採用する、XがBを採用する、またはXがAおよびBを両方採用する場合、「XがAまたはBを採用する」が前述の事例のうちの任意のものの下で満たされる。さらには、本明細書および添付される図面内で使用される場合、冠詞「1つの(a)」および「1つの(an)」は、単数形を対象とすると特に明記しない限り、またはコンテキストから離れない限り、一般的に「1つまたは複数の」を意味するものと解釈されるべきである。本明細書において使用される場合、用語「例(example)」または「例示の(exemplary)」あるいはその両方は、例、事例、または図示として機能することを意味するよう利用される。疑念の回避のため、本明細書において開示される主題はそのような例によって限定されない。加えて、本明細書において「例」または「例示の」あるいはその両方として説明されるあらゆる態様または設計は、必ずしも他の態様もしくは設計より好ましい、または有利であるとして解釈される必要はなく、また当業者に既知の等価な例示の構造および技法を排除するつもりでもない。
本明細書で採用されるように、用語「プロセッサ」は実質的に、シングルコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を有するシングルプロセッサ、マルチコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を有するマルチコア・プロセッサ、ハードウェア・マルチスレッド技術を有するマルチコア・プロセッサ、並列プラットフォーム、および分散共有メモリを有する並列プラットフォーム、を備えるあらゆるコンピューティング処理ユニットまたはデバイスを称することができるが、限定はしない。追加的に、プロセッサとは、集積回路、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プログラマブル・ロジック・コントローラ(PLC)、複合プログラマブル・ロジック・デバイス(CPLD)、個別ゲートもしくはトランジスタ・ロジック、個別ハードウェア・コンポーネント、または本明細書において説明される機能を実施するために設計されるそれらのあらゆる組合せを称することができる。さらには、プロセッサは空間使用を最適化するためまたはユーザ機器のパフォーマンスを向上させるために、分子および量子ドット・ベースのトランジスタ、スイッチ、ならびにゲートなどのナノスケールのアーキテクチャを活用することができるが、限定はしない。プロセッサはまたコンピューティング処理ユニットの組合せとして実装され得る。本開示において、「記憶する」、「ストレージ」、「データ記憶」、「データ・ストレージ」、「データベース」ならびにコンポーネントの動作および機能性に関連する実質的にあらゆる他の情報記憶コンポーネントなどの用語は、「メモリ」内に具体化されるエンティティ「メモリ・コンポーネント」またはメモリを含むコンポーネントを称するために利用される。本明細書において説明されるメモリまたはメモリ・コンポーネントあるいはその両方は揮発性メモリまたは不揮発性メモリのいずれかであることができるか、または揮発性メモリおよび不揮発性メモリの両方を含むことができることを了解されたい。例示として、限定ではなく、不揮発性メモリは読取り専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能ROM(EEPROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(例えば、強誘電RAM(FeRAM))を含むことができる。揮発性メモリは例えば外部キャッシュ・メモリとして動作できるRAMを含むことができる。例示として、限定ではなく、RAMはシンクロナスRAM(SRAM)、動的RAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブル・データ・レートSDRAM(DDR SDRAM)、エンハンストSDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、direct Rambus RAM(DRRAM)、direct Rambus dynamic RAM(DRDRAM)、およびRambus dynamic RAM(RDRAM)などの多くの形態で利用可能である。追加的に、本明細書におけるシステムまたはコンピュータ実装方法の開示されるメモリ・コンポーネントは、これらのおよびあらゆる他の適切なタイプのメモリを含むことを意図されているが、それらを含むように限定されていない。
上で説明してきたことは、システムおよびコンピュータ実装方法の単なる例を含む。もちろん、本開示を説明することを目的として、コンポーネントまたはコンピュータ実装方法のすべての考えられる組合せを説明することは不可能だが、当業者であれば本開示の多くのさらなる組合せおよび並べ替えが可能であることを理解し得る。さらには、発明を実施するための形態、特許請求の範囲、付録および図面において用語「含む(includes)」、「有する(has)」、「所有する(possesses)」などが使用される範囲では、そのような用語は、請求項の移行句として採用される場合に「を備える(comprising)」が解釈される際の用語「を備える(comprising)」と類似するやり方で、包括的であることを意図されている。例示を目的として様々な実施形態の説明を提示してきたが、網羅的であること、または開示された実施形態に限定することは意図されていない。説明された実施形態の範囲および思想から逸脱することなく、多くの修正形態および変形形態が当業者にとって明らかとなろう。本明細書において使用される用語法は、実施形態の原理、実践的な用途もしくは市場で見られる技術に対する技術的な改善を最良に説明するため、または当業者の他の者が本明細書において開示される実施形態を理解できるように選ばれたものである。

Claims (16)

  1. コンピュータ実装方法であって、
    プロセッサに動作可能に連結されたシステムにより、およびブロックチェーン・ネットワーク内で、第1のノード・タイプのノードの第1のグループを動作スロットの第1のセットに、また、前記第1のノード・タイプとは異なる第2のノード・タイプのノードの第2のグループを動作スロットの第2のセットに割り振ることと、
    前記システムにより、前記動作スロットの第2のセットに割り振られた前記ノードの第2のグループを、前記動作スロットの第1のセット内の前記ノードの第1のグループと集約することであって、前記動作スロットの第1のセットのうちの1つまたは複数が、前記ノードの第1のグループおよび前記ノードの第2のグループ両方に対応する複数の割り振られたノードを備える、前記集約することと、
    前記システムにより、前記ノードの第1のグループと前記動作スロットの第1のセット内で集約される前記ノードの第2のグループとを前記集約することに基づいてサービス・マネジメント動作を実行することであって、合意アルゴリズムは、前記サービス・マネジメント動作を前記実行することの間に満たされる、前記実行することと
    を含む、コンピュータ実装方法。
  2. 前記ノードの第1のグループを前記割り振ることが、前記ノードの第2のグループを前記割り振ることとは独立して実施される、請求項1に記載のコンピュータ実装方法。
  3. 前記ブロックチェーン・ネットワーク内で、前記ノードの第1のグループがピア・ノードであり、前記ノードの第2のグループがordererノードである、請求項1に記載のコンピュータ実装方法。
  4. 前記第1のノード・タイプが前記ブロックチェーン・ネットワークに存在する第1の機能性であり、前記第2のノード・タイプが前記ブロックチェーン・ネットワークに存在する第2の機能性であり、前記第1の機能性が前記第2の機能性とは異なっている、請求項1に記載のコンピュータ実装方法。
  5. 前記システムにより、前記ブロックチェーン・ネットワーク内の、前記ノードの第1のグループに関連付けられるエンドースメント・ポリシ、および前記ノードの第2のグループに関連付けられる前記合意アルゴリズムに基づいて前記サービス・マネジメント動作を実行すること
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  6. 前記システムにより、取引にデジタル署名を適用することに基づいて前記取引を承認するために必要とされる前記ノードの第2のグループの最小数を決定すること
    をさらに含む、請求項5に記載のコンピュータ実装方法。
  7. 前記合意アルゴリズムが、in−serviceである前記ノードの第1のグループおよび前記ノードの第2のグループの最小数を維持することにより、ブロックチェーンのそれぞれのブロック内の取引のセットについて、正しい順序付けおよび検証の両方を提供する、請求項1に記載のコンピュータ実装方法。
  8. 前記ノードの第2のグループが承認を行うエンティティであり、前記コンピュータ実装方法が、
    前記システムにより、前記ブロックチェーン・ネットワークにサブミットされる取引を受信することと、
    前記システムにより、前記ノードの第2のグループのうちの2つ以上のノードが前記取引を承認したことを判断することと,
    前記システムにより、前記サービス・マネジメント動作を前記実行することの間に前記取引を完了することと
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  9. 前記ノードの第2のグループを前記集約することが、前記システムにより、前記サービス・マネジメント動作を前記実行することの間、前記ノードの第1のグループおよび前記ノードの第2のグループを更新するために実施されるステップ数を最小にすることを含む、請求項1に記載のコンピュータ実装方法。
  10. 請求項1ないし9のいずれかの請求項に記載の方法のすべてのステップを遂行するように構成される手段を含む、システム。
  11. コンピュータ・プログラムがコンピュータ・システム上で実行される時、請求項1ないし9のいずれかの請求項に記載の方法のすべてのステップを遂行するための命令を含む、コンピュータ・プログラム。
  12. ブロックチェーン・ネットワークであって、
    前記ブロックチェーン・ネットワークにおいて第1の機能性を実行するノードの第1のセットと、
    前記ブロックチェーン・ネットワークにおいて第2の機能性を実行するノードの第2のセットであって、前記第1の機能性は前記第2の機能性とは異なっている、前記ノードの第2のセットと、
    コンピュータ実行可能コンポーネントを記憶するメモリと、前記メモリに記憶される前記コンピュータ実行可能コンポーネントを実行するプロセッサとを備えるサービス・マネジメント・エンジンであって、前記コンピュータ実行可能コンポーネントが、
    前記ノードの第1のセットが前記第1の機能性を実行し、前記ノードの第2のセットが前記第2の機能性を実行することを判断するカテゴリ化コンポーネントと、
    前記ノードの第1のセットについてサービス・マネジメント動作を実施するために実行されるステップの第1の数量、および前記ノードの第2のセットについて前記サービス・マネジメント動作を実施するために実行されるステップの第2の数量を決定する規則コンポーネントと、
    前記ステップの第1の数量と前記ステップの第2の数量との集約に基づいて前記サービス・マネジメント動作を実行する実装コンポーネントであって、前記集約は、前記サービス・マネジメント動作の実行についてステップの最小数を規定する、前記実装コンポーネントと
    を備える、前記サービス・マネジメント・エンジンと
    を備える、ブロックチェーン・ネットワーク。
  13. 前記規則コンポーネントが、前記ノードの第1のセット内のノードの数量が、前記サービス・マネジメント動作について指定されるノードの規定された数量未満であると判断し、前記コンピュータ実行可能コンポーネントが、
    1つまたは複数のノードを前記ノードの第1のセットに追加する挿入コンポーネントであって、前記挿入コンポーネントが前記ノードの第1のセット内のノードの数量と前記ノードの規定された数量との差異に基づいて、追加するノードの数量を決定する、前記挿入コンポーネント
    をさらに備える、請求項12に記載のブロックチェーン・ネットワーク。
  14. 前記規則コンポーネントが、前記ノードの第1のセット内のノードの数量が、前記サービス・マネジメント動作について指定されるノードの規定された数量より多いと判断し、前記実装コンポーネントが、前記ブロックチェーン・ネットワークにおける処理効率を損なうことなく前記ノードの第1のセットに対して前記サービス・マネジメント動作を実行する、請求項12に記載のブロックチェーン・ネットワーク。
  15. コンピュータ実装方法であって、
    プロセッサに動作可能に連結されたシステムにより、ブロックチェーン・ネットワーク内のノードの第1のセットが第1の機能性を実行すること、および前記ブロックチェーン・ネットワーク内のノードの第2のセットが前記第1の機能性とは異なる第2の機能性を実行すること、を判断することと、
    前記システムにより、前記ノードの第1のセットについてサービス・マネジメント動作を実施するために実行されるステップの第1の数量、および前記ノードの第2のセットについて前記サービス・マネジメント動作を実施するために実行されるステップの第2の数量を決定することと、
    前記システムにより、前記ステップの第1の数量と前記ステップの第2の数量との集約に基づいて前記サービス・マネジメント動作を実行することであって、前記集約が、前記サービス・マネジメント動作の実行についてステップの最小数を規定する、前記実行することと
    を含む、コンピュータ実装方法。
  16. 前記システムにより、前記ノードの第1のセット内のノードの数量が前記サービス・マネジメント動作について指定されるノードの規定された数量を満たすかどうかを判断することと、
    前記システムにより、前記ノードの数量が前記ノードの規定された数量より少ないという前記判断に基づいて、1つまたは複数のノードを前記ノードの第1のセットに追加することであって、前記追加するノードの数量が前記ノードの第1のセット内の前記ノードの数量と前記ノードの規定された数量との差異に基づいて決定される、前記追加することと
    をさらに含む、請求項15に記載のコンピュータ実装方法。
JP2020541675A 2018-02-26 2019-01-31 ブロックチェーン・ネットワークのインフラストラクチャのサービス・マネジメントのコンピュータ実装方法、システム、コンピュータ・プログラム、およびブロックチェーン・ネットワーク Active JP7462561B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/905,015 US10873625B2 (en) 2018-02-26 2018-02-26 Service management for the infrastructure of blockchain networks
US15/905,015 2018-02-26
PCT/EP2019/052371 WO2019162056A1 (en) 2018-02-26 2019-01-31 Service management for the infrastructure of blockchain networks

Publications (2)

Publication Number Publication Date
JP2021515293A true JP2021515293A (ja) 2021-06-17
JP7462561B2 JP7462561B2 (ja) 2024-04-05

Family

ID=65278351

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020541675A Active JP7462561B2 (ja) 2018-02-26 2019-01-31 ブロックチェーン・ネットワークのインフラストラクチャのサービス・マネジメントのコンピュータ実装方法、システム、コンピュータ・プログラム、およびブロックチェーン・ネットワーク

Country Status (4)

Country Link
US (1) US10873625B2 (ja)
JP (1) JP7462561B2 (ja)
CN (1) CN111742295B (ja)
WO (1) WO2019162056A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936721B1 (en) * 2018-03-01 2021-03-02 Amdocs Development Limited System, method, and computer program for splitting and distributing a privileged software component into dependent components in order to deliver better security
ES2869256T3 (es) * 2017-10-23 2021-10-25 Siemens Ag Procedimiento y sistema de control para el control y/o la supervisión de dispositivos
US10833865B2 (en) * 2018-04-30 2020-11-10 Dell Products L.P. Blockchain-based method and system for immutable resource allocation in a cloud computing environment
US11868321B2 (en) * 2018-06-12 2024-01-09 Salesforce, Inc. Cryptographically secure multi-tenant data exchange platform
US11809409B2 (en) 2018-09-19 2023-11-07 Salesforce, Inc. Multi-tenant distributed ledger interfaces
US11157484B2 (en) 2018-09-19 2021-10-26 Salesforce.Com, Inc. Advanced smart contract with decentralized ledger in a multi-tenant environment
US11762815B2 (en) * 2018-11-23 2023-09-19 Amazon Technologies, Inc. Multi-framework managed blockchain service
US11411921B2 (en) 2018-11-23 2022-08-09 Amazon Technologies, Inc. Enabling access across private networks for a managed blockchain service
US11169836B2 (en) * 2019-01-23 2021-11-09 International Business Machines Corporation Hardware placement and maintenance scheduling in high availability systems
US11616652B2 (en) * 2019-03-15 2023-03-28 Hcl Technologies Limited Data security using a blockchain ledger
CN111108478B (zh) * 2019-07-11 2023-11-21 创新先进技术有限公司 一种用于通信和共享区块链数据的方法、系统、和装置
WO2019179540A2 (en) 2019-07-11 2019-09-26 Alibaba Group Holding Limited Shared blockchain data storage
EP3669281B1 (en) 2019-07-11 2024-04-03 Advanced New Technologies Co., Ltd. Shared blockchain data storage
US11531959B2 (en) 2019-08-08 2022-12-20 Toyota Motor North America, Inc. Processing of requests
EP3792849A1 (en) * 2019-09-10 2021-03-17 Hitachi, Ltd. Apparatus and method for generating evaluation data of facilities and projects
CN110955721B (zh) * 2019-10-23 2022-12-06 金蝶软件(中国)有限公司 区块链节点状态维护方法、装置、计算机设备和存储介质
US11379464B2 (en) 2019-12-12 2022-07-05 Micro Focus Llc Asymmetric quorum protocol based distributed transaction database consistency control
US11556517B2 (en) * 2020-05-17 2023-01-17 International Business Machines Corporation Blockchain maintenance
CN111640020B (zh) * 2020-05-22 2023-09-19 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
CN111401903B (zh) * 2020-06-03 2020-09-11 腾讯科技(深圳)有限公司 区块链消息处理方法、装置、计算机以及可读存储介质
CN111724153B (zh) * 2020-06-08 2023-02-03 交通银行股份有限公司 一种基于区块链的预付式消费监管系统、方法及存储介质
EP3957025B1 (en) 2020-07-03 2022-12-28 Alipay (Hangzhou) Information Technology Co., Ltd. System and method for providing privacy and security protection in blockchain-based private transactions
CN113206881B (zh) * 2020-12-15 2024-05-28 恬家(上海)信息科技有限公司 智能合约执行方法及区块链系统
CN113179324B (zh) * 2021-04-29 2024-03-26 中国人民银行数字货币研究所 一种区块链节点及其执行的业务处理方法
CN113872816B (zh) * 2021-09-30 2023-08-25 北京布洛克快链科技有限公司 一种用于工业互联网的设备管理系统
US11881980B2 (en) 2022-04-22 2024-01-23 Red Hat, Inc. Byzantine fault prevention in mesh networks

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060080656A1 (en) 2004-10-12 2006-04-13 Microsoft Corporation Methods and instructions for patch management
US20120311157A1 (en) 2011-06-03 2012-12-06 Erickson Philip J Integrated information technology service management for cloud resources
US8793681B2 (en) 2011-06-24 2014-07-29 International Business Machines Corporation Determining best practices for applying computer software patches
US10613914B2 (en) 2013-04-01 2020-04-07 Oracle International Corporation Orchestration service for a distributed computing system
US9973375B2 (en) 2013-04-22 2018-05-15 Cisco Technology, Inc. App store portal providing point-and-click deployment of third-party virtualized network functions
US20150170112A1 (en) * 2013-10-04 2015-06-18 Erly Dalvo DeCastro Systems and methods for providing multi-currency platforms comprising means for exchanging and interconverting tangible and virtual currencies in various transactions, banking operations, and wealth management scenarios
US9723064B1 (en) * 2014-09-02 2017-08-01 Amazon Technologies, Inc. Hybrid quorum policies for durable consensus in distributed systems
US9967334B2 (en) * 2015-03-02 2018-05-08 Dell Products Lp Computing device configuration and management using a secure decentralized transaction ledger
AU2016242888A1 (en) * 2015-03-31 2017-11-16 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US20160371355A1 (en) * 2015-06-19 2016-12-22 Nuodb, Inc. Techniques for resource description framework modeling within distributed database systems
US20170031676A1 (en) * 2015-07-27 2017-02-02 Deja Vu Security, Llc Blockchain computer data distribution
WO2017066431A1 (en) * 2015-10-13 2017-04-20 TransActive Grid Inc. Use of blockchain based distributed consensus control
US10713654B2 (en) 2016-01-21 2020-07-14 International Business Machines Corporation Enterprise blockchains and transactional systems
US10108812B2 (en) 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
US10762504B2 (en) * 2016-02-22 2020-09-01 Bank Of America Corporation System for external secure access to process data network
EP3424177B1 (en) * 2016-02-29 2021-10-13 SecureKey Technologies Inc. Systems and methods for distributed identity verification
US10608825B2 (en) * 2016-04-21 2020-03-31 Protoblock, Inc. Decentralized exchanges in a distributed autonomous platform
US10185550B2 (en) * 2016-09-28 2019-01-22 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
US20180158034A1 (en) * 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
US10698675B2 (en) * 2016-12-19 2020-06-30 International Business Machines Corporation Decentralized automated software updates via blockchain
CN107395659B (zh) * 2017-03-28 2021-08-24 创新先进技术有限公司 一种业务受理及共识的方法及装置
CN107360206B (zh) * 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及系统
CN107239940A (zh) * 2017-05-11 2017-10-10 北京博晨技术有限公司 基于区块链系统的网络交易方法及装置
US10554649B1 (en) * 2017-05-22 2020-02-04 State Farm Mutual Automobile Insurance Company Systems and methods for blockchain validation of user identity and authority
US10977227B2 (en) * 2017-06-06 2021-04-13 Sap Se Dynamic snapshot isolation protocol selection
US20190012662A1 (en) * 2017-07-07 2019-01-10 Symbiont.Io, Inc. Systems, methods, and devices for reducing and/or eliminating data leakage in electronic ledger technologies for trustless order matching
CN107423124A (zh) * 2017-07-27 2017-12-01 中链科技有限公司 一种用于对交易数据进行并行处理的方法
US10762079B2 (en) * 2017-09-29 2020-09-01 Oracle International Corporation System and method for managing a blockchain cloud service
US11177961B2 (en) * 2017-12-07 2021-11-16 Nec Corporation Method and system for securely sharing validation information using blockchain technology
US10775774B2 (en) * 2017-12-28 2020-09-15 Intel Corporation Systems, apparatus, and methods for robot swarm coordination
US11188897B2 (en) * 2018-02-13 2021-11-30 Bank Of America Corporation Multi-tiered digital wallet security

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Procedure for Upgrading from v1.0.x", GITHUB[オンライン], JPN7022004156, 26 January 2018 (2018-01-26), pages 全文, ISSN: 0005147887 *

Also Published As

Publication number Publication date
WO2019162056A1 (en) 2019-08-29
US10873625B2 (en) 2020-12-22
CN111742295B (zh) 2024-09-06
CN111742295A (zh) 2020-10-02
US20190268407A1 (en) 2019-08-29
JP7462561B2 (ja) 2024-04-05

Similar Documents

Publication Publication Date Title
JP7462561B2 (ja) ブロックチェーン・ネットワークのインフラストラクチャのサービス・マネジメントのコンピュータ実装方法、システム、コンピュータ・プログラム、およびブロックチェーン・ネットワーク
US10911219B2 (en) Hierarchical blockchain consensus optimization scheme
US20180276044A1 (en) Coordinated, topology-aware cpu-gpu-memory scheduling for containerized workloads
US20200089872A1 (en) Enclave pool shared key
WO2018208427A1 (en) Enclave pool management
US9535735B2 (en) Adaptive virtual machine request approver
US10620928B2 (en) Global cloud applications management
US20170279611A1 (en) Cryptographically assured zero-knowledge cloud services for elemental transactions
US11526404B2 (en) Exploiting object tags to produce a work order across backup engines for a backup job
US10341181B2 (en) Method and apparatus to allow dynamic changes of a replica network configuration in distributed systems
KR102206026B1 (ko) 블록체인 기반의 작업 요청 및 결과물의 거래 방법 및 시스템
US11487851B2 (en) Using blockchain for flexible application licensing
US11321787B2 (en) Automonous multi-cloud solution design and fulfillment via crowdsourcing
US12050690B2 (en) Run-time communications protocol parameter adjustment in containerized applications
US10924543B1 (en) Deployment strategy for maintaining integrity of replication groups
CN111095310A (zh) 实现动态和自动地更改用户简档以增强性能
US11645109B2 (en) Managing failures in edge computing environments
US11665067B2 (en) Managing reconfigurations of distributed computing systems
CN115705256A (zh) 就服务事务达成共识的请求促进
US20180278544A1 (en) Enabling a traditional language platform to participate in a java enterprise computing environment
US11487750B2 (en) Dynamically optimizing flows in a distributed transaction processing environment
CN116997895A (zh) 减少执行排序验证区块链模型中的事务中止
CN114270322A (zh) 数据中心网络中的数据重定位管理
Quintero et al. IBM Platform Computing Solutions Reference Architectures and Best Practices
US11483381B1 (en) Distributing cloud migration

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210324

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210623

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230116

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230810

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230816

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20230915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240326

R150 Certificate of patent or registration of utility model

Ref document number: 7462561

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150