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

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

Info

Publication number
CN111226199B
CN111226199B CN201980004465.5A CN201980004465A CN111226199B CN 111226199 B CN111226199 B CN 111226199B CN 201980004465 A CN201980004465 A CN 201980004465A CN 111226199 B CN111226199 B CN 111226199B
Authority
CN
China
Prior art keywords
state
blockchain
states
workflow
sub
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
CN201980004465.5A
Other languages
English (en)
Other versions
CN111226199A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies 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
Priority to CN202210238374.1A priority Critical patent/CN114579335A/zh
Publication of CN111226199A publication Critical patent/CN111226199A/zh
Application granted granted Critical
Publication of CN111226199B publication Critical patent/CN111226199B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • 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
    • 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
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/546Message passing systems or structures, e.g. queues
    • 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
    • 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)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Multimedia (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Human Resources & Organizations (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Educational Administration (AREA)
  • Bioethics (AREA)
  • Game Theory and Decision Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Retry When Errors Occur (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中的区块链节点)服务并且有效地依赖于全量节点来访问区块链的更多功能。通过安装适当的软件,可以在诸如膝上型电脑、移动电话等的电子设备中实现轻量节点。在一个实施例中,区块链用户侧计算设备可以将区块链交易发送到区块链系统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)并进行相应的更新。每个区块链节点的硬件机器可以访问一个或多个虚拟机,所述虚拟机可以是相应的区块链节点的一部分或耦接到相应的区块链节点。每次都可以触发相应的本地VM来执行区块链交易。同样,将执行新区块中的所有其他区块链交易。轻节点也可与更新的区块链同步。
图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,在一些实施例中,该本地维护的状态机可以包括分别映射到在区块链中注册的工作流的一个或多个状态(例如,状态1、状态2、状态3、状态4)的一个或多个本地状态(例如,本地状态L1、本地状态L2、本地状态L3、本地状态L4)。如图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。每个状态可以不对应于功能、对应于一个或多个订阅者的一个功能或对应于一个或多个订阅者的多个功能。每个子状态可以不对应于功能,或对应于订阅者的一个或多个功能。
在一些实施例中,功能可以包括执行特定任务的程序的已命名部分。在一个实施例中,功能可以是一种过程或例程。函数可能会也可能不会返回值。例如,执行功能H2可以触发以预定格式对接收到的订单进行编译,并且一旦当前为状态2时,就代表卖方自动签名以批准该订单。
在一些实施例中,响应于功能的执行完成,客户端侧计算设备可以向计算设备(例如,服务器端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可以包括以各种顺序或并行执行的附加的、更少的或替代的步骤。方法410可以对应于以上参考图3A至图3C描述的各个步骤。方法410的进一步细节可以参考图1至图3C以及上面的相关描述。
在一些实施例中,在步骤411,客户端侧计算设备111a可以通过可选网关319与服务器端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的通知消息,从而消耗该通知消息。或者,服务器端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可以调用并执行一种或多种相应的算法。例如,执行功能H2可以触发以预定格式对接收到的订单进行编译,并且一旦当前为状态2,代表卖方自动签名以批准该订单。
在步骤444,MQ服务488可以更新状态(例如,状态3)。例如,MQ服务488可以将该状态的状态更新为完成。
在步骤445和步骤446,MQ服务488可以通过可选网关319生成回复消息,并向服务器端118发送该回复消息。回复消息可以包括状态的更新,例如完成状态、更新的执行结果等。步骤445和446可以类似于上述步骤432,除了步骤445和446发送针对当前状态的更新,而步骤432发送针对先前状态的更新。因此,可以将图4C和图4D组合入一个流程,并且在工作流的各状态中重复进行。
图5示出了根据本文的一些实施例的用基于区块链的通知的示例性方法510的流程图。方法510可以由用于基于区块链的通知的设备、装置或系统(例如,服务器端118)执行。方法510可以由图1的环境100的一个或多个组件(例如,服务器端118)执行。服务器端118可以实现区块链即服务(BaaS)。服务器端118可以包括一个或多个服务器或其他计算设备。方法510可以由包括各种硬件机器和/或软件的系统或设备(例如,计算机、服务器)实现。例如,系统或设备可以包括一个或多个处理器以及一个或多个非暂时性计算机可读存储介质(例如,一个或多个存储器),所述一个或多个非暂时性计算机可读存储介质耦接到一个或多个处理器并配置有可由一个或多个处理器执行以使得系统或设备(例如,处理器)执行方法510的指令。
以下呈现的方法510的操作旨在是示意性的。取决于实施例,方法510可以包括以各种顺序或并行执行的附加的、更少的或替代的步骤。方法510的进一步细节可以参考图1至图4D以及上面的相关描述。参考图1至图4D来描述的基于区块链的通知的步骤,包括在方法510中。
框511包括从计算设备获得指示工作流的当前状态是该工作流的一个或多个状态中的一个状态的通知消息,其中,部署在区块链中的区块链合约可以被执行,以在工作流的一个或多个状态中更新当前状态。在一些实施例中,从计算设备获得指示工作流的当前状态是工作流的一个状态的通知消息包括:连接到计算设备放置通知消息的消息队列;以及从该消息队列中获得通知消息。
在一些实施例中,在框511之前,计算设备被配置为:获得区块链的一个或多个区块中的信息以确定当前状态;基于所确定的当前状态更新本地维护的状态机;确定更新的状态机是否对应于该状态;以及响应于确定更新的状态机对应于该状态,为订阅该状态的一个或多个订阅者生成通知消息。
在一些实施例中,所述本地维护的状态机包括分别映射到一个或多个状态的一个或多个本地状态;并且一个或多个状态被注册在区块链中。在一些实施例中,所述一个或多个本地状态被配置在循环触发流中;该循环触发流从一个或多个本地状态中的开始本地状态开始,在一个方向上一次性通过所述一个或多个本地状态中的每个状态,直到结束本地状态,然后返回到开始本地状态。在一些实施例中,一个或多个状态被配置在另一循环触发流中;该另一循环触发流从一个或多个状态的开始状态开始,在一个方向上一次性通过所述一个或多个状态的每个状态,直到结束状态,然后返回到开始状态;一个或多个状态中的每个状态通过另一循环触发流中先前状态的完成来触发;并且开始本地状态被映射到开始状态。
在一些实施例中,该一个状态可被配置为,响应于停用该状态的通知,而被从另一循环触发流规避;并且映射到该一个状态的本地状态可被配置为,响应于停用该状态的通知而被从循环触发流规避。
在一些实施例中,该一个状态可被配置为,响应于重新启用该状态的通知而被恢复在另一循环触发流中;并且映射到该状态的本地状态可被配置为,响应于重新启用该状态的通知而被恢复在循环触发流中。
在一些实施例中,一个或多个状态中的每个状态可以由一个或多个子状态的订阅者配置为包括所述一个或多个子状态;所述方法还包括:建立订阅者与一个或多个子状态之间的关联,以将与所述一个或多个子状态相关联的通知发送给所述订阅者。
在一些实施例中,一个或多个子状态形成循环触发流;一个或多个状态对一个或多个订阅者是公开的;并且一个或多个子状态对一个或多个子状态的订阅者是私有的。
框512包括响应于通知消息,执行与所述状态相关联的功能。在一些实施例中,该功能可由所述状态的订阅者配置。
框513包括响应于功能的执行完成,向计算设备发送回复消息以指示与所述状态相关联的功能的执行完成。
在一些实施例中,向计算设备发送回复消息以指示与所述状态相关联的功能的执行完成,包括:向计算设备发送所述状态的更新,以使计算设备开始从区块链获得信息,以重新确定当前状态。
在一些实施例中,向计算设备发送回复消息以指示与所述状态相关联的功能的执行完成,包括:向计算设备发送回复消息,以使计算设备生成用于更新所述状态的区块链交易,并将区块链交易发送到一个或多个区块链节点以添加到区块链,从而促使工作流的当前状态被更新为所述状态之后的状态。
图6示出了根据一些实施例的用于基于区块链的通知的系统610的框图。系统610(例如,计算机系统)可以是上述服务器端118、类似设备或设备的系统、或服务器端118和一个或多个附加设备的组合的实施方式的示例。例如,方法440和/或方法510可以由系统610实现。系统610可以包括一个或多个处理器以及一个或多个非暂时性计算机可读存储介质(例如,一个或多个存储器),所述一个或多个非暂时性计算机可读存储介质耦合到一个或多个处理器并配置有可由一个或多个处理器执行以促使系统或设备(例如,处理器)执行上述方法和操作,例如方法440、方法510。系统610可以包括与指令(例如,软件指令)相对应的各种单元/模块。
在一些实施例中,系统610可以被称为用于基于区块链的通知的装置。该装置可以包括:获得模块611,用于从计算设备获得指示工作流的当前状态是工作流的一个或多个状态中的一个状态的通知消息,其中,部署在区块链中的区块链合约可以被执行以在工作流的一个或多个状态中更新当前状态;处理模块612,用于响应于通知消息,执行与一个状态相关联的功能;以及发送模块613,用于响应于所述功能的执行完成,向计算设备发送回复消息以指示与所述一个状态相关联的所述功能的执行完成。
这里描述的技术由一个或多个专用计算设备实现。专用计算设备可以是台式计算机系统、服务器计算机系统、便携式计算机系统、手持设备、联网设备或任何其他设备或包括硬连线和/或程序逻辑以实现该技术的设备的组合。专用计算设备可以被实现为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板电脑、可穿戴设备或其组合。计算设备通常由操作系统软件控制和协调。传统的操作系统控制并调度用于执行的计算机进程,执行存储器管理,提供文件系统、联网、I/O服务,并且提供用户界面功能,例如图形用户界面(“GUI”)等等。本文描述的各种系统、装置、存储介质、模块和单元可以在专用计算设备中实现,或者在一个或多个专用计算设备的一个或多个计算芯片中实现。在一些实施例中,这里描述的指令可以在专用计算设备上的虚拟机中实现。当被执行时,指令可以促使专用计算设备执行本文描述的各种方法。虚拟机可以包括软件、硬件或其组合。
图7是示出了可以在其上实现本文描述的任何实施例的计算机系统700的框图。系统700可以执行本文描述的任何方法(例如,方法440和相关步骤,方法510和相关步骤)。系统700可以在本文描述的任何系统(例如,系统610、服务器端118)中实现。计算机系统700包括总线702或用于发送信息的其他通信机制、与总线702耦接的用于处理信息的一个或多个硬件处理器704。硬件处理器704可以是例如一个或多个通用微处理器。
计算机系统700还包括耦接到总线702用于存储信息和可由处理器704执行的指令的主存储器706,诸如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备。主存储器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、ROM 708和/或存储设备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 (12)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210238374.1A Division CN114579335A (zh) 2019-08-27 2019-08-27 用于基于区块链的通知的系统和方法

Publications (2)

Publication Number Publication Date
CN111226199A CN111226199A (zh) 2020-06-02
CN111226199B true CN111226199B (zh) 2022-02-18

Family

ID=68699006

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980004465.5A Active CN111226199B (zh) 2019-08-27 2019-08-27 用于基于区块链的通知的系统和方法
CN202210238374.1A Pending CN114579335A (zh) 2019-08-27 2019-08-27 用于基于区块链的通知的系统和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210238374.1A Pending CN114579335A (zh) 2019-08-27 2019-08-27 用于基于区块链的通知的系统和方法

Country Status (5)

Country Link
US (3) US10713100B2 (zh)
EP (1) EP3688702B1 (zh)
CN (2) CN111226199B (zh)
SG (1) SG11202003928RA (zh)
WO (1) WO2019228554A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019228552A2 (en) 2019-08-27 2019-12-05 Alibaba Group Holding Limited 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
EP3688686A4 (en) 2019-08-27 2020-11-11 Advanced New Technologies Co., Ltd. SYSTEM AND PROCEDURE FOR THE REGISTRATION OF SUBSCRIBABLE SUBSTATES IN A BLOCKCHAIN
WO2019228554A2 (en) * 2019-08-27 2019-12-05 Alibaba Group Holding Limited System and method for blockchain-based notification
CN112104749B (zh) * 2020-11-09 2021-02-05 浙江甲骨文超级码科技股份有限公司 一种基于区块链的条码标签生命周期管理方法和装置
CN113067898B (zh) * 2021-06-02 2021-08-10 支付宝(杭州)信息技术有限公司 为业务流程合约调度计算服务的方法

Family Cites Families (42)

* 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
US10923215B2 (en) 2016-09-20 2021-02-16 Nant Holdings Ip, Llc Sample tracking via 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
US10484346B2 (en) 2017-02-07 2019-11-19 Microsoft Technology Licensing, Llc Establishment of consortium blockchain network
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
CN107103054B (zh) * 2017-04-12 2019-03-26 北京航空航天大学 一种私有区块链的智能合约异步执行存储系统与实现方法
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
WO2019143936A1 (en) 2018-01-19 2019-07-25 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
CA3041162A1 (en) 2018-11-07 2019-04-18 Alibaba Group Holding Limited Managing private transactions on blockchain networks based on workflow
CN109544078B (zh) 2018-11-29 2021-04-02 东莞市大易产业链服务有限公司 一种基于区块链技术的货物管理方法
KR102121159B1 (ko) 2018-12-13 2020-06-10 알리바바 그룹 홀딩 리미티드 이벤트-구동 블록체인 워크플로우 프로세싱
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 北京智签科技有限公司 基于区块链的电子合同手动履约管理方法及系统
SG11202003810RA (en) * 2019-08-27 2020-05-28 Advanced New Technologies Co Ltd System and method for registering subscribable sub-states in blockchain
EP3688686A4 (en) * 2019-08-27 2020-11-11 Advanced New Technologies Co., Ltd. SYSTEM AND PROCEDURE FOR THE REGISTRATION OF SUBSCRIBABLE SUBSTATES IN A BLOCKCHAIN
WO2019228552A2 (en) * 2019-08-27 2019-12-05 Alibaba Group Holding Limited System and method for blockchain-based notification
WO2019228554A2 (en) * 2019-08-27 2019-12-05 Alibaba Group Holding Limited System and method for blockchain-based notification

Also Published As

Publication number Publication date
WO2019228554A2 (en) 2019-12-05
US10754716B2 (en) 2020-08-25
WO2019228554A3 (en) 2020-07-02
US20200241938A1 (en) 2020-07-30
US10713100B2 (en) 2020-07-14
US20200125428A1 (en) 2020-04-23
WO2019228554A8 (en) 2020-09-03
CN111226199A (zh) 2020-06-02
CN114579335A (zh) 2022-06-03
US20200310892A1 (en) 2020-10-01
SG11202003928RA (en) 2020-05-28
EP3688702B1 (en) 2022-03-02
EP3688702A2 (en) 2020-08-05
EP3688702A4 (en) 2020-11-11
US10877821B2 (en) 2020-12-29

Similar Documents

Publication Publication Date Title
CN111226199B (zh) 用于基于区块链的通知的系统和方法
CN111213135B (zh) 用于基于区块链的通知的系统和方法
CN111133428B (zh) 在区块链中注册可订阅状态的系统和方法
US11429617B2 (en) System and method for blockchain-based data synchronization
CN111183444B (zh) 在区块链中注册可订阅子状态的系统和方法
CN112513900B (zh) 用于共识管理的系统和方法
CN111095236A (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
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.

REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40031035

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant