CN111066047B - 实现基于区块链的工作流 - Google Patents

实现基于区块链的工作流 Download PDF

Info

Publication number
CN111066047B
CN111066047B CN201980004097.4A CN201980004097A CN111066047B CN 111066047 B CN111066047 B CN 111066047B CN 201980004097 A CN201980004097 A CN 201980004097A CN 111066047 B CN111066047 B CN 111066047B
Authority
CN
China
Prior art keywords
state
workflow
blockchain network
blockchain
client service
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
CN201980004097.4A
Other languages
English (en)
Other versions
CN111066047A (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
Publication of CN111066047A publication Critical patent/CN111066047A/zh
Application granted granted Critical
Publication of CN111066047B publication Critical patent/CN111066047B/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • 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)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Accounting & Taxation (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本文公开了用于实现基于区块链的工作流的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括接收工作流规范,该工作流规范指示将由区块链网络上的智能合约执行的一个或多个状态转换方法,以及将由位于区块链网络之外的参与工作流的一个或多个客户端设备执行的一个或多个客户端服务方法。所述智能合约是根据所述工作流程规范生成的,并且包括所述一个或多个状态转换方法。根据所述工作流规范为一个或多个客户端设备中的每一个客户端设备生成可配置的客户端服务逻辑,且该可配置的客户端服务逻辑包括所述一个或多个客户端服务方法。将所述智能合约部署到所述区块链网络。

Description

实现基于区块链的工作流
技术领域
本文涉及实现基于区块链的工作流。
背景技术
分布式账本系统(DLS),也可称为共识网络和/或区块链网络,使得参与的实体能够安全且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络类型的示例可以包括公共区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络为选择的实体组群提供,该实体组群控制共识处理,并且联盟区块链网络包括访问控制层。
工作流通常包括用于完成任务的一系列活动。可以使用软件工具将工作流自动化,所述软件工具应用规则以决定是否已经成功完成了一个步骤以及何时可以开始下一个步骤。在某些情况下,工作流系统可以被设计为组成和执行一系列计算或数据操作步骤。但是,实现工作流系统的复杂性可能导致工作流系统的处理效率低下。因此,需要用于提高工作流系统效率的解决方案。
发明内容
本文描述了用于实现基于区块链的工作流的技术。这些技术通常涉及实现基于区块链网络的工作流系统。工作流可用于高速公路建设、飞机制造、造船、电子商务或任何其他用途。在一些实施例中,将工作流与区块链网络集成可以帮助简化工作流的实施方式并提高工作流系统的安全性和效率。
本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。
本文还提供了用于实施本文提供的所述方法的系统。该系统包括一个或多个处理器以及耦接到一个或多个处理器且其上存储有指令的计算机可读存储介质,当该指令由一个或多个处理器执行时,将促使一个或多个处理器根据本文提供的方法的实施方式执行操作。
应了解,依据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。
以下在附图和描述中阐述了本文的一个或多个实施方式的细节。根据说明书和附图以及权利要求书,本文的其他特征和优点将显现。
附图说明
图1是示出可用于执行本文的实施方式的环境的示例的示图。
图2是示出根据本文的实施方式的架构的示例的示图。
图3是示出根据本文的实施方式的工作流系统的示例的示图。
图4是描绘了可根据本文实施方式执行的处理的示例的信号流。
图5是描绘了可根据本文实施方式执行的处理的流程图。
图6描绘了根据本文实施例的装置的模块的示例。
在各个附图中,相同的附图标记和名称表示相同的元件。
具体实施方式
本文描述了用于实现基于区块链的工作流的技术。这些技术通常涉及实现基于区块链网络的工作流系统。工作流可用于高速公路建设、飞机制造、造船、电子商务或任何其他用途。在一些实施例中,将工作流与区块链网络集成可以帮助简化工作流的实施并提高工作流系统的安全性和效率。
本文中描述的技术产生若干技术效果。在一些实施例中,为了实现基于区块链的工作流,提供了工作流规范以用于生成在区块链网络上执行的智能合约和要在区块链网络外执行的用于一个或多个客户端设备的可配置的客户端服务逻辑。本文所描述的技术可以将客户端侧的客户端服务逻辑与区块链侧的智能合约集成在一起,以实现工作流。在一些实施例中,智能合约包括一个或多个状态转换方法,并且可配置的客户端服务逻辑包括一个或多个客户端服务方法。基于区块链的工作流可以包括智能合约中的一个或多个状态转换方法,以及可配置的客户端服务逻辑中的一个或多个客户端服务方法。
在一些实施例中,智能合约将工作流的状态和指示状态改变的事件存储到区块链网络上的日志文件中。通过将状态和事件存储在区块链网络上的日志文件中,由于区块链网络上的日志文件是不可篡改的,因此有关工作流处理状态的信息(即工作流的状态)可以更加安全可靠。在一些实施例中,记录在区块链网络中的状态和事件的改变可以自动触发要在区块链网络外执行的一个或多个客户端服务方法。恶意行动者无法篡改有关工作流的状态和事件的信息,以破坏网络或干扰工作流的正常运行。这样,所描述的技术可以提高工作流系统的安全性。
在一些实施例中,所述工作流可以是多个参与者之间联合的或协作的工作流,其中每个参与者可以与客户端设备(例如,执行客户端服务逻辑的客户端设备)或区块链网络上的网络节点(例如,能够执行智能合约的共识节点或非共识节点)相关联。在一些实施例中,可以实现基于区块链的多方工作流,以促进根据工作流规范自动生成智能合约(例如,存储区块链网络的状态,生成状态转换方法,以及为状态转换方法提供角色权限控制)。在一些实施例中,多方协作的工作流的参与者可以根据各自需求定义工作流规范中的相应部分,并各自执行客户端服务逻辑的客户端服务方法。在一些实施例中,多方协作的工作流可以提供定义的接口,以使多方协作工作流中的每个参与者与区块链网络进行交互,从而减轻客户端设备设计或协商彼此之间的兼容接口的负担。在一些实施例中,工作流的客户端设备可以专注于客户端服务方法的实现,而无需在客户端设备和智能合约如何彼此交互的细节上花费过多的精力。在一些实施例中,多方协作工作流可以具有更好的可扩展性并且对参与者更用户友好。所描述的技术有助于简化多方协作的工作流的实施并提高工作流系统的效率。
为了提供本文的实施例的进一步的上下文,并且如上所述,分布式账本系统(DLS),也可以被称为共识网络(例如,由点对点节点组成)和区块链网络,使得参与实体能够安全地并且不可篡改地进行交易,并存储数据。尽管术语“区块链”通常与特定网络和/或用例相关联,但是在不参考任何特定用例的情况下,本文使用“区块链”来一般地指代DLS。
区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值在该分支的根处级联(concatenated)。此过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。通过确定哈希值是否与树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。
区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。在本文中参考联盟区块链网络进一步详细描述本文的实施例。然而,可以预期,本文的实施例可以在任何适当类型的区块链网络中实现。
通常,联盟区块链网络在参与的实体中是私有的。在联盟区块链网络中,共识处理由授权的节点集控制,该节点集可以被称为共识节点,一个或多个共识节点由相应实体(例如,金融机构、保险公司)操作。例如,由10个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体操作联盟区块链网络中的至少一个节点。
在一些示例中,在联盟区块链网络内,全局区块链作为跨所有节点复制的区块链被提供。也就是说,对于全局区块链,所有的共识节点处于完全共识状态。为了达成共识(例如,同意将区块添加到区块链),在联盟区块链网络内实施共识协议。例如,联盟区块链网络可以实施实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识,下面将进一步详细描述。
图1是示出可用于执行本文的实施方式的环境100的示例的示图。在一些示例中,环境100使得实体能够参与联盟区块链网络102。环境100包括计算系统106、108和网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网络站点、用户设备(例如,计算设备)和后台系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。在一些示例中,网络110使得能够与联盟区块链网络102通信或在联盟区块链网络102内部通信成为可能。通常,网络110表示一个或多个通信网络。在一些情况下,计算系统106、108可以是云计算系统(未示出)的节点,或者每个计算系统106、108可以是单独的云计算系统,其包括通过网络互连并且用作分布式处理系统的多个计算机。
在所描绘的示例中,计算系统106、108可以各自包括能够作为节点参与至联盟区块链网络102中的任何适当的计算设备。计算设备的示例包括但不限于服务器、台式计算机、笔记本电脑、平板电脑和智能手机。在一些示例中,计算系统106、108承载用于与联盟区块链网络102交互的一个或多个由计算机实施的服务。例如,计算系统106可以承载第一实体(例如,用户A)的由计算机实施的服务,例如交易管理系统,例如,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。计算系统108可以承载第二实体(例如,用户B)的由计算机实施的服务,例如交易管理系统的服务,例如,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。在图1的示例中,联盟区块链网络102被表示为由节点组成的点对点网络(Peer-to-peer network),并且计算系统106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
图2是示出根据本文的实施方式的架构200的示例的示图。示例性概念架构200包括分别对应于参与者A、参与者B和参与者C的参与者系统202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络提供的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如图中进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
在所描绘的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中作为各自的节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使相应的参与者能够参与到区块链网络中的个体系统(例如,计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或通过区块链网络212进行通信。
节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识处理(例如,作为将区块添加到区块链216的矿工节点),而其他节点214不参与此共识处理。作为另一示例,一些节点214存储区块链216的完整的副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应系统内存储的区块链数据。在图2的示例中,参与者系统202、204、206存储区块链216的相应的完整副本216'、216”、216”'。
区块链(例如,图2的区块链216)由一系列区块组成,每个区块存储数据。数据的示例包括表示两个或更多个参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以存储在区块链中(例如,文档、图像、视频、音频)。交易的示例可以包括(但不限于)有价物(例如,资产、产品、服务、货币)的交换。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能被改变。
在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度哈希值(也作为字符串数据提供)的处理。无法对哈希值进行去哈希处理(un-hash)以获得交易数据。哈希处理可确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括(但不限于)输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此处理,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并竞相将区块添加到区块链中。这种节点称为共识节点。上面介绍的PBFT用作共识协议的非限制性示例。共识节点执行共识协议以将交易添加到区块链,并更新区块链网络的整体状态。
更详细地,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将所得的哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)。将此哈希值添加到区块头中。共识节点还确定区块链中最新区块(即,添加到区块链中的最后一个区块)的哈希值。共识节点还向区块头添加随机数(nonce)和时间戳。
通常,PBFT提供容忍拜占庭故障(例如,故障节点、恶意节点)的实用拜占庭状态机复制。这通过在PBFT中假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的操纵消息)而实现。在PBFT中,以包括主共识节点和备共识节点的顺序提供共识节点。主共识节点被周期性地改变。通过由区块链网络内的全部共识节点对区块链网络的全局状态达成一致,将交易添加到区块链中。在该处理中,消息在共识节点之间传输,并且每个共识节点证明消息是从指定的对等节点(peer node)接收的,并验证消息在传输期间未被篡改。
在PBFT中,共识协议是在所有共识节点以相同的状态开始的情况下分多个阶段提供的。首先,客户端向主共识节点发送调用服务操作(例如,在区块链网络内执行交易)的请求。响应于接收到请求,主共识节点将请求组播到备共识节点。备共识节点执行请求,并且各自向客户端发送回复。客户端等待直到接收到阈值数量的回复。在一些示例中,客户端等待直到接收到f+1个回复,其中f是区块链网络内可以容忍的错误共识节点的最大数量。最终结果是,足够数量的共识节点就将记录添加到区块链的顺序达成一致,并且该记录或被接受或被拒绝。
在一些区块链网络中,实施加密来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密处理的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密过程。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来对数据进行加密,并且该加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥来对数据进行加密,并将加密数据发送给参与者B。参与者B可以使用其私钥来对该加密数据(密文)进行解密并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥进行解密。
非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以基于参与者A的该数字签名来确认该消息是由该节点发送的。数字签名也可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥对该哈希值进行加密以提供作为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥对该数字签名进行解密,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,参与者B可以确认该消息确实来自参与者A,且未被篡改。
图3是示出根据本文的实施方式的系统300的示例的示图。示例性系统300实现基于区块链网络的工作流。在一些实施例中,工作流可以是多个参与者之间的联合工作流,并且每个参与者可以与客户端设备或区块链网络上的网络节点(例如,执行客户端服务逻辑的客户端设备和执行智能合约的区块链网络节点)相关联。作为示例,系统300包括区块链网络302和一个或多个客户端设备304。在一些实施例中,区块链网络302可以是联盟区块链网络。客户端设备304可以包括,例如,经编程以执行本文描述的方法的任何合适的计算机、模块、服务器或计算元件,以及数据库350。客户端设备304可以存储日志数据340、上下文数据360和工作流逻辑370。在一些实施例中,系统300基于区块链网络302实施工作流,使得工作流中涉及的每个参与者(例如,客户端设备304)可以处理工作流的至少一部分并且经由区块链网络302(例如,使用在区块链网络302上执行的智能合约(例如,智能合约310))与其他参与者进行交互。
在一些实施例中,工作流可以包括用于完成任务的一系列活动。在一些实施例中,除了第一个步骤和最后一个步骤之外,工作流中的每个活动或步骤都可以有一个在其之前的特定步骤以及一个在其之后的特定步骤。工作流可以是线性工作流,其中第一个步骤通常是由外部事件发起的,也可以是循环结构,其中第一步是由最后一步的完成发起的。可以使用软件工具将工作流自动化,所述软件工具应用预定规则以决定何时成功完成了一个步骤以及何时可以开始下一个步骤。例如,可以专门设计工作流系统,使其能够基于区块链网络(例如,区块链网络302)组成和执行一系列计算或数据操作步骤。计算机化工作流的示例包括调用数据、程序和其他输入并产生可包括可视化效果和分析结果在内的输出的计算机脚本。可以使用例如C/C++、JAVA、R或MATLAB的任何合适的编程语言或使用例如PYTHON或PERL的带有命令行界面的脚本语言在程序中实现这些工作流。
可以基于可视流程图、逻辑图或程序编码来开发工作流系统,以描述由工作流参与者执行的工作流逻辑。工作流逻辑可以包括一个或多个处理中定义的操作,可以管理和监视工作流中活动或方法的状态,还可以根据定义的操作确定要转换到的新活动,从而促进信息、任务和事件的流动。在一些实施例中,工作流逻辑可以包括例如以下功能:(1)验证当前处理状态(例如,检查在给定当前状态下,执行任务是否有效),(2)确定执行参与者的权限(例如,检查请求执行任务的参与者是否被允许或被授权执行任务),以及(3)执行任务(例如,通过在先前的验证通过后执行条件脚本,工作流逻辑继续执行任务,如果执行成功完成,它将返回结果;否则,它将错误报告给任务的触发者或请求者)。
在一些实施例中,可以定义状态、事件、角色、转换方法、客户端服务方法和上下文中的一个或多个,以实现工作流。
在一些实施例中,工作流的状态可以指示工作流的处理状态。在一些实施例中,状态可以被配置为记录一个或多个计算机系统事件和/或用户交互。在一些实施例中,状态由存储在区块链系统或网络中的工作流中定义的一个或多个参数或变量的一个或多个值(例如,作为字符串,一个或多个数字等)表示。电子商务工作流中的状态的示例包括“开始Start”、“项目可用Item Available”、“报价已提交Offer Placed”或“已接受Accepted”。在其他工作流中,例如高速公路建设、飞机制造、造船或任何其他用途,可以定义不同的状态。
在一些实施例中,事件可以包括对工作流的状态转换的指示。例如,事件可以指示工作流的状态已更改为目标状态。在一些实施例中,事件由存储在区块链系统或网络中的工作流中定义的一个或多个参数或变量的一个或多个值(例如,作为字符串,一个或多个数字等)表示。事件的示例包括“现在开始is Start Now”、“项目现在可用is Item AvailableNow”、“报价现在提交is Offer Placed Now”、“现在接受is Accepted Now”和“现在拒绝isRejected Now”等。在这些示例中,事件“现在开始”可以指示工作流已更改为状态“开始”,而事件“项目现在可用”可以指示工作流已更改为状态“项目可用”。
在一些实施例中,状态和事件是在区块链网络中部署的智能合约和客户端设备的工作流逻辑之间使用的公共变量。可以在智能合约和工作流逻辑之间共同定义和使用状态和事件,以促进客户端设备的工作流逻辑与区块链网络的集成以及工作流的参与者之间工作流的状态和事件的通信。
在一些实施例中,可以通过调用状态转换方法来完成工作流中的状态转换。在一些实施例中,状态转换方法包括计算机程序或处理,该计算机程序或过程可以由例如执行智能合约的区块链节点执行,以将工作流的状态改变为目标状态。在一些实施例中,状态转换方法可以记录智能合约中的当前状态、事件和其他数据。在一些实施例中,状态转移方法可以指定以下中的至少一项:状态转换方法的名称、被允许访问状态转换方法的一个或多个角色、包括可以改变为另一状态的状态的状态列表、一个或多个目标状态、一个或多个事件,或一些可选参数。状态转换方法的示例包括“初始项目”、“做出报价make Offer”、“接受报价accept Offer”和“拒绝”等。在这些示例中,状态转换方法“做出报价”可以将名称指定为“报价offer price”,将类型指定为“32位整型量unit 32”,将角色指定为“买方”,将状态指定为“项目可用”,将目标状态指定为“报价已提交”,以及将事件指定为“报价现在提交”。
在一些实施例中,客户端服务方法可以是被配置为通过从区块链网络中检索区块链区块来检测工作流的当前状态的计算机程序或处理。在一些实施例中,如果检测到的状态与预定状态匹配,则可以执行客户端服务方法以向客户端提供特定服务并生成目标状态。在一些实施例中,客户端服务方法指定触发状态、触发事件和目标状态。在一些实施例中,可以在客户端服务方法中可选地定义目标状态。在一些实施例中,响应于确定工作流的当前状态为触发状态并且检测到导致从触发状态到目标状态的改变的触发事件,客户端服务方法可以生成目标状态。客户端服务方法的示例包括“初始项目函数Init Item Fun”、“做出报价函数Make Offer Fun”、“接受函数Accept Fun”等。在这些示例中,客户端服务方法“做出报价函数”可以指定触发状态“项目可用”、触发事件“项目现在可用”、目标状态“报价已提交”和函数“做出报价函数”。如果确定检测到的状态和事件分别与触发状态“项目可用”和触发事件“项目现在可用”相匹配,则可以执行函数“做出报价函数”以对项目做出报价,并相应地生成目标状态“报价已提交”。
在一些实施例中,智能合约可以提供对状态转换方法的更好的访问控制。例如,可以定义一个角色以提供对状态转换方法的访问控制。在一些实施例中,工作流的每个参与者都与一个角色相关联。在具有多个参与者的工作流中,状态转换方法可以指定具有执行状态转换方法权限的某些角色。电子商务工作流系统中的角色的示例包括“买方”、“卖方”和“递送方”。在一些实施例中,角色由存储在区块链系统或网络中的工作流中定义的一个或多个参数或变量的一个或多个值(例如,作为字符串,一个或多个数字等)表示。例如,角色可以包括区块链账户的账户身份(例如,账户名称的哈希值)。
在一些实施例中,上下文可以包括用于客户端服务方法的输入数据。在一些实施例中,上下文可以存储在客户端设备处的本地数据库中。在一些实施例中,上下文可以是远程过程调用(RPC)返回的结果。在一些实施例中,客户端设备可以从区块链区块中解析智能合约的日志数据并初始化上下文输入,使得客户端服务方法可以获取智能合约返回的数据。在一些实施例中,上下文包括客户端名称、账户名称、智能合约名称和补充数据。补充数据的示例包括项目的价格和质量以及价格和质量的数据类型(例如,整数等)。
在一些实施例中,工作流规范可用于设计基于区块链的工作流系统并生成工作流逻辑。在一些实施例中,工作流规范可以定义状态、事件、角色、转换方法、客户端服务方法和上下文中的一个或多个。在一些实施例中,所述工作流规范指示将由区块链网络上的智能合约执行的一个或多个状态转换方法,以及将由位于区块链网络外的参与工作流的一个或多个客户端设备执行的一个或多个客户端服务方法。在一些实施例中,工作流规范可以由基于区块链的工作流系统的协调者(例如,区块链网络的所有者或运营商,或用于提供基于区块链的工作流系统的第三方服务提供商)获得。在一些实施例中,工作流规范可以由工作流的参与者协商和预先确定。例如,工作流的参与者可以提供他们各自的客户端服务方法(例如,通过填写规范表或表格)、参与者之间的数据交换或交互,并确定参与者之间的整体工作流。
在一些实施例中,基于工作流规范,可以由,例如,基于区块链的工作流系统的协调者,生成将由对应于工作流的参与者的一个或多个客户端设备在区块链网络外执行的一个或多个客户端服务逻辑,并将其提供给对应于工作流参与者的各个客户端设备。
在一些实施例中,一个或多个客户端服务逻辑可以由相应的客户端设备配置。例如,一个或多个客户端服务逻辑可以采取SDK的形式,使得一个或多个客户端设备可以填写或修改其各自的作为整体工作流一部分的方法。在一些实施例中,一个或多个客户端服务逻辑可以包括在客户端服务逻辑之中或之间或者在客户端服务逻辑与区块链网络之间(例如,经由智能合约)定义的应用接口,其可以提供统一且一致的框架,以促进工作流的所有参与者与区块链网络之间的交互,并改善工作流系统的兼容性、可扩展性、灵活性和效率。
在一些实施例中,基于工作流规范,可以例如由基于区块链的工作流系统的协调者来生成要在区块链网络上执行的一个或多个智能合约。所述一个或多个智能合约可以包括一个或多个状态转换方法。在一些实施例中,可以基于一个或多个智能合约模板来生成一个或多个智能合约,该模板具有与基于工作流规范而填写的客户端服务方法有关的功能。替代地或附加地,与客户端服务方法有关的功能可以由工作流的一个或多个参与者来填写。可以将一个或多个智能合约部署在区块链网络上,并由区块链网络的网络节点或客户端设备调用。一个或多个智能合约可以包括定义的至基于区块链的工作流系统的协调者和/或要在区块链网络之外执行的一个或多个客户端服务逻辑的接口。
参照图3示例,可以基于工作流规范来生成工作流逻辑370,该工作流规范指定了不同工作流参与者(例如,客户端设备304)的任务(例如,方法372a-c)以及参与者之间的通信或交互。在一些实施例中,工作流逻辑370被配置为包括由参与工作流的客户端设备304执行的多个客户端服务方法372a-c(或统称为客户端服务方法372)。注意,示出的工作流逻辑370包括三个客户端服务方法372a-c仅出于说明的目的。工作流逻辑370可以具有任何合适数量的客户端服务方法372。在一些实施例中,工作流逻辑370可以是可配置的客户端服务逻辑,并且客户端服务方法372可以包括由计算元件执行的计算处理。例如,工作流逻辑370可以是存储在客户端设备304上的编程逻辑,并且可以包括将由客户端设备执行的客户端服务方法372,以执行某些计算操作并实现特定功能(例如,生成特定输出)。在一些实施例中,工作流逻辑370可以包括可由位于区块链网络302之外的客户端设备304配置的软件开发套件(SDK)。在一些实施例中,每个客户端设备304可被配置为执行工作流逻辑370。在一些实施例中,每个客户端设备304可被配置为执行工作流逻辑370的一部分。例如,每个客户端设备304可被配置为执行方法372a-c的子集。在一些实施例中,工作流逻辑370是根据预定的工作流规范生成的。工作流规范可以指定将由参与工作流的客户端设备304执行的一系列客户端服务方法372。
在一些实施例中,客户端服务方法372可以被配置为改变工作流的状态。在一些实施例中,每个客户端服务方法372定义触发状态、触发事件和目标状态。在一些实施例中,可以在客户端服务方法372中可选地定义目标状态。在一些实施例中,响应于确定工作流的当前状态为触发状态并且检测到导致从触发状态到目标状态的改变的触发事件,客户端服务方法372可以生成目标状态。
在一些实施例中,客户端设备304可以不断地或定期地检测或检索来自区块链网络302的工作流的当前状态和事件。当确定检索到的状态和事件分别与客户端服务方法372的触发状态和触发事件相匹配,并且确定目标状态在客户端服务方法372中被定义时,可以执行客户端服务方法372,并且生成相应的目标状态作为结果。例如,客户端设备304可以从区块链网络302检索当前状态和事件,或者可以被分配有初始状态和事件。响应于确定检索到的状态和事件与客户端服务方法372a(图示为“方法1”)的触发状态和触发事件相匹配,客户端服务方法372a可以由客户端设备304来执行,并生成相应的目标状态。在一些实施例中,目标状态的生成导致对智能合约310的调用,以执行状态转换方法312从而将存储在区块链网络302中(例如,在日志文件320和/或区块链330中)的状态改变为目标状态。
在一些实施例中,工作流逻辑370包括具有在智能合约310中定义的一个或多个状态转换方法312的一个或多个应用界面。如前所述,可以根据预先确定的工作流规范来生成工作流逻辑370。工作流规范还可指定多个状态转换方法312,并可用于生成智能合约310,以使智能合约310包括多个状态转换方法312。在一些实施例中,可以将智能合约310保存为智能合约逻辑318,并由区块链网络302的网络节点部署和执行。在一些实施例中,可以调用智能合约310以执行多个状态转换方法312之一,从而将存储在区块链网络302中(例如,在日志文件或数据320和/或区块链330中)的当前状态改变为另一状态。
在一些实施例中,智能合约310可以用于促进工作流实施。在一些实施例中,智能合约310可以包括工作流系统的每一方或每一个参与者与区块链网络302(例如,区块链网络302的共识节点)之间定义的接口。在一些实施例中,智能合约310可以包括可以由工作流系统的每一方或每一个参与者执行的功能或操作。例如,所述功能或操作可以包括客户端设备304调用智能合约310以执行状态转换方法312之一等的功能。在一些实施例中,智能合约310可以定义用于执行特定功能的授权实体。智能合约可以促进在参与实体与区块链网络302之间强制执行可追踪的和可信的交互。
在一些实施例中,智能合约310被配置为存储多个状态(例如,状态314a-b等)和事件(例如,事件316等),所述状态和事件指示区块链网络302上的智能合约310中的状态转换。在一些实施例中,响应于从客户端服务方法372接收到达到目标状态的指示,可以执行状态转换方法312以将当前状态改变为目标状态,并生成指示状态改变的相应事件。例如,参照图3的示例,响应于客户端服务方法372a生成目标状态,调用智能合约310以执行状态转换方法312,从而将当前状态(例如状态314a)改变为目标状态(例如状态314b)。状态转换方法312还可以生成指示将状态314a改变为状态314b的事件316。然后,状态314b变为新的当前状态,并与事件316一起被存储到日志文件320中。日志文件320可以进一步被记录在区块链网络302上的区块链330中。
在一些实施例中,智能合约310指定被配置为向状态转换方法312提供访问控制的多个角色。电子商务工作流系统中的角色的示例包括“买方”、“卖方”和“递送方”。在一些实施例中,每个角色都包括区块链账户的账户身份(例如,账户名称的哈希值)。在一些实施例中,所述多个角色被配置以向状态转换方法312提供访问控制,以使得与所述角色之一相关联的区块链账户可以被允许访问多个状态转换方法312中的一个或多个。
在一些实施例中,智能合约310中的状态314之一自动触发要在区块链网络302外执行的一个或多个客户端服务方法372。如上所述,区块链330记录包括智能合约310的事件316和状态314的日志文件320。在一些实施例中,客户端设备304不断地或定期地(例如,周期性地)拉取或以其他方式访问区块链网络302上的区块链330,以获得包括智能合约310的当前事件316和状态314的区块链区块332。例如,客户端设备304可以从来自区块链网络302的区块链区块332中检索相关信息。在一些实施例中,区块链网络302可以周期性地或在更新可用时,将区块链区块332推送或以其他方式发送到客户端设备304。因此,客户端设备304可以从区块链区块332获得相关日志数据,并将该日志数据作为本地日志数据340存储在客户端设备304中。在一些实施例中,所述日志数据340包括智能合约310的当前状态314和事件316以及其他信息342。
在一些实施例中,客户端设备304可以确定日志数据340中的状态314和事件316分别与客户端服务方法372中定义的触发状态和触发事件相匹配。响应于确定存在匹配,执行客户端服务方法372。在一些实施例中,如果在客户端服务方法372中定义了目标状态,则该目标状态可作为执行客户端服务方法372的结果被生成。如果在客户端服务方法372中未定义目标状态,则可以生成输出以触发后续客户端服务方法372的执行。例如,如果确定日志数据340中的状态314和事件316分别与客户端服务方法372b(图示为“方法2”)中定义的触发状态和触发事件匹配,并且目标状态未被客户端服务方法372b定义,则可以由客户端服务方法372b生成触发客户端服务方法372c执行的输出(图示为“方法3”)。
在一些实施例中,客户端服务方法372被配置为从数据库350获得上下文数据360,以执行客户端服务方法372。作为示例,上下文数据360可以包括指示目标区块链网络(例如,实现工作流的区块链网络302)的客户端362、被允许访问目标区块链网络上的数据的区块链账户364、在目标区块链网络上执行的智能合约366、以及来自远程过程调用(RPC)369的其他输入数据368。
图4是描绘了可根据本文实施方式执行的处理400的示例的信号流。该信号流表示用于实现基于区块链的工作流的处理400。为方便起见,该处理将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当编程的分布式系统(例如,图3的系统300)可以执行该处理。
首先,可以根据工作流规范生成智能合约,并将其部署在区块链网络(例如,区块链网络302)上。工作流规范可指定多个状态转换方法,并可用于生成智能合约,以使智能合约包括多个状态转换方法。工作流规范可以指定要由参与工作流的客户端设备(例如,客户端设备304)执行的一系列客户端服务方法(例如,客户端服务方法372)。可以根据工作流规范来生成工作流逻辑(例如,工作流逻辑370),使得工作流逻辑包括一个或多个客户端服务方法。每个客户端设备可以被配置为执行工作流逻辑或工作流逻辑的一部分(例如,工作流逻辑中的客户端服务方法的子集)。
在402,客户端设备304a执行工作流逻辑中的第一客户端服务方法。在一些实施例中,所述第一客户端服务方法定义触发状态、触发事件和目标状态。在一些实施例中,所述客户端设备304a从最新的区块链区块检索智能合约的当前状态(例如,“状态A”)和事件。所述客户端设备304a可以将它们分别与触发状态和触发事件进行比较。在替代实施例中,可以向客户端设备304分配初始状态和事件,并将它们分别与触发状态和触发事件进行比较。
当确定存在针对触发状态和事件的匹配时,客户端设备304a执行所述第一客户端服务方法并生成指示目标状态(例如,“状态B”)的输出。在一些实施例中,目标状态与智能合约的状态转换方法相关联,使得状态转换方法的执行导致将智能合约的当前状态改变为目标状态。在一些实施例中,通过第一客户端服务方法输出目标状态导致对智能合约的合约调用,以执行状态转换方法。
在404,客户端设备304a根据在步骤404确定的目标状态,对在区块链网络上执行的智能合约进行合约调用。例如,客户端设备304a可以对智能合约进行合约调用以执行与目标状态相关联的状态转换方法。
在406,区块链网络302(例如,区块链网络302的共识节点)接收对智能合约的合约调用以执行与目标状态相关联的状态转换方法。区块链网络302可以执行对合约调用的共识处理,然后根据来自第一客户端服务方法的目标状态执行状态转换方法。在一些实施例中,执行状态转换方法以将智能合约的当前状态改变为目标状态(例如,“状态B”)。在一些实施例中,在执行智能合约时,区块链网络302确定与执行第一客户端服务方法的客户端设备304a相关联的区块链账户是否被授权进行合约调用以执行状态转换方法。例如,可以定义智能合约中的状态转换方法,以使一个或多个角色被授权访问状态转换方法,而其他角色不被允许访问状态转换方法。
在一些实施例中,状态转换方法可以生成指示智能合约的当前状态转变为目标状态的事件。执行状态转换方法后,目标状态将成为智能合约的新当前状态。
在408,将新当前状态和事件存储到区块链网络。在一些实施例中,状态和事件被存储到智能合约中的日志文件中。在一些实施例中,日志文件被进一步记录在存储在区块链网络上的区块链中。
在一些实施例中,客户端设备访问区块链网络以获得区块链的最新信息。在一些实施例中,每个客户端设备可以确定从区块链检索到的状态和事件是否分别与由客户端设备执行的客户端服务方法中定义的触发状态和触发事件相匹配。
在410,客户端设备304b不断地或定期地(例如,周期性地)拉取或以其他方式访问区块链网络上的区块链。在一些实施例中,客户端设备304b可以订阅存储在区块链中的信息。在一些实施例中,区块链网络302可以将存储在区块链中的信息不断地或定期地(例如,周期性地)推送或以其他方式发送到客户端设备。这样,客户端设备304b可以获得包括智能合约的当前状态和事件在内的区块链的最新信息。
在412,客户端设备304b确定从区块链检索到的当前状态(例如,“状态B”)和事件与将由客户端设备304b执行的工作流逻辑的第二客户端服务方法的触发状态和触发事件匹配。在一些实施例中,可以存在被配置为由客户端设备304b执行的多个客户端服务方法。客户端设备304b可以将从区块链中检索到的状态和事件与每个客户端服务方法的触发状态和触发事件进行比较,以确定要执行哪个客户端服务方法。
在414,如果确定从区块链检索到的状态和事件分别与第二客户端服务方法的触发状态和触发事件相匹配,则客户端设备304b执行第二客户端服务方法。在一些实施例中,第二客户端服务方法不定义目标状态。在这样的情况下,在一些实施例中,可以执行第二客户端服务方法以生成触发后续客户端服务方法执行的输出。
在416,如果执行了第二客户端服务方法以生成触发第三客户端服务方法执行的输出,则客户端设备304b执行工作流逻辑的第三客户端服务方法。在一些实施例中,第三客户端服务方法定义目标状态(例如,“状态C”)。第三客户服务方法的执行可以导致第三客户端服务方法生成(输出)目标状态。
在418,如果第三客户端服务方法定义了目标状态并且第三客户端服务方法生成了该目标状态,则客户端设备304b调用智能合约以执行状态转换方法。可以执行状态转换方法以将智能合约的当前状态改变为由第三客户端服务生成的目标状态。
在420,在接收到智能合约并执行了共识处理之后,区块链网络302可以执行状态转换方法以将智能合约的当前状态(例如,“状态B”)改变为由第三客户端服务生成的目标状态(例如,“状态C”)。在一些实施例中,确定与执行第三客户端服务方法的客户端设备304b相关联的区块链账户是否被授权进行合约调用以执行状态转换方法。在一些实施例中,智能合约执行状态转换方法以生成指示智能合约的当前状态转变为目标状态的事件。目标状态成为智能合约的新当前状态。
在422,将智能合约的新当前状态(例如,“状态C”)和事件存储到区块链网络。在一些实施例中,状态和事件被存储到智能合约中的日志文件中。
在一些实施例中,处理400可以包括区块链网络302与客户端设备304a和304b之间的附加的或不同的操作和交互。在一些实施例中,处理400可以包括工作流参与者的附加客户端设备。
图5是示出了可根据本文实施例执行的用于实现工作流的处理500的示例的流程图。处理500可以是在图4的处理400的上下文中由区块链网络执行的处理。为方便起见,处理500将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当地编程的分布式系统(例如图3的系统300)可以执行处理500。
在502,接收工作流规范。在一些实施例中,由区块链网络(例如,区块链网络的共识节点或非共识节点)和/或位于区块链网络之外的客户端设备接收该工作流。在一些实施例中,工作流规范可以是如图3所描述的工作流规范。例如,所述工作流规范指示将由区块链网络上的智能合约执行的一个或多个状态转换方法,以及将由位于区块链网络之外的参与工作流的一个或多个客户端设备执行的一个或多个客户端服务方法。
在504,根据工作流规范生成智能合约。在一些实施例中,智能合约将在区块链网络上执行。在一些实施例中,智能合约包括一个或多个状态转换方法和一个或多个状态。在一些实施例中,一个或多个状态的中的至少一个状态自动触发在区块链网络外执行一个或多个客户端服务方法。例如,智能合约可以将状态定义为触发状态,将事件定义为触发事件,以用于可由指定客户端设备执行的指定客户端服务方法。在一些实施例中,如图3和图4所描述的,如果智能合约的执行导致触发状态和触发事件,则智能合约可以自动向指定的客户端设备发送信令或指令,以由位于区块链之外的指定的客户端设备调用执行指定的客户端服务方法。智能合约和指定的客户端服务方法包括相应的接口和逻辑,所述接口和逻辑识别用于执行指定的客户端服务方法的触发状态和触发事件。
在506,根据工作流规范为一个或多个客户端设备中的每个客户端设备生成可配置的客户端服务逻辑。在一些实施例中,可配置的客户端服务逻辑将由位于区块链网络之外的一个或多个客户端设备执行。在一些实施例中,客户端服务逻辑包括一个或多个客户端服务方法。在一些实施例中,工作流规范指定在智能合约的状态转换方法和可配置的客户端服务逻辑的客户端服务方法之间共同定义的一个或多个状态和事件(例如,用于指定的客户端服务方法的触发状态和触发事件)。在一些实施例中,一个或多个客户端服务方法中的至少一个客户端服务方法改变智能合约中的一个或多个状态。例如,如针对图3和图4所描述的,在执行了导致更新状态(例如,客户端服务方法的目标状态)的客户端服务方法之后,可配置的客户端服务逻辑可以包括用于在区块链上上传或以其他方式记录更新状态,和/或触发在工作流程中指定的后续方法(例如,由客户端服务或其他客户端服务执行的方法)的接口和逻辑。在一些实施例中,客户端服务可以发送诸如智能合约调用之类的请求以调用在智能合约中定义的一个或多个状态交易方法,从而更新状态。
在一些实施例中,可配置的客户端服务逻辑被部署到一个或多个相应的客户端设备。在一些实施例中,客户端设备可以扩展、填充、完成、编译或以其他方式配置客户端服务逻辑,以便客户端服务逻辑准备好在区块链网络外的客户端服务上执行。
在508,将智能合约部署到区块链网络。在一些实施例中,智能合约被部署在区块链网络上的每个共识节点上。在一些实施例中,将智能合约部署到区块链网络包括:编译智能合约的脚本;利用智能合约的信息(例如,智能合约的字节码等)创建部署交易;以及将部署交易发送到区块链网络的共识节点。接收到部署交易的共识节点可以发起共识处理,并将部署交易分发到区块链网络的其他共识节点。每个共识节点都可以验证部署交易,如果共识节点之间达成共识,则可以将智能合约成功部署到区块链网络。
在一些实施例中,在将智能合约部署到区块链网络并且由相应的客户端设备配置客户端服务逻辑之后,可以执行如图4所描述的处理400以实现工作流规范中指定的工作流。
图6描绘了根据本文的实施例的装置600的模块的示例。装置600可以是被配置为实现基于区块链的工作流的区块链网络的节点的实施例的示例。装置600可以对应于上述实施例,并且装置600包括:第一接收模块602,用于接收工作流规范,其中,工作流规范指示将由区块链网络上的智能合约执行的一个或多个状态转换方法,以及将由位于区块链网络之外的参与工作流的一个或多个客户端设备执行的一个或多个客户端服务方法;第一生成模块604,用于根据工作流规范生成将在区块链网络上执行的智能合约,所述智能合约包括所述一个或多个状态转换方法和一个或多个状态,其中,所述一个或多个状态中的至少一个状态自动触发一个或多个客户端服务方法在区块链网络之外执行;第二生成模块606,用于根据工作流规范为一个或多个客户端设备中的每个客户端设备生成可配置的客户端服务逻辑,所述可配置客户端服务逻辑将由位于区块链之外的一个或多个客户端设备执行,所述客户端服务逻辑包括一个或多个客户端服务方法,其中,所述一个或多个客户端服务方法中的至少一个客户端服务方法改变智能合约中的一个或多个状态;以及部署模块608,用于将智能合约部署到区块链网络。
在可选实施例中,在区块链网络上的执行状态转换方法导致从一个状态到另一状态的转换。一个或多个状态和一个或多个事件被存储在区块链网络上,并且一个或多个事件中的每一个事件指示区块链网络的状态改变。
在可选实施例中,智能合约还包括一个或多个角色,其中一个或多个角色提供对一个或多个状态转换方法的访问控制,从而允许与一个或多个角色之一相关联的区块链账户访问一个或多个状态转换方法中的一个或多个。
在可选实施例中,可配置的客户端服务逻辑包括用于访问智能合约中定义的一个或多个状态转换方法的一个或多个应用接口。
在一些实施例中,可配置的客户端服务逻辑包括可由区块链网络之外的客户端设备配置的软件开发套件(SDK)。
在可选实施例中,一个或多个客户端服务方法中的至少一个客户端服务方法定义触发状态、触发事件和目标状态,其中,响应于确定区块链网络的当前状态为触发状态并且检测到导致从触发状态到目标状态的改变的触发事件,所述一个或多个客户端服务方法中的至少一个客户端服务方法生成目标状态。
在可选实施例中,装置600还包括执行子模块,用于响应于至少一个客户端服务方法生成了目标状态,执行状态转换方法,以将区块链网络的当前状态改变为目标状态。
在可选实施例中,装置600还包括记录子模块,用于将目标状态记录为当前状态,并记录导致从触发状态到目标状态的改变的触发事件。
在可选实施例中,基于区块链的工作流包括智能合约中的一个或多个状态转换方法,以及所述客户端服务逻辑中的一个或多个客户端服务方法。
前述实施例中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实施,或者可以通过使用具有特定功能的产品来实施。典型的实施设备是计算机(并且该计算机可以是个人计算机)、膝上型计算机、蜂窝电话、照相手机、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板电脑、可穿戴设备或这些设备的任意组合。
对于装置中每个模块的功能和角色的实施过程,可以参考前一方法中相应步骤的实施过程。为简单起见,这里省略了细节。
由于装置实施基本上对应于方法实施,对于相关部件,可以参考方法实施中的相关描述。先前描述的装置实施仅是示例。被描述为单独部分的模块可以或不是物理上分离的,并且显示为模块的部分可以是或不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员无需创造性的努力即可理解和实现本申请的实施例。
再次参见图6,它可以被解释为示出了基于区块链的工作流实施装置的内部功能模块和结构。基于区块链的工作流实施装置可以是被配置为实施基于区块链的工作流的区块链网络节点的示例。本质上,执行主体可以是电子设备,并且该电子设备包括以下:一个或多个处理器;以及被配置为存储一个或多个处理器的可执行指令的一个或多个计算机可读存储器。在一些实施例中,一个或多个计算机可读存储器耦接至所述一个或多个处理器且其上存储有编程指令,所述指令能由所述一个或多个处理器执行以执行本文所述的算法、方法、函数、处理、流和过程。
本文中描述的技术产生若干技术效果。在一些实施例中,工作流可以是多个参与者之间的联合工作流,并且每个参与者可以与客户端设备或区块链网络上的网络节点(例如,执行客户端服务逻辑的客户端设备和执行智能合约的区块链网络节点)相关联。本文所述的技术将客户端侧的客户端服务逻辑与区块链侧的智能合约联系在一起,以形成完整的工作流。在一些实施例中,多方协作的工作流的参与者可以根据各自需求定义工作流规范中的相应部分,独立实现客户端服务逻辑的客户端服务方法,并完成工作流的框架。因此,提出了参与者之间的多方协作,以通过区块链智能合约和客户端服务逻辑实现多方协作的工作流。
在一些实施例中,可以实现基于多方基于区块链的工作流,以促进根据工作流规范自动生成智能合约(例如,存储区块链网络的状态,生成状态转换方法,以及为状态转换方法提供角色权限控制)。在一些实施例中,工作流的客户端或用户可以专注于客户端服务方法的实现,而无需在客户端设备和智能合约如何彼此交互的细节上花费过多的精力。这样,所描述的技术解决了多方协作的工作流的复杂性并提高工作流系统的效率。
此外,在一些实施例中,智能合约将工作流的状态和指示状态改变的事件存储到区块链网络上的日志文件中。通过将状态和事件存储在区块链网络上的日志文件中,由于区块链网络上的日志文件是不可篡改的,因此有关工作流处理状态的信息(即工作流的状态)可以更加安全可靠。例如,恶意行动者无法通过篡改有关工作流的状态和事件的信息来破坏网络。这样,本文所述的技术提高了实现所述技术的计算机系统、网络和数据库系统的安全性。
所描述的主题的实施例可以单独或组合地包括一个或多个特征。例如,在第一实施例中,用于实施基于区块链的工作流的方法包括:接收工作流规范,其中,工作流规范指示将由区块链网络上的智能合约执行的一个或多个状态转换方法,以及将由位于区块链网络之外的参与工作流的一个或多个客户端设备执行的一个或多个客户端服务方法;根据工作流规范生成将在区块链网络上执行的智能合约,所述智能合约包括所述一个或多个状态转换方法和一个或多个状态,其中,所述一个或多个状态中的至少一个状态自动触发一个或多个客户端服务方法中的至少一个在区块链网络之外执行;根据工作流规范为一个或多个客户端设备中的每个客户端设备生成可配置的客户端服务逻辑,所述可配置客户端服务逻辑将由位于区块链之外的一个或多个客户端设备执行,所述客户端服务逻辑包括一个或多个客户端服务方法,其中,所述一个或多个客户端服务方法中的至少一个客户端服务方法改变智能合约中的一个或多个状态;以及将智能合约部署到区块链网络。
在其他实施例中,提供了用于实现本文提供的方法的一个或多个设备、非暂时性计算机可读存储介质和系统。例如,装置可以是用于实现本文提供的方法的云服务器或区块链网络的网络节点。作为另一示例,系统可以包括用于实现本文提供的方法的云服务器、一个或多个客户端设备、以及一个或多个区块链网络。
前述和其他描述的实施例可以各自可选地包括一个或多个以下特征:
第一特征,可与以下任意特征组合,指定了在区块链网络上执行导致从一个状态到另一状态的转换,所述一个或多个状态以及一个或多个事件被存储在区块链网络上,且其中一个或多个事件中的每一个事件指示区块链网络的状态改变。
第二特征,可与先前或以下任意特征组合,指定智能合约还包括一个或多个角色,所述一个或多个角色提供对一个或多个状态转换方法的访问控制,使得与一个或多个角色之一相关联的区块链账户被允许访问一个或多个状态转换方法中的一个或多个。
第三特征,可与先前或以下任意特征组合,指定可配置的客户端服务逻辑包括访问智能合约中定义的一个或多个状态转换方法的一个或多个应用程序接口。
第四特征,可与先前或以下任意特征组合,指定可配置的客户端服务逻辑包括可由区块链网络之外的客户端设备配置的软件开发套件(SDK)。
第五特征,可与先前或以下任意特征组合,指定一个或多个客户端服务方法中的至少一个客户端服务方法定义触发状态、触发事件和目标状态,响应于确定区块链网络的当前状态为触发状态并且检测到导致从触发状态到目标状态的改变的触发事件,所述一个或多个客户端服务方法中的至少一个客户端服务方法生成目标状态。
第六特征,可与先前或以下任意特征组合,指定该方法进一步包括:响应于确定至少一个客户端服务方法生成了目标状态,区块链网络执行状态转换方法,以将区块链网络的当前状态改变为目标状态。
第七特征,可与先前或以下任意特征组合,指定该方法进一步包括:区块链网络将目标状态记录为当前状态,并记录导致从触发状态到目标状态的改变的触发事件。
第八特征,可与先前或以下任意特征组合,指定所述基于区块链的工作流包括智能合约中的一个或多个状态转换方法,以及所述客户端服务逻辑中的一个或多个客户端服务方法。
本文中描述的主题、动作和操作的实施可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实施,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施可以实现为一个或多个计算机程序,例如,编码在计算机程序载体上的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。例如,计算机程序载体可以包括具有一个或多个计算机可读存储介质,其上编码或存储有指令。载体可以是有形的非暂态计算机可读介质,诸如磁盘、磁光盘或光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或其他类型的介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或可以部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
计算机程序,也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或解释性语言、或声明或程序性语言;它可以配置为任何形式,包括作为独立程序,或作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由数据通信网络互连的一个或多个位置上的一台或多台计算机。
计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件;或者多个协调文件,例如,存储一个或多个模块、子程序或代码部分的多个文件。
用于执行计算机程序的处理器包括:例如通用微处理器和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将接收用于执行的计算机程序的指令以及来自耦接到该处理器的非暂态计算机可读介质的数据。
术语“数据处理装置”包括用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。数据处理设备可以包括例如FPGA(现场可编程门阵列),ASIC(专用集成电路)或GPU(图形处理单元)的专用逻辑电路。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们一个或多个的组合的代码。
本文中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一台或多台计算机或处理器执行,以通过对输入数据进行操作并生成输出来执行操作。处理和逻辑流程也可以由例如FPGA、ASIC或GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元和用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接至一个或多个存储设备,以从一个或多个存储设备接收数据或向一个或多个存储设备传送数据。大容量存储设备可以是例如,磁盘、磁光盘或光盘、固态驱动器或任何其他类型的非暂态计算机可读介质。然而,计算机不需要具有这样的设备。因此,计算机可以耦接到例如一个或多个存储器的本地和/或远程的一个或多个大容量存储设备。例如,计算机可以包括作为计算机的组成部件的一个或多个本地存储器,或者计算机可以耦接到云网络中的一个或多个远程存储器。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,这里仅举几例。
组件可以通过直接或经由一个或多个中间件例如电连接或光连接地彼此连接通信而彼此“耦接”。如果部件中的一个部件被集成到另一个中,则部件也可以被彼此“耦接”。例如,集成到处理器中的大容量存储组件(例如,L2高速缓存组件)被“耦接到”处理器。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户任何形式的输入,包括声音、语音输入或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)轮流发送文本消息或其他形式的消息来并接收来自用户的响应消息来与用户交互。
本文使用与系统,装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包含许多具体实施细节,但是这些细节不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文中单个实施例的上下文中描述的多个特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从要求保护的组合中删除该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为在所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务并行处理可能是有利的。

Claims (10)

1.一种计算机实现的用于实现基于区块链的工作流的方法,所述计算机实现的方法包括:
接收工作流规范,其中,所述工作流规范指示将由区块链网络上的智能合约执行的一个或多个状态转换方法,以及将由位于所述区块链网络之外的参与工作流的一个或多个客户端设备执行的一个或多个客户端服务方法;
根据所述工作流规范,生成将在所述区块链网络上执行的所述智能合约,所述智能合约包括所述一个或多个状态转换方法和一个或多个状态,并且所述一个或多个状态中的至少一个状态自动触发将在所述区块链网络之外执行的所述一个或多个客户端服务方法中的至少一个,其中,所述智能合约还包括一个或多个角色,所述一个或多个角色提供对所述一个或多个状态转换方法的访问控制,使得与所述一个或多个角色之一相关联的区块链账户被允许访问所述一个或多个状态转换方法中的一个或多个;
根据所述工作流规范,为所述一个或多个客户端设备中的每个客户端设备生成可配置的客户端服务逻辑,所述可配置的客户端服务逻辑将由位于所述区块链网络之外的所述一个或多个客户端设备执行,所述客户端服务逻辑包括一个或多个客户端服务方法,其中,所述一个或多个客户端服务方法中的至少一个客户端服务方法改变所述智能合约中的所述一个或多个状态;以及
将所述智能合约部署到所述区块链网络,以使所述一个或多个客户端设备执行至少一个客户端服务方法,对所述智能合约进行合约调用,以使被允许访问所述一个或多个状态转换方法的所述一个或多个角色执行所述一个或多个状态转换方法,改变所述智能合约的状态。
2.根据权利要求1所述的计算机实现的方法,其中,
在所述区块链网络上执行状态转换方法导致从一个状态到另一状态的转换,
所述一个或多个状态以及一个或多个事件被存储在所述区块链网络上,并且
所述一个或多个事件中的每一个事件指示所述区块链网络的状态改变。
3.根据权利要求2所述的计算机实现的方法,其中,所述可配置的客户端服务逻辑包括用于访问所述智能合约中定义的所述一个或多个状态转换方法的一个或多个应用接口。
4.根据权利要求1-3任一项所述的计算机实现的方法,其中,所述可配置的客户端服务逻辑包括能够由位于所述区块链网络之外的所述客户端设备配置的软件开发套件SDK。
5.根据权利要求4所述的计算机实现的方法,其中,
所述一个或多个客户端服务方法中的至少一个客户端服务方法定义触发状态、触发事件和目标状态,
响应于确定所述区块链网络的当前状态为所述触发状态并且检测到导致从所述触发状态到所述目标状态的改变的所述触发事件,所述一个或多个客户端服务方法中的所述至少一个客户端服务方法生成所述目标状态。
6.根据权利要求5所述的计算机实现的方法,还包括:
响应于确定所述至少一个客户端服务方法生成了所述目标状态,所述区块链网络执行状态转换方法,以将所述区块链网络的所述当前状态改变为所述目标状态。
7.根据权利要求6所述的计算机实现的方法,还包括:
所述区块链网络将所述目标状态记录为所述当前状态,并记录导致从所述触发状态到所述目标状态的改变的所述触发事件。
8.根据权利要求7所述的计算机实现的方法,其中,所述基于区块链的工作流包括所述智能合约中的所述一个或多个状态转换方法,以及所述客户端服务逻辑中的所述一个或多个客户端服务方法。
9.一种用于实现基于区块链的工作流的装置,所述装置包括用于执行如权利要求1至8中任一项所述的计算机实现的方法的多个模块。
10.一种用于实现基于区块链的工作流的系统,包括:
一个或多个处理器;以及
耦接至所述一个或多个处理器且其上存储有指令的一个或多个计算机可读存储器,所述指令能够由所述一个或多个处理器执行以执行如权利要求1至8中任一项所述的计算机实现的方法。
CN201980004097.4A 2019-06-27 2019-06-27 实现基于区块链的工作流 Active CN111066047B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/093371 WO2019170174A2 (en) 2019-06-27 2019-06-27 Implementing a blockchain-based workflow

Publications (2)

Publication Number Publication Date
CN111066047A CN111066047A (zh) 2020-04-24
CN111066047B true CN111066047B (zh) 2024-04-19

Family

ID=67847523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980004097.4A Active CN111066047B (zh) 2019-06-27 2019-06-27 实现基于区块链的工作流

Country Status (5)

Country Link
US (1) US10698738B1 (zh)
EP (1) EP3673432B1 (zh)
CN (1) CN111066047B (zh)
SG (1) SG11202002787YA (zh)
WO (1) WO2019170174A2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10685009B1 (en) * 2016-10-20 2020-06-16 Massachusetts Mutual Life Insurance Company Systems and methods for trigger based synchronized updates in a distributed records environment
US11290294B2 (en) * 2019-10-04 2022-03-29 Sap Se Collaboration hub with blockchain verification
US11693979B2 (en) * 2019-11-27 2023-07-04 International Business Machines Corporation Dynamic permission assignment and enforcement for transport process
WO2020098824A2 (en) 2019-12-13 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Smart logistics management using blockchain
CN111178851A (zh) * 2019-12-31 2020-05-19 杭州趣链科技有限公司 一种去中心化基于工作流的数据协作方法
CN111586149B (zh) * 2020-04-30 2022-11-11 中国银行股份有限公司 基于云和区块链的网络系统及其业务处理方法、装置
CN112039866B (zh) * 2020-08-26 2022-05-27 北京计算机技术及应用研究所 一种基于区块链的数据可信配置管理系统的设计方法
CN112100635B (zh) * 2020-09-17 2024-02-09 博雅正链(北京)科技有限公司 基于智能合约与工作流架构的执法返还系统及方法
US11375009B1 (en) 2020-12-07 2022-06-28 International Business Machines Corporation Minimizing the impact of malfunctioning peers on blockchain
CN114116166A (zh) * 2021-06-02 2022-03-01 支付宝(杭州)信息技术有限公司 基于智能合约的任务执行方法及装置
CN113067898B (zh) * 2021-06-02 2021-08-10 支付宝(杭州)信息技术有限公司 为业务流程合约调度计算服务的方法
CN113259465B (zh) * 2021-06-02 2021-10-15 支付宝(杭州)信息技术有限公司 基于链外的计算服务的业务执行方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018078584A1 (en) * 2016-10-28 2018-05-03 nChain Holdings Limited Systems and methods for implementing deterministic finite automata (dfas) via a blockchain
CN108805703A (zh) * 2017-04-28 2018-11-13 埃森哲环球解决方案有限公司 权利管理系统
WO2019063256A1 (de) * 2017-09-26 2019-04-04 Innogy Innovation Gmbh System, insbesondere authentizitätssystem
CN109840429A (zh) * 2019-01-08 2019-06-04 北京众享比特科技有限公司 智能合约部署、调用方法和装置

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239493B2 (en) 2009-04-21 2012-08-07 International Business Machines Corporation Automated server controlled client-side logging
US20170178127A1 (en) * 2015-12-18 2017-06-22 International Business Machines Corporation Proxy system mediated legacy transactions using multi-tenant transaction database
AU2017239154A1 (en) * 2016-03-21 2018-11-15 Commonwealth Scientific And Industrial Research Organisation Business process execution on a blockchain platform
WO2017173399A1 (en) * 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
US10022613B2 (en) * 2016-05-02 2018-07-17 Bao Tran Smart device
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
US10108954B2 (en) * 2016-06-24 2018-10-23 PokitDok, Inc. System and method for cryptographically verified data driven contracts
JP6669933B2 (ja) * 2016-07-29 2020-03-18 スクエア, インコーポレイテッド 再プログラム可能な販売時点取引フロー
CN106372514A (zh) 2016-08-30 2017-02-01 东软集团股份有限公司 一种安全漏洞维护方法及系统
US10445709B2 (en) 2016-09-28 2019-10-15 The Toronto-Dominion Bank Real time virtual draft system and method
US20180108089A1 (en) 2016-10-14 2018-04-19 International Business Machines Corporation Transactions and linked assets on a blockchain
US11176519B2 (en) * 2016-11-11 2021-11-16 International Business Machines Corporation Smart contract admission check and fault tolerance in a blockchain
MX2019008243A (es) 2017-01-27 2019-09-06 Walmart Apollo Llc Gestión de aparatos inteligentes que utiliza tecnología de cadena de bloques .
US20180315146A1 (en) * 2017-04-27 2018-11-01 Lyft, Inc. Dynamic autonomous vehicle matching optimization
US20180315145A1 (en) * 2017-05-01 2018-11-01 International Business Machines Corporation Managing school systems on a blockchain
CN107169765B (zh) 2017-05-11 2020-07-31 电子科技大学 一种基于业务信任度对区块链共识进行动态调整的方法
US20180365201A1 (en) 2017-06-14 2018-12-20 Clause, Inc. System and method for compound data-driven contracts and documentation
US10944546B2 (en) * 2017-07-07 2021-03-09 Microsoft Technology Licensing, Llc Blockchain object interface
WO2019068027A1 (en) * 2017-09-29 2019-04-04 PokitDok, Inc. SYSTEM AND METHOD FOR CRYPTOGRAPHIC ACTIVE BLOCK CHAIN
US10963400B2 (en) 2017-10-11 2021-03-30 International Business Machines Corporation Smart contract creation and monitoring for event identification in a blockchain
US20190113932A1 (en) 2017-10-18 2019-04-18 Trw Automotive U.S. Llc Apparatus for positioning a trailer
US11063744B2 (en) 2017-10-20 2021-07-13 Sap Se Document flow tracking using blockchain
WO2019089654A1 (en) * 2017-10-30 2019-05-09 Pricewaterhousecoopers Llp Implementation of continuous real-time validation of distributed data storage systems
EP3483808A1 (en) * 2017-11-14 2019-05-15 Wipro Limited Method and system for tracking and managing additive manufacturing of products
WO2019118173A1 (en) * 2017-12-11 2019-06-20 Global Mobile Finance, Inc. Methodology and system for a blockchain-based mobile money gateway
US20190188804A1 (en) 2017-12-18 2019-06-20 Social Media Compliance Ltd Platform for automated social media regulatory compliance monitoring
US20190251199A1 (en) * 2018-02-14 2019-08-15 Ivan Klianev Transactions Across Blockchain Networks
CN108573341B (zh) 2018-03-23 2021-09-14 杭州云象网络技术有限公司 一种基于联盟链的工作流系统构建方法
US10928803B2 (en) * 2018-05-02 2021-02-23 Rockwell Automation Technologies, Inc. Managing blockchains for multiple components in an industrial facility
CN108965247A (zh) 2018-06-04 2018-12-07 上海交通大学 一种基于区块链的威胁情报交换共享系统和方法
CN108898021B (zh) 2018-06-04 2021-06-01 北京奇虎科技有限公司 基于区块链的威胁情报处理方法、系统及计算设备
CN109034833B (zh) * 2018-06-16 2021-07-23 复旦大学 一种基于区块链的产品追溯信息管理系统及方法
US20190384842A1 (en) * 2018-06-19 2019-12-19 Toyota Motor Engineering & Manufacturing North America, Inc. Systems, methods and data structures for workflow blockchains
US20200028691A1 (en) * 2018-07-20 2020-01-23 Honeywell International Inc. System and method for a blockchain based automated certifiable workflow process
US11769573B2 (en) * 2018-10-16 2023-09-26 Netspective Communications Llc Team-based tele-diagnostics blockchain-enabled system
CN109639646B (zh) 2018-11-16 2020-04-24 清华大学 基于区块链的物联网安全检测方法及系统
CN109544192A (zh) * 2018-11-29 2019-03-29 黄秋红 一种基于区块链技术的藏品防伪溯源方法
CN109767190A (zh) 2018-12-29 2019-05-17 中国工商银行股份有限公司 基于区块链的跨机构工作流处理方法、平台及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018078584A1 (en) * 2016-10-28 2018-05-03 nChain Holdings Limited Systems and methods for implementing deterministic finite automata (dfas) via a blockchain
CN108805703A (zh) * 2017-04-28 2018-11-13 埃森哲环球解决方案有限公司 权利管理系统
WO2019063256A1 (de) * 2017-09-26 2019-04-04 Innogy Innovation Gmbh System, insbesondere authentizitätssystem
CN109840429A (zh) * 2019-01-08 2019-06-04 北京众享比特科技有限公司 智能合约部署、调用方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贺海武 ; 延安 ; 陈泽华 ; .基于区块链的智能合约技术与应用综述.计算机研究与发展.2018,(第11期),第2452-2466页. *

Also Published As

Publication number Publication date
SG11202002787YA (en) 2020-05-28
EP3673432B1 (en) 2021-11-03
CN111066047A (zh) 2020-04-24
EP3673432A4 (en) 2020-10-07
WO2019170174A3 (en) 2020-04-23
EP3673432A2 (en) 2020-07-01
WO2019170174A2 (en) 2019-09-12
US10698738B1 (en) 2020-06-30

Similar Documents

Publication Publication Date Title
CN111066047B (zh) 实现基于区块链的工作流
JP6892513B2 (ja) 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス
US11032077B2 (en) Blockchain-based transaction method and apparatus, and remitter device
US11050549B2 (en) Blockchain-based transaction method and apparatus, and remitter device
US20200409940A1 (en) Implementing a blockchain-based workflow
US10986162B2 (en) Implementing a blockchain-based web service
US11106487B2 (en) Performing parallel execution of transactions in a distributed ledger system
US10917249B2 (en) Processing data elements stored in blockchain networks
US10984492B2 (en) Managing housing scores using smart contracts in blockchain networks
US11354657B2 (en) Managing transactions in multiple blockchain networks
US11372848B2 (en) Managing transactions in multiple blockchain networks
CN110998633B (zh) 在区块链技术中避免双花问题的方法和设备
US11403632B2 (en) Managing transactions in multiple blockchain networks

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: 40028813

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant