CN111213135B - 用于基于区块链的通知的系统和方法 - Google Patents

用于基于区块链的通知的系统和方法 Download PDF

Info

Publication number
CN111213135B
CN111213135B CN201980004636.4A CN201980004636A CN111213135B CN 111213135 B CN111213135 B CN 111213135B CN 201980004636 A CN201980004636 A CN 201980004636A CN 111213135 B CN111213135 B CN 111213135B
Authority
CN
China
Prior art keywords
state
blockchain
states
workflow
local
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.)
Active
Application number
CN201980004636.4A
Other languages
English (en)
Other versions
CN111213135A (zh
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.)
Ant Chain Technology Co ltd
Original Assignee
Advanced New Technologies Co 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Publication of CN111213135A publication Critical patent/CN111213135A/zh
Application granted granted Critical
Publication of CN111213135B publication Critical patent/CN111213135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/23Updating
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • G06F9/4868Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with creation or replication
    • 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
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0613Third-party assisted
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • 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
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/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)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Databases & Information Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Human Resources & Organizations (AREA)
  • Computing Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Multimedia (AREA)
  • Bioethics (AREA)
  • Technology Law (AREA)
  • Educational Administration (AREA)
  • General Health & Medical Sciences (AREA)
  • Game Theory and Decision Science (AREA)
  • Health & Medical Sciences (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

提供了一种用于基于区块链的通知的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:获得区块链的区块中的信息以确定工作流的当前状态,其中,部署在所述区块链中的区块链合约能够被执行,以更新所述工作流的一个或多个状态中的所述当前状态;基于所述确定的当前状态更新本地维护的状态机;以及响应于确定所述更新的状态机与所述一个或多个状态中的一个状态相对应,向订阅所述状态的一个或多个订阅者发送通知消息。

Description

用于基于区块链的通知的系统和方法
技术领域
本文通常涉及用于基于区块链的通知的系统和方法。
背景技术
工作流管理通常很乏味且效率低下。例如,当工作流中涉及多个不同的参与方管理工作流的不同阶段时,可能需要通知一方前一阶段已完成,以便开始其自己的阶段。然而,通常在各方之间委派通知的任务是不可靠且低效的。随着参与方数量或工作流的复杂性增加,出错的机会将成倍增加。此外,需要大量资源来确保这种工作流的通知准确并及时。因此,期望开发有效且可靠的系统和方法以改善工作流管理。
区块链通过将数据保存在彼此之间具有先后关系的一系列数据区块中来以去中心化的方式提供数据存储。区块的链由区块链节点的网络维护和更新,所述区块链节点也负责在共识方案下验证数据。存储的数据可以包括许多数据类型,例如采购订单状态、各方之间的金融交易、历史访问信息等。
可以通过添加关于区块链交易的区块来维护和更新区块链。要将数据存储到区块链,可以将数据包括在区块链交易中以添加到区块链的新区块中。此外,许多区块链(例如,以太坊区块链)已经启用了区块链合约(也称为智能合约),这些合约可通过区块链交易执行。例如,区块链交易可以包括由外部拥有的账户(例如,区块链账户)发出、由区块链网络发送、并记录在区块链中的签名消息。可以执行区块链合约以实现所编程的功能。
发明内容
本文的各种实施例包括但不限于用于基于区块链的通知的系统、方法、非暂态计算机可读介质。
根据一些实施例,一种计算机实现的用于基于区块链的通知的方法可以包括:获得区块链的区块中的信息以确定工作流的当前状态,其中,部署在所述区块链中的区块链合约能够被执行,以更新所述工作流的一个或多个状态中的所述当前状态;基于所述确定的当前状态更新本地维护的状态机;以及响应于确定所述更新的状态机与所述一个或多个状态中的一个状态相对应,向订阅所述状态的一个或多个订阅者发送通知消息。
在一些实施例中,获得所述区块链的区块中的所述信息以确定所述工作流的所述当前状态包括:获得所述区块链的一个或多个区块中的区块链交易,其中,所述区块链交易触发所述区块链合约的执行以更新所述工作流的所述当前状态;以及根据所述获得的区块链交易确定所述工作流的所述当前状态。
在一些实施例中,在获得所述区块链的所述区块中的所述信息以确定所述工作流的所述当前状态之前,所述方法还包括:获得指示完成所述一个或多个状态中的先前状态的回复消息。
在一些实施例中,在获得所述区块链的所述区块中的所述信息以确定所述工作流的所述当前状态之前,所述方法还包括:获得所述状态的先前状态的更新;生成用于更新所述先前状态的区块链交易;以及将所述区块链交易发送至一个或多个区块链节点以添加到所述区块链中,并使所述工作流的所述当前状态更新至所述状态。
在一些实施例中,所述通知消息包括:指示当前为所述状态的消息以及根据完成所述一个或多个状态中的先前状态而返回的结果。
在一些实施例中,所述本地维护的状态机包括一个或多个本地状态,所述一个或多个本地状态分别映射到所述工作流的所述一个或多个状态。
在一些实施例中,所述一个或多个本地状态被配置在循环触发流中;所述循环触发流从所述一个或多个本地状态的开始本地状态开始,沿一个方向一次性通过所述一个或多个本地状态中的每个本地状态直到结束本地状态,并返回到所述开始本地状态。
在一些实施例中,所述一个或多个状态被配置在另一个循环触发流中;所述另一循环触发流以所述一个或多个状态中的开始状态开始,沿一个方向一次性通过所述一个或多个状态中的每个状态直到结束状态,并返回到所述开始状态;所述一个或多个状态中的每个状态通过所述另一循环触发流中先前状态的完成来触发;所述开始本地状态映射到所述开始状态;以及在获得所述区块链的区块中的所述信息以确定所述工作流的所述当前状态之前,所述方法还包括执行所述区块链合约以将所述当前状态初始化为所述开始状态。
在一些实施例中,所述方法还包括:获得用于停用所述状态的请求;响应于用于停用所述状态的所述请求:生成用于从所述另一循环触发流中规避所述状态的区块链交易,并将所生成的区块链交易发送到一个或多个区块链节点以添加到所述区块链;以及从所述循环触发流规避映射到所述状态的本地状态。
在一些实施例中,所述方法还包括:获得用于重新启用所述状态的请求;响应于用于重新启用所述状态的所述请求:生成用于恢复所述另一循环触发流中的所述状态的区块链交易,并将所生成的区块链交易发送到一个或多个区块链节点以添加到所述区块链中;以及恢复所述循环触发流中映射到所述状态的所述本地状态。
在一些实施例中,所述当前状态能够由一个或多个子状态的订阅者配置为包括所述一个或多个子状态;并且所述方法还包括:建立所述订阅者和所述一个或多个子状态之间的关联,以将与所述一个或多个子状态相关联的通知发送给所述订阅者。
在一些实施例中,所述一个或多个子状态形成循环触发流;所述当前状态对于一个或多个状态的订阅者是公开的;并且所述一个或多个子状态对于所述一个或多个子状态的订阅者是私有的。
在一些实施例中,将所述通知消息发送给订阅所述状态的所述一个或多个订阅者包括:将通知消息放置在消息队列中,以使与所述一个或多个订阅者相关联的一个或多个计算设备获得所述通知消息。
根据一些实施例,一种用于基于区块链的通知的系统包括一个或多个处理器;以及耦接到所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令能够由所述一个或多个处理器执行以执行如前述实施例中任一项所述的方法。
根据一些实施例,一种用于基于区块链的通知的装置,包括用于执行如前述实施例中任一项所述的方法的多个模块。
根据一些实施例,一种存储有指令的非暂态计算机可读介质,所述指令在由设备的处理器执行时,促使所述设备执行前述实施例中任一项所述的方法。
根据其他实施例,一种用于基于区块链的通知的系统,包括:一个或多个处理器;以及耦接到所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令能由所述一个或多个处理器执行以执行操作包括:获得区块链的区块中的信息以确定工作流的当前状态,其中,部署在所述区块链中的区块链合约能够被执行,以更新所述工作流的一个或多个状态中的所述当前状态;基于所述确定的当前状态更新本地维护的状态机;以及响应于确定所述更新的状态机与所述一个或多个状态中的一个状态相对应,向订阅所述状态的一个或多个订阅者发送通知消息。
根据其他实施例,一种用于基于区块链的通知的非暂态计算机可读存储介质,其配置有一个或多个处理器可执行的指令,以使一个或多个处理器执行以下操作:获得区块链的区块中的信息以确定工作流的当前状态,其中,部署在所述区块链中的区块链合约能够被执行,以更新所述工作流的一个或多个状态中的所述当前状态;基于所述确定的当前状态更新本地维护的状态机;以及响应于确定所述更新的状态机与所述一个或多个状态中的一个状态相对应,向订阅所述状态的一个或多个订阅者发送通知消息。
根据其他实施例,一种用于基于区块链的通知的设备可以包括:获得模块,用于获得区块链的区块中的信息以确定工作流的当前状态,其中,部署在所述区块链中的区块链合约能够被执行,以更新所述工作流的一个或多个状态中的所述当前状态;更新模块,用于基于所述确定的当前状态更新本地维护的状态机;以及发送模块,用于响应于确定所述更新的状态机与所述一个或多个状态中的一个状态相对应,向订阅所述状态的一个或多个订阅者发送通知消息。
本文公开的实施例具有一个或多个技术效果。在一些实施例中,服务提供商可以提供和管理方便的基于区块链的消息订阅和通知。在一个实施例中,包括工作流的一个或多个状态的区块链合约被部署在区块链中,并且可被执行以在一个或多个状态中更新当前状态,并且服务提供商可以记录订阅任何状态的订阅者并维护映射到当前状态的本地状态机。因此,服务提供商可以保持工作流中的最新进度以通知订阅者。在一些实施例中,通过订阅工作流的状态,工作流的参与者不再必须不断地从区块链的区块中获得信息来确定进度。在一个实施例中,参与者可以通过他们已经订阅的、与他们相关状态有关的消息队列自动获得通知,而无需过滤不相关状态的信息。在一个实施例中,基于该通知,可以自动触发并执行针对相关状态的相应执行步骤。在一些实施例中,节省了算力,并提高了工作流效率。在一些实施例中,工作流信息被有效地从参与者处收集、由系统组织并分发给相应的参与者。在一些实施例中,参与者可以通过订阅工作流的一个或多个状态来直观地启用通知,并且当一个或多个状态变为当前状态时及时地接收通知消息。在一些实施例中,还为参与者提供了根据订阅的状态选择以及创建和订阅的子状态选择进行定制。在一个实施例中,子状态的订阅者被提供有隐私保护,因为子状态是私有的。
在参考附图考虑以下描述和所附权利要求书之后,本文所公开的系统、方法和非暂态计算机可读介质的这些特征和其他特征,以及结构的相关元件的操作方法和功能、部件的组合和制造的经济性将变得更清楚,所有这些形成本文的一部分,其中,在各个附图中,相同的附图标记表示对应的部件。然而,应明确理解,附图仅用于说明和描述的目的,且不旨在作为限制。
附图说明
图1示出了根据一些实施例的用于基于区块链的通知的环境。
图2示出了根据一些实施例的用于基于区块链的通知的框架。
图3A示出了根据一些实施例的用于基于区块链的通知的交互图。
图3B示出了根据一些实施例的用于本地状态机的一个或多个本地状态的循环触发流。
图3C示出了根据一些实施例的针对工作流的一个或多个状态的循环触发流以及用于基于区块链的通知的相应功能。
图4A示出了根据一些实施例的用于在区块链中注册可订阅状态的方法的流程图。
图4B示出了根据一些实施例的用于在区块链中注册可订阅子状态的方法的流程图。
图4C示出了根据一些实施例的用于基于区块链的通知的方法的流程图。
图4D示出了根据一些实施例的用于基于区块链的通知的方法的流程图。
图5示出了根据一些实施例的用于基于区块链的通知的方法的流程图。
图6示出了根据一些实施例的用于基于区块链的通知的装置的框图。
图7示出了可实现本文所描述的任一实施例的计算机系统的框图。
具体实施方式
在一些实施例中,区块链可用于存储在线购物的购买-递送状态,并促进各参与者之间的状态信息共享。例如,在线购买可能涉及一系列阶段,例如:下单、从仓库中检索商品,将商品从仓库递送到接收者以及接收者的确认。销售、仓储和递送可以由不同的参与者管理,每个参与者都取决于前一阶段的“完成”状态以开始其自己的阶段。例如,仓库需要知道卖方已经接受了下单,以便开始仓库商品检索阶段,而递送公司需要知道已从仓库中检索到该商品以便开始递送公司的装载、运输和递送阶段。一些阶段可各自包括细分(granular)子阶段。例如,从仓库到接收者阶段的商品递送可以包括子阶段,例如快递员接收商品,将商品递送到本地设施等。并且递送公司可能想知道子阶段内的进度。
在一些区块链方案中,为了确定是否开始自己的阶段,例如卖方、仓库和递送公司之类的在线购物事件参与者需要不断地从区块链的区块中获得信息,以检查前一阶段或子阶段是否完成。结果,在线购物活动的每个参与者都必须频繁地浏览(explore)区块链中的区块以更新购买-递送状态。许多浏览信息甚至可能与查询参与者无关。因此,在这一过程中浪费了大量的算力,并且工作流的总体效率低。本公开的系统和方法可以改善例如在购买-递送过程中的工作流管理。
图1示出了根据一些实施例的用于基于区块链的通知的环境100。如图所示,在环境100中,一个或多个客户端侧计算设备(例如111a、111b、111c、111d)可以通过各种通信网络耦接到服务器端118。服务器端118可以通过各种通信网络耦接到一个或多个区块链系统(例如112、113)。每个区块链系统可以维护一个或多个区块链。每个区块链可以对应于唯一的区块链ID。附加的计算设备可以耦接到一个或多个区块链系统中的每一个。例如,区块链用户侧计算设备(例如114a、114b)可以通过各种通信网络耦接到区块链系统112。
在一些实施例中,客户端侧计算设备(例如,计算机、服务器、移动电话等)不限于单个设备,并且可以包括集群中的一个或多个计算设备。客户端侧计算设备可以安装有专用软件,例如用于与服务器端118通信的消息队列(MQ)服务软件。该软件可以呈现在软件应用、软件终端、网站等中。客户端侧计算设备可以由实体(例如,组织、公司、企业、个人)实现。该实体可以是工作流的参与者。例如,实体可能参与工作流的一部分,因此成为参与者。如本文所述,参与者可以订阅与工作流中用于接收通知的部分相对应的工作流的状态。
在一些实施例中,区块链系统112可以包括维护一个或多个区块链(例如公有链、私有链、联盟链等)的多个区块链节点(例如,区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点i等)。其他区块链系统(例如,区块链系统113等)可以包括维护另一区块链的区块链节点的类似安排。每个区块链节点都可以在一个或多个区块链系统中被找到。区块链节点可以包括全节点。全节点可以下载每个区块和区块链交易,并对照区块链的共识规则进行检查。通过一个区块链节点与另一个区块链节点通信,区块链节点可以形成网络。所示的区块链节点的次序和数量仅仅是为了说明的示例。区块链节点可以在服务器、计算机等中实现。例如,每个区块链节点可以在服务器或服务器集群中实现。服务器集群可以采用负载平衡。每个区块链节点可以对应于经由诸如TCP/IP的各种类型的通信方法耦接在一起的一个或多个物理硬件设备或者虚拟设备。根据分类,区块链节点还可以被称为全节点、Geth节点、共识节点等。
在一些实施例中,区块链用户侧计算设备可以包括轻节点。轻节点可能无法下载完整的区块链,但是可以只下载区块头以验证区块链交易的真实性。轻节点可以由全节点(例如,区块链系统中的区块链节点)提供服务并有效地依赖于全节点来访问区块链的更多功能。通过安装适当的软件,可以在诸如膝上型电脑、移动电话等的电子设备中实现轻节点。在一个实施例中,区块链用户侧计算设备可以将区块链交易发送到区块链系统112以添加到区块链。
在一些实施例中,服务器端118可以提供区块链即服务(BaaS)或称为BaaS端。在一个实施例中,BaaS是一种云服务模型,其中客户或开发人员将Web或移动应用的幕后方面外包。BaaS可以为发生在区块链上的活动(诸如订阅和通知、用户验证、数据库管理和远程更新)提供预写软件。BaaS端可以在服务器、服务器集群或其他设备中实现。在一个实施例中,BaaS端提供基于区块链技术的企业级平台服务。该服务可帮助客户构建安全稳定的区块链环境,并轻松管理区块链的部署、操作、维护和开发。该服务具有高安全性、高稳定性、易用性以及开放性和共享性的特点。基于云的丰富的安全策略和多租户隔离,BaaS端可以使用芯片加密技术提供高级安全保护。基于高度可靠的数据存储,这项服务提供了可以快速扩展而不会中断的端到端、高可用性的服务。BaaS端可以提供增强的管理功能,以帮助客户端构建企业级区块链网络环境。BaaS端可以为标准区块链应用和数据提供本地支持,支持例如超级账本(Hyperledger Fabric)和以太坊企业版-Quorum的主流开源区块链技术,以构建开放且包容的技术生态系统。
在环境100中,系统、节点和设备中的每个都可以安装适当的软件(例如,应用程序接口)和/或硬件(例如,有线、无线通信)来访问环境100的其他设备。通常,系统、节点和设备之间可以通过一个或多个有线或无线网络(例如,互联网)进行通信,数据通过这些网络可以进行通信。系统、节点和设备中的每个可以包括一个或多个处理器以及耦接到所述一个或多个处理器的一个或多个存储器。存储器可以是非暂态的且计算机可读的,并且配置有可由一个或多个处理器执行的指令,以促使所述一个或多个处理器执行本文描述的操作。所述指令可以存储在存储器中或通过通信网络下载而非必须存储在存储器中。虽然系统、节点和设备在该图中显示为单独的组件,但值得注意的是,这些系统、节点和设备可以作为单个设备或多个设备耦接在一起实现。
服务器端118和区块链用户侧计算设备可以安装有适当的区块链软件,用于发起、转发或访问区块链交易。术语“区块链交易”可以指在区块链系统中执行、并经验证后记录在区块链中的任务单元。在一些实施例中,服务器端118基于从一个或多个客户端侧计算设备获得的信息可以构造区块链合约。服务器端118可以在区块链交易中添加区块链合约。在服务器端118将区块链交易提交到区块链系统之后,区块链节点可以验证区块链交易以添加到区块链。如果区块链交易被添加到区块链,则区块链合约被部署在区块链中。在一些实施例中,部署的区块链合约可以包括具有一个或多个状态的工作流。工作流当前处于的状态可以被称为当前状态。通过一个或多个附加的区块链交易,可以调用部署的区块链合约以更新当前状态。
可以根据共识规则验证区块链交易。例如,下面提供了POW(工作量证明)共识处理。尽管如此,其他类型的共识处理,例如POS(权益证明)、DPOS(代表权益证明)和PBFT(实用拜占庭容错)也可以类似地应用于本公开的系统和方法。
在关于验证区块链交易的一些实施例中,接收方区块链节点在接收到未确认的区块链交易的区块链交易请求后,可以执行一些对区块链交易的初步验证。例如,区块链节点1在从服务器端118接收到区块链交易后可以执行初步验证。一旦被验证,区块链交易可以被存储在接收方区块链节点(例如,区块链节点1)的数据库中,也可以将该区块链交易转发到一个或多个其他区块链节点(例如,区块链节点2、区块链节点3、区块链节点4)。类似地,每个区块链节点可以包括或耦接到存储有数据库的存储器。该数据库可以存储多个未确认的区块链交易。在接收到区块链交易之后,一个或多个区块链节点可以重复由接收方区块链节点完成的初步验证和广播处理。
为了进行验证,每个区块链节点可以根据自己的喜好从数据库中选择一些区块链交易并将它们形成一个新的区块链区块。区块链节点可以通过投入算力来解决复杂的数学问题,从而对形成的新区块进行“挖矿”。如果区块链交易涉及区块链合约,则区块链节点可以在各自的虚拟机(VM)中本地执行区块链合约。为了处理区块链合约,区块链网络的每个区块链节点都运行一个对应的VM,并在区块链合约中执行相同的指令。VM是基于计算机架构并提供物理计算机的功能的计算机系统的软件仿真。区块链环境中的VM可以被理解为被设计用作区块链合约的运时环境的系统。
根据共识规则成功挖出所提出的区块链交易的新区块的特定区块链节点可以将新区块打包至其区块链的本地副本中,并将结果组播到其他区块链节点。该特定区块链节点可以是首先成功完成验证、已获得验证特权、或者基于另一个共识规则已被选中等的区块链节点。然后,其他区块链节点可以遵循该特定区块链节点执行的、相同的执行顺序来本地执行新区块中的区块链交易,彼此验证执行结果(例如,通过执行哈希计算),并将区块链的副本与该特定区块链节点的副本同步。通过更新它们的区块链的本地副本,其他区块链节点可以类似地将区块链交易中的这种信息写入到对应的本地存储器中。这样,区块链合约可以被部署在区块链中。如果验证在某一点失败,则所述区块链交易被拒绝。
部署的区块链合约可以具有地址,根据该地址可以访问部署的合约。区块链节点可以通过向区块链合约输入某些参数来调用部署的区块链合约。在一个实施例中,可以调用部署的区块链合约以添加或更新区块链合约中的某些信息,从而更新区块链合约中的一个或多个状态。在一个实施例中,可以通过查询添加到区块链的相应的区块链交易来从区块链中检索区块链合约的一个或多个状态。最新状态可以反映在最新的相关区块链交易中。尽管如此,其他类型的区块链系统和相关的共识规则可以应用于所公开的设备和方法。
图2示出了根据一些实施例的用于基于区块链的通知的框架。在一些实施例中,客户端侧计算设备111a可以将信息发送到服务器端118。在一个实施例中,所述信息可包括在区块链中注册包含一个或多个状态的工作流的请求。区块链可以由区块链系统112维护。为了执行所述注册,服务器端118可以基于从客户端侧计算设备111a获得的信息来构造区块链合约。服务器端118可以在区块链交易A中添加区块链合约。服务器端118可以代表与客户端侧计算设备111a相关联的用户对区块链交易进行签名。例如,区块链交易A可以包括诸如随机数(例如,交易序列号)、自(例如,用户的区块链地址)、至(例如,如果部署区块链合约,则为空)、交易费、签名(例如,服务器端118的签名、服务端118管理的用户的签名)、值(例如,交易金额)、数据(例如,区块链合约)等信息。然后,服务器端118可以将区块链交易A提交到区块链系统112的一个或多个区块链节点以添加到区块链。
在将区块链交易添加到区块链后,区块链合约被部署在区块链中。部署的区块链合约中的工作流可能处于一个或多个状态中的一个状态。例如,工作流可以包括状态1、2和3,并且可以在状态1处开始。因此,当前状态为状态1。通过一个或多个附加的区块链交易,可以调用部署的区块链合约以更新当前状态。例如,可以调用部署的区块链合约以将工作流从状态1前进到状态2,从而将当前状态更改为状态2。
在一些实施例中,区块链用户侧计算设备(例如,区块链用户侧计算设备114a)可以构造经签名的区块链交易B并将其发送到区块链系统112以供执行。在一个实施例中,可以执行区块链交易B以调用部署的区块链合约。该调用可以更新工作流的当前状态。在一些实施例中,可以在用户端应用221处用源代码对区块链交易B进行编程。例如,用户或机器可以对区块链交易B进行编程。区块链用户侧计算设备可以使用将源代码转换为字节代码的相应编译器来编译源代码。区块链交易B可以包括诸如随机数、自、至、交易费、值、签名、数据等的信息。区块链用户侧计算设备114a可以通过远程过程调用(RPC)接口223将区块链交易B发送到区块链系统112的一个或多个区块链节点用以供执行。RPC是第一程序(例如,用户端应用)可以用来从位于网络上的另一计算机(例如,区块链节点)中的第二程序请求服务而无需理解网络细节的协议。当第一程序促使过程在不同地址空间中执行时,则其好像被编码为正常(本地)过程调用,而无需程序员对远程交互的细节明确地编码。
在一些实施例中,在接收到区块链交易(例如区块链交易A或B)时,接收方区块链节点可以验证区块链交易是否有效。例如,可以验证签名和其他格式。如果验证成功,则接收方区块链节点可以将该接收到的区块链交易广播到包括其他区块链节点的区块链网络中。一些区块链节点可以参与区块链交易的挖矿处理。区块链交易可被特定节点选中以进行共识验证,从而打包到新的区块中。如果该区块链交易涉及部署区块链合约,则该特定节点可以针对区块链合约创建关联有合约账户地址的合约账户。如果区块链交易涉及调用部署的区块链合约,则该特定节点可以触发其本地VM以执行所接收的区块链交易,从而从该特定节点的区块链本地副本中调用部署的区块链合约,并更新部署的区块链合约中的状态。
如果该特定节点成功挖出新区块,则该特定节点可以将新区块广播到其他区块链节点。其他区块链节点在接收到新区块时,可以执行验证。如果就新区块有效达成了共识,则将新区块分别打包到由区块链节点维护的区块链本地副本中。区块链节点可以类似地触发它们的本地VM(例如,本地VM1、本地VMi、本地VM2)以执行新区块中的区块链合约,从而调用区块链的本地副本(例如,本地区块链副本1、本地区块链副本i、本地区块链副本2)并进行相应的更新。每个区块链节点的硬件机器可以访问一个或多个虚拟机,所述虚拟机可以是相应区块链节点的一部分或耦接到相应区块链节点。每次都可以触发相应本地虚拟机来执行区块链交易。同样,新区块中的所有其他区块链交易将被执行。轻节点也可以与更新的区块链同步。
图3A示出了根据一些实施例的用于基于区块链的通知的交互图。图3B示出了根据一些实施例的针对本地状态机的一个或多个本地状态的循环触发流。图3C示出了根据一些实施例的针对工作流的一个或多个状态的循环触发流以及用于基于区块链的通知的对应功能。以下呈现的方法的操作旨在是说明性的。依据实施方式,下面的步骤可能包括以各种顺序执行或并行执行的附加步骤、更少的步骤或替代的步骤。步骤的顺序也是说明性的,因为一些顺序可以并行地切换或处理。
参考图3A,在一些实施例中,区块链系统112可以包括维护一个或多个区块链(例如,公有区块链、私有区块链、联盟区块链等)的多个区块链节点。尽管以下描述可以使用联盟链作为示例,但是其他类型的区块链可以类似地应用于本文描述的实施例中。
在一个实施例中,联盟区块链是指由预设节点控制共识处理的区块链。区块链可以允许每个人或仅被许可的参与者访问或采用混合访问方法。例如,根哈希及其API(应用程序接口)可以对公众开放;允许外部参与者使用API进行特定数量的查询并获得与区块链状态相关的信息。
在一个实施例中,当与更受欢迎的对应物公有链相比较时,可以更好地理解联盟链。公有区块链没有访问限制,这意味着具有因特网连接的任何人都当然可以成为公有区块链的参与者。例如,世界上的任何人都可以读取区块链上包含的数据,并且世界上的任何人都可以在公有区块链上执行交易。此外,对于谁可以参与到区块链的共识处理中没有限制,所述共识处理是确定可以将区块添加到区块链的个体或实体的处理。公有区块链被认为是完全去中心化的,对区块链的控制不在任何个体或实体手上。
在一个实施例中,联盟区块链与公有区块链的不同之处在于联盟区块链是许可制的,因此并不是所有具有网络连接的人都可以访问联盟区块链。这些类型的区块链也可以被描述为半去中心化的。对联盟区块链的控制不是授权给单个实体而是授权给一组被许可的个体。在联盟区块链中,共识处理可能与公有链不同。代替任何人都能够参与该处理,联盟区块链的共识参与者可能是网络上预先许可的节点组。节点可以对应于各个国家、企业或其他实体。因此,联盟区块链拥有公有区块链中固有的安全特征,同时还允许对网络的更大程度的控制。
在一些实施例中,工作流的各个参与者可以访问服务器端118或一个或多个类似的计算设备以获得区块链存储的工作流的信息。工作流可以包括进行中的事件、不断变化的情况等。工作流可以包括一系列阶段,对于这些阶段而言,触发一个阶段取决于前一个阶段。在一个实施例中,在工作流的一个或多个阶段中,每个状态可以从另一状态切换或进行而来、或每个状态可以切换或进行到另一状态。例如,工作流可以包括在线购买事件,该在线购买事件包括从下单到从仓库检索商品,然后到从仓库到接收者的商品递送,再到接收者确认的阶段。例如,仓库需要知道已经下单以开始其商品检索阶段,而递送公司需要知道已经从仓库中检索到商品以开始其装载、运送和递送阶段。类似地,例如日历事件、工作时间表、生产时间表、事件时间表等的其他类型的工作流也可以类似地应用。
在一些实施例中,各种参与者可以协作地参与工作流。在一示例中,对于在线购买-递送事件,工作流的参与者可以包括工作流的管理员、在线平台、卖方、仓储公司和递送公司。每个参与者可以参与工作流的一个或多个阶段。下单阶段可以由卖方管理;商品检索阶段可以由仓储公司管理;商品的递送和收货人确认阶段可以由递送公司管理。以上阶段可以由管理员配置,管理员可以由卖方、仓储公司和递送公司选举,或者以其他方式选举或指定。在一个实施例中,工作流的各种参与者可以是联盟链的参与者。例如,每个参与者可以与一个联盟区块链地址相关联,该联盟区块链地址可以用于识别、获得信息、发送信息等。
在一些实施例中,工作流的每个参与者可以由一个或多个计算设备表示,并且相应的步骤(例如,发送或接收信息、显示信息)可以由一个或多个计算设备自动执行。例如,管理员可以由客户端侧计算设备111a表示,卖方可以由客户端侧计算设备111b表示,仓库可以由客户端侧计算设备111c表示,而递送公司可以由客户端侧计算设备111d表示。客户端侧计算设备可以安装有诸如MQ服务之类的软件以访问服务器端118。这些表示仅仅是示例,并且各种计算设备可以具有附加或替代的关联元件(associations)。
在一些实施例中,在步骤301,服务器端118可以从客户端侧计算设备111a获得用于注册包括一个或多个状态的工作流的请求。在一些实施例中,获得用于注册与工作流相对应的一个或多个状态的请求可以包括:从工作流的管理员处获得用于注册与工作流相对应的一个或多个状态的请求。管理员可以指与与授权添加、禁止或恢复作为状态组的一个或多个状态相关联的计算设备。管理员还可能有权添加、禁止或恢复单个状态。所述区块链可以包括联盟区块链。
在一些实施例中,服务器端118可以包括被实现为软件和/或硬件的各种组件。这些组件可以包括但不限于,例如,区块链合约生成器311、本地状态管理模块312,本地状态机313、状态触发器314、MQ管理模块315和订阅管理模块316。各种组件可以被共同地或单独地实现为一个或多个处理器以及其上存储有指令的一个或多个非暂态计算机可读存储介质,当这些指令由所述一个或多个处理器执行时使服务器端118执行所公开的步骤。这些组件及其布置仅是示例,并且可以有更少、更多或替代的组件和替代的布置。
在一个实施例中,在接收到步骤301的信息之后,在步骤302,服务器端118(例如,区块链合约生成器311)可以生成包括工作流的区块链合约。例如,区块链合约可以定义工作流、一个或多个状态以及状态之间的关系。区块链合约可以进一步定义:工作流在同一时间可能处于所述状态中的一个状态。一个或多个状态可以包括开始状态、结束状态以及在开始状态和结束状态之间的具有逻辑关联的其他状态。例如,可以在区块链中注册的循环触发流中配置一个或多个状态。循环触发流可以从一个或多个状态的开始状态开始,在一个方向上一次性通过一个或多个状态中的每个状态直到结束状态,然后返回到开始状态。一个或多个状态中的每个状态可以通过循环触发流中的先前状态的完成来触发。
在一些实施例中,在步骤303,服务器端118可以将区块链合约部署在区块链中。例如,服务器端118可以生成包括所生成的区块链合约的区块链交易,并将该区块链交易发送至区块链系统112的一个或多个区块链节点,以将该区块链交易添加至区块链。如上所述,通过区块链节点验证,区块链合约可以被添加到区块链的区块中,从而被部署在区块链中。
在一些实施例中,服务器端118可以执行区块链合约以将当前状态初始化为一个或多个状态的开始状态。例如,工作流的一个或多个状态可以包括开始状态。可以在所生成的区块链交易中对该执行进行编程,使得在区块链合约部署期间或之后,将工作流的当前状态初始化为开始状态。
在一些实施例中,可执行部署的区块链合约,以在一个或多个状态中更新工作流的当前状态。例如,各种计算设备可以将区块链交易发送至区块链以将区块链交易添加到区块链上,并且这样的区块链交易可以调用部署的区块链合约以将工作流从开始状态前进到下一个状态,依此类推,从而改变当前状态。如果将经过共识验证的区块链交易添加到区块链的新区块中,则所有区块链节点都可以基于经过共识验证的区块链交易执行区块链合约,以更新工作流的当前状态。通过该执行,可以针对当前状态分别更新区块链的本地副本。
在一个实施例中,对于在线购买-递送事件,每个购买-递送过程可以对应于一轮工作流。例如,卖方可以从在线平台出售商品。区块链合约中的工作流的当前状态可以被初始化为开始状态:(状态1)等待订单。当在在线平台上的卖方的虚拟仓库中下单时,无论是否通过服务器端118,在线平台都可以将区块链交易(例如,带有在线平台的签名)发送到区块链,这使工作流前进至:(状态2)接收到订单。如果卖方已订阅状态2,则卖方将能够获得接收到订单的通知。如果卖方接受该订单并更新区块链(例如,通过将卖方签名的区块链交易发送到区块链),则工作流可以前进至:(状态3)从仓库中检索商品。如果仓库已订阅状态3,则仓库将能够获得检索该订单商品的通知。如果仓库检索到该商品并更新了区块链(例如,通过将仓库签名的区块链交易发送到区块链),则工作流可以前进至:(状态4)商品递送。如果递送公司已订阅状态4,则递送公司将能够获得递送该订单商品的通知。如果递送公司完成了商品递送并更新了区块链(例如,通过将递送公司或收件人签名的区块链交易发送到区块链),则工作流可以返回至:(状态1)等待订单。由此可以完成一轮工作流。
在一些实施例中,在步骤304,服务器端118可以从订阅者获得针对一个或多个状态中的一个状态的通知的订阅请求。类似地,服务器端118可以从订阅者获得用于针对一个或多个状态中的一个或多个通知进行订阅的一个或多个请求,或者从多个订阅者获得针对一个或多个状态之一的通知进行订阅的一个或多个请求。即,订阅者可以订阅一个或多个状态组中的一个或多个状态,并且一个或多个订阅者可以订阅一个状态。在一个实施例中,对于在线购买-递送事件,为了确认订单,卖方可以订阅(状态2):接收到订单;为了开始检索商品,仓库可以订阅(状态3):从仓库中检索商品;为了开始递送,递送可以订阅(状态4):商品递送。订阅请求可能需要由工作流的管理员批准。
可选地,服务器端118可以通过网关319获得一个或多个请求。网关可以是用于电信网络的电信中使用的一种联网硬件,它允许数据从一个离散网络流向另一个网络。网关319可以提供负载平衡以改善各种客户端侧计算设备与服务器端118之间的通信。
此外,在步骤305,服务器端118可以建立订阅者和一个状态之间的关联。例如,订阅管理模块316可以建立并存储关联。如果订阅者稍后取消该订阅,则服务器端118可以相应地删除该关联。
在一些实施例中,在步骤306,服务器端118可以获得区块链的一个或多个区块中的信息以确定当前状态。在一些实施例中,随着开始状态被初始化为当前状态,被进一步添加到区块链的区块链交易可以调用区块链合约并向前推进工作流,因此改变工作流的当前状态。在一些实施例中,服务器端118可以获得区块链的一个或多个区块中的区块链交易,其中区块链交易触发区块链合约的执行以更新工作流的当前状态。服务器端118可以根据获得的区块链交易进一步确定工作流的当前状态。
在一些实施例中,在步骤307,服务器端118(例如,本地状态管理模块312)可以基于所确定的工作流的当前状态来更新本地维护的状态机(例如,本地状态机313)。在一个实施例中,服务器端118可以维护状态机。状态机也可以称为有限状态机。状态机可以是抽象机(例如,计算模型),其可以在任意给定时间恰好处于有限数量的状态之一。
参考图3B和图3C,在一些实施例中,本地维护的状态机可以包括一个或多个本地状态(例如,本地状态L1、本地状态L2、本地状态L3、本地状态L4),其分别映射到区块链中注册的工作流的一个或多个状态(例如,状态1、状态2、状态3、状态4)。如图3B所示,所述一个或多个本地状态被配置在本地维护的循环触发流中。循环触发流以一个或多个本地状态中的开始本地状态开始,在一个方向上一次性通过一个或多个本地状态中的每个直到结束本地状态,然后返回到开始本地状态。在一个示例中,对于在线购买-递送事件,本地状态L1映射到(状态1)等待订单,本地状态L2映射到(状态2)接收到订单,本地状态L3映射到(状态3)从仓库中检索商品,本地状态L4映射到(状态4)商品递送。由于状态1是开始状态,并且开始本地状态已映射到开始状态,因此本地状态L1是本地开始状态。类似地,本地状态L2被映射到状态2,本地状态L3被映射到状态3,依此类推。在图3C中,在区块链中注册的一个或多个状态被配置在区块链中注册的另一循环触发流中。在区块链中注册的另一循环触发流从一个或多个状态中的开始状态开始,在一个方向上一次性通过一个或多个状态中的每个直到结束状态,然后返回到开始状态。开始本地状态映射到开始状态。一个或多个状态中的每个状态都是通过在区块链中注册的另一个循环触发流中的先前状态的完成来触发的。由于本地状态被对应地映射到区块链中的工作流的状态,因此一个或多个本地状态中的每个可以通过在本地维护的循环触发流中的先前本地状态的完成来被有效地触发。
通过基于确定的工作流的当前状态来更新本地维护的状态机,本地状态机的状态以同步的方式反映区块链中的工作流的当前状态。例如,如果区块链中的工作流处于状态2,则本地状态机可以停留在本地状态L2;如果工作流随后前进到状态3,则本地状态机可以切换到本地状态L3。
在一些实施例中,一个或多个状态中的每个可由一个或多个子状态的订阅者配置为包括一个或多个子状态。例如,基于区块链合约或它的进一步的修改,工作流可以在一个或多个状态中的一个状态下处于特定细分状态,该状态可以称为一个状态的子状态。在一些实施例中,服务器端118可以获得用于注册状态的一个或多个子状态的请求,其中,注册的工作流包括该状态。该请求可以从一个或多个子状态的创建者-订阅者处获得。该配置可能需要工作流的管理员批准。服务器端118可以获得包括在部署的区块链合约中的该状态,并且该状态中配置有一个或多个子状态,从区块链获得信息以确定该状态是否可配置为包括一个或多个子状态,以及响应于确定该状态可以被配置为包括一个或多个子状态,生成包括一个或多个子状态的区块链合约。例如,某些状态可能已被配置在它们的部署的区块链合约中,使得允许在它们的状态下添加子状态,而其他状态则不被允许。在一些实施例中,生成的区块链合约被配置为调用部署的区块链合约以更新该状态从而包括一个或多个子状态。因此,基于提供了很大的工作流框架的所部署的区块链合约,各个参与者可以会添加工作流的更多细分步骤以进行自定义和精确化。服务器端118可以在区块链中部署所生成的区块链合约,其中,可执行所部署的区块链合约,以在一个或多个子状态中更新与工作流相对应的状态的当前子状态。用于注册子状态的生成和部署步骤与以上参考注册状态的描述相似。
在一个示例中,如图3C所示,对于在线购买-递送事件,递送公司可以在通过服务器端118在由管理员最初配置的状态4下配置附加子状态(例如,子状态41、子状态42、子状态43)。相应地,如图3B所示,客户端侧计算设备111d可以通过服务器端118配置分别映射到一个或多个子状态的一个或多个本地子状态。
在一些实施例中,服务器端118可以获得区块链的一个或多个区块中的信息以确定当前子状态。此外,服务器端118可以基于所确定的当前子状态来更新本地维护的状态机。在一个实施例中,本地维护的状态机包括映射到在区块链中注册的工作流的状态的本地状态,并且包括分别映射到在区块链中注册的一个或多个子状态的一个或多个本地子状态。一个或多个子状态以及在区块链中注册的状态可以形成在区块链中注册的循环触发流。例如,如图3C所示,子状态41、子状态42、子状态43和状态4形成在区块链中注册的循环触发流。
在一些实施例中,一个或多个本地子状态被配置在本地维护的循环触发流中;并且本地维护的循环触发流从本地状态开始,在一个方向上一次性通过一个或多个本地子状态中的每个,然后返回本地状态。例如,通过映射,如图3B所示,本地子状态L41、本地子状态L42、本地子状态L43以及本地状态L4形成本地维护的循环触发流。涉及子状态的循环触发流可以与仅具有状态的循环触发流类似地工作。由于本地子状态被对应地映射到区块链中注册的工作流的子状态,因此一个或多个本地子状态中的每个都可以通过本地维护的循环触发流中的本地状态或先前本地子状态的完成而有效地被触发。例如,当状态4成为工作流的当前状态时,在涉及子状态的配置逻辑完成之前,工作流可能不会前进到下一状态(状态1)。例如,子状态41、42和43可以被配置为使得当状态4是当前状态时,子状态41被触发,在子状态41的完成触发子状态42,依此类推。在此,子状态41可以是开始子状态,子状态43可以是结束子状态。工作流需要一个接一个连续地一次或多次完成子状态41、42和43,以前进到下一个状态(状态1)。对于在线购买-递送事件,递送公司可以配置(子状态41)快递员接收到商品,(子状态42)将商品递送给本地设施,以及(子状态43)接收者签名的收据。
在步骤308,服务器端118(例如,订阅管理模块316)可以建立订阅者和一个或多个子状态之间的关联,以将与一个或多个子状态相关联的通知发送给订阅者。一个或多个子状态的订阅者可以是创建一个或多个子状态的用户。在一个示例中,可以在代表订阅者递送公司的客户端侧计算设备111d与子状态41、42和43之间建立关联。通过该关联,服务器端118可以为客户端侧计算设备111d安排工作流所处于的子状态的通知。如果订阅者在之后取消订阅,则服务器端118可以相应地删除该关联。
在一些实施例中,一个或多个状态对一个或多个状态的所有订阅者都是公开的。例如,客户端侧计算设备111b、111c和111d,工作流的其他参与者和/或区块链的其他用户已知状态1、2、3和4。客户端侧计算设备111b、111c和111d可以各自订阅一个或多个状态。在一些实施例中,一个或多个子状态对于一个或多个子状态的订阅者是私有的。由于订阅者配置了一个或多个子状态,因此一个或多个子状态对于该订阅者可以是私有的。订阅者可以管理一个或多个子状态,例如进一步配置其访问授权。在一个示例中,客户端侧计算设备111d配置的子状态41、42和43对于客户端侧计算设备111d可以是私有的,因此对于工作流的其他参与者是未知的。
在一些实施例中,在步骤309,服务器端118(例如,状态触发器314)可以确定更新的状态机对应于一个状态。此外,在步骤310,响应于确定更新的状态机对应于一个或多个状态之一,服务器端118可以将通知消息发送给处于该状态的订阅者(或者类似地,发送给订阅该状态的一个或多个订阅者)。在一些实施例中,通知消息包括指示当前为该状态的消息和/或一个或多个状态中的先前状态完成时返回的结果。例如,如果状态3变为当前状态,则由于仓储公司已经订阅了状态3,所以服务器端118可以将通知消息发送到客户端侧计算设备111c。通知消息可以包括指示当前为状态3的消息和/或从完成状态2返回的结果。在一个示例中,对于在线购买-递送事件,从完成状态2返回的结果可以包括商品的标识和表示卖方对订单的认可的卖方的数字签名。
在一些实施例中,类似地,在步骤310,服务器端118可以将相应的通知消息发送给子状态的订阅者。该通知消息包括指示所确定的当前子状态的消息以及从该状态返回的结果和/或根据完成所述一个或多个子状态中的先前子状态而返回的结果。客户端侧计算设备可以从计算设备(例如,服务器端118)获得通知消息,该通知消息指示工作流的当前状态是工作流的一个或多个状态之一。可以执行在区块链中部署的区块链合约,以在工作流的一个或多个状态中更新当前状态。
在一些实施例中,将通知消息发送到订阅该状态的一个或多个订阅者可以包括将通知消息放置在消息队列中,以供与所述一个或多个订阅者相关联的一个或多个计算设备获得通知消息。例如,MQ管理模块315可以将有关特定状态的通知消息放置在消息队列中。与特定状态的订阅者相关联的客户端侧计算设备可以连接到消息队列以获得通知消息。
在一些实施例中,客户端侧计算设备可以连接到由计算设备(例如,服务器端118)放置通知消息的消息队列,并从该消息队列获得通知消息。客户端侧计算设备可以响应于通知消息进一步执行与该状态相关联的功能。在一些实施例中,该功能可由该状态的订阅者配置。例如,参考3C,每个订阅者可以为订阅者所订阅的状态或子状态配置功能。例如,状态1可以对应于功能H1,状态2可以对应于功能H2,状态3可以对应于功能H3,状态4可以对应于功能H4,子状态41可以对应于功能H41,子状态42可以对应于功能H42,子状态43可以对应于功能H43。每个状态可以不对应于功能、对应于一个或多个订阅者的一个功能或对应于一个或多个订阅者的多个功能。每个子状态可以不对应于功能,或对应于订阅者的一个或多个功能。
在一些实施例中,功能可以包括执行特定任务的程序的命名部分。在一个实施例中,功能可以是一种程序或例程。功能可能会也可能不会返回值。例如,一旦当前为状态2,则执行功能H2可以触发以预定格式对所接收到的订单的编译,并且代表卖方自动签名以批准该订单。
在一些实施例中,响应于完成执行功能,客户端侧计算设备可以向计算设备(例如,服务器端118)发送指示完成执行与状态相关联的功能的回复消息。在一个实施例中,客户端侧计算设备可以向计算设备发送该状态的更新,以使该计算设备开始从区块链获得信息以重新确定当前状态。例如,所述更新可以指示该状态的完成。在一个实施例中,客户端侧计算设备可以向计算设备发送回复消息,以使计算设备(1)生成用于更新状态(例如,状态2)的区块链交易,以及(2)将区块链交易发送至一个或多个区块链节点以添加到区块链,从而使工作流的当前状态更新为该状态之后的状态(例如,状态3)。然后,计算设备可以开始从区块链获得信息以重新确定当前状态。如果区块链交易被成功地添加到区块链,则所获得的信息(例如,区块链的新区块)可以包括区块链交易,其指示将工作流更新至如在区块链中的该状态之后的状态。通过重新确定当前状态,计算设备可以发现工作流已经进行到如在区块链中的该状态之后的状态。
工作流的一个或多个状态可以被称为状态组。在一些实施例中,获得用于注册与工作流相对应的一个或多个状态的请求可以包括:获得用于注册与工作流相对应的包括一个或多个状态的状态组的请求。在一些实施例中,一个或多个有效状态组可以在一个区块链中同时存在并且起作用。任意两个或多个状态组可能不共享一个状态。
在一些实施例中,工作流的管理员可以具有在服务器端118处添加、禁止或恢复状态组的权限。工作流的非管理员参与者可能没有权限在服务器端118添加、禁止或恢复状态组。权限可以由服务器端118管理。通过禁止或恢复状态组,可以禁止或恢复状态组的状态通知。在一些实施例中,服务器端118可以获得用于停止通知状态组的请求,并且响应于用于停止通知状态组的请求,对订阅该状态组的一个或多个订阅者停止该状态组的通知。为此,服务器端118可以停止更新映射到工作流的状态的本地状态,或者停止在消息队列中放置通知。此外,服务器端118可以获得用于恢复通知状态组的请求,并且响应于用于恢复通知状态组的请求,对订阅该状态组的一个或多个订阅者恢复该状态组的通知。为此,服务器端118可以恢复更新映射到工作流状态的本地状态,或者恢复将通知放置在消息队列中。
在一些实施例中,工作流的管理员可以具有添加、禁止、恢复或订阅个体状态的权限。通过添加状态,可以将新状态添加到现有状态组。工作流的非管理员参与者可能无权添加、禁止或恢复状态,但有权订阅该状态。管理员和非管理员参与者都可以具有配置子状态的权限。权限可以由服务器端118管理。通过禁止或恢复状态,可以禁止或恢复状态通知。在一些实施例中,如果状态被禁止或停用,则与该状态相关联的子状态被关联地禁止或停用。如果订阅者取消订阅某个状态,则与该状态相关联并由该订阅者配置的子状态将被关联地禁止或停用。
在一些实施例中,服务器端118可以获得用于停用一个或多个状态中的一个状态的请求。响应于用于停用该状态的请求,服务器端118可以生成用于从注册在区块链中的另一循环触发流规避(shortcutting)该状态的区块链交易,并将所生成的区块链交易发送到一个或多个区块链节点以添加到区块链;并且可以从本地维护的循环触发流规避映射到该状态的本地状态。例如,如果对状态3的通知被禁止,则服务器端118可以生成用于在如图3C所示工作流的一个或多个状态的另一循环触发流中规避状态3的区块链交易,并将该区块链交易发送到一个或多个区块链节点以添加到区块链中。一旦区块链交易被添加到区块链,状态3将被从图3C中的工作流的一个或多个状态的另一循环触发流规避。服务器端118可以进一步在如图3B所示的一个或多个本地状态的循环触发流中规避本地状态L3。因此,区块链合约的状态将不再包括状态3,状态3之前和之后的状态将在另一个触发流中连接。同样,本地状态机将不保留本地状态L3,并且本地状态L3之前和之后的本地状态将在触发流中连接。结果,状态3的通知被有效地静音(muted)。因此,该状态被配置为,响应于停用(deactivate)该状态的通知而被从注册在区块链中的另一循环触发流规避,以及映射到该状态的本地状态被配置为,响应于停用该状态的通知而被从本地维护的循环触发流规避。
在一些实施例中,服务器端118可以获得用于重新启用(reactivate)一个或多个状态之一的请求。响应于用于重新启用该状态的请求,服务器端118可以生成用于在区块链中注册的另一循环触发流中恢复该状态的区块链交易,并将所生成的区块链交易发送至一个或多个区块链节点以添加到区块链;并且可以在本地维护的循环触发流中恢复映射到该状态的本地状态。例如,如果要恢复对状态3的通知,则服务器端118可以生成用于在如图3C所示的工作流的一个或多个状态的另一循环触发流中恢复状态3的区块链交易(例如,通过删除所述规避并恢复初始连接),并将该区块链交易发送到一个或多个区块链节点以添加到区块链。一旦区块链交易被添加到区块链,状态3将被恢复在图3C中的工作流的一个或多个状态的循环触发流中。服务器端118可以进一步在如图3B所示的一个或多个本地状态的循环触发流中恢复本地状态L3(例如,通过删除规避)。结果,对状态3的通知被有效地恢复。因此,该状态被配置为,响应于重新启用该状态的通知而被恢复在注册在区块链中的另一循环触发流中,并且映射到该状态的本地状态被配置为,响应于重新启用该状态的通知而被恢复在本地维护的循环触发流中。
在一些实施例中,子状态可以类似于这些状态被禁止和恢复。在一个实施例中,服务器端118可获得用于停用一个或多个子状态之一的请求。响应于用于停用该子状态的请求,服务器端118可以生成用于从注册在区块链中的另一循环触发流规避该子状态的区块链交易,并将所生成的区块链交易发送至一个或多个区块链节点以添加到区块链上。服务器端118可以进一步从本地维护的循环触发流规避映射到该子状态的本地子状态。这样,服务器端118可以有效地对子状态订阅者停止该子状态的通知。
在一个实施例中,服务器端118可以获得用于重新启用该子状态的请求。响应于用于重新启用该子状态的请求,服务器端118可以生成用于在注册在区块链中的另一循环触发流中恢复该子状态的区块链交易,并将所生成的区块链交易发送至一个或多个区块链节点以添加到区块链。服务器端118还可在本地维护的循环触发流中恢复映射到该子状态的本地子状态。这样,服务器端118可以有效地对子状态订阅者恢复该子状态的通知。
这样,通过服务器端118提供的平台,工作流的参与者可以订阅他们所关注的各个状态,并配置和订阅子状态以供自己使用。从区块链获得信息、确定状态触发和安排消息递送的任务可以高效地集中在该平台上,从而减少了总体计算投入和能源消耗。该平台还为其用户提供了定制化和隐私保护。使用该平台,可以同时处理类似于购买-递送商品的工作流,以实现高效的订阅和通知。
图4A示出了根据一些实施例的用于在区块链中注册可订阅状态的方法的流程图。下面示出的方法410的操作旨在是示意性的。取决于实施例,方法410可以包括以各种顺序执行或并行执行的附加的、更少的或替代的步骤。方法410可以对应于以上参考图3A至图3C所描述的各种步骤。方法410的更多细节可以参考图1至图3C和上面的相关描述。
在一些实施例中,在步骤411,通过可选网关319,客户端侧计算设备111a可以与服务器端118通信以配置工作流的一个或多个状态。例如,客户端侧计算设备111a可以定义工作流和工作流的状态,并配置状态的循环触发流,诸如如图3C中所示的状态1、2、3和4的循环触发流。可以将状态之一指定为开始状态,并且可以将状态之一指定为结束状态。一旦指定,开始状态和结束状态就不能更改。在给定时间,工作流可能处于多个状态中的一个状态。
在步骤412,服务器端118可以记录一个或多个状态并生成包括工作流的区块链合约。例如,服务器端118可以配置本地维护的状态机,其包括分别映射到一个或多个状态的一个或多个本地状态。因此,本地状态可以具有类似的循环触发流。服务器端118可以进一步生成定义工作流、状态和循环触发流的区块链合约。
在步骤413,服务器端118可以将区块链合约包括在区块链交易中,并将该区块链交易发送到区块链系统112的一个或多个区块链节点。
在步骤414,区块链系统112的区块链节点可以验证区块链交易以将其添加到区块链。一旦被添加,区块链合约就被部署在区块链中。区块链交易中包括的算法可以将初始部署的区块链交易中工作流的当前状态初始化为开始状态。
在步骤415,区块链系统112可以将部署结果返回给服务器端118。因此,状态机可以被初始化为映射到开始状态的开始本地状态。在步骤416,服务器端118可以向客户端侧计算设备111a报告有关部署结果。
在步骤417,服务器端118可以开始从区块链获得信息。例如,每当新区块被添加到区块链时,服务器端118就可以从该新区块获得信息,并在其区块链交易中搜索关于所部署的区块链合约的更新。如果所部署的区块链合约的状态发生变化,即对应于工作流的状态发生变化,则服务器端118可以更新本地状态机。根据状态机的状态,服务器端118可以确定是否应该触发通知。例如,如果订阅者订阅了特定状态,并且状态机已经切换到与该特定状态相对应的本地状态,则服务器端118可以将相应的通知消息放置在消息队列中,以使订阅者获得该通知消息。或者,服务器端118可以将该通知消息发送到订阅者的计算设备。
图4B示出了根据一些实施例的用于在区块链中注册可订阅子状态的方法420的流程图。下面示出的方法420的操作旨在是示意性的。取决于实施例,方法420可以包括以各种顺序执行或并行执行的附加的、更少的或替代的步骤。方法420可以对应于以上参考图3A至图3C所描述的各种步骤。方法420的更多细节可以参考图1至图3C和上面的相关描述。
在一些实施例中,在步骤421,通过可选网关319,客户端侧计算设备111d可以与服务器端118通信以配置工作流的状态的一个或多个子状态。该工作流可能已在区块链中注册并被包括在部署的区块链合约中。例如,客户端侧计算设备111d可以定义注册的状态的一个或多个子状态,并配置该状态和子状态的循环触发流,诸如图3C中所示的状态4和子状态41、42和43的循环触发流。可以指定循环触发流中的该状态和子状态的顺序。在循环触发流内,在给定时间,工作流可能处于该状态或多个子状态中的一个子状态。
在步骤422,服务器端118可以检查状态是否存在于区块链中。例如,服务器端118可以查询区块链系统112以确定注册的状态和包括注册的状态的部署的区块链合约是否存在于区块链中。
在步骤423,如果该状态存在,则区块链系统112可以检查部署的区块链合约是否允许创建一个或多个子状态。例如,当注册该状态时,管理员可能已允许或禁止为某些状态创建子状态。在步骤424,区块链系统可以向服务器端118返回检查结果。
在步骤425,服务器端118可以记录一个或多个子状态,并生成包括一个或多个子状态的区块链合约。例如,服务器端118可以配置本地维护的状态机,其包括分别映射到一个或多个子状态的一个或多个本地子状态。服务器端118可以进一步生成区块链合约,该区块链合约定义与该状态有关的一个或多个子状态并定义循环触发流。当状态成为当前状态时,开始子状态可以被初始化为第一子状态以成为当前状态。
在步骤426,服务器端118可以将区块链合约包括在区块链交易中,并将区块链交易发送到区块链系统112的一个或多个区块链节点。
在步骤427,区块链系统112的区块链节点可以验证所生成的区块链交易以将其添加到区块链。一旦被添加,生成的区块链合约将部署在区块链中。区块链交易中包括的算法可以将初始部署的区块链交易中的工作流的当前状态初始化为开始状态。
在步骤428a,区块链系统112可以向服务器端118返回部署结果。在步骤428b,服务器端118可以向客户端侧计算设备111d报告部署结果。
在步骤429,服务器端118可以开始从区块链获得信息。例如,每当新区块被添加到区块链时,服务器端118就可以从新区块获得信息,并在其区块链交易中搜索关于工作流的状态的更新。如果该状态变为当前状态,则服务器端118可以更新状态机并运行针对子状态的循环触发流。根据状态机的状态,服务器端118可以确定是否应该触发通知。例如,如果订阅者订阅了特定子状态,并且状态机已切换到与该特定子状态相对应的本地子状态,则服务器端118可以将相应的通知消息放置在消息队列中以使订阅者获得通知消息。替代地,服务器端118可以将该通知消息发送到订阅者的计算设备。
图4C示出了根据一些实施例的基于区块链的通知的方法430的流程图。下面示出的方法430的操作旨在是示意性的。取决于实施例,方法430可以包括以各种顺序执行或并行执行的附加的、更少的或替代的步骤。方法430可以对应于以上参考图3A至图3C所描述的各种步骤。方法430的更多细节可以参考图1至图3C和上面的相关描述。
在一些实施例中,在步骤431,通过可选网关319,客户端侧计算设备111c可以与服务器端118通信以订阅工作流的状态。所订阅的状态可以被称为第二状态。第二状态可以由区块链中注册的循环触发流中的第一状态触发。该工作流可能已在区块链中注册并被包括在部署的区块链合约中。尽管下面描述了状态订阅和通知,但是可以类似地执行子状态订阅和通知。服务器端118可以存储订阅和状态与订阅者之间的关联。服务器端118可以基于该关联来配置消息队列(MQ)499。
在步骤432和步骤433,通过可选网关319,客户端侧计算设备111b可以与服务器端118通信以更新工作流的第一状态。第一状态也可以被称为先前状态,以与客户端侧计算设备已经订阅的状态相区别并示出在循环触发流中的相对位置。第一状态(先前状态)可以在循环触发流中触发第二状态(所述状态)。服务器端118可以获得第一状态的更新,即该状态的先前状态的更新。在一个实施例中,客户端侧计算设备111b可能已经执行了更新工作流状态的动作。在一个示例中,对于在线购买-递送事件,卖方可能已经批准了接收到的订单,并且可以通知服务器端118将状态2更新为完成。
在步骤434,服务器端118可以生成用于更新第一状态(先前状态)的区块链交易,并将该区块链交易发送到一个或多个区块链节点以添加到区块链并使得工作流的当前状态更新到该状态。在一个示例中,对于在线购买-递送事件,服务器端118可以生成用于调用部署的区块链合约、添加卖方对接收到的订单的批准和/或向前进行工作流的区块链交易。从步骤431到步骤434,工作流的当前状态仍可以是第一状态,直到将工作流进行到第二状态的步骤435。
在步骤435,通过共识验证,区块链系统112可以执行区块链交易以发起在第一状态(先前状态)之后的第二状态(状态)。例如,因此,可以将区块链中的工作流的当前状态从客户端侧计算设备111c所订阅的第一状态(先前状态)更新为第二状态(状态)。在步骤436,区块链系统112可以向服务器端118返回验证和执行结果。例如,服务器端118可从区块链系统112获得指示工作流的一个或多个状态中的第一状态(先前状态)的完成的回复消息。
替代步骤433至436,客户端侧计算设备111b可以直接将区块链交易发送到区块链系统112以调用部署的区块链合约并更新工作流的当前状态。
在步骤437,服务器端118可以从区块链获得信息。例如,每当新区块被添加到区块链时,服务器端118就可以从新区块获得信息,并在其区块链交易中搜索关于所部署的区块链合约的更新。如果部署的区块链合约的状态发生变化,即对应于工作流状态的变化,则服务器端118可以更新状态机。根据状态机的状态,服务器端118可以确定是否应该触发通知。在一示例中,对于在线购买-递送事件,根据对状态2的更新,工作流已前进到状态3。因此,状态机可以前进到本地状态L3。
在步骤438,服务器端118可以将相应的通知消息放置在消息队列499中,以使订阅者(例如,客户端侧计算设备111c)获得通知消息。例如,服务器端118可以在MQ 499中放置关于状态3的通知消息。通知消息可以被配置为可由状态3的订阅者获得。客户端侧计算设备111c可以安装有监听MQ 499的通知消息的软件。一旦检测到放置的通知消息,在步骤439,客户端侧计算设备111c就可以从MQ 499获得关于状态3的通知消息,从而消费(consume)该通知消息。替代地,服务器端118可以将通知消息发送到客户端侧计算设备111c。
图4D示出了根据一些实施例的基于区块链的通知的方法440的流程图。下面示出的方法440的操作旨在是示意性的。取决于实施例,方法440可以包括以各种顺序执行或并行执行的附加的、更少的或替代的步骤。方法440可以对应于以上3A至图3C所描述的各种步骤。方法440的更多细节可以参考图1至图3C和上面的相关描述。
在一些实施例中,步骤441和442可类似于上述步骤438和439。在步骤441,在触发了通知(例如,针对状态3)之后,服务器端118可将相应的通知消息放置在消息队列499中,以使订阅者(例如,客户端侧计算设备111c)获得该通知消息。例如,服务器端118可在MQ499中放置关于状态3的通知消息。通知消息可被配置为可由状态3的订阅者获得。客户端侧计算设备111c可安装有监听MQ 499的通知消息的软件(例如,MQ服务488)。一旦检测到放置的通知消息,在步骤442,客户端侧计算设备111c就可从MQ 499获得关于状态3的通知消息,从而消费该通知消息。
在步骤443,响应于获得的通知消息,MQ服务488可以执行与状态(例如,状态3)相关联的功能。为了执行该功能,MQ服务488可以调用并执行一个或多个相应算法。例如,在当前为状态2时,执行功能H2可以触发以预定格式对接收到的订单进行编译并代表卖方自动签名以批准该订单。
在步骤444,MQ服务488可以更新状态(例如,状态3)。例如,MQ服务488可以将状态更新为完成。
在步骤445和步骤446,通过可选网关319,MQ服务488可以生成并向服务器端118发送回复消息。回复消息可以包括状态的更新,诸如完成状态、更新的执行结果等。步骤445和446可以类似于上述步骤432,除了步骤445和446发送针对当前状态的更新之外,步骤432还发送针对先前状态的更新。因此,图4C与图4D可以被组合成一个流程,并通过工作流的状态进行重复。
图5示出了根据本文一些实施例的用于基于区块链的通知的示例性方法510的流程图。方法510可以由设备、装置或系统(例如服务器端118)来执行用于基于区块链的通知。方法510可由图1的环境100的一个或多个组件执行。服务器端118可以实现区块链即服务(BaaS)。服务器端118可以包括一个或多个服务器或其他计算设备。方法510可以由包括各种硬件机器和/或软件的系统或设备(例如,计算机、服务器)实现。例如,系统或设备可以包括一个或多个处理器以及一个或多个非暂态计算机可读存储介质(例如,一个或多个存储器),所述一个或多个非暂态计算机可读存储介质耦接到一个或多个处理器并配置有可由一个或多个处理器执行的指令,以使得系统或设备(例如,处理器)执行方法510。
下面示出的方法510的操作旨在是示意性的。根据实施方式,方法510可以包括以各种顺序执行或并行执行的附加、更少或替代步骤。方法510的更多细节可以参考图1至图4D和上面的相关描述。参考图1至图4D描述的用于基于区块链的通知的步骤包含在方法510中。
在一些实施例中,在框511之前,所述方法可以包括:获得指示完成工作流的一个或多个状态中的先前状态的回复消息。
在一些实施例中,在框511之前,所述方法可以包括:获得所述状态的先前状态的更新;生成用于更新所述先前状态的区块链交易;以及将所述区块链交易发送至一个或多个区块链节点以添加到所述区块链中,并促使所述工作流的所述当前状态更新至所述状态。
框511包括:获得区块链的区块中的信息以确定工作流的当前状态,其中,部署在区块链中的区块链合约能够被执行,以在工作流的一个或多个状态中更新当前状态。在一些实施例中,获得区块链的区块中的信息以确定工作流的当前状态包括:获得区块链的一个或多个区块中的区块链交易,其中,该区块链交易触发所述区块链合约的执行以更新所述工作流的当前状态;以及根据获得的区块链交易确定所述工作流的当前状态。
框512包括:基于确定的当前状态更新本地维护的状态机。在一些实施例中,所述本地维护的状态机包括分别映射到所述工作流的一个或多个状态的一个或多个本地状态。在一些实施例中,所述一个或多个本地状态被配置在循环触发流中;所述循环触发流从所述一个或多个本地状态的开始本地状态开始,沿一个方向一次性通过所述一个或多个本地状态中的每个本地状态直到结束本地状态,然后返回到开始本地状态。
所述一个或多个状态被配置在另一循环触发流中;所述另一循环触发流从所述一个或多个状态中的开始状态开始,沿一个方向一次性通过一个或多个状态中的每个状态直到结束状态,然后返回到开始状态;所述一个或多个状态中的每个状态通过所述另一循环触发流中先前状态的完成来触发;所述开始本地状态映射到所述开始状态;以及在获得所述区块链的区块中的所述信息以确定所述工作流的所述当前状态之前,所述方法还包括执行所述区块链合约以将所述当前状态初始化为所述开始状态。
框513包括:响应于确定更新的状态机与所述一个或多个状态中的一个状态相对应,向订阅所述状态的一个或多个订阅者发送通知消息。在一些实施例中,向订阅所述状态的一个或多个订阅者发送通知消息包括:将通知消息放置在消息队列中,以使与所述一个或多个订阅者相关联的所述一个或多个计算设备获得所述通知消息。在一些实施例中,所述通知消息包括指示当前为所述状态的消息。在一些实施例中,所述通知消息包括根据完成所述一个或多个状态中的先前状态而返回的结果。
在一些实施例中,所述方法还包括:获得用于停用该状态的请求;响应于用于停用该状态的请求:生成用于从另一循环触发流规避该状态的区块链交易,并将生成的区块链交易发送到一个或多个区块链节点以添加到区块链中;并且从循环触发流规避映射到该状态的本地状态。
在一些实施例中,所述方法还包括:获得用于重新启用一个状态的请求;响应于用于重新启用该状态的请求:生成用于在另一循环触发流中恢复该状态的区块链交易,并将生成的区块链交易发送至一个或多个区块链节点以添加至区块链;并在另一循环触发流中恢复该状态。
在一些实施例中,所述当前状态能够由一个或多个子状态的订阅者配置为包括所述一个或多个子状态;并且所述方法还包括:建立所述订阅者和所述一个或多个子状态之间的关联,以将与所述一个或多个子状态相关联的通知发送给所述订阅者。在一些实施例中,所述一个或多个子状态形成循环触发流;所述当前状态对于所述一个或多个订阅者是公开的;以及所述一个或多个子状态对于所述一个或多个子状态的订阅者是私有的。
图6示出了根据一些实施例的用于基于区块链的通知的系统610的框图。系统610(例如,计算机系统)可以是上述服务器端118、类似设备或设备的系统、或服务器端118和一个或多个附加设备的组合的实施方式的示例。例如,方法410和/或方法510可以由系统610实施。系统610可以包括一个或多个处理器以及一个或多个非暂态计算机可读存储介质(例如,一个或多个存储器),其耦接到所述一个或多个处理器并被配置有可由所述一个或多个处理器执行的指令,以使得所述系统和设备(例如,处理器)执行所述方法和上述例如方法410、方法510的操作。系统610可以包括与指令(例如,软件指令)相对应的各种单元/模块。
在一些实施例中,系统610可以指基于区块链的通知的装置。该装置可以包括:获得模块611,用于获得区块链的区块中的信息以确定工作流的当前状态,其中,部署在所述区块链中的区块链合约能够被执行,以更新所述工作流的一个或多个状态中的所述当前状态;更新模块612,用于基于所述确定的当前状态更新本地维护的状态机;以及发送模块613,用于响应于确定所述更新的状态机与所述一个或多个状态中的一个状态相对应,向订阅所述状态的一个或多个订阅者发送通知消息。
这里描述的技术由一个或多个专用计算设备实现。专用计算设备可以是台式计算机系统、服务器计算机系统、便携式计算机系统、手持设备、联网设备或任何其他设备或包括硬连线和/或程序逻辑以实现该技术的设备的组合。专用计算设备可以实现为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或其组合。计算设备通常由操作系统软件控制和协调。传统的操作系统控制和调度用于执行的计算机进程,执行存储器管理,提供文件系统、联网、I/O服务,并且提供用户界面功能,例如图形用户界面(“GUI”)等等。本文描述的各种系统、装置、存储介质、模块和单元可以在专用计算设备中实现,或者在一个或多个专用计算设备的一个或多个计算芯片中实现。在一些实施例中,本文描述的指令可以在专用计算设备上的虚拟机中实现。所述指令当被执行时可以促使专用计算设备执行本文描述的各种方法。虚拟机可以包括软件、硬件或其组合。
图7是示出可在其上实现本文所描述的任一实施例的计算机系统700的框图。系统700可执行本文所描述的任何方法(例如,方法410和相关的步骤、方法510和相关的步骤)。系统700可在本文描述的任何系统(例如,系统610、服务器端118)中实现。计算机系统700包括总线702或用于发送信息的其他通信机制、与总线702耦接的用于处理信息的一个或多个硬件处理器704。硬件处理器704可是例如一个或多个通用微处理器。
计算机系统700还包括诸如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备的主存储器706,其耦接到总线702以用于存储信息和可由处理器704执行的指令。主存储器706还可以用于在执行可由(一个或多个)处理器704执行的指令期间存储临时变量或其他中间信息。当这些指令被存储在处理器704可访问的存储介质中时,这些指令将计算机系统700呈现为用于执行指令中所指定的操作而定制的专用机器。计算机系统700进一步包括耦接到总线702、用于存储用于处理器704的静态信息和指令的只读存储器(ROM)708或其他静态存储设备。诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)等的存储设备710被提供,并且被耦接到总线702以用于存储信息和指令。
计算机系统700可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑实现本文描述的技术,其中所述固件和/或程序逻辑与计算机系统相结合使得计算机系统700成为专用机器或将计算机系统700编程为专用机器。根据一个实施例,本文描述的操作、方法和处理由计算机系统700响应于处理器704执行包含在主存储器706中的一个或多个指令的一个或多个序列而执行。这些指令可以从诸如存储设备710的另一存储介质读入主存储器706。包含在主存储器706中的指令的序列的执行促使处理器704执行本文描述的处理步骤。在可选实施例中,可以使用硬连线电路代替软件指令或与软件指令组合。
主存储器706、ROM708和/或存储设备710可以包括非暂态存储介质。如本文所使用的术语“非暂态介质”和类似术语指的是存储使机器以特定方式操作的数据和/或指令的介质,所述介质不包括暂态信号。这种非暂态介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备710。易失性介质包括动态存储器,例如主存储器706。非暂态介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM,NVRAM、任何其他存储器芯片或盒式磁带、以及它们的联网版本。
计算机系统700还包括耦接到总线702的网络接口718。网络接口718提供耦接到一个或多个网络链路的双向数据通信,所述网络链路连接到一个或多个本地网络。例如,网络接口718可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器,用于提供到相应类型的电话线路的数据通信连接。作为另一示例,网络接口718可以是局域网(LAN)卡,用于提供到兼容LAN(或与WAN通信的WAN组件)的数据通信连接。也可以实现无线链路。在任何这样的实现中,网络接口718发送和接收电、电磁或光信号,其携带表示各种类型的信息的数字数据流。
计算机系统700可以通过网络、网络链路和网络接口718发送消息和接收数据,包括程序代码。在因特网示例中,服务器可以通过因特网、ISP、本地网络和网络接口718发送应用程序的请求码。
所接收的代码可以在其被接收时由处理器704执行,和/或存储在存储设备710或其他非易失性存储设备中以供稍后执行。
在前述部分中描述的每个处理、方法和算法可以嵌入由一个或多个计算机系统或包括计算机硬件的计算机处理器执行的代码模块中,并由这些代码模块实现完全或部分自动化。所述处理和算法可以部分地或全部地在专用电路中实现。
上述各种特征和处理可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合都将落入本文范围内。另外,在一些实施方式中可以省略某些方法或处理框。本文所描述的方法和处理也不限于任何特定顺序,且与其相关的框图或状态可以以其他适当顺序执行。例如,所描述的框图或状态可以以不同于具体公开的次序执行,或者多个框图或状态可以被组合在单个框图或状态中。框图或状态的示例可以以串行、并行或以某种其他方式执行。可以向所公开的实施例添加框图或状态或从所公开的实施例中移除框图或状态。本文所描述的系统和组件的示例可被配置成与所述的不同。例如,与所公开的实施例相比,元件可以被添加到所公开的实施例、被从所公开的实施例移除或被重新布置。
本文所描述方法的各种操作可至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器执行。无论是临时配置还是永久配置,这样的处理器可以构成处理器实现的引擎,运行该引擎以执行本文描述的一个或多个操作或功能。
类似地,本文描述的方法可以至少部分地由处理器实现,特定处理器或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或多个处理器或处理器实现引擎执行。此外,一个或多个处理器还可在“云计算”环境中操作或作为“软件即服务”(SaaS)运行以支持相关操作中的性能。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)和经由一个或多个适当的接口(例如,应用程序接口(API))访问。
某些操作的性能可以分布在处理器之间,不仅是驻留在单个机器内,而是跨多个机器部署。在一些实施例中,处理器或处理器实现引擎可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他实施例中,处理器或处理器实现的引擎可以分布在多个地理位置上。
在本文中,多个实例可以实现作为单个实例描述的组件、操作或结构。尽管一个或多个方法的各个操作被示出并描述为独立的操作,这些独立的操作中的一个或多个可以被同时执行,并且不要求这些操作以所示的顺序执行。在配置中作为独立组件呈现的结构和功能可以被实现为组合结构或组件。类似地,作为单个组件呈现的结构和功能可以被实现为独立的组件。这些和其他变化、修改、添加和改进都落入本文的主题的范围内。此外,本文所用的相关术语(例如“第一”、“第二”、“第三”等)不表示任何顺序、高度或重要性,而是用来将一个元件与另一个元件区分开。此外,术语“一”、“一个”和“多个”不表示对本文中数量的限制,而是表示存在至少一个所提及的物品。
尽管已经参考具体实施例描述了主题的概述,但是在不脱离本文的实施例的较宽范围的情况下,可以对这些实施例进行各种修改和改变。具体说明不应被理解为限制性的,并且各实施例的范围仅由所附权利要求书以及这些权利要求书所享有的等效物的全部范围来定义。

Claims (14)

1.一种计算机实现的用于基于区块链的通知的方法,包括:
获得区块链的区块中的信息以确定工作流的当前状态,其中,部署在所述区块链中的区块链合约能够被执行,以在所述工作流的一个或多个状态中更新所述当前状态;
基于所确定的当前状态更新本地维护的状态机,其中:
所述本地维护的状态机包括一个或多个本地状态,所述一个或多个本地状态分别映射到所述工作流的所述一个或多个状态;
所述一个或多个本地状态被配置在循环触发流中;
所述一个或多个状态被配置在另一循环触发流中;
所述另一循环触发流以所述一个或多个状态中的开始状态开始,沿一个方向一次性通过所述一个或多个状态中的每个状态直到结束状态,并返回到所述开始状态;
所述一个或多个状态中的每个状态通过所述另一循环触发流中先前状态的完成来触发;
开始本地状态被映射到所述开始状态;以及
在获得所述区块链的区块中的信息以确定所述工作流的当前状态之前,所述方法还包括执行所述区块链合约以将所述当前状态初始化为所述开始状态;以及
响应于确定所述更新的状态机与所述一个或多个状态中的一个状态相对应,向订阅所述状态的一个或多个订阅者发送通知消息。
2.如权利要求1所述的方法,其中,获得所述区块链的区块中的信息以确定所述工作流的当前状态包括:
获得所述区块链的一个或多个区块中的区块链交易,其中,所述区块链交易触发所述区块链合约的执行以更新所述工作流的当前状态;以及
根据所述获得的区块链交易确定所述工作流的当前状态。
3.如权利要求1或2所述的方法,在获得所述区块链的区块中的信息以确定所述工作流的当前状态之前,还包括:
获得指示完成所述一个或多个状态中的先前状态的回复消息。
4.如权利要求1所述的方法,在获得所述区块链的区块中的信息以确定所述工作流的当前状态之前,还包括:
获得所述状态的先前状态的更新;
生成用于更新所述先前状态的区块链交易;以及
将所述区块链交易发送至一个或多个区块链节点,以添加到所述区块链中并促使所述工作流的当前状态更新至所述状态。
5.如权利要求1所述的方法,其中,所述通知消息包括:
指示当前为所述状态的消息,以及
根据完成所述一个或多个状态中的先前状态而返回的结果。
6.如权利要求1所述的方法,其中:
所述循环触发流从所述一个或多个本地状态中的开始本地状态开始,沿一个方向一次性通过所述一个或多个本地状态中的每个本地状态直到结束本地状态,并返回到所述开始本地状态。
7.如权利要求1所述的方法,还包括:
获得用于停用所述状态的请求;以及
响应于所述用于停用所述状态的请求:
生成用于从所述另一循环触发流规避所述状态的区块链交易,并将所生成的区块链交易发送到一个或多个区块链节点以添加到所述区块链;以及
从所述循环触发流规避映射到所述状态的本地状态。
8.如权利要求7所述的方法,还包括:
获得用于重新启用所述状态的请求;以及
响应于所述用于重新启用所述状态的请求:
生成用于恢复所述另一循环触发流中的所述状态的区块链交易,并将所生成的区块链交易发送到一个或多个区块链节点以添加到所述区块链;以及
恢复所述循环触发流中映射到所述状态的所述本地状态。
9.如权利要求1所述的方法,其中:
所述一个或多个状态中的每个状态能够由一个或多个子状态的订阅者配置为包括所述一个或多个子状态;并且
所述方法还包括:建立所述订阅者和所述一个或多个子状态之间的关联,以将与所述一个或多个子状态相关联的通知发送给所述订阅者。
10.如权利要求9所述的方法,其中:
所述一个或多个子状态形成循环触发流;
所述当前状态对于所述一个或多个状态的订阅者是公开的;并且
所述一个或多个子状态对于所述一个或多个子状态的订阅者是私有的。
11.如权利要求1所述的方法,其中,向订阅所述状态的所述一个或多个订阅者发送通知消息包括:
将通知消息放置在消息队列中,以使与所述一个或多个订阅者相关联的一个或多个计算设备获得所述通知消息。
12.一种用于基于区块链的通知的系统,包括:
一个或多个处理器;以及
耦接到所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令能够由所述一个或多个处理器执行以执行如权利要求1至11中任一项所述的方法。
13.一种用于基于区块链的通知的装置,包括用于执行如权利要求1至11中任一项所述方法的多个模块。
14.一种其上存储有指令的非暂态计算机可读介质,所述指令在由设备的处理器执行时,促使所述设备执行如权利要求1至11中任一项所述的方法。
CN201980004636.4A 2019-08-27 2019-08-27 用于基于区块链的通知的系统和方法 Active CN111213135B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/102885 WO2019228552A2 (en) 2019-08-27 2019-08-27 System and method for blockchain-based notification

Publications (2)

Publication Number Publication Date
CN111213135A CN111213135A (zh) 2020-05-29
CN111213135B true CN111213135B (zh) 2023-11-21

Family

ID=68699002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980004636.4A Active CN111213135B (zh) 2019-08-27 2019-08-27 用于基于区块链的通知的系统和方法

Country Status (5)

Country Link
US (2) US10719377B2 (zh)
EP (1) EP3688620B1 (zh)
CN (1) CN111213135B (zh)
SG (1) SG11202003877VA (zh)
WO (1) WO2019228552A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202003875YA (en) 2019-08-27 2020-05-28 Advanced New Technologies Co Ltd System and method for registering subscribable states in blockchain
EP3688702B1 (en) * 2019-08-27 2022-03-02 Advanced New Technologies Co., Ltd. System and method for blockchain-based notification
EP3688620B1 (en) 2019-08-27 2021-10-20 Advanced New Technologies Co., Ltd. System and method for blockchain-based notification
SG11202003810RA (en) 2019-08-27 2020-05-28 Advanced New Technologies Co Ltd System and method for registering subscribable sub-states in blockchain
CN110928534B (zh) * 2019-10-14 2021-11-09 上海唯链信息科技有限公司 一种基于区块链的工作流节点认证方法及装置
EP3926506A1 (de) * 2020-06-19 2021-12-22 Siemens Aktiengesellschaft Computer-implementiertes verfahren zur speicherung von abonnementdaten in einem netzwerk vernetzter recheneinheiten, computerprogramm und netzwerk
CN112052021B (zh) * 2020-08-12 2024-08-20 中钞信用卡产业发展有限公司杭州区块链技术研究院 联盟区块链升级的方法、装置、设备及存储介质
CN113505319A (zh) * 2021-07-27 2021-10-15 上海点融信息科技有限责任公司 为BaaS平台上的搜索引擎更新检索内容的方法、装置及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108665372A (zh) * 2018-04-28 2018-10-16 腾讯科技(深圳)有限公司 基于区块链的信息处理、查询、储存方法和装置
CN109274573A (zh) * 2018-07-12 2019-01-25 华泰证券股份有限公司 一种融合区块链技术的即时消息系统、方法及应用
CN109471744A (zh) * 2018-11-21 2019-03-15 北京蓝石环球区块链科技有限公司 基于区块链的主链加并行多子链系统架构
CN110059494A (zh) * 2019-04-17 2019-07-26 深圳市路云区链网络科技有限公司 一种区块链交易数据的隐私保护方法及区块链系统

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060074704A1 (en) 2004-10-01 2006-04-06 Microsoft Corporation Framework to model cross-cutting behavioral concerns in the workflow domain
US20120227044A1 (en) 2011-03-03 2012-09-06 Tata Consultancy Services Limited Automated workflow manager
US10310824B2 (en) 2011-09-07 2019-06-04 Imagine Communications Corp. Distributed ledger platform for computing applications
US10628578B2 (en) 2013-03-15 2020-04-21 Imagine Communications Corp. Systems and methods for determining trust levels for computing components using blockchain
US11030860B2 (en) 2014-08-06 2021-06-08 Lottery Now, Inc. Systems for multiple legal game providers with digital ledger
US10095549B1 (en) 2015-09-29 2018-10-09 Amazon Technologies, Inc. Ownership transfer account service in a virtual computing environment
WO2018006072A1 (en) * 2016-06-30 2018-01-04 Clause, Inc. Systems and method for forming, storing, managing,and executing contracts
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
EP3516550A4 (en) 2016-09-20 2020-05-13 Nant Holdings IP, LLC SAMPLE TRACKING THROUGH SAMPLE TRACKING CHAINS, SYSTEMS AND METHODS
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
US11146535B2 (en) 2016-10-12 2021-10-12 Bank Of America Corporation System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network
US20180225661A1 (en) 2017-02-07 2018-08-09 Microsoft Technology Licensing, Llc Consortium blockchain network with verified blockchain and consensus protocols
EP3559882A1 (en) 2017-03-22 2019-10-30 NEC Laboratories Europe GmbH Method for operating a blockchain
US20180285996A1 (en) 2017-04-03 2018-10-04 FutureLab Consulting Inc. Methods and system for managing intellectual property using a blockchain
US11055703B2 (en) 2017-06-19 2021-07-06 Hitachi, Ltd. Smart contract lifecycle management
US10944546B2 (en) 2017-07-07 2021-03-09 Microsoft Technology Licensing, Llc Blockchain object interface
US11037082B2 (en) * 2017-08-02 2021-06-15 Intuit, Inc. Workflow management via block chains
US20190058709A1 (en) 2017-08-16 2019-02-21 Telefonaktiebolaget Lm Ericsson (Publ) Tenant management method and system in a cloud computing environment
US11063744B2 (en) 2017-10-20 2021-07-13 Sap Se Document flow tracking using blockchain
US11042934B2 (en) 2017-11-13 2021-06-22 Bank Of America Corporation Crypto-machine learning enabled blockchain based profile pricer
US11354615B2 (en) 2017-11-21 2022-06-07 International Business Machines Corporation Blockchain-implemented digital agreement management for digital twin assets
US11205178B2 (en) * 2017-12-28 2021-12-21 International Business Machines Corporation Converting processes into multiple blockchain smart contracts
US11210369B2 (en) 2018-01-19 2021-12-28 Nasdaq, Inc. Systems and methods of digital content certification and verification using cryptography and blockchain
US20190251199A1 (en) * 2018-02-14 2019-08-15 Ivan Klianev Transactions Across Blockchain Networks
CN108573341B (zh) * 2018-03-23 2021-09-14 杭州云象网络技术有限公司 一种基于联盟链的工作流系统构建方法
US20190303932A1 (en) 2018-03-28 2019-10-03 NEC Laboratories Europe GmbH Method and system for verifying policy compliance of transactions in a blockchain executing smart contracts
US11677542B2 (en) 2018-05-17 2023-06-13 International Business Machines Corporation Ad-hoc smart contract generation in a blockchain
US10832217B2 (en) 2018-06-20 2020-11-10 Adp, Llc Blockchain-based workflow system
US20190392178A1 (en) 2018-06-26 2019-12-26 bootstrap legal Inc. Method and System for Monitoring a Smart Contract on a Distributed Ledger
US11196551B2 (en) 2018-06-27 2021-12-07 International Business Machines Corporation Automated task management on a blockchain based on predictive and analytical analysis
EP3545664A4 (en) 2018-11-07 2020-01-01 Alibaba Group Holding Limited MANAGEMENT OF PRIVATE TRANSACTIONS ON BLOCK CHAIN NETWORKS BASED ON WORKFLOWS
CN109544078B (zh) 2018-11-29 2021-04-02 东莞市大易产业链服务有限公司 一种基于区块链技术的货物管理方法
SG11201906835VA (en) * 2018-12-13 2019-08-27 Alibaba Group Holding Ltd Event-driven blockchain workflow processing
CN109767213A (zh) 2018-12-27 2019-05-17 平安科技(深圳)有限公司 基于区块链的供应链信息处理方法、装置、设备及介质
CN109767190A (zh) 2018-12-29 2019-05-17 中国工商银行股份有限公司 基于区块链的跨机构工作流处理方法、平台及系统
US20200265511A1 (en) 2019-02-19 2020-08-20 Adp, Llc Micro-Loan System
CN110111078A (zh) 2019-05-08 2019-08-09 北京智签科技有限公司 基于区块链的电子合同手动履约管理方法及系统
SG11202003875YA (en) 2019-08-27 2020-05-28 Advanced New Technologies Co Ltd System and method for registering subscribable states in blockchain
EP3688702B1 (en) 2019-08-27 2022-03-02 Advanced New Technologies Co., Ltd. System and method for blockchain-based notification
EP3688620B1 (en) 2019-08-27 2021-10-20 Advanced New Technologies Co., Ltd. System and method for blockchain-based notification
SG11202003810RA (en) 2019-08-27 2020-05-28 Advanced New Technologies Co Ltd System and method for registering subscribable sub-states in blockchain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108665372A (zh) * 2018-04-28 2018-10-16 腾讯科技(深圳)有限公司 基于区块链的信息处理、查询、储存方法和装置
CN109274573A (zh) * 2018-07-12 2019-01-25 华泰证券股份有限公司 一种融合区块链技术的即时消息系统、方法及应用
CN109471744A (zh) * 2018-11-21 2019-03-15 北京蓝石环球区块链科技有限公司 基于区块链的主链加并行多子链系统架构
CN110059494A (zh) * 2019-04-17 2019-07-26 深圳市路云区链网络科技有限公司 一种区块链交易数据的隐私保护方法及区块链系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘雄文 ; .多区块链交易分发和事件处理的系统方案.计算机科学.2018,(S2),全文. *

Also Published As

Publication number Publication date
WO2019228552A2 (en) 2019-12-05
WO2019228552A3 (en) 2020-06-11
US10908974B2 (en) 2021-02-02
CN111213135A (zh) 2020-05-29
EP3688620A2 (en) 2020-08-05
US20200241937A1 (en) 2020-07-30
EP3688620B1 (en) 2021-10-20
US10719377B2 (en) 2020-07-21
US20200125427A1 (en) 2020-04-23
SG11202003877VA (en) 2020-05-28
EP3688620A4 (en) 2020-11-04

Similar Documents

Publication Publication Date Title
CN111213135B (zh) 用于基于区块链的通知的系统和方法
CN111133428B (zh) 在区块链中注册可订阅状态的系统和方法
CN111183444B (zh) 在区块链中注册可订阅子状态的系统和方法
CN111226199B (zh) 用于基于区块链的通知的系统和方法
EP3799635B1 (en) System and method for implementing a blockchain-based decentralized application
CN112513900B (zh) 用于共识管理的系统和方法
CN116932564A (zh) 用于更新区块链中的数据的系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40029706

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240919

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Ant Chain Technology Co.,Ltd.

Country or region after: Singapore

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: Cayman Islands