JP2023506115A - 分散ネットワークの計算結果に対する読み出しアクセス - Google Patents
分散ネットワークの計算結果に対する読み出しアクセス Download PDFInfo
- Publication number
- JP2023506115A JP2023506115A JP2022522811A JP2022522811A JP2023506115A JP 2023506115 A JP2023506115 A JP 2023506115A JP 2022522811 A JP2022522811 A JP 2022522811A JP 2022522811 A JP2022522811 A JP 2022522811A JP 2023506115 A JP2023506115 A JP 2023506115A
- Authority
- JP
- Japan
- Prior art keywords
- execution
- nodes
- distributed network
- subset
- read
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 60
- 238000004590 computer program Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 74
- 238000011084 recovery Methods 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 20
- 230000035772 mutation Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 5
- 230000000737 periodic effect Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 abstract description 31
- 238000004891 communication Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 238000007726 management method Methods 0.000 description 13
- 230000006855 networking Effects 0.000 description 12
- 230000011664 signaling Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 230000006698 induction Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 101100290000 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MAC1 gene Proteins 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000446 fuel Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 101100497534 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CUB1 gene Proteins 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 101150069031 CSN2 gene Proteins 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
- H04L9/3255—Cryptographic 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 using group based signatures, e.g. ring or threshold signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
さらなる態様は、分散ネットワークのユーザに、分散ネットワークによって、特に分散ネットワークのノードによって計算された計算結果へのアクセスを提供するための対応する方法に関する。さらなる態様は、分散ネットワークのノード、対応するコンピュータプログラム製品、および非一時的な媒体上に符号化されたソフトウェアアーキテクチャに関する。
従って、より高機能な分散ネットワークが求められている。
それゆえ、実行メッセージの現在のセットの処理および実行は、実施形態によれば2段階のアプローチで実行される。
より詳しくは、最初のステップで、ノードのコンセンサスサブセットは、現在利用可能な実行メッセージの選択に関するコンセンサスを得るためにコンセンサスプロトコルを実行する。コンセンサスサブセットのノードの数は、特に、一方では効率性の面から、そして、他方ではセキュリティの面から、それぞれのネットワークの必要性に応じて選択することができる。そして、2番目のステップで、ノードの実行サブセットは、選択された実行メッセージの実行を決定論的な方法で行う。実行サブセットのノードの数は、また、それぞれのネットワークの必要性に応じて選択することができる。
このような実施形態により、高い機能性を備えたアクセスをユーザに提供することが可能となる。より詳しくは、ユーザはリードスナップショットについて計算を実行するよう要求することができる。これにより、ユーザに提供する前に、結果をソートするなどの操作を実行することができる。
計算ユニットのユニット状態とは逆に、実施形態によれば、リードスナップショットに対する計算が複製されることはない。むしろ、それらは、例えば、ユーザによる対応するリードクエリを受信したときに、実行サブセットの各ノードによって別個に独立して実行され得る。
最終的に、リードクエリの結果は、ユーザに返されてもよい。
リードクエリは、一般に、計算ユニットのユニット状態を永続的に変更しないクエリとして定義することができる。リードクエリは、メモリ、グローバル変数およびテーブルなどの計算ユニットのユーザ状態を一時的に変更することがあるが、リードクエリが完全に処理されると、そのような変更はすべて破棄される。
このような認証は、スナップショットに対するユーザの信頼と信用を高めることができる。より詳しくは、ユーザは、リードスナップショットの認証された部分を検証することができる。
一実施形態によれば、ネットワークは、ノードの実行サブセットの大多数により、リードスナップショットの1つ又は複数の部分に対する署名を生成することによって、および署名をユーザが利用できるようにすることによって、リードスナップショットの1つ又は複数の部分を認証するように更に構成される。
このような署名により、ユーザはスナップショットの認証された部分を検証することができる。
別の実施形態によれば、ノードの実行サブセットは、マルチ署名アルゴリズムを実行するように構成することができる。
このようなマルチ署名は、実行サブセットのノードがスナップショットに共同で署名することを可能にする電子署名である。このような共同署名は、通常、実行サブセットの全てのノードの個々の署名を集めたものよりも、よりコンパクトなものとなる。
実施形態によれば、リードスナップショットの1つ又は複数の認証された部分は、ユニット状態の変数である。
一実施形態によれば、ネットワークは、実行サブセットのノードによって、ユニット状態のリードスナップショットをキャッシュメモリに記録するように更に構成される。
このようなアプローチは、スピードと効率性の面で有利である。
このような回復スナップショットは、また、フルスナップショット(full snapshot)として示されることもある。回復スナップショットは、ノードの復元に必要な実行サブセットのノードの全ての状態を含むスナップショットとして定義することができる。これには、特に、メッセージングコンポーネントの全データおよび全ての入力ブロックを含むことができる。
一実施形態によれば、ネットワークは、少なくとも後続の回復スナップショットが作成されるまで、回復スナップショットを永続的に記憶するように構成される。
これにより、ネットワークノードとそれに対応する状態を常に回復することができる。
このような実施形態は、いくつかの利点を提供する。一方では、これによりネットワークの計算結果にタイムリーにアクセスする、つまり、第1のレートに相当する更新レートでアクセスすることが可能である。他方では、これにより実行サブセットのノードの完全な回復が常に可能であることが更に保証される。
実施形態によれば、実行サブセットの各ノードは、実行メッセージの選択を実行するように構成された実行コンポーネントおよび、コンセンサスコンポーネントから実行メッセージの選択を受信し、そして、実行メッセージの選択を実行コンポーネントに提供するように構成されたメッセージングコンポーネントを含む。さらに、各ノードは、リードスナップショットを管理および記憶するように構成された状態管理コンポーネント、ネットワークのユーザからのリードクエリを処理するように構成された状態リーダー(読み出し)コンポーネント、及び/又はネットワークのユーザからのミューテーションクエリを処理するように構成されたイングレスメッセージハンドラコンポーネントを含むことができる。
このようなコンポーネントにより、分散ネットワークの様々な機能の効率的な実装を容易にすることができる。
このような実行パラメータは、入力ブロックおよびその対応するメッセージの処理の効率性および/またはセキュリティを、さらに容易にし、かつ向上させることができる。
ランダムシードは、例えば、実行時の擬似的なランダム性を実現するために必要に応じて使用することができる。高さインデックスは、入力ブロックの順序どおりの処理(in-order processing)を容易にするための、例えば、入力ブロックの昇順のインデックスであってもよい。
実施形態によれば、ネットワークは、コンセンサスプロトコルとして、プルーフ・オブ・ステークコンセンサスプロトコルを実行するように構成される。
プルーフ・オブ・ステークコンセンサスプロトコルは、実行メッセージ(サブネット間メッセージおよびミューテーションクエリ)の選択および処理順序、特に更なる処理のために作成される次の入力ブロックに関してコンセンサスを得ることを目的としている。
いくつかの実施形態によれば、それぞれのサブネットの全てのノードは、コンセンサスプロトコルに参加することができ、そして、それゆえコンセンサスサブセットを形成することができる。他の実施形態によれば、コンセンサスプロトコルは、予め定義された選挙スキームに従ってサブネットの複数のノードから委員会のメンバーを選出し、そして、委員会の選出されたメンバーでコンセンサスプロトコルを実行する、ように構成される。
このような閾値リレー方式は、例えば「Timo Hanke, Mahnush Movahedi and Dominic Williams」らによる文書「DFINITY Technology Overview Series, Consensus System, Rev.1, https://dfinity.org/static/dfinity-consensus-0325c35128c72b42df7dd30c22c41208.pdf」に記載されている。
本発明の別の態様の一実施形態によれば、分散ネットワークを動作させるためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、その中に具体化されたプログラム命令を有するコンピュータ可読記憶媒体を含み、プログラム命令は、複数のノードの1つまたは複数に、本発明の方法の態様のステップを実行させるために、分散ネットワークの複数のノードの1つまたは複数によって実行可能である。
他の有利な実施形態は、以下の説明と同様に、従属請求項に記載される。
本発明は、明細書の以下の詳細な説明から、よりよく理解され、上記以外の目的も明らかとなるであろう。
説明では、添付の図面を参照する。
実施形態によれば、分散ネットワークは、分散された形に配置された複数のノードを含む。このような分散ネットワークコンピューティングでは、ソフトウェアおよびデータは複数のノードの全体にわたって分散される。ノードはコンピューティングリソースを確立し、分散ネットワークは特に分散コンピューティング技術を使用することができる。
実施形態によれば、分散ネットワークは、ブロックチェーンネットワークとして実施され得る。「ブロックチェーン」という用語は、電子的、コンピュータを使った、分散型台帳、の全ての形式を含むものである。いくつかの実施形態によれば、ブロックチェーンネットワークは、プルーフ・オブ・ワークブロックチェーンネットワークとして実施され得る。他の実施形態によれば、ブロックチェーンネットワークは、プルーフ・オブ・ステークブロックチェーンネットワークとして実施され得る。
分散ネットワーク100は、複数のノード10(ネットワークノード10またはコンピューティングノード10と示されることもある)を含む。複数のノード10の各々は、1つ以上の計算ユニットを実行するように構成される。実施形態によれば、計算ユニットは、ソフトウェアの一部、特に、それ自身のユニット状態を含む又はこれを有するソフトウェアの一部として理解されるべきである。
ネットワーク100の複数のノード10は、異なるサブセット及び/又はサブネットに割り当てられてもよい。このような割り当ては、時間の経過とともに変更され得る。
本実施形態によれば、ネットワーク100は、ノード10のコンセンサスサブセットSS1およびノード10の実行サブセットSS2を含む。
実行サブセットSS2の計算ユニットは、その後、先のコンセンサスステップで合意された処理順序で、実行メッセージの選択を個々に実行する。実行サブセットSS2の計算ユニットの各々は、決定論的な方法で実行を行い、それによって、実行サブセットSS2の対応する計算ユニットのユニット状態を変化させる。
実施形態によれば、ネットワークの各ノードは、他のノードのクロックとほぼ同期したローカルクロックを保持しているのが当然と考えられる。
分散ネットワーク300は、複数のノード10を含む。
本実施形態によれば、複数のノード10は、複数のサブネット11に亘って分散される。図1の例では、SNA、SNB、SNC、及びSNDと示される4つのサブネット11が設けられる。ネットワーク100は、それぞれのサブネット11内のサブネット内通信のための通信リンク12と、サブネット11の異なるサブネットの間のサブネット間通信のための通信リンク13とを含む。したがって、通信リンク12は、また、サブネット内またはピアツーピア(P2P)通信リンクと示されることもあり、そして、通信リンク13は、また、サブネット間またはサブネットツーサブネット(SN2SN)通信リンクと示されることもある。
本発明の実施形態によれば、サブネット11は、サブネット11のそれぞれを渡って(越えて)計算ユニットのセットを複製するように構成される。より詳しくは、サブネット11は、サブネット11のそれぞれを渡って計算ユニットのユニット状態を複製するように構成される。
プルーフ・オブ・ステーク(PoS)は、ブロックチェーンネットワークにおいて、どのノードがブロックチェーンの次のブロックの作成を認められるかについて分散型コンセンサスを得る方法を説明する。PoS方式では、加重ランダム選択を使用することができ、それにより、個々のノードの重みは、特にそれぞれのノードの資産(「ステーク」)に応じて決定され得る。
実施形態によれば、サブネットによって生成および署名された成果物を完全に信頼できるように、各サブネット内のノードの最大1/3(a third)は間違って動作すると仮定される。
図5は、図3のサブネット11のSNBで受信されるサブネット間メッセージ16の模式図である。
サブネットSNBは、サブネットSNAからサブネット間メッセージSNA-SNBを、サブネットSNCからサブネット間メッセージSNC-SNBを、および、サブネットSNDからサブネット間メッセージSND-SNBを受信する。これらのサブネット間メッセージのプールは、サブネットSNB上でローカルにコンセンサスプロトコルを実行するコンセンサスコンポーネント(CSNB)30によって処理される。したがって、コンセンサスコンポーネント30は、サブネットコンセンサスコンポーネントと示されることがある。
コンセンサスコンポーネント30は、予め定義されたコンセンサスアルゴリズムまたはメカニズムに従ってサブネット間メッセージから入力ブロックIBのキューを生成し、入力ブロックIBのキューを、メッセージングプロトコルを実行し、入力ブロックIBをさらに処理するように構成されるメッセージングコンポーネント(MSNB)31に提供する。
他の実施形態によれば、コンセンサスプロトコルは、予め定義された選挙スキームに従ってそれぞれのサブネット11の複数のノード10から委員会のメンバーを選出するように、そして、委員会の選出されたメンバーとのみコンセンサスプロトコルを実行するように、構成されてもよい。このようなアプローチは、ノードの数のより多いサブネット、例えば1000以上のノードを持つサブネットのために特に有効である。
図6中の実線の矢印は、ユニット間メッセージおよびイングレスメッセージを含む実行メッセージに関連するものである。イングレスメッセージは、特にユーザからのミューテーションクエリであってもよい。破線の矢印は、システム情報に関連するものである。
状態リーダーコンポーネント69によって受信されて処理されるリードクエリは、特に、非ミューテーションクエリとして実施され、すなわち、それらは、計算ユニットのユニット状態を永続的に変更しない。一方、イングレスメッセージハンドラコンポーネント67から受信され、コンセンサスコンポーネント63を通過するイングレスメッセージは、特に、ミューテーションクエリとして実施されてもよく、すなわち、それらは、ミューテーションクエリを実行しているそれぞれの計算ユニットのユニット状態を変更する。リードクエリは、コンセンサスコンポーネント63を通過する必要がないため、それらは、それぞれのサブネットの任意のノード上で非同期に実行することができ、それゆえ、より高速に実行することができる。
このような同一の複製は、実施形態に従って達成され、一方では、メッセージングコンポーネント61への入力のストリームが、それぞれのサブネットによって合意されること、そして、そのように、全てのノード、より詳しくは全ての信頼できるノードについて同一であること、を保証するコンセンサスコンポーネント63の働きによって達成される。他方では、これは、メッセージングコンポーネント61および実行コンポーネント62が、決定論的かつ複製された計算を実行するように構成されることによって達成される。
ほとんどのコンポーネントは、暗号化アルゴリズムを実行するために暗号コンポーネント68にアクセスし、構成情報を読み取るためにメインネットリーダー610にアクセスすることになる。
認証コンポーネント65aは、以下により詳しく説明するように、ユニット状態の特定の変数、特にユニット状態のスナップショットの特定の変数を認証するように更に構成されてもよい。
メッセージングプロトコルおよびメッセージングコンポーネント61は、コンセンサスコンポーネント63から受信した入力ブロック720によって開始される。
受信した入力ブロックを処理する前に、メッセージングコンポーネント61は、1つ又は複数の入力チェックを含む1つ又は複数の前処理ステップを実行することができる。入力チェックは、入力チェックコンポーネント740によって実行されてもよい。
一般に、メッセージングコンポーネント61は、イングレスメッセージ、シグナリングメッセージおよびサブネット間メッセージを適宜誘導プールコンポーネント731に入れることによって、入力ブロック720を前処理する。サブネットストリーム中のシグナリングメッセージは、パージ(消去)可能な出力キューのメッセージの確認として扱われる。
これらの前処理ステップに続いて、メッセージングコンポーネント61は、1実行サイクルの間に可能な限り多くの誘導プールを実行するために実行コンポーネント62(図6を参照)を呼び出し、指定実行時間およびランダムシードを追加の入力として提供する。実行サイクルに続いて、結果のメッセージの出力キューは、出力キューコンポーネント733に供給される。当初、出力キューコンポーネント733は、ユニット間およびユニット-ユーザ間の出力キューを含み、本実施例では、ユニット間出力キューB1-A1、B1-C2、B2-A2、及びB2-C3と、ユニット-ユーザ間出力キューB1-U1及びB2-U4とを含む。一例として、メッセージB1-A1は、サブネットSNBの計算ユニットB1からサブネットSNAの計算ユニットA1へのメッセージを示す。他の例として、メッセージB1-U1は、サブネットSNBの計算ユニットB1からユーザU1へのメッセージを示す。
メッセージングコンポーネント61では、システム状態の特定の部分を決定論的に変化させることが重要となる。各ラウンドにおいて、実行コンポーネント61は、それぞれの計算ユニットの状態を読み出して更新することにより誘導プールから特定のメッセージを実行し、そして、実行された計算ユニットの送信したい送信メッセージを返す。これらのメッセージは、当初、ネットワークの計算ユニット間のユニット間メッセージを含む出力キューコンポーネント733に入る。同じサブネットの計算ユニット間のサブネット内メッセージは、それぞれのサブネット内部でルーティングされて分配される一方、サブネット間メッセージは、サブネット-宛先によってソートされた出力ストリームにルーティングされる。
さらに、どのメッセージが処理されたかをシステムの残りの部分に知らせるために、実施形態に従って2つの状態が維持され得る。第1の状態は、サブネット間メッセージのために、そして、第2の状態は、イングレスメッセージのために維持され得る。
状態管理コンポーネント800は、ストレージコンポーネント810、認証コンポーネント820、および同期コンポーネント830を含む。ストレージコンポーネント810は、リーダーデータ811、すなわち、リードクエリのために利用可能であり、状態リーダーコンポーネント69がアクセスすることができるデータを記憶するように構成される。
より詳しくは、認証コンポーネント820は、1つ又は複数の部分、言い換えればユニット状態のサブセット、特に変数を認証するように構成される。認証は、特にメッセージングコンポーネント61によって、名目上ブロック処理境界で起動され得る。ユニット状態の1つ又は複数の部分のみ、特に、ユニット状態全体ではなく、1つ又は複数の認証された変数のみを認証することで、ノードの効率性および速度が向上する。これらの認証された部分または認証された変数については、単一のノードのみからそれらを読み出せば十分であるが、ユーザは、スナップショットの認証されていない部分の正当性に対する信頼性を高めるために、実行サブセットの更なるノードに追加のリードクエリを提供することができる。さらに、ユーザは、自分が興味のある計算ユニットの状態を保持している真正なノードと通信したかどうかを確認することができる。
図7を参照して説明したように、メッセージングコンポーネントは、コンセンサスコンポーネントによって生成される入力ブロックIBによって開始される。入力ブロックは、コンセンサスコンポーネントによって、実行の高さ、或いは高さインデックスとして示される連続した順番で番号付けされ、そして、その順序でメッセージングコンポーネントによって処理される。時点tN-2、tN-1、及びtNは、それぞれ実行の高さN-2、N-1、及びNを持つそれぞれのブロックの処理の開始を示す。
このようなアプローチは、計算ユニットの最新の計算結果に対するユーザのアクセスを提供するためのエレガントで効率的な方法を提供する。より詳しくは、ユーザは、状態リーダーコンポーネント69を介して、低遅延(low latency)でリードクエリを実行することができる。さらに、このようなアプローチにより、少なくとも部分的に認証されたそれぞれの計算ユニットの計算結果に対するユーザアクセスを提供することが可能である。
- ユーザUは、引数Xとともに計算ユニットB上でのメソッドMの実行を要求する。
- 開発者Vは、初期状態Sを持つ計算ユニットDのインストールを要求する。
- 開発者Vは、状態遷移関数S → S’とともに計算ユニットDの計算ユニットD’へのアップグレードを要求する。
- 開発者Vは、計算ユニットDの削除を要求する。
実行メッセージは順序どおりに処理されるが、リードクエリは順序どおりに処理する必要がなく、複数のリードクエリを並列に処理することができる。
ステップ1110は、繰り返し実行される一般的なステップとしてみなすことができる。
ステップ1120から1160は、実行メッセージの処理と実行を示すものであり、連続してループで繰り返されてもよい。
ステップ1120において、ネットワークまたはネットワークのノードは、実行すべき実行メッセージのセットを受信する。
ステップ1130において、複数のノードのコンセンサスサブセットは、コンセンサスプロトコルを実行する。コンセンサスプロトコルは、実行メッセージの現在のセットからの実行メッセージの選択および処理順序に関するコンセンサスを得るように構成される。実行メッセージの現在のセットには、上で説明したようなイングレスメッセージだけでなく、ユニット間メッセージも包含され得る。コンセンサスプロトコルにより、複数のノードのコンセンサスサブセットは、実行メッセージの選択および処理順序に関して合意する。
ステップ1140において、ノードの実行サブセットは、合意された処理順序で、選択された実行メッセージを決定論的な方法で個々に実行する。これにより、実行に関与する1つ以上の計算ユニットのユニット状態が変化する。
ステップ1150において、実行サブセットのノードは、実行サブセットの1つ以上の計算ユニットの最新のユニット状態のリードスナップショットを作成する。最新のリードスナップショットは、実行メッセージの計算結果を含む。リードスナップショットの作成は、ノードの実行サブセットによるリードスナップショットの1つ又は複数の部分の認証を追加的に包含してもよい。認証は、特に、実行サブセットのノードによる閾値署名アルゴリズムの実行によって実行されてもよい。
ステップ1160において、実行サブセットの1つ以上のノードは、実行サブセットの1つ以上の計算ユニットのユニット状態のリードスナップショットへのユーザアクセスおよび、それに伴う、対応する計算ユニットの最新の計算結果へのユーザアクセスを1人以上のユーザに提供する。
方法は、複数の処理ループ1210を、増加する高さインデックスNとともに順次実行する。Nは増加する整数、すなわち、例えば0、1、2、3・・・Nである。処理ループ1210は、第1ループステップ1211、第2ループステップ1212、及び第3ループステップ1213を包含する。
第2ループステップ1212において、実行サブセットの、例えばサブネットのノードの計算ユニットは、実行メッセージの選択を決定論的な方法で個々に実行する。
第3ループステップ1213において、実行サブセットのノードは、リードスナップショットを作成し、そして、例えば、それぞれのノードのキャッシュメモリにそれを記憶する。さらに、実行サブセットのノードは、リードスナップショットの1つ又は複数の部分を認証してもよい。
その後、方法は、後続の処理ループ1210を継続し、その間に後続の高さインデックスを持つ別の入力ブロックが処理される。この後続の処理ループの間、最新のリードスナップショットは、読み出しステップ1220のために利用することが可能である。より詳しくは、高さインデックスNを伴う処理ループの間、実行サブセットの1つ以上のノードは、前回の高さインデックスN-1を伴うループの終わりに作成されたリードスナップショットへのユーザアクセスを提供してもよい。読み出しステップ1220は、1つ又は複数の認証された部分、例えば認証された変数のユーザによる検証を含んでもよい。
リードスナップショットは、毎回の処理ループ1210の最後に、特に後続の入力ブロックの処理のあいだのブロック境界で、そしてそのため第1のレートで、規則的に実行される。第1のレートは、特に入力ブロックによって決定されて起動されてもよいことに留意すべきである。実施形態によれば、第1のレートは、時間間隔が一定である必要はなく、時間間隔が時間的に変化してもよい。
カウンタが終了した場合、例えば100回目の処理ループ毎に、対応するノードは、ステップ1240において、フルスナップショットとしてもまた示され得る回復スナップショットを実行する。このような回復スナップショットは、例えばノード障害またはシステム障害の場合に、ノードを回復するために必要な全てのデータを含む。次に、ステップ1250において、カウンタはリセットされる。
システムまたはノードの障害の場合には、回復ステップ1260において、ノードを回復するために回復スナップショットを使用することができる。
回復スナップショットは、第2のレートで実行される。説明したように、回復スナップショットは、x回目、例えば100回目の処理ループ毎にのみ実行される。したがって、第1のレートは、第2のレートよりも高い。
実施形態によれば、複数のサブネット11の各々は、別個のサブネットプロトコルクライアント42を、その対応するノード10上で実行するように構成される。メインネットプロトコルクライアント41は、特に、構成データを複数のサブネット11との間で配布するように構成される。メインネットプロトコルクライアント41は、特に、システム計算ユニットのみを実行し、ユーザが提供する計算ユニットは全て実行しないように構成されてもよい。メインネットプロトコルクライアント41は、メインネットのローカルクライアントであり、そして、サブネットプロトコルクライアント42は、サブネットのローカルクライアントである。
セキュリティアプリケーション43は、ノードが保持した秘密鍵を保護するように構成される。より詳しくは、秘密鍵は、別個の実行環境(別個のプロセスまたは別個の仮想マシン(VM))で保持され、処理される。セキュリティアプリケーション43は、インターフェースを介して秘密鍵を抽出できないように、限定および制御されたインターフェースで動作するように構成される。実施形態によれば、セキュリティアプリケーションは、ハードウェアセキュリティモジュール(HSM)のように、又はHSMと同様に動作するように構成される。したがって、セキュリティアプリケーション43は、ソフトウェアHSMとして示されることがある。
レイヤモデル1400は、イングレスメッセージと同様に異なるサブネットからサブネット間メッセージを受信するように構成され、そして、特に処理順序に関して合意することにより、次にそれぞれのサブネットによってさらに処理される入力ブロックのシーケンスにそれらを組み入れるように構成される複数のコンセンサス層52を更に含む。さらに、レイヤモデル1400は、単一のサブネットのノード間の通信を構成および駆動するように構成されたピアツーピア(P2P)層53を含む。
実施形態によれば、ネットワークは、複数のさらなる層、特に、ネットワークの計算ユニット上で実行メッセージを実行するように構成される実行層を含んでもよい。
すなわち、メインネットリーダー610(図6を参照)は、実際にはメインネットプロトコルクライアント41のサブコンポーネントであってもよく、そのため、このコンポーネントとのやり取りは、メインネットクライアントおよびサブネットクライアントが動作する2つの分離された環境間の相互作用を生じさせる。
計算ユニット1500は、入力キュー1501、出力キュー1502、ユーザ又はアプリケーション状態1503、及びシステム状態1504を含む。
計算ユニットの全ての入力キュー1501は、集合的に誘導プールを構成するが、入力キューは、計算ユニットの状態の一部である。出力キュー1502は、場合によっては他のサブネットワーク上の他の計算ユニットに配信される必要があるメッセージを含む。
ユーザ状態1503は、計算ユニットの機能を実装した主要なWeb Assembly(WASM)モジュールとそれに依存するモジュールとに、各モジュールのインスタンス(実体)を加えて構成される。WASMモジュールのインスタンスは、メモリ、グローバル変数、およびテーブルで構成される。
システム状態1504は、計算ユニットのコードによって自由に変更することはできない。これには、メタデータ、計算ユニットに代わってシステムが保持するその他の状態、特にWASMモジュールのコンパイルされた形式、および未解決(未処理)のメッセージのためのコンテキストとコールバックが含まれる。
この例示的な実施形態では、3つの入力ブロック1601、1602、及び1603が示されている。ブロック1601は、複数のトランザクション、すなわちトランザクションtx1.1、tx1.2および、場合によってはドットで示される更なるトランザクションを含む。ブロック1602はまた、複数のトランザクション、すなわちトランザクションtx2.1、tx2.2および、場合によってはドットで示される更なるトランザクションを含む。ブロック1603はまた、複数のトランザクション、すなわちトランザクションtx3.1、tx3.2および、場合によってはドットで示される更なるトランザクションを含む。入力ブロック1601、1602、及び1603は、一緒に繋がれる。より詳しくは、ブロックの各々は、前のブロックのブロックハッシュを含む。これにより、現在のブロックが前のブロックと暗号的に結び付けられる。
実施形態によれば、入力ブロック1601、1602、及び1603は、プルーフ・オブ・ステークコンセンサスプロトコルによって作成されてもよい。
しかし、コンセンサスコンポーネントによって生成された入力ブロックは、実施形態に従って一緒に繋がれる必要がないことに留意されたい。むしろ、受信したメッセージの処理順序についてサブネットのノード間で何らかの合意を得るための任意のコンセンサスプロトコルを、実施形態に従って使用することができる。
システムメモリ1820は、ランダムアクセスメモリ(RAM)1821及び/又はキャッシュメモリ1822などの揮発性メモリの形式のコンピュータシステム可読媒体を含むことができる。ネットワークノード1810は、他の着脱可能/着脱不可能な、揮発性/不揮発性のコンピュータシステム記憶媒体を更に含んでもよい。例としてのみであるが、ストレージシステム1823は、着脱不可能な不揮発性の磁気媒体(図示せず、典型的には「ハードドライブ」と呼ばれる)からの読み出しおよびそれへの書き込みのために提供され得る。また、図示しないが、着脱可能な不揮発性の磁気ディスク(例えば、「フロッピーディスク」)からの読み出しおよびそれへの書き込みのための磁気ディスクドライブ、および、CD-ROM、DVD-ROM、又は他の光学媒体などの着脱可能な不揮発性の光ディスクからの読み出し又はそれへの書き込みのための光ディスクドライブを設けることが可能である。そのような場合、各々は、1つ以上のデータメディアインターフェースによってバス1816に接続することができる。以下に更に示され、説明されるように、メモリ1820は、本発明の実施形態の機能を実行するように構成されたプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのコンピュータプログラム製品を含んでもよい。
1つの入力キューから1つのメッセージMを実行するために、実行コンポーネント62は、Mの様々なフィールドを使用して、ユニット状態の異なる部分と、メッセージングコンポーネント61のスケジューラ1901からのデータとを統合し、そして、コンパイルされたコードの正しい部分を実行する。
実行コンポーネント62は、以下のように入力1902を受け取る。ランダム性、時間、および高さはスケジューラから提供される。メッセージのペイロードは、メッセージMによって直接伝えられる。つまり、システムで解釈されることはない。アドレッシング(addressing)およびペイメント(payment)も、またMの情報の一部である。最後に、どのメソッドを実行するかについても、またMに指定される。
実施形態によれば、実行コンポーネント62は、ガス(gas)コンポーネントとしてもまた示され得る燃料(fuel)コンポーネント1905を含むこともできる。そのコンパイルされたコードおよびシステムAPIは、制限値に達すると実行を終了する燃料コンポーネントによって計装(instrumented)される。また、消費した燃料の量は、また、実行の呼び出しを行ったスケジューラ1901に返される。
コンパイルされたコードは、特定のモジュールのインスタンスと対になって実行される。そのモジュールのインスタンスは、ロードおよびストアが正しい永続的なメモリの場所に対して行われ、グローバル変数が呼び出しの間に永続化され、そして、テーブルが使用されたときに正しい関数が実行されることを確実にする。
コンピュータ可読記憶媒体は、命令実行装置によって使用するための命令を保持および記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、またはこれらの任意の適切な組み合わせであってもよいが、これらに限定されるものではない。本明細書で使用するコンピュータ可読記憶媒体は、それ自体が、電波または他の自由に伝播する電磁波、導波管または他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して伝送される電気信号などのように、一過性の信号であると解釈されるものではない。
本発明の態様は、本発明の実施形態による方法、ネットワーク、装置(システム)、およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して本明細書で説明される。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるネットワーク、システム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および動作を示すものである。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(複数も可)を実施するための1つまたは複数の実行可能な命令からなる、命令のモジュール、セグメント、または部分を表すことができる。いくつかの代替的な実施態様では、ブロックに記された機能は、図に記された順序とは異なる順序で実行される場合がある。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行される場合もあれば、機能によっては逆の順序で実行される場合もあり得る。
本発明の好ましい実施形態が示され、説明されているが、本発明はこれに限定されるものではなく、以下の請求項の範囲内で他に様々に具体化し、実施することができることを明確に理解されたい。
Claims (28)
- 複数のノードを含む分散ネットワークであって、
前記複数のノードの各々は、1つ以上の計算ユニットを動作させるように構成され、
前記計算ユニットの各々はそれ自身のユニット状態を含み、
前記ネットワークは、
前記複数のノードの実行サブセットによって、決定論的な方法で実行メッセージのセットを個別に実行し、それによって前記実行サブセットの1つ以上の前記計算ユニットの前記ユニット状態を変化させ、
前記実行サブセットの前記ノードによって、前記実行サブセットの前記1つ以上の計算ユニットの前記ユニット状態のリードスナップショットを定期的に作成し、
前記実行サブセットの1つ以上のノードによって、前記リードスナップショットへのユーザアクセスを提供する、
ように構成される、ことを特徴とする分散ネットワーク。 - 請求項1に記載の分散ネットワークであって、
前記ネットワークは、実行メッセージの前記セットの現在利用可能なセットからの実行メッセージの選択に関するコンセンサスを得るように構成されたコンセンサスプロトコルを、前記複数のノードのコンセンサスサブセットによって定期的に実行する、ように構成される、ことを特徴とする分散ネットワーク。 - 請求項1または請求項2に記載の分散ネットワークであって、
前記ネットワークは、前記実行サブセットの1つ以上のノードの計算ユニットによって前記リードスナップショットに対する計算を実行し、前記計算ユニットによって前記計算の結果をユーザに提供するように構成される、ことを特徴とする分散ネットワーク。 - 請求項1~請求項3の何れか一項に記載の分散ネットワークであって、
前記ネットワークは、
前記実行サブセットの1つ以上のノードによってユーザからのリードクエリを受信し、
前記1つ以上のノードによって前記リードクエリに関連した前記対応する計算ユニットの前記ユニット状態を読み出し、
前記リードクエリを使用して前記計算ユニットを実行し、
前記1つ以上のノードによって前記リードクエリの結果を返す、
ように構成され、
前記リードクエリは前記ユニット状態を永続的に変更しない、
ことを特徴とする分散ネットワーク。 - 請求項1~請求項4の何れか一項に記載の分散ネットワークであって、
前記ネットワークは、前記リードスナップショットの1つ又は複数の部分を認証し、それによって前記リードスナップショットの1つ又は複数の認証された部分を生成する、ように更に構成される、ことを特徴とする分散ネットワーク。 - 請求項5に記載の分散ネットワークであって、
前記ネットワークは、前記実行サブセットの前記ノードの大多数によって、前記リードスナップショットの前記1つ又は複数の認証された部分を認証する、ように更に構成される、ことを特徴とする分散ネットワーク。 - 請求項5または請求項6に記載の分散ネットワークであって、
前記ネットワークは、
前記実行サブセットの前記大多数によって前記リードスナップショットの前記1つ又は複数の認証された部分に対する署名を生成することにより前記リードスナップショットの前記1つ又は複数の部分を認証し、
前記署名をユーザが利用できるようにする、
ように更に構成される、ことを特徴とする分散ネットワーク。 - 請求項7に記載の分散ネットワークであって、
前記署名は、閾値署名、マルチ署名、または少なくとも前記実行サブセットの前記ノードの前記大多数の個々の署名を集めたものである、ことを特徴とする分散ネットワーク。 - 請求項5~請求項8の何れか一項に記載の分散ネットワークであって、
前記リードスナップショットの前記1つ又は複数の認証された部分は、前記ユニット状態の変数である、ことを特徴とする分散ネットワーク。 - 請求項1~請求項9の何れか一項に記載の分散ネットワークであって、
前記ネットワークは、前記実行サブセットの前記ノードによって、前記ユニット状態の前記リードスナップショットをキャッシュメモリに記録する、ように更に構成される、ことを特徴とする分散ネットワーク。 - 請求項1~請求項10の何れか一項に記載の分散ネットワークであって、
前記ネットワークは、
前記実行サブセットの前記ノードによって、前記実行サブセットの前記1つ以上の計算ユニットの前記ユニット状態の回復スナップショットを定期的に作成し、
前記実行サブセットの前記ノードの大多数によって、前記回復スナップショットを認証する、
ように構成される、ことを特徴とする分散ネットワーク。 - 請求項1~請求項11の何れか一項に記載の分散ネットワークであって、
前記ネットワークは、少なくとも後続の回復スナップショットが作成されるまで前記回復スナップショットを永続的に記憶する、ように構成される、ことを特徴とする分散ネットワーク。 - 請求項10~請求項12の何れか一項に記載の分散ネットワークであって、
前記ネットワークは、第1のレートで前記リードスナップショットを実行し、第2のレートで前記回復スナップショットを実行するように構成され、
前記第1のレートは、前記第2のレートよりも高い、
ことを特徴とする分散ネットワーク。 - 請求項1~請求項13の何れか一項に記載の分散ネットワークであって、
前記実行メッセージは、前記ネットワークの計算ユニット間で交換されるユニット間メッセージおよび前記ネットワークのユーザから受信するミューテーションクエリを包含する、ことを特徴とする分散ネットワーク。 - 請求項1~請求項14の何れか一項に記載の分散ネットワークであって、
前記コンセンサスサブセットの各ノードは、前記コンセンサスプロトコルを実行するように構成されたコンセンサスコンポーネントを含み、
前記実行サブセットの各ノードは、
実行メッセージの前記選択を実行するように構成された実行コンポーネントと、
前記コンセンサスコンポーネントから実行メッセージの前記選択を受信し、そして、実行メッセージの前記選択を前記実行コンポーネントに提供するように構成されたメッセージングコンポーネントと、
前記リードスナップショットを管理および記憶するように構成された状態管理コンポーネントと、
前記ネットワークのユーザからのリードクエリを処理するように構成された状態リーダーコンポーネントと、
前記ネットワークのユーザからのミューテーションクエリを処理するように構成されたイングレスメッセージハンドラコンポーネントと、
を含む、
ことを特徴とする分散ネットワーク。 - 請求項1~請求項15の何れか一項に記載の分散ネットワークであって、
前記ネットワークは、複数の処理ループを、増加する高さインデックスNとともに順次実行するように構成され、Nは増加する整数であり、
前記複数の処理ループは、
第1のループステップで前記コンセンサスプロトコルを実行し、
第2のループステップで実行メッセージの前記選択を個々に実行し、
第3のループステップで前記リードスナップショットを作成し、
前記高さインデックスNを伴う前記処理ループの間、以前の高さインデックス、特に前記以前の高さインデックスN-1の終わりに作成された前記リードスナップショットへのユーザアクセスを提供する、
ように構成される、ことを特徴とする分散ネットワーク。 - 請求項1~請求項16の何れか一項に記載の分散ネットワークであって、
前記コンセンサスプロトコルは、
実行メッセージの前記現在のセットから前記実行メッセージを受信して処理し、
予め定義されたコンセンサスメカニズムに従って前記実行メッセージから入力ブロックのキューを生成し、
入力ブロックの前記キューをメッセージングプロトコルに提供する、
ように構成され、
前記メッセージングプロトコルは、前記入力ブロックを処理し、実行のために前記入力ブロックの前記実行メッセージをスケジュールする、
ように構成される、
ことを特徴とする分散ネットワーク。 - 請求項17に記載の分散ネットワークであって、
前記メッセージングプロトコルは、前記コンセンサスプロトコルから受信した前記入力ブロックによって開始されるように構成され、
前記状態管理コンポーネントは、前記入力ブロックの処理境界で前記リードスナップショットを作成するように構成される、
ことを特徴とする分散ネットワーク。 - 請求項17または請求項18に記載の分散ネットワークであって、
前記コンセンサスプロトコルは、前記入力ブロックに1つ以上の実行パラメータを追加するように更に構成され、前記実行パラメータは、ランダムシード、指定された実行時間、および高さインデックスを含む前記グループから選択される、
ことを特徴とする分散ネットワーク。 - 請求項1~請求項19の何れか一項に記載の分散ネットワークであって、
前記分散ネットワークは複数のサブネットを含み、
前記複数のノードの各々は前記複数のサブネットのうちの1つに割り当てられ、
前記複数のノードの各々はメインネットプロトコルクライアント及びサブネットプロトコルクライアントを実行するように構成され、
前記サブネットプロトコルクライアントは、前記コンセンサスプロトコルを定期的に実行し、実行メッセージの前記選択を個々に実行し、前記リードスナップショットを定期的に作成し、前記リードスナップショットへのユーザアクセスを提供する、ように構成され、
前記メインネットプロトコルクライアントは前記複数のサブネットに構成データを配布するように構成される、
ことを特徴とする分散ネットワーク。 - 分散ネットワークのユーザに、前記分散ネットワークによって計算された計算結果へのアクセスを提供するためのコンピュータ実装された方法であって、
前記分散ネットワークは、複数のノードを含み、
前記方法は、
前記複数のノードの各々において1つ以上の計算ユニットを実行するステップであって、前記1つ以上の計算ユニットの各々は、それ自身のユニット状態を含む、実行するステップと、
前記複数のノードの実行サブセットによって決定論的な方法で実行メッセージのセットを個別に実行し、それによって前記実行サブセットの1つ以上の前記計算ユニットの前記ユニット状態を変化させるステップと、
前記実行サブセットの前記ノードによって、前記実行サブセットの前記1つ以上の計算ユニットの前記ユニット状態のリードスナップショットを定期的に作成するステップと、
前記実行サブセットの1つ以上のノードによって、前記リードスナップショットへのユーザアクセスを提供するステップと、
を含む、
ことを特徴とするコンピュータ実装された方法。 - 請求項21に記載のコンピュータ実装された方法であって、
実行メッセージの前記セットの現在のセットからの実行メッセージの選択に関するコンセンサスを得るように構成されたコンセンサスプロトコルを、前記複数のノードのコンセンサスサブセットによって定期的に実行するステップを更に含む、
ことを特徴とするコンピュータ実装された方法。 - 請求項22に記載のコンピュータ実装された方法であって、
前記リードスナップショットへのユーザアクセスの提供は、前記リードスナップショットに対する計算を実行することと、前記計算の前記結果を返すことと、を含む、ことを特徴とするコンピュータ実装された方法。 - 請求項22または請求項23に記載のコンピュータ実装された方法であって、
前記リードスナップショットへのユーザアクセスの提供は、リードクエリをユーザから受信することと、前記リードクエリに関連した前記対応する計算ユニットの前記ユニット状態を読み出すことと、前記リードクエリを使用して前記計算ユニットを実行することと、前記リードクエリの前記結果を返すことと、を含む、ことを特徴とするコンピュータ実装された方法。 - 請求項22~請求項24の何れか一項に記載のコンピュータ実装された方法であって、
前記リードスナップショットの1つ又は複数の部分を認証し、それによって前記リードスナップショットの1つ又は複数の認証された部分を生成するステップを更に含む、
ことを特徴とするコンピュータ実装された方法。 - 分散ネットワークのためのノードであって、
前記ノードは、
1つ以上の計算ユニットであって、前記計算ユニットの各々は、それ自身のユニット状態を含む、計算ユニットを動作させ、
決定論的な方法で実行メッセージのセットを個別に実行し、それによって1つ以上の前記計算ユニットの前記ユニット状態を変化させ、
前記1つ以上の計算ユニットの前記ユニット状態のリードスナップショットを定期的に作成し、
前記リードスナップショットへのユーザアクセスを提供する、
ように構成される、
ことを特徴とする分散ネットワークのためのノード。 - 分散ネットワークを動作させるためのコンピュータプログラム製品であって、
前記分散ネットワークは、複数のノードを含み、
前記複数のノードの各々は、1つ以上の計算ユニットを動作させるように構成され、
前記計算ユニットの各々はそれ自身のユニット状態を含み、
前記コンピュータプログラム製品は、コンピュータ可読記憶媒体であって、その中に具体化されたプログラム命令を有するコンピュータ可読記憶媒体を含み、
前記プログラム命令は、前記複数のノードの1つまたは複数によって実行可能であり、それにより前記複数のノードの前記1つまたは複数に実行される方法は、
前記複数のノードの実行サブセットによって決定論的な方法で実行メッセージのセットを個別に実行し、それによって前記実行サブセットの1つ以上の前記計算ユニットの前記ユニット状態を変化させるステップと、
前記実行サブセットの前記ノードによって、前記実行サブセットの前記1つ以上の計算ユニットの前記ユニット状態のリードスナップショットを定期的に作成するステップと、
前記実行サブセットの1つ以上のノードによって、前記リードスナップショットへのユーザアクセスを提供するステップと、
を含む、
ことを特徴とするコンピュータプログラム製品。 - 分散ネットワークのノードを動作させるためのコンピュータプログラム製品であって、
前記コンピュータプログラム製品は、コンピュータ可読記憶媒体であって、その中に具体化されたプログラム命令を有するコンピュータ可読記憶媒体を含み、
前記プログラム命令は、前記ノードによって実行可能であり、それにより前記ノードに実行される方法は、
1つ以上の計算ユニットであって、前記計算ユニットの各々は、それ自身のユニット状態を含む、計算ユニットを動作させるステップと、
決定論的な方法で実行メッセージのセットを個別に実行し、それによって1つ以上の前記計算ユニットの前記ユニット状態を変化させるステップと、
前記1つ以上の計算ユニットの前記ユニット状態のリードスナップショットを定期的に作成するステップと、
前記リードスナップショットへのユーザアクセスを提供するステップと、
を含む、
ことを特徴とするコンピュータプログラム製品。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2019/078409 WO2021073756A1 (en) | 2019-10-18 | 2019-10-18 | Read access for computational results of a distributed network |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023506115A true JP2023506115A (ja) | 2023-02-15 |
Family
ID=68296491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022522811A Pending JP2023506115A (ja) | 2019-10-18 | 2019-10-18 | 分散ネットワークの計算結果に対する読み出しアクセス |
Country Status (5)
Country | Link |
---|---|
US (1) | US12058201B2 (ja) |
EP (1) | EP4038862A1 (ja) |
JP (1) | JP2023506115A (ja) |
KR (1) | KR20220082898A (ja) |
WO (1) | WO2021073756A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886495B (zh) * | 2021-09-30 | 2024-05-24 | 支付宝(杭州)信息技术有限公司 | 验证区块链数据的方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008026238A1 (fr) * | 2006-08-28 | 2008-03-06 | Mitsubishi Electric Corporation | Système de traitement de données, procédé de traitement de données, et programme |
US20180152289A1 (en) * | 2016-11-30 | 2018-05-31 | International Business Machines Corporation | Checkpoints for permissionless blockchains |
JP2018517208A (ja) * | 2015-05-26 | 2018-06-28 | ティー0.コム,インコーポレーテッド | 暗号技法を使用した取引における意思の難読化 |
US20180191714A1 (en) * | 2016-12-30 | 2018-07-05 | Slock.it, Inc. | Block-chain enabled service provider system |
WO2019101224A2 (en) * | 2019-02-28 | 2019-05-31 | Alibaba Group Holding Limited | System and method for blockchain-based authentication |
WO2019144004A2 (en) * | 2018-01-19 | 2019-07-25 | Alibaba Group Holding Limited | Fund flow report generation method and apparatus, and electronic device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112804349B (zh) * | 2017-07-14 | 2023-07-04 | 创新先进技术有限公司 | 区块链共识网络中处理共识请求的方法、装置和电子设备 |
-
2019
- 2019-10-18 JP JP2022522811A patent/JP2023506115A/ja active Pending
- 2019-10-18 WO PCT/EP2019/078409 patent/WO2021073756A1/en unknown
- 2019-10-18 US US17/769,847 patent/US12058201B2/en active Active
- 2019-10-18 KR KR1020227016548A patent/KR20220082898A/ko not_active Application Discontinuation
- 2019-10-18 EP EP19790518.5A patent/EP4038862A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008026238A1 (fr) * | 2006-08-28 | 2008-03-06 | Mitsubishi Electric Corporation | Système de traitement de données, procédé de traitement de données, et programme |
JP2018517208A (ja) * | 2015-05-26 | 2018-06-28 | ティー0.コム,インコーポレーテッド | 暗号技法を使用した取引における意思の難読化 |
US20180152289A1 (en) * | 2016-11-30 | 2018-05-31 | International Business Machines Corporation | Checkpoints for permissionless blockchains |
US20180191714A1 (en) * | 2016-12-30 | 2018-07-05 | Slock.it, Inc. | Block-chain enabled service provider system |
WO2019144004A2 (en) * | 2018-01-19 | 2019-07-25 | Alibaba Group Holding Limited | Fund flow report generation method and apparatus, and electronic device |
WO2019101224A2 (en) * | 2019-02-28 | 2019-05-31 | Alibaba Group Holding Limited | System and method for blockchain-based authentication |
Non-Patent Citations (1)
Title |
---|
淵田 康之: "特集:イノベーションと金融 ブロックチェーンと金融取引の革新", 野村資本市場クォータリー, vol. 第19巻第2号(通巻74号), JPN6016047552, 1 November 2015 (2015-11-01), JP, pages 11 - 35, ISSN: 0005197904 * |
Also Published As
Publication number | Publication date |
---|---|
EP4038862A1 (en) | 2022-08-10 |
KR20220082898A (ko) | 2022-06-17 |
US12058201B2 (en) | 2024-08-06 |
WO2021073756A1 (en) | 2021-04-22 |
US20220377133A1 (en) | 2022-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062672B (zh) | 一种基于区块链智能合约的流程调度方法 | |
CN110915166B (zh) | 区块链 | |
Collins et al. | Online payments by merely broadcasting messages | |
EP3543853A1 (en) | Providing microservice information | |
US20210143980A1 (en) | BLOCKCHAIN PLATFORM AS A SERVICE (BPaaS) | |
US20200007317A1 (en) | Method and system for hosting a new blockchain using an existing blockchain node | |
WO2020061597A2 (en) | BLOCKCHAIN PLATFORM AS A SERVICE (BPaaS) | |
Cong et al. | A blockchain consensus protocol with horizontal scalability | |
Li et al. | A survey of state-of-the-art sharding blockchains: Models, components, and attack surfaces | |
US20220383304A1 (en) | Distributed network with consensus mechanism | |
De la Rocha et al. | Hierarchical consensus: A horizontal scaling framework for blockchains | |
CN113923217A (zh) | 一种基于dag的异步拜占庭共识方法及*** | |
JP2023506115A (ja) | 分散ネットワークの計算結果に対する読み出しアクセス | |
CN116171555A (zh) | 具有多个子网的分布式网络 | |
Gramoli | Blockchain scalability and its foundations in distributed systems | |
US20230291656A1 (en) | Operation of a distributed deterministic network | |
US20230266994A1 (en) | Migration of computational units in distributed networks | |
EP4042660B1 (en) | Messaging in distributed networks | |
JP2023550886A (ja) | 分散ネットワークにおける検証鍵生成 | |
WO2019200461A1 (en) | Method and system for performing an action requested by a blockchain | |
Peng et al. | Petrichor: An Efficient Consensus Protocol Leveraging DAG and Sharding for Asynchronous BFT | |
Nguyen | Understanding scalability issues in sharded blockchains | |
Tinnaluri et al. | A Productive Model for Secured Data Sharing in Blockchain Technology based IoT | |
Consensus et al. | Check for updates | |
Ahmed | On The Practicality of Blockchain-based Security and Privacy for Next Generation SDN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221014 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221014 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231115 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20240213 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20240412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240502 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240807 |