JP2020515939A - イベント駆動型ブロックチェーンワークフロー処理 - Google Patents

イベント駆動型ブロックチェーンワークフロー処理 Download PDF

Info

Publication number
JP2020515939A
JP2020515939A JP2019540593A JP2019540593A JP2020515939A JP 2020515939 A JP2020515939 A JP 2020515939A JP 2019540593 A JP2019540593 A JP 2019540593A JP 2019540593 A JP2019540593 A JP 2019540593A JP 2020515939 A JP2020515939 A JP 2020515939A
Authority
JP
Japan
Prior art keywords
nodes
workflow
node
subset
action
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
JP2019540593A
Other languages
English (en)
Other versions
JP6883111B2 (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2020515939A publication Critical patent/JP2020515939A/ja
Application granted granted Critical
Publication of JP6883111B2 publication Critical patent/JP6883111B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • 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
    • 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
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Economics (AREA)
  • Databases & Information Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Educational Administration (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Hardware Redundancy (AREA)

Abstract

本明細書の実装形態は、ブロックチェーンネットワーク内で、クライアントから、ワークフロープログラムを実行することの要求を受信することであり、ワークフロープログラムは、ブロックチェーンネットワークによって維持されるブロックチェーンに記憶される、受信することと、ワークフロープログラムに関連付けられた動作を識別することと、ブロックチェーンネットワーク内の複数のノードのサブセットに識別された動作を割り当てることであり、各ノードは、ノードのサブセット内の他のノードとは別個に動作を実行するように構成される、割り当てることと、ノードのサブセット内のノードに関連付けられた実行された動作の処理結果を識別することであり、各処理結果が、サブセットから特定のノードに関連付けられ、特定のノードによって生成された実行された動作の結果を表す、識別することと、識別された処理結果が、コンセンサス結果に一致するコンセンサスしきい値以上の数のノードに関連付けられていることに基づいて、動作のコンセンサス結果を決定することとを含む。

Description

本開示は、イベント駆動型ブロックチェーンワークフロー処理に関する。
コンセンサスネットワークおよび/またはブロックチェーンネットワークと呼ばれることもある分散型台帳システム(Distributed ledger system: DLS)によって、参加しているエンティティは安全かつ不変にデータを記憶できる。DLSは、一般に、任意の特定のユーザ事例(たとえば暗号通貨など)を参照せずにブロックチェーンネットワークと呼ばれる。ブロックチェーンネットワークのタイプの例には、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークがあり得る。パブリックブロックチェーンネットワークは、すべてのエンティティがDLSを使用し、コンセンサスプロセスに参加するためにオープンである。特定のエンティティに対してプライベートブロックチェーンネットワークが提供されており、読取りおよび書込み許可を中央で制御する。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御するエンティティの選択グループに提供され、アクセス制御層を含む。
プライベートブロックチェーンネットワークでは、マルチパーティの協調は困難であり、リソース集約的であり得る。従来のブロックチェーン環境では、多数のノードが同じタスクを実行している場合がある。たとえば、ブロックチェーンに記憶されているスクリプト(たとえば、スマートコントラクトなど)を実行するとき、ブロックチェーンネットワークに参加している各ノードは、スクリプトから同じ命令を並行して実行している可能性がある。そのような構成は、命令の結果に関するコンセンサスを達成するのに適しているが、このコンセンサスに到達するために費やされるリソースの観点からは効率が悪い場合がある。
本明細書の実装形態は、イベント駆動型ブロックチェーンワークフロー処理のためのコンピュータで実行される方法を含む。より詳細には、本明細書の実装形態は、ブロックチェーンネットワーク内の複数の他のノードにタスクを明確に割り当てることによって、ブロックチェーンから発せられるタスクの処理をワークフローノードが管理するイベント駆動型プロセスを対象とする。
いくつかの実装形態では、アクションは、ブロックチェーンネットワーク内のワークフロー処理ノードにおいて、クライアントから、ワークフロープログラムを実行することの要求を受信することであり、ワークフロープログラムは、ブロックチェーンネットワークによって維持されるブロックチェーンに記憶される、受信することと、ワークフロー処理ノードによって、ワークフロープログラムに関連付けられた動作を識別することと、ワークフロー処理ノードによって、ブロックチェーンネットワーク内の複数のノードのサブセットに識別された動作を割り当てることであり、ノードのサブセット内の各ノードは、ノードのサブセット内の他のノードとは別個に動作を実行するように構成される、割り当てることと、ワークフロー処理ノードによって、ノードのサブセット内のノードに関連付けられた実行された動作の処理結果を識別することであり、各処理結果は、ノードのサブセット内の特定のノードに関連付けられ、特定のノードによって生成された実行された動作の結果を表す、識別することと、ワークフロー処理ノードによって、識別された処理結果が、コンセンサス結果に一致するコンセンサスしきい値以上の数のノードに関連付けられていることに基づいて、動作のコンセンサス結果を決定することとを含む。
他の実装形態は、コンピュータ記憶デバイス上に符号化された方法のアクションを実行するように構成された対応するシステム、装置、およびコンピュータプログラムを含む。
これらおよび他の実装形態は各々、以下の特徴のうちの1つまたは複数を随意に含み得る。
いくつかの場合には、この方法は、ブロックチェーンに動作のコンセンサス結果を記憶するステップを含むことができる。
いくつかの実装形態では、動作は第1の動作であり、方法は、ワークフロー処理ノードによって、ワークフロープログラムに関連付けられた最後の動作を識別するステップであって、最後の動作は、第1の動作とは別であり、ワークフロープログラムに関連付けられた命令の順序付けられたセット内の最後に現れる、ステップと、ワークフロー処理ノードによって、ノードのサブセットに最後の動作を割り当てるステップと、ワークフロー処理ノードによって、ノードのサブセット内のノードに関連付けられた最後の動作の処理結果を識別するステップと、識別された処理結果に基づいて、最後の動作のコンセンサス結果を決定するステップと、ワークフロー処理ノードによって、ワークフロープログラムが正常に実行を完了したことを示す応答をクライアントに送信するステップとをさらに含む。
いくつかの場合には、動作は第1の動作であり、方法は、ワークフロー処理ノードによって、ワークフロープログラムに関連付けられた第2の動作を識別するステップであって、第2の動作が第1の動作とは別である、ステップと、ワークフロー処理ノードによって、ノードのサブセットに第2の動作を割り当てるステップと、ワークフロー処理ノードによって、ノードのサブセット内のノードに関連付けられた第2の動作の処理結果を識別するステップと、コンセンサスしきい値未満の数のノードが同じ処理結果に関連付けられていることに基づいて、第2の動作についてコンセンサス結果が存在しないと判断するステップとをさらに含む。
いくつかの実装形態では、方法は、ワークフロー処理ノードによって、ワークフロープログラムの実行が成功しなかったことを示す応答をクライアントに送信するステップを含み得る。
いくつかの場合には、識別された各処理結果は、関連するノードによってデジタル署名される。
いくつかの態様では、ワークフロープログラムは、複数のノードによって実行されるように構成された実行可能バイトコードを含む。
いくつかの場合には、識別された動作をノードのサブセットに割り当てることは、ワークフロー処理ノードによって、ノードのサブセットの各々に対する動作に関連付けられたリモートプロシージャ呼出しを実行することを含む。
いくつかの実装形態では、ブロックチェーンは、イーサリアムブロックチェーンであり、ワークフロープログラムは、スマートコントラクトプログラムである。
いくつかの態様では、ブロックチェーンネットワーク内のノードの各々は、ブロックチェーンネットワークに参加する複数のエンティティのうちの1つに関連付けられている。
いくつかの実装形態では、ノードのサブセットは、ブロックチェーンネットワークに参加する複数のエンティティの各々に関連付けられた少なくとも1つのノードを含む。
本明細書は、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供される方法の実装形態に従って動作を実行させる命令を記憶する1つまたは複数の非一時的コンピュータ可読記憶媒体も提供する。
本明細書は、本明細書で提供される方法を実装するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で提供される方法の実装形態に従って動作を実行させる命令を記憶する1つまたは複数のプロセッサに結合されたコンピュータ可読記憶媒体とを含む。
本明細書による方法は、本明細書で説明される態様および特徴の任意の組合せを含み得ることが諒解される。すなわち、本明細書による方法は、本明細書で具体的に説明した態様および特徴の組合せに限定されず、提供される態様および特徴の任意の組合せも含む。
本明細書の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載されている。本明細書の他の特徴および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
本明細書の実装形態を実行するために使用できる例示的な環境を示す図である。 本明細書の実装形態による例示的な概念的アーキテクチャを示す図である。 本明細書の実装形態によるイベント駆動型ブロックチェーンワークフロー処理のための例示的なシステムを示す図である。 本明細書の実装形態によるワークフロープログラムを実行するための例示的なプロセスを示す図である。 本明細書の実装形態によるワークフロープログラムを実行するための例示的なプロセスを示す図である。 本明細書の実装形態に従って実行できる例示的なプロセスを示す図である。
様々な図面における同様の参照符号は、同様の要素を示す。
本明細書の実装形態は、イベント駆動型ブロックチェーンワークフロー処理のためのコンピュータで実行される方法を含む。より詳細には、本明細書の実装形態は、イベント駆動型ブロックチェーンワークフロー処理を対象とする。いくつかの実装形態では、アクションは、クライアントから、ブロックチェーンネットワーク内のワークフロー処理ノードにおいて、ワークフロープログラムを実行することの要求を受信することであり、ワークフロープログラムは、ブロックチェーンネットワークによって維持されるブロックチェーンに記憶される、受信することと、ワークフロー処理ノードによって、ワークフロープログラムに関連付けられた動作を識別することと、ワークフロー処理ノードによって、ブロックチェーンネットワーク内の複数のノードのサブセットに識別された動作を割り当てることであり、ノードのサブセット内の各ノードは、ノードのサブセット内の他のノードとは別個に動作を実行するように構成される、割り当てることと、ワークフロー処理ノードによって、ノードのサブセット内のノードに関連付けられた実行された動作の処理結果を識別することであり、各処理結果は、ノードのサブセット内の特定のノードに関連付けられ、特定のノードによって生成された実行された動作の結果を表す、識別することと、識別された処理結果が、コンセンサス結果に一致するコンセンサスしきい値以上の数のノードに関連付けられていることに基づいて、動作のコンセンサス結果を決定することとを含む。
本明細書の実装形態のさらなる内容を提供するために、上記で紹介したように、コンセンサスネットワーク(たとえば、ピアツーピアノードで構成される)およびブロックチェーンネットワークとも呼ばれる分散型台帳システム(DLS)によって、参加しているエンティティは、安全かつ不変にトランザクションを実行し、データを記憶できる。ブロックチェーンという用語は一般に、様々な暗号通貨ネットワークに関連付けられているが、任意の特定の使用事例を参照せずにDLSを一般的に指すために、本明細書ではブロックチェーンが使用される。
ブロックチェーンは、将来のトランザクションがすべての以前のトランザクションアクティビティとの整合性について検証されることを可能にする方法でトランザクションを記憶するデータ構造である。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、前のブロックの暗号化ハッシュを含めることによって、チェーン内のその直前の前のブロックにリンクされる。各ブロックは、タイムスタンプ、それ自体の暗号化ハッシュ、および1つまたは複数のトランザクションも含む。ブロックチェーンネットワークのノードによってすでに検証されたトランザクションは、ハッシュされ、マークルツリーに符号化される。マークルツリーは、ツリーのリーフノードのデータがハッシュされ、ツリーの各ブランチのすべてのハッシュがブランチのルートで連結されるデータ構造である。このプロセスは、ツリーをツリー全体のルートまで続け、これは、ツリー内のすべてのデータを表すハッシュを記憶する。ツリーに記憶されているトランザクションのものであるとされるハッシュは、ツリーの構造と一致しているかどうかを判断することによって、迅速に検証できる。
ブロックチェーンは、トランザクションを記憶するためのデータ構造であるのに対して、ブロックチェーンネットワークは、特定のブロックチェーンを管理、更新、および維持するコンピューティングノードのネットワークである。上記で紹介したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供できる。パブリックブロックチェーンネットワークでは、コンセンサスプロセスは、コンセンサスネットワークのノードによって制御される。たとえば、数百、数千、さらには数百万ものエンティティがパブリックブロックチェーンネットワークにおいて協働し、各々がパブリックブロックチェーンネットワーク内の少なくとも1つのノードを動作させる。したがって、パブリックブロックチェーンネットワークは、参加しているエンティティに関してパブリックネットワークと見なすことができる。いくつかの例では、ブロックが有効となり、ブロックチェーンネットワークのブロックチェーン(分散型台帳)に追加されるために、エンティティ(ノード)の大部分がすべてのブロックに署名しなければならない。パブリックブロックチェーンネットワークの例には、ピアツーピア支払いネットワークである様々な暗号通貨ネットワークがある。暗号通貨ネットワークは、ブロックチェーンと呼ばれる分散型台帳を活用する。しかしながら、上記のように、ブロックチェーンという用語は、任意の特定の暗号通貨ネットワークを特に参照せずに分散型台帳を一般的に指すために使用される。
一般に、パブリックブロックチェーンネットワークは、パブリックトランザクションをサポートする。パブリックトランザクションは、パブリックブロックチェーンネットワーク内のすべてのノードと共有され、グローバルブロックチェーンに記憶される。グローバルブロックチェーンは、すべてのノードにわたって複製されるブロックチェーンである。すなわち、すべてのノードは、グローバルブロックチェーンに関して完全な状態のコンセンサスにある。コンセンサスを達成するために(ブロックチェーンへのブロックの追加の合意など)、パブリックブロックチェーンネットワーク内にコンセンサスプロトコルが実装される。例示的なコンセンサスプロトコルは、限定はしないが、暗号通貨ネットワークに実装されたプルーフオブワーク(POW)を含む。
一般に、特定のエンティティに対してプライベートブロックチェーンネットワークが提供されており、読取りおよび書込み許可を中央で制御する。エンティティはどのノードが、ブロックチェーンネットワークに参加できるかを制御する。結果として、プライベートブロックチェーンネットワークは一般に、許可されたネットワークと呼ばれ、誰がネットワークに参加できるか、および参加のレベル(たとえば、いくつかのトランザクションのみへの参加など)を制限する。様々なタイプのアクセス制御機構を使用できる(たとえば、既存の参加者が新しいエンティティの追加に投票する、規制当局が入場を制御できる)。
一般に、コンソーシアムブロックチェーンネットワークは、参加しているエンティティの間でプライベートである。コンソーシアムブロックチェーンネットワークでは、コンセンサスプロセスは、認可されたノードのセットによって制御され、1つまたは複数のノードはそれぞれのエンティティ(たとえば、金融機関、保険会社など)によって動作される。たとえば、10のエンティティ(たとえば、金融機関、保険会社など)のコンソーシアムは、コンソーシアムブロックチェーンネットワークを動作させることができ、その各々は、コンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを動作させる。したがって、コンソーシアムブロックチェーンネットワークは、参加しているエンティティに関してプライベートネットワークと見なすことができる。いくつかの例では、ブロックが有効となり、ブロックチェーンに追加されるために、各エンティティ(ノード)がすべてのブロックに署名しなければならない。いくつかの例では、ブロックが有効となり、ブロックチェーンに追加されるために、少なくともエンティティ(ノード)のサブセット(たとえば、少なくとも7つのエンティティ)がすべてのブロックに署名しなければならない。
本明細書の実装形態は、誰がネットワークに参加できるかに制限が課されるプライベートブロックチェーンネットワークを参照して本明細書でさらに詳細に説明される。しかしながら、本明細書の実装形態は、任意の適切なタイプのブロックチェーンネットワークで実現できると企図される。
本明細書の実装形態は、上記の文脈を考慮して本明細書でさらに詳細に説明される。より詳細には、上記で紹介したように、本明細書の実装形態は、ブロックチェーンネットワーク内の複数の他のノードにタスクを明確に割り当てることによって、ブロックチェーンから発せられるタスクの処理をワークフローノードが管理するイベント駆動型プロセスを対象とする。
本明細書で説明する技法は、ブロックチェーン技術の主要な利点の1つであるコンセンサス機構を維持しながら、ブロックチェーンネットワークでのタスクの分散処理の性能が低いという技術的問題に対する技術的解決策を表す。たとえば、本技法は、従来の実装形態で各ノードが競争して各動作を完了するのではなく、ブロックチェーンネットワーク内のどのノードが特定の動作を実行するかを明確に管理することを伴う。また、本技法は、複数のノードに同じ動作を送信し、コンセンサスの結果に同意しなければならないノードの数のしきい値を構成することによって、コンセンサス機構を維持する。さらに、本技法のイベント駆動型の性質(たとえば、ワークフロー処理ノードが特定のメッセージをノードに送信して動作を割り当てる)は、更新のためにブロックチェーンを定期的にポーリングするのではなく、ワークフロー処理ノードからのイベントが処理を開始するのをノードが単に待つことができるため、性能をさらに向上させる。
図1は、本明細書の実装形態を実行するために使用できる例示的な環境100を示す。いくつかの例では、例示的な環境100によって、エンティティは、プライベートブロックチェーンネットワーク102に参加できる。例示的な環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例では、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組合せを含み、ウェブサイト、ユーザデバイス(たとえば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例では、ネットワーク110は、ワイヤードおよび/またはワイヤレス通信リンクを介してアクセスできる。いくつかの例では、ネットワーク110は、プライベートブロックチェーンネットワーク102との、およびプライベートブロックチェーンネットワーク102内の通信を可能にする。一般に、ネットワーク110は、1つまたは複数の通信ネットワークを表す。
図示された例では、コンピューティングシステム106、108は各々、プライベートブロックチェーンネットワーク102のノードとしての参加を可能にする任意の適切なコンピューティングシステムを含むことができる。例示的なコンピューティングデバイスは、限定はしないが、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、スマートフォンを含む。いくつかの例では、コンピューティングシステム106、108は、プライベートブロックチェーンネットワーク102と対話するための1つまたは複数のコンピュータ実装サービスをホストする。たとえば、コンピューティングシステム106は、第1のエンティティが1つまたは複数の他のエンティティ(たとえば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなど、第1のエンティティ(たとえば、ユーザA)のコンピュータ実装サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティが1つまたは複数の他のエンティティ(たとえば他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなど、第2のエンティティ(たとえばユーザB)のコンピュータ実装サービスをホストすることができる。図1の例では、プライベートブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表され、コンピューティングシステム106、108は、それぞれ、プライベートブロックチェーンネットワーク102に参加する第1のエンティティおよび第2のエンティティのノードを提供する。
図2は、本明細書の実装形態による例示的なアーキテクチャ200を示す。例示的な概念的アーキテクチャ200は、エンティティ層202、ホストサービス層204、およびブロックチェーンネットワーク層206を含む。図示された例では、エンティティ層202は、3つのエンティティ、Entity_1(E1)、Entity_2(E2)、およびEntity_3(E3)を含み、各エンティティは、それぞれのトランザクション管理システム208を有する。
図示された例では、ホストサービス層204は、各トランザクション管理システム208のためのインターフェース210を含む。いくつかの例では、それぞれのトランザクション管理システム208は、プロトコル(たとえば、ハイパーテキスト転送プロトコルセキュア(HTTPS))を使用して、ネットワーク(たとえば、図1のネットワーク110)を介してそれぞれのインターフェース210と通信する。いくつかの例では、各インターフェース210は、それぞれのトランザクション管理システム208とブロックチェーンネットワーク層206との間の通信接続を提供する。より詳細には、インターフェース210は、ブロックチェーンネットワーク層206のブロックチェーンネットワーク212と通信する。いくつかの例では、インターフェース210とブロックチェーンネットワーク層206との間の通信は、リモートプロシージャ呼出し(RPC)を使用して行われる。いくつかの例では、インターフェース210は、それぞれのトランザクション管理システム208のブロックチェーンネットワークノードを「ホスト」する。たとえば、インターフェース210は、ブロックチェーンネットワーク212へのアクセスのためのアプリケーションプログラミングインターフェース(API)を提供する。
本明細書で説明するように、ブロックチェーンネットワーク212は、ブロックチェーン216に情報を不変に記録する複数のノード214を含むピアツーピアネットワークとして提供される。単一のブロックチェーン216が概略的に示されているが、ブロックチェーン216の複数のコピーが提供され、ブロックチェーンネットワーク212にわたって維持される。たとえば、各ノード214は、ブロックチェーンのコピーを記憶する。いくつかの実装形態では、ブロックチェーン216は、プライベートブロックチェーンネットワークに参加している2つ以上のエンティティ間で実行されるトランザクションに関連付けられた情報を記憶する。
図3は、本明細書の実装形態によるイベント駆動型ブロックチェーンワークフロー処理のための例示的なシステムを示す。図示のように、システムは、ブロックチェーンネットワークに参加する他のノード315a〜cおよび320a、bと通信しているワークフロー処理ノード305を含む。ブロックチェーンネットワークは、ブロックチェーン316を含む。プログラム325は、ブロックチェーン316に記憶されており、いくつかの動作または命令330を含む。クライアント340は、ワークフロー処理ノード305と通信している。
動作中、クライアント340は、ブロックチェーン316に記憶されたワークフロープログラム305の実行を要求する要求をワークフロー処理ノード305に送信する。ワークフロー処理ノード305は、ブロックチェーン316からプログラム325を読み取り、プログラム325の一部として実行されるべき動作330を識別する。次いで、ワークフロー処理ノード305は、識別された動作330を実行するためにブロックチェーンネットワーク内の複数のノードを選択する。図3に示す例では、ワークフロー処理ノード305は、割り当てられたノード315a〜cを選択しているが、割り当てられていないノード320a〜bは命令を処理しない。ワークフロー処理ノード305が動作を実行するためにノード315a〜cを選択すると、割り当てられたノード315a〜cの各々が動作を実行し、動作の結果をワークフロー処理ノード305に返す。ノード315a〜cの各々が動作330を独立して実行しているので、ノード315a〜cの各々は、ワークフロー処理ノード305に動作の結果を提供する。ワークフロー処理ノード305は、受信された結果を分析して、ノード315a〜cによって動作330のコンセンサス結果に到達したかどうかを判断する。このプロセスは、図4および図5に関してより詳細に説明される。
図4は、本明細書の実装形態によるワークフロープログラム(たとえば、図3のプログラム325)を実行するための例示的なプロセス400を示す。図示のように、プロセスは、図3のワークフロー処理ノード305とノード315a〜cとの間の対話を伴う。
405で、ワークフロー処理ノード305は、クライアント要求を受信する。いくつかの実装形態では、プライベートインターネットプロトコル(IP)ネットワーク、インターネットなどのパブリックIPネットワーク、または他のネットワークなどのネットワークを介して、ワークフロー処理ノード305によって要求が受信され得る。要求は、ハイパーテキスト転送プロトコル(HTTP)、リモートプロシージャ呼出し(RPC)、または他のプロトコルなどのネットワーク通信プロトコルに従ってフォーマットされ得る。要求は、ブロックチェーンネットワークのノードによる実行のためのワークフロープログラムの識別を含み得る。いくつかの実装形態では、要求は、ワークフロープログラムが記憶されているブロックチェーン内の場所を含み得る。
410で、ワークフロー処理ノードは、ブロックチェーンから要求されたワークフロープログラムを取り出す。いくつかの場合には、ワークフロープログラムは、ブロックチェーンに記憶されたスマートコントラクトプログラムである。ワークフロープログラムは、ブロックチェーンに記憶されたバイトコード(たとえば、Java(登録商標)バイトコードなど)のセットとすることもできる。ワークフロープログラムは、ワークフロー処理ノード305の指示の下でノード315a〜cによって実行されるように構成された任意のプログラミング言語の命令のセットとすることもできる。
415a〜cで、ワークフロー処理ノードは、取り出されたワークフロープログラムから第1の動作をノード315a〜cに割り当てる。420a〜cで、ノード315a〜cは、割り当てられた第1の動作を独立して実行する。425a〜cで、ノード315a〜cは各々、第1の動作の実行から取得された結果を送信する。たとえば、結果は、たとえば、ワークフロープログラムに関連付けられたメモリスペースの更新された値、更新されたプログラムカウンタ、または動作の完了後のワークフロープログラムの状態に関する他の情報を含む、動作を実行した後のワークフロープログラムの更新された実行状態の表現であり得る。
430で、ワークフロー処理ノード305は、ノード315a〜cからの結果を分析して、コンセンサス結果に達したかどうかを判断する。たとえば、ワークフロー処理ノード305は、コンセンサス結果を達成するために同じ結果を返さなければならないノードの数を指定するコンセンサスしきい値で構成され得る。図示のように、一致する結果の数がこのしきい値以上である場合、ワークフロー処理ノード305は、コンセンサスに達したと判断する。例示的なプロセス400では、しきい値は3であり、3つのノード315a〜cのすべてからの結果は同じであり、コンセンサスに達したことを示している。
435で、ワークフロー処理ノード305は、上記の分析に基づいてコンセンサスに達したと判断する。ワークフロー処理ノード305は、第1の動作の結果をブロックチェーンに追加し、415aでワークフロープログラムの次の動作から開始してプロセス400を繰り返す。
図5は、本明細書の実装形態によるワークフロープログラムを実行するための例示的なプロセス500を示す。プロセス500は、ワークフロー処理ノード305が、割り当てられたノード315a〜cからの動作の異なる結果の受信をどのように処理するかの一例を提供する。
505で、ワークフロー処理ノード305は、クライアント要求を受信する。いくつかの実装形態では、プライベートIPネットワーク、インターネットなどのパブリックIPネットワーク、または他のネットワークなどのネットワークを介して、ワークフロー処理ノード305によって要求が受信され得る。要求は、HTTP、RPC、または他のプロトコルなどのネットワーク通信プロトコルに従ってフォーマットされ得る。要求は、ブロックチェーンネットワークのノードによる実行のためのワークフロープログラムの識別を含み得る。いくつかの実装形態では、要求は、ワークフロープログラムが記憶されているブロックチェーン内の場所を含み得る。
510で、ワークフロー処理ノードは、ブロックチェーンから要求されたワークフロープログラムを取り出す。いくつかの場合には、ワークフロープログラムは、ブロックチェーンに記憶されたスマートコントラクトプログラムである。ワークフロープログラムは、ブロックチェーンに記憶されたバイトコード(たとえば、Java(登録商標)バイトコードなど)のセットとすることもできる。ワークフロープログラムは、ワークフロー処理ノード305の指示の下でノード315a〜cによって実行されるように構成された任意のプログラミング言語の命令のセットとすることもできる。
515a〜cで、ワークフロー処理ノードは、取り出されたワークフロープログラムから第1の動作をノード315a〜cに割り当てる。520a〜cで、ノード315a〜cは、割り当てられた第1の動作を独立して実行する。525a〜cで、ノード315a〜cは各々、第1の動作の実行から取得された結果を送信する。たとえば、結果は、たとえば、ワークフロープログラムに関連付けられたメモリスペースの更新された値、更新されたプログラムカウンタ、または動作の完了後のワークフロープログラムの状態に関する他の情報を含む、動作を実行した後のワークフロープログラムの更新された実行状態の表現であり得る。
530で、ワークフロー処理ノード305は、ノード315a〜cからの結果を分析して、コンセンサス結果に達したかどうかを判断する。図示のように、ノード315cからの結果は、ノード315a、bからの結果とは異なる。したがって、3つのノードのうち2つのみが同じ結果を返した。上述した3のコンセンサスしきい値が与えられると、同じ結果を返すノードの数(2)はしきい値未満であり、動作の結果に関してコンセンサスに達していないことを示す。
535で、コンセンサスに達していないという決定に基づいて、ワークフロー処理ノード305は、ワークフロープログラムの実行を終了する。いくつかの実装形態では、ワークフロー処理ノード305は、要求されたワークフロープログラムがコンセンサスの欠如により終了したという指示をクライアント340に送信し得る。いくつかの場合には、ワークフロー処理ノード305は、ブロックチェーンからトランザクションを削除する、または(たとえば、終了したプログラムの動作によって引き落とされた資金を返すために任意のアカウントに振り込むなど)以前の動作の効果を取り消すために追加のトランザクションをサブミットすることによって、プログラムから任意の以前の動作を「ロールバック」し得る。
いくつかの実装形態では、所定の時間の後、結果に関して合意したノードの数がしきい値未満である場合、コンセンサスなしの決定が行われる。
図6は、本明細書の実装形態に従って実行できる例示的なプロセス600を示す。いくつかの実装形態では、例示的なプロセス600は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して実行され得る。
605で、ブロックチェーンネットワーク内のワークフロー処理ノードは、クライアントから、ワークフロープログラムを実行することの要求を受信し、ワークフロープログラムは、ブロックチェーンネットワークによって維持されるブロックチェーンに記憶される。いくつかの場合には、ブロックチェーンは、イーサリアムブロックチェーンであり、ワークフロープログラムは、スマートコントラクトプログラムである。
610で、ワークフロー処理ノードは、ワークフロープログラムに関連付けられた動作を識別する。いくつかの場合には、ワークフロープログラムは、複数のノードによって実行されるように構成された実行可能バイトコードを含む。
615で、ワークフロー処理ノードは、ブロックチェーンネットワーク内の複数のノードのサブセットに識別された動作を割り当て、ノードのサブセット内の各ノードは、ノードのサブセット内の他のノードとは別個に動作を実行するように構成される。いくつかの場合には、識別された動作をノードのサブセットに割り当てることは、ワークフロー処理ノードによって、ノードのサブセットの各々に対する動作に関連付けられたリモートプロシージャ呼出しを実行することを含む。いくつかの場合には、ブロックチェーンネットワーク内のノードの各々は、ブロックチェーンネットワークに参加する複数のエンティティのうちの1つに関連付けられ、ノードのサブセットは、ブロックチェーンネットワークに参加する複数のエンティティの各々に関連付けられた少なくとも1つのノードを含む。
620で、ワークフロー処理ノードは、ノードのサブセット内のノードに関連付けられた実行された動作の処理結果を識別し、各処理結果は、ノードのサブセット内の特定のノードに関連付けられ、特定のノードによって生成された実行された動作の結果を表す。いくつかの場合には、識別された各処理結果は、関連するノードによってデジタル署名される。
625で、ワークフロー処理ノードは、識別された処理結果が、コンセンサス結果に一致するコンセンサスしきい値以上の数のノードに関連付けられていることに基づいて、動作のコンセンサス結果を決定する。いくつかの実装形態では、ワークフロー処理ノードは、ブロックチェーンに動作のコンセンサス結果を記憶する。
いくつかの場合には、動作は第1の動作であり、プロセス600は、ワークフロー処理ノードによって、ワークフロープログラムに関連付けられた最後の動作を識別することであり、最後の動作は、第1の動作とは別であり、ワークフロープログラムに関連付けられた命令の順序付けられたセット内の最後に現れる、識別することと、ワークフロー処理ノードによって、ノードのサブセットに最後の動作を割り当てることと、ワークフロー処理ノードによって、ノードのサブセット内のノードに関連付けられた最後の動作の処理結果を識別することと、識別された処理結果に基づいて、最後の動作のコンセンサス結果を決定することと、ワークフロー処理ノードによって、ワークフロープログラムが正常に実行を完了したことを示す応答をクライアントに送信することとを含む。
実装形態では、動作は第1の動作であり、プロセス600は、ワークフロー処理ノードによって、ワークフロープログラムに関連付けられた第2の動作を識別することであり、第2の動作が第1の動作とは別である、識別することと、ワークフロー処理ノードによって、ノードのサブセットに第2の動作を割り当てることと、ワークフロー処理ノードによって、ノードのサブセット内のノードに関連付けられた第2の動作の処理結果を識別することと、コンセンサスしきい値未満の数のノードが同じ処理結果に関連付けられていることに基づいて、第2の動作についてコンセンサス結果が存在しないと判断することとを含む。いくつかの場合には、ワークフロー処理ノードは、ワークフロープログラムの実行が成功しなかったことを示す応答をクライアントに送信する。
本明細書に記載された主題およびアクションおよび動作の実装形態は、デジタル電子回路、有形に具現化されたコンピュータソフトウェアまたはファームウェア、本明細書に開示される構造およびそれらの構造的均等物を含むコンピュータハードウェア、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載される主題の実装形態は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置によって実行される、またはデータ処理装置の動作を制御するためのコンピュータプログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。キャリアは、有形の非一時的コンピュータ記憶媒体であってもよい。代替的にまたは追加として、キャリアは、人工的に生成された伝搬信号、たとえば、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された機械生成電気、光学、または電磁信号とすることができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せとすることができ、またはその一部とすることができる。コンピュータ記憶媒体は、伝搬信号ではない。
「データ処理装置」という用語は、例として、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイスおよび機械を包含する。データ処理装置は、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィックス処理ユニット)などの専用論理回路を含むことができる。装置は、ハードウェアに加えて、コンピュータプログラムの実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードを含むこともできる。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードとも呼ばれるまたは記述されることもあるコンピュータプログラムは、コンパイルもしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、それは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、エンジン、サブルーチン、もしくはコンピューティング環境での実行に適した他のユニットとしてなど、あらゆる形式で展開でき、環境は、1つまたは複数の場所にデータ通信ネットワークによって相互接続された1つまたは複数のコンピュータを含む場合がある。
コンピュータプログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。コンピュータプログラムは、問題のプログラム専用の単一のファイル、あるいは、たとえば、1つもしくは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルなど、複数のコーディネートされたファイルに、たとえば、マークアップ言語文書に記憶された1つもしくは複数のスクリプトなど、他のプログラムまたはデータを保持するファイルの一部に記憶することができる。
本明細書で記述されたプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって動作を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のコンピュータによって実行することができる。プロセスおよび論理フローは、たとえばFPGAまたはASICまたはGPUなどの専用論理回路によって、または専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても実行することができる。
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサ、またはその両方、あるいは任意の他の種類の中央処理装置に基づき得る。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの要素は、命令を実行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスを含むことができる。中央処理装置およびメモリは、専用論理回路によって補うまたはそれに組み込むことができる。
一般に、コンピュータは、少なくとも1つの非一時的コンピュータ可読記憶媒体(コンピュータ可読メモリとも呼ばれる)に結合される。コンピュータに結合された記憶媒体は、コンピュータの内部構成要素(たとえば、統合されたハードドライブ)または外部構成要素(たとえば、ユニバーサルシリアルバス(USB)ハードドライブもしくはネットワーク経由でアクセスされるストレージシステム)とすることができる。記憶媒体の例には、たとえば、磁気、磁気光学、または光ディスク、半導体ドライブ、クラウド記憶システムなどのネットワーク記憶リソース、または他のタイプの記憶媒体などがある。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイス中に組み込むことができる。
ユーザとの対話を提供するために、本明細書で説明する主題の実装は、情報をユーザに表示するためのディスプレイデバイス、たとえばLCD(液晶ディスプレイ)モニタ、およびユーザがコンピュータに入力を提供できる入力デバイス、たとえばキーボード、およびマウス、トラックボールまたはタッチパッドなどのポインティングデバイスを有するコンピュータ上に実装され、またはそれと通信するように構成され得る。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによってなど、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、またはスマートフォンや電子タブレットなどのユーザデバイスで実行されているアプリと対話することによってユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、代わりに、ユーザから応答メッセージを受信することによって、ユーザと対話することができる。
本明細書は、システム、装置、およびコンピュータプログラム構成要素に関して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるとは、システムが、動作中、システムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。専用ロジック回路が特定の動作またはアクションを実行するように構成されるとは、その回路が動作またはアクションを実行する電子ロジックを有することを意味する。
本明細書は、多くの具体的な実装の詳細を含むが、これらは、特許請求の範囲自体によって定義される特許請求される範囲に対する限定ではなく、むしろ特定の実装形態に固有であり得る特徴の説明として解釈されるものとする。別個の実装形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実装形態において組み合わせて実現することもできる。逆に、単一の実装形態の文脈で記載されている様々な特徴は、複数の実装形態で別々にまたは任意の適切な部分組合せで実現することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述され、当初はそのように特許請求され得るが、いくつかの場合、特許請求された組合せからの1つまたは複数の特徴を、組合せから削除することができ、特許請求の範囲は、部分組合せ、または部分組合せの変形を対象とし得る。
同様に、動作が図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、そのような動作が、示された特定の順序で、または逐次的な順序で実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実装形態における様々なシステムモジュールおよび構成要素の分離は、すべての実装形態においてそのような分離を必要とするものと理解されないものとし、記述されたプログラム構成要素およびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
主題の特定の実装形態が記載されている。他の実装形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの場合には、マルチタスキングおよび並列処理が有利であり得る。
100 環境
102 プライベートブロックチェーンネットワーク
106 コンピューティングデバイス
108 コンピューティングデバイス
110 ネットワーク
200 アーキテクチャ
202 エンティティ層
204 ホストサービス層
206 ブロックチェーンネットワーク層
208 トランザクション管理システム
210 インターフェース
212 ブロックチェーンネットワーク
214 ノード
216 ブロックチェーン
305 ワークフロー処理ノード
315 ノード
316 ブロックチェーン
320 ノード
325 プログラム
330 動作
340 クライアント
400 プロセス
500 プロセス
600 プロセス

Claims (20)

  1. 複数のノードを含むブロックチェーンネットワーク内のイベント駆動型ワークフロー処理のためのコンピュータで実行される方法であって、
    前記ブロックチェーンネットワーク内のワークフロー処理ノードにおいて、クライアントから、ワークフロープログラムを実行することの要求を受信するステップであって、前記ワークフロープログラムが、前記ブロックチェーンネットワークによって維持されるブロックチェーンに記憶される、ステップと、
    前記ワークフロー処理ノードによって、前記ワークフロープログラムに関連付けられた動作を識別するステップと、
    前記ワークフロー処理ノードによって、前記ブロックチェーンネットワーク内の前記複数のノードのサブセットに前記識別された動作を割り当てるステップであって、前記ノードのサブセット内の各ノードが、前記ノードのサブセット内の他のノードとは別個に前記動作を実行するように構成される、ステップと、
    前記ワークフロー処理ノードによって、前記ノードのサブセット内のノードに関連付けられた前記実行された動作の処理結果を識別するステップであって、各処理結果が、前記ノードのサブセット内の特定のノードに関連付けられ、前記特定のノードによって生成された前記実行された動作の結果を表す、ステップと、
    前記ワークフロー処理ノードによって、前記識別された処理結果が、コンセンサス結果に一致するコンセンサスしきい値以上の数のノードに関連付けられていることに基づいて、前記動作の前記コンセンサス結果を決定するステップとを含む、
    コンピュータで実行される方法。
  2. 前記ブロックチェーンに前記動作の前記コンセンサス結果を記憶するステップをさらに含む、
    請求項1に記載のコンピュータで実行される方法。
  3. 前記動作が第1の動作であり、前記方法が、
    前記ワークフロー処理ノードによって、前記ワークフロープログラムに関連付けられた最後の動作を識別するステップであって、前記最後の動作が、前記第1の動作とは別であり、前記ワークフロープログラムに関連付けられた命令の順序付けられたセット内の最後に現れる、ステップと、
    前記ワークフロー処理ノードによって、前記ノードのサブセットに前記最後の動作を割り当てるステップと、
    前記ワークフロー処理ノードによって、前記ノードのサブセット内のノードに関連付けられた前記最後の動作の処理結果を識別するステップと、
    前記識別された処理結果に基づいて、前記最後の動作のコンセンサス結果を決定するステップと、
    前記ワークフロー処理ノードによって、前記ワークフロープログラムが正常に実行を完了したことを示す応答を前記クライアントに送信するステップとをさらに含む、
    請求項1に記載のコンピュータで実行される方法。
  4. 前記動作が第1の動作であり、前記方法が、
    前記ワークフロー処理ノードによって、前記ワークフロープログラムに関連付けられた第2の動作を識別するステップであって、前記第2の動作が前記第1の動作とは別である、ステップと、
    前記ワークフロー処理ノードによって、前記ノードのサブセットに前記第2の動作を割り当てるステップと、
    前記ワークフロー処理ノードによって、前記ノードのサブセット内のノードに関連付けられた前記第2の動作の処理結果を識別するステップと、
    前記コンセンサスしきい値未満の数のノードが同じ処理結果に関連付けられていることに基づいて、前記第2の動作についてコンセンサス結果が存在しないと判断するステップとをさらに含む、
    請求項1に記載のコンピュータで実行される方法。
  5. 前記ワークフロー処理ノードによって、前記ワークフロープログラムの実行が成功しなかったことを示す応答を前記クライアントに送信するステップをさらに含む、
    請求項4に記載のコンピュータで実行される方法。
  6. 識別された各処理結果が、関連するノードによってデジタル署名される、
    請求項1に記載のコンピュータで実行される方法。
  7. 前記ワークフロープログラムが、前記複数のノードによって実行されるように構成された実行可能バイトコードを含む、
    請求項1に記載のコンピュータで実行される方法。
  8. 前記識別された動作を前記ノードのサブセットに割り当てることが、前記ワークフロー処理ノードによって、前記ノードのサブセットの各々に対する前記動作に関連付けられたリモートプロシージャ呼出しを実行することを含む、
    請求項1に記載のコンピュータで実行される方法。
  9. 前記ブロックチェーンがイーサリアムブロックチェーンであり、前記ワークフロープログラムがスマートコントラクトプログラムである、
    請求項1に記載のコンピュータで実行される方法。
  10. 前記ブロックチェーンネットワーク内の前記ノードの各々が、前記ブロックチェーンネットワークに参加する複数のエンティティのうちの1つに関連付けられている、
    請求項1に記載のコンピュータで実行される方法。
  11. 前記ノードのサブセットが、前記ブロックチェーンネットワークに参加する前記複数のエンティティの各々に関連付けられた少なくとも1つのノードを含む、
    請求項10に記載のコンピュータで実行される方法。
  12. 1つまたは複数のコンピュータに結合され、かつ以下の処理を行うために、前記1つまたは複数のコンピュータによって実行可能な命令を含む非一時的コンピュータ可読記憶媒体であって、前記処理が、
    ブロックチェーンネットワーク内のワークフロー処理ノードにおいて、クライアントから、ワークフロープログラムを実行することの要求を受信することであって、前記ワークフロープログラムが、前記ブロックチェーンネットワークによって維持されるブロックチェーンに記憶される、ことと、
    前記ワークフロー処理ノードによって、前記ワークフロープログラムに関連付けられた動作を識別することと、
    前記ワークフロー処理ノードによって、前記ブロックチェーンネットワーク内の複数のノードのサブセットに前記識別された動作を割り当てることであって、前記ノードのサブセット内の各ノードが、前記ノードのサブセット内の他のノードとは別個に前記動作を実行するように構成される、ことと、
    前記ワークフロー処理ノードによって、前記ノードのサブセット内のノードに関連付けられた前記実行された動作の処理結果を識別することであって、各処理結果が、前記ノードのサブセット内の特定のノードに関連付けられ、前記特定のノードによって生成された前記実行された動作の結果を表す、ことと、
    前記ワークフロー処理ノードによって、前記識別された処理結果が、コンセンサス結果に一致するコンセンサスしきい値以上の数のノードに関連付けられていることに基づいて、前記動作の前記コンセンサス結果を決定することとを含む、
    非一時的コンピュータ可読記憶媒体。
  13. 前記処理が、
    前記ブロックチェーンに前記動作の前記コンセンサス結果を記憶することをさらに含む、
    請求項12に記載の非一時的コンピュータ可読記憶媒体。
  14. 前記動作が第1の動作であり、前記非一時的コンピュータ可読記憶媒体が、以下の処理を行うための、前記1つまたは複数のコンピュータによって実行可能な命令をさらに含み、前記処理が、
    前記ワークフロー処理ノードによって、前記ワークフロープログラムに関連付けられた最後の動作を識別することであって、前記最後の動作が、前記第1の動作とは別であり、前記ワークフロープログラムに関連付けられた命令の順序付けられたセット内の最後に現れる、ことと、
    前記ワークフロー処理ノードによって、前記ノードのサブセットに前記最後の動作を割り当てることと、
    前記ワークフロー処理ノードによって、前記ノードのサブセット内のノードに関連付けられた前記最後の動作の処理結果を識別することと、
    前記識別された処理結果に基づいて、前記最後の動作のコンセンサス結果を決定することと、
    前記ワークフロー処理ノードによって、前記ワークフロープログラムが正常に実行を完了したことを示す応答を前記クライアントに送信することとを含む、
    請求項12に記載の非一時的コンピュータ可読記憶媒体。
  15. 前記動作が第1の動作であり、前記非一時的コンピュータ可読記憶媒体が、以下の処理を行うための、前記1つまたは複数のコンピュータによって実行可能な命令をさらに含み、前記処理が、
    前記ワークフロー処理ノードによって、前記ワークフロープログラムに関連付けられた第2の動作を識別することとであって、前記第2の動作が前記第1の動作とは別である、ことと、
    前記ワークフロー処理ノードによって、前記ノードのサブセットに前記第2の動作を割り当てることと、
    前記ワークフロー処理ノードによって、前記ノードのサブセット内のノードに関連付けられた前記第2の動作の処理結果を識別することと、
    前記コンセンサスしきい値未満の数のノードが同じ処理結果に関連付けられていることに基づいて、前記第2の動作についてコンセンサス結果が存在しないと判断することと、
    請求項12に記載の非一時的コンピュータ可読記憶媒体。
  16. 前記ワークフロー処理ノードによって、前記ワークフロープログラムの実行が成功しなかったことを示す応答を前記クライアントに送信するための、前記1つまたは複数のコンピュータによって実行可能な命令をさらに含む、
    請求項15に記載の非一時的コンピュータ可読記憶媒体。
  17. 識別された各処理結果が、関連するノードによってデジタル署名される、
    請求項12に記載の非一時的コンピュータ可読記憶媒体。
  18. 前記ワークフロープログラムが、前記複数のノードによって実行されるように構成された実行可能バイトコードを含む、
    請求項12に記載の非一時的コンピュータ可読記憶媒体。
  19. 前記識別された動作を前記ノードのサブセットに割り当てることが、前記ワークフロー処理ノードによって、前記ノードのサブセットの各々に対する前記動作に関連付けられたリモートプロシージャ呼出しを実行することを含む、
    請求項12に記載の非一時的コンピュータ可読記憶媒体。
  20. 1つまたは複数のコンピュータと、
    前記1つまたは複数のコンピュータに結合され、かつ以下の処理を行うための、前記1つまたは複数のコンピュータによって実行可能な命令を含む1つまたは複数のコンピュータ可読メモリとを含むシステムであって、前記処理が、
    ブロックチェーンネットワーク内のワークフロー処理ノードにおいて、クライアントから、ワークフロープログラムを実行することの要求を受信することであって、前記ワークフロープログラムが、前記ブロックチェーンネットワークによって維持されるブロックチェーンに記憶される、ことと、
    前記ワークフロー処理ノードによって、前記ワークフロープログラムに関連付けられた動作を識別することと、
    前記ワークフロー処理ノードによって、前記ブロックチェーンネットワーク内の複数のノードのサブセットに前記識別された動作を割り当てることであって、前記ノードのサブセット内の各ノードが、前記ノードのサブセット内の他のノードとは別個に前記動作を実行するように構成される、ことと、
    前記ワークフロー処理ノードによって、前記ノードのサブセット内のノードに関連付けられた前記実行された動作の処理結果を識別することであって、各処理結果が、前記ノードのサブセット内の特定のノードに関連付けられ、前記特定のノードによって生成された前記実行された動作の結果を表す、ことと、
    前記ワークフロー処理ノードによって、前記識別された処理結果が、コンセンサス結果に一致するコンセンサスしきい値以上の数のノードに関連付けられていることに基づいて、前記動作の前記コンセンサス結果を決定することとを含む、
    システム。
JP2019540593A 2018-12-13 2018-12-13 イベント駆動型ブロックチェーンワークフロー処理 Active JP6883111B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/120795 WO2019072292A2 (en) 2018-12-13 2018-12-13 TREATMENT OF WORKFLOW BY BLOCK CHAIN GUIDED BY EVENTS

Publications (2)

Publication Number Publication Date
JP2020515939A true JP2020515939A (ja) 2020-05-28
JP6883111B2 JP6883111B2 (ja) 2021-06-09

Family

ID=66100127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019540593A Active JP6883111B2 (ja) 2018-12-13 2018-12-13 イベント駆動型ブロックチェーンワークフロー処理

Country Status (9)

Country Link
US (2) US10540209B2 (ja)
EP (1) EP3559874B1 (ja)
JP (1) JP6883111B2 (ja)
KR (1) KR102121159B1 (ja)
CN (1) CN110199302B (ja)
PH (1) PH12019501733A1 (ja)
SG (1) SG11201906835VA (ja)
TW (1) TW202023224A (ja)
WO (1) WO2019072292A2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3559874B1 (en) 2018-12-13 2022-02-02 Advanced New Technologies Co., Ltd. Event-driven blockchain workflow processing
LU101070B1 (en) * 2018-12-21 2020-06-24 Luxembourg Inst Science & Tech List Method for orchestrating distributed task completion in a communication network
EP3673430A4 (en) * 2019-06-27 2020-07-22 Alibaba Group Holding Limited IMPLEMENTATION OF A BLOCKCHAIN-BASED WORKFLOW
US10659219B1 (en) 2019-08-23 2020-05-19 Capital One Services, Llc Workflow management via distributed ledgers and smart contracts
SG11202003810RA (en) 2019-08-27 2020-05-28 Advanced New Technologies Co Ltd System and method for registering subscribable sub-states in blockchain
CN111213135B (zh) 2019-08-27 2023-11-21 创新先进技术有限公司 用于基于区块链的通知的系统和方法
SG11202003875YA (en) 2019-08-27 2020-05-28 Advanced New Technologies Co Ltd System and method for registering subscribable states in blockchain
CN114579335A (zh) 2019-08-27 2022-06-03 创新先进技术有限公司 用于基于区块链的通知的系统和方法
EP3792849A1 (en) * 2019-09-10 2021-03-17 Hitachi, Ltd. Apparatus and method for generating evaluation data of facilities and projects
CN111178851A (zh) * 2019-12-31 2020-05-19 杭州趣链科技有限公司 一种去中心化基于工作流的数据协作方法
CN111597077B (zh) * 2020-05-13 2022-04-29 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备以及存储介质
CN111612434B (zh) * 2020-05-27 2023-05-16 抖音视界有限公司 用于生成处理流程的方法、装置、电子设备和介质
CN112055023B (zh) * 2020-09-09 2022-10-18 中国工商银行股份有限公司 基于预言机的访问请求处理方法、装置、设备和介质
CN112422526B (zh) * 2020-11-03 2023-02-03 山西特信环宇信息技术有限公司 一种锥体区块链共识系统、方法及网络
US11829765B2 (en) 2021-03-31 2023-11-28 International Business Machines Corporation Computer mechanism for analytic orchestration and entitled execution
US11943210B2 (en) * 2021-04-16 2024-03-26 Verizon Patent And Licensing Inc. System and method for distributed, keyless electronic transactions with authentication
CN114116166A (zh) * 2021-06-02 2022-03-01 支付宝(杭州)信息技术有限公司 基于智能合约的任务执行方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004289500A (ja) * 2003-03-24 2004-10-14 Fuji Xerox Co Ltd 画像処理装置、画像処理方法及びプログラム
JP2018109878A (ja) * 2017-01-05 2018-07-12 株式会社日立製作所 分散コンピューティングシステム

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070055558A1 (en) * 2005-08-19 2007-03-08 Shanahan James G Method and apparatus for probabilistic workflow mining
US9419898B2 (en) * 2011-02-18 2016-08-16 Bae Systems Plc Network management assembly for managing a flow of network management traffic
US10340038B2 (en) * 2014-05-13 2019-07-02 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain, systems and methods
US10541871B1 (en) * 2014-11-10 2020-01-21 Amazon Technologies, Inc. Resource configuration testing service
US9787647B2 (en) 2014-12-02 2017-10-10 Microsoft Technology Licensing, Llc Secure computer evaluation of decision trees
KR101643251B1 (ko) * 2015-04-29 2016-07-28 한국과학기술원 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법
US10304143B2 (en) * 2016-05-05 2019-05-28 Lance Timothy Kasper Consensus system for manipulation resistant digital record keeping
US20170048234A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20170132621A1 (en) * 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting
US11941588B2 (en) * 2015-11-06 2024-03-26 Cable Television Laboratories, Inc. Systems and methods for blockchain virtualization and scalability
EP3403213A2 (fr) * 2016-01-15 2018-11-21 Enrico Maim Procédés et systèmes mis en oeuvre dans une architecture en réseau de noeuds susceptibles de réaliser des transactions basées sur messages
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
WO2017145019A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
US10346406B2 (en) * 2016-03-28 2019-07-09 International Business Machines Corporation Decentralized autonomous edge compute coordinated by smart contract on a blockchain
US10157078B2 (en) * 2016-04-10 2018-12-18 Bank Of America Corporation System for transforming large scale electronic processing using application block chain
US10022613B2 (en) * 2016-05-02 2018-07-17 Bao Tran Smart device
US10417217B2 (en) * 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
US20190213518A1 (en) * 2016-09-09 2019-07-11 Francis Lee Collaborative and dynamic mobile workflow execution platform
US10361853B2 (en) * 2016-10-12 2019-07-23 Bank Of America Corporation Automated data authentication and service authorization via cryptographic keys in a private blockchain
GB2557577A (en) * 2016-10-21 2018-06-27 Cygnetise Ltd Methods and apparatus for recording a change of authorisation state of one or more authorisation agents
US10158527B2 (en) * 2016-10-28 2018-12-18 International Business Machines Corporation Changing an existing blockchain trust configuration
US20180167198A1 (en) * 2016-12-09 2018-06-14 Cisco Technology, Inc. Trust enabled decentralized asset tracking for supply chain and automated inventory management
US10560268B2 (en) * 2017-02-13 2020-02-11 International Business Machines Corporation Node characterization in a blockchain
US20180285810A1 (en) * 2017-03-29 2018-10-04 Ripe Technology, Inc. Systems and methods of blockchain transaction recordation in a food supply chain
CN108805561B (zh) * 2017-04-27 2023-06-02 中思博安科技(北京)有限公司 可访问多个区块链的智能合约的执行方法和系统
CN108804209A (zh) * 2017-05-05 2018-11-13 中思博安科技(北京)有限公司 智能合约的调度方法及装置
CN107450981B (zh) 2017-05-31 2020-04-24 创新先进技术有限公司 一种区块链共识方法及设备
CN108573341B (zh) * 2018-03-23 2021-09-14 杭州云象网络技术有限公司 一种基于联盟链的工作流系统构建方法
CN108694589A (zh) * 2018-05-08 2018-10-23 杭州佑他科技有限公司 一种基于区块链的资产监控方法
CN108769150B (zh) * 2018-05-14 2021-11-12 百度在线网络技术(北京)有限公司 区块链网络的数据处理方法、装置、集群节点和存储介质
CN108985937B (zh) 2018-07-10 2021-09-10 陈曦 一种基于区块链技术的计算资源共享方法及区块链系统
US11769573B2 (en) * 2018-10-16 2023-09-26 Netspective Communications Llc Team-based tele-diagnostics blockchain-enabled system
EP3559874B1 (en) 2018-12-13 2022-02-02 Advanced New Technologies Co., Ltd. Event-driven blockchain workflow processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004289500A (ja) * 2003-03-24 2004-10-14 Fuji Xerox Co Ltd 画像処理装置、画像処理方法及びプログラム
JP2018109878A (ja) * 2017-01-05 2018-07-12 株式会社日立製作所 分散コンピューティングシステム

Also Published As

Publication number Publication date
US10540209B2 (en) 2020-01-21
US20190286490A1 (en) 2019-09-19
KR102121159B1 (ko) 2020-06-10
EP3559874A4 (en) 2019-11-13
EP3559874B1 (en) 2022-02-02
WO2019072292A2 (en) 2019-04-18
CN110199302B (zh) 2023-07-28
TW202023224A (zh) 2020-06-16
WO2019072292A3 (en) 2019-05-23
US10678597B2 (en) 2020-06-09
JP6883111B2 (ja) 2021-06-09
SG11201906835VA (en) 2019-08-27
EP3559874A2 (en) 2019-10-30
US20200151017A1 (en) 2020-05-14
PH12019501733A1 (en) 2020-03-16
CN110199302A (zh) 2019-09-03

Similar Documents

Publication Publication Date Title
JP6883111B2 (ja) イベント駆動型ブロックチェーンワークフロー処理
US11106817B2 (en) Data isolation in a blockchain network
RU2745518C2 (ru) Изоляция данных в сети блокчейн
JP6827564B2 (ja) 分散型台帳システムにおけるトランザクションのパラレル実行の実施
RU2746584C2 (ru) Модуль визуального просмотра цепочки блоков
US10372475B2 (en) Approaches for managing virtual instance data
CN113711536A (zh) 从区块链网络中提取数据
AU2019345039A1 (en) Lightweight node in a multi-tenant blockchain network
WO2022008996A1 (en) Privacy preserving architecture for permissioned blockchains
US20160048703A1 (en) Securing integrity and consistency of a cloud storage service with efficient client operations
US20230052935A1 (en) Asynchronous accounting method and apparatus for blockchain, medium and electronic device
CN115705256A (zh) 就服务事务达成共识的请求促进
US20220365922A1 (en) Score based endorsement in a blockchain network
CN116997895A (zh) 减少执行排序验证区块链模型中的事务中止
AU2020452837A1 (en) Provision of remote application action feed cards

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191211

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191002

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191211

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200812

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210507

R150 Certificate of patent or registration of utility model

Ref document number: 6883111

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250