区块链技术是公认的有利于促进数字经济发展的技术,一方面能够打通和促进不同主体之间的信息互通、互联问题,第二可以促进数据的安全,可信问题。在新能源资产交易过程中,新能源资产溯源一直是一个很大问题。传统溯源不可靠,有作假的风险和难度,效率不高,流程繁琐,这些不利的因素就会导致溯源存在很多问题。区块链技术一方面可以将新能源资产数字化上链,区块链能够将企业用户提交的数字内容通过电子签名、可信时间戳、哈希值校验、固定和防篡改的技术手段记录新能源资产的创建过程以及新能源资产交易流转过程中产生的重要资产信息,并能够证明其真实性,对新能源资产信息交易过程进行全路程跟踪,对新能源资产交易信息做到不可篡改,增加信用背书,降低溯源成本,更好的明确交易双方,在新能源资产交易过程中具体环节的负责人信息,资产信息,交易信息等,防止新能源资产造假以及交易信息不透明等问题。
1. 背景介绍
工作流通常包括用于完成任务的一系列活动。可以使用软件工具将工作流自动化,所述软件工具应用规则以决定是否已经成功完成了一个步骤以及何时可以开始下一个步骤。在某些情况下,工作流系统可以被设计为组成和执行一系列计算或数据操作步骤。但是,实现工作流系统的复杂性可能导致工作流系统的处理效率低下。因此,需要用于提高工作流系统效率的解决方案。本文描述了用于实现基于区块链的工作流的技术。这些技术通常涉及实现基于区块链网络的工作流系统。工作流可用于高速公路建设、飞机制造、造船、电子商务或任何其 他用途。,将工作流与区块链网络集成可以帮助简化工作流的实施方式并提高工作流系统的安全性和效率。
2. 解决流程
可以定义状态、事件、角色、转换方法、客户端服务方法和上下文中的一个或多个,以实现工作流。
状态可以指示工作流的处理状态
状态可以被配置为记录一个或多个计算机系统事件和/或用户交互。状态由存储在区块链系统或网络中的工作流中定义的一个或多个参数或变量的一个或多个值(例 如,作为字符串,一个或多个数字等)表示。比如说:电子商务工作流中的状态的示例包括“开始 Start”、“项目可用Item Available”、“报价已提交Offer Placed”或“已接受Accepted”,其他工作流中,例如高速公路建设、飞机制造、造船或任何其他用途,可以定义不同的状态。
事件可以包括对工作流的状态转换的指示
事件可以指示工作流的状态已更改为目标状态。事件由存储在区块链系统或网络中的 工作流中定义的一个或多个参数或变量的一个或多个值(例如,作为字符串,一个或多个数字等)表示。事件的示例包括“现在开始is Start Now”、“项目现在可用is Item Available Now”、“报价现在提交is Offer Placed Now”、“现在接受is Accepted Now”和“现在拒绝is Rejected Now”等。事件“现在开始”可以指示工作流已更改为状态“开始”, 而事件“项目现在可用”可以指示工作流已更改为状态“项目可用”。
状态和事件是在区块链网络中部署的智能合约和客户端设备的工作流逻辑之间使用的公共变量
可以在智能合约和工作流逻辑之间共同定义和使用状态和事件,以促进客户端设备的工作流逻辑与区块链网络的集成以及工作流的参与者之间工作流的状态和事件的通信。
调用状态转换方法来完成工作流中的状态转换
状态转换方法包括计算机程序或处理,该计算机程序或过程可以由例如执行智能合约的区块链节点执行,以将工作流的状态改变为目标状态。状态转换方法可以记录智能合约中的当前状态、事件和其他数据。,状态转移方法可以指定以下中的至少一项:状态转换方法的名称、被允许访问状态转换方法的一个或多个角色、包括可以改变为另一状态的状态的状态列表、一个或多个目标状态、一个或多个事件,或一些可选参数。状态转换方法的示例包括“初始项目”、“做出报价make Offer”、“接受报价accept Offer”和“拒绝”等。状态转换方法“做出报价”可以将名称指定为“报价offer price”,将类型指定为“32位整型量unit 32”,将角色指定为“买方”,将状态指定为“项目可用”,将目标状态指定为“报价已提交”,以及将事件指定为“报价现在提交”。
客户端服务方法可以是被配置为通过从区块链网络中检索区块链区块来检测工作流的当前状态的计算机程序或处理。
如果检测到的状态与预定状态匹配,则可以执行客户端服务方法以向客户端提供特定服务并生成目标状态。客户端服务方法指定触发状态、触发事件和目标状态。可以在客户端服务方法中可选地定义目标状态。响应于确定工作流的当前状态为触发状态并且检测到导致从触发状态到目标状态的改变的触发事件,客户端服务方法可以生成目标状态。客户端服务方法的示例包括“初始项目函数Init Item Fun”、 “做出报价函数Make Offer Fun”、“接受函数Accept Fun”等。在这些示例中,客户端服务方法“做出报价函数”可以指定触发状态“项目可用”、触发事件“项目现在可用”、目标状态“报价已提交”和函数“做出报价函数”。如果确定检测到的状态和事件分别与触发状态“项目可用”和触发事件“项目现在可用”相匹配,则可以执行函数“做出报价函数”以对项目做出报价,并相应地生成目标状态“报价已提交”。
智能合约可以提供对状态转换方法的更好的访问控制。
可以定义一个角色以提供对状态转换方法的访问控制。工作流的每个参与者都与一个角色相关联。在具有多个参与者的工作流中,状态转换方法可以指定具有执行 状态转换方法权限的某些角色。电子商务工作流系统中的角色的示例包括“买方”、“卖方” 和“递送方”。,角色由存储在区块链系统或网络中的工作流中定义的一个 或多个参数或变量的一个或多个值(例如,作为字符串,一个或多个数字等)表示。例如,角色可以包括区块链账户的账户身份(例如,账户名称的哈希值),上下文可以包括用于客户端服务方法的输入数据。上下文可以存储在客户端设备处的本地数据库中。上下文可以是远 程过程调用(RPC)返回的结果。客户端设备可以从区块链区块中解析智能合约的日志数据并初始化上下文输入,使得客户端服务方法可以获取智能合约返回的数据。上下文包括客户端名称、账户名称、智能合约名称和补充数据。补充数据的示例包括项目的价格和质量以及价格和质量的数据类型(例如,整数等)。
工作流规范可用于设计基于区块链的工作流系统并生成工作流逻辑。
工作流规范可以定义状态、事件、角色、转换方法、客户端服务方法 和上下文中的一个或多个。所述工作流规范指示将由区块链网络上的智 能合约执行的一个或多个状态转换方法,以及将由位于区块链网络外的参与工作流的一个或多个客户端设备执行的一个或多个客户端服务方法。工作流规范可以由基于区块链的工作流系统的协调者(例如,区块链网络的所有者或运营商,或用于提供基于区块链的工作流系统的第三方服务提供商)获得。
工作流规范可以由工作流的参与者协商和预先确定。例如,工作流的参与者可以提供他们各自的客户端服务方法(例如,通过填写规范表或表格)、参与者之间的数据交换或交互,并确定参与者之间的整 体工作流。基于工作流规范,例如,基于区块链的工作流系统的协调者,生成将由对应于工作流的参与者的一个或多个客户端设备在区块链网络外执行的一个或多个客户端服务逻辑,并将其提供给对应于工作流参与者的各个客户端设备。一个或多个客户端服务逻辑可以由相应的客户端设备配置。例如,一个或多个客户端服务逻辑可以采取SDK的形式,使得一个或多个客户端设备可以填写或修改其各自的作为整体工作流一部分的方法。一个或多个客户端服务逻辑可以包括在客户端服务逻辑之中或之间或者在客户端服务逻辑与区块链网络之间(例如,经由智能合约)定义的应用接口,其可以提供统一且一致的框架,以促进工作流的所有参与者与区块链网络之间的交互,并改善工作流系统的兼容性、可扩展性、灵活性和效率。
基于工作流规范,可以例如由基于区块链的工作流系统的协调者来生成要在区块链网络上执行的一个或多个智能合约。所述一个或多个智能合约可以包括一个或多个状态转换方法。可以基于一个或多个智能合约模板来生成 一个或多个智能合约,该模板具有与基于工作流规范而填写的客户端服务方法有关的功能。替代地或附加地,与客户端服务方法有关的功能可以由工作流的一个或多个参与者来填写。可以将一个或多个智能合约部署在区块链网络上,并由区块链网络的网络节点或客户端设备调用。一个或多个智能合约可以包括定义的至基于区块链的工作流系统的协调者和/或要在区块链网络之外执行的一个或多个客户端服务逻辑的接口。
- 可以基于工作流规范来生成工作流逻辑,该工作流规范指定了不同工作流参与者的任务以及参与者之间的通信或交互。工作流逻辑被配置为包括由参与工作流的客户端设备执行的多个客户端服务方法(或统称为客户端服务方法)。注意,示出的工作流逻辑包括三个客户端服务方法仅出于说明的目的。工作流逻辑可以具有任何合适数量的客户端服务方法。工作流逻辑可以是可配置的客户端服务逻辑,并且客户端服务方法可以包括由计算元件执行的计算处理。例如,工作流逻辑可以是存储在客户端设备上的编程逻辑,并且可以包括将由客户端设备执行的客户端服务方法,以执行某些计算操作并实现特定功能(例如,生成特定输出)。工作流逻辑可以包括可由位于区块链网络之外的客户端设备配置的软件 开发套件(SDK)。每个客户端设备可被配置为执行工作流逻辑。每个客户端设备可被配置为执行工作流逻辑的一部分。例如,每个客户端设备可被配置为执行方法的子集。工作流逻辑是根据预定的工作流规范生成的。工作流规范可以指定将由参与工作流的客户端设备执行的一系列客户端服务方法。
- 客户端服务方法可以被配置为改变工作流的状态。每个客户端服务方法定义触发状态、触发事件和目标状态。可以在客户端服务方法中可选地定义目标状态。响应于确定工作流的当前状态为触发状态并且检测到导致从触发状态到目标状态的改变的触发事件,客户端服务方法可以生成目标状态。
- 客户端设备可以不断地或定期地检测或检索来自区块链网络的工作流的当前状态和事件。当确定检索到的状态和事件分别与客户端服务方法的触发状态和触发事件相匹配,并且确定目标状态在客户端服务方法中被定义时,可以执行客户端服务方法,并且生成相应的目标状态作为结果。例如,客户端设备可以从区块链网络检索当前状态和事件,或者可以被分配有初始状态和事件。响应于确定检索到的状态和事件与客户端服务方法(图示为“方法1”)的触发状态和触发事件相匹配,客户端服务方法可以由客户端设备来执行,并生成相应的目标状态。目标状态的生成导致对智能合约的调用,以执行状态转换方法从而将存储在区块链网络中(例如,在日志文件和/或区块链中)的状态改变为目标状态。
- 工作流逻辑包括具有在智能合约中定义的一个或多个状态转换方法的一个或多个应用界面。可以根据预先确定的工作流规范来生成 工作流逻辑。工作流规范还可指定多个状态转换方法,并可用于生成智能合约, 以使智能合约包括多个状态转换方法。可以将智能合约保存为 智能合约逻辑,并由区块链网络的网络节点部署和执行。可以调用 智能合约以执行多个状态转换方法之一,从而将存储在区块链网络中(例如,在 日志文件或数据和/或区块链中)的当前状态改变为另一状态。
- 智能合约可以用于促进工作流实施。智能合约可以包括工作流系统的每一方或每一个参与者与区块链网络(例如,区块链网 络的共识节点)之间定义的接口。智能合约可以包括可以由工作流系统的每一方或每一个参与者执行的功能或操作。例如,所述功能或操作可以包括客户端设备调用智能合约以执行状态转换方法之一等的功能。智能合约可以定义用于执行特定功能的授权实体。智能合约可以促进在参与实体与区块链网络之间强制执行可追踪的和可信的交互。
- 智能合约被配置为存储多个状态(例如,状态等)和事 件(例如,事件等),所述状态和事件指示区块链网络上的智能合约中的状态转 换。响应于从客户端服务方法接收到达到目标状态的指示,可以执行状态转换方法以将当前状态改变为目标状态,并生成指示状态改变的相应事件。 响应于客户端服务方法生成目标状态,调用智能合约以执行状态转换方法,从而将当前状态(例如状态)改变为目标状态(例如状态)。状态转换方法还可以生成指示将状态改变为状态的事件。然后,状态变为新的当前状态,并与事件一起被存储到日志文件中。日志文件可以进一步被记录在区 块链网络上的区块链中。
- 智能合约指定被配置为向状态转换方法提供访问控制的多个角色。电子商务工作流系统中的角色的示例包括“买方”、“卖方”和“递送方”。每个角色都包括区块链账户的账户身份(例如,账户名称的哈希值)。所述多个角色被配置以向状态转换方法提供访问控制,以使得与所述角色之一相关联的区块链账户可以被允许访问多个状态转换方法中的一个或多个。
- 智能合约中的状态之一自动触发要在区块链网络外执行的一个或多个客户端服务方法。区块链记录包括智能合约的事件和状态的日志文件。客户端设备不断地或定期地(例如,周 期性地)拉取或以其他方式访问区块链网络上的区块链,以获得包括智能合约的当前事件和状态的区块链区块。例如,客户端设备可以从来自区块链网络的区块链区块中检索相关信息。区块链网络可以周期性地或在更新可用时,将区块链区块推送或以其他方式发送到客户端设备。因此,客户端设备可以从区块链区块获得相关日志数据,并将该日志数据作为本地日志数据存储在客户端设备中。所述日志数据包括智能合约的当前状态和事件以及其他信息。
- 客户端设备可以确定日志数据中的状态和事件分 别与客户端服务方法中定义的触发状态和触发事件相匹配。响应于确定存在匹配,执行 客户端服务方法。如果在客户端服务方法中定义了目标状态,则该 目标状态可作为执行客户端服务方法的结果被生成。如果在客户端服务方法中未定 义目标状态,则可以生成输出以触发后续客户端服务方法的执行。例如,如果确定日志 数据中的状态和事件分别与客户端服务方法b中定义的触 发状态和触发事件匹配,并且目标状态未被客户端服务方法定义,则可以由客户端服 务方法生成触发客户端服务方法执行的输出。10
- . 客户端服务方法被配置为从数据库获得上下文数据,以执行客户端服务方法。作为示例,上下文数据可以包括指示目标区块链网络(例如,实现工作流的区块链网络)的客户端、被允许访问目标区块链网络上的数据的区块链账户、在目标区块链网络上执行的智能合约、以及来自远程过程调用(RPC)的其他输入数据。
- 可根据本文实施方式执行的处理的示例的信号流。该信号流表示用于实现基于区块链的工作流的处理。该处理将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当编程的分布式系统可以执行该处理。
- 首先,可以根据工作流规范生成智能合约,并将其部署在区块链网络(例如,区块链网络)上。工作流规范可指定多个状态转换方法,并可用于生成智能合约,以使智能合约包括多个状态转换方法。工作流规范可以指定要由参与工作流的客户端设备(例如,客户端设备)执行的一系列客户端服务方法(例如,客户端服务方法)。可以根据工作流规范来生成工作流逻辑(例如,工作流逻辑),使得工作流逻辑包括一个或多个客户端服务方法。每个客户端设备可以被配置为执行工作流逻辑或工作流逻辑的一部分(例如,工作流 逻辑中的客户端服务方法的子集)。
- 客户端设备执行工作流逻辑中的第一客户端服务方法。所述第一客户端服务方法定义触发状态、触发事件和目标状态。所述客户端设备从最新的区块链区块检索智能合约的当前状态(例如,“状态A”)和事件。所述客户端设备可以将它们分别与触发状态和触发事件进行比较。在替代实施例中,可以向客户端设备分配初始状态和事件,并将它们分别与触发状态和触发事件进行比较。
- 当确定存在针对触发状态和事件的匹配时,客户端设备执行所述第一客户端服务方法并生成指示目标状态(例如,“状态B”)的输出。目标状态与智能合约的状态转换方法相关联,使得状态转换方法的执行导致将智能合约的当前状态改变为目标状态。通过第一客户端服务方法输出目标状态导致对智能合约的合约调用,以执行状态转换方法。
- 客户端设备根据在步骤确定的目标状态,对在区块链网络上执行 的智能合约进行合约调用。例如,客户端设备可以对智能合约进行合约调用以执行与 目标状态相关联的状态转换方法。
- 区块链网络(例如,区块链网络的共识节点)接收对智能合约的合约调用以执行与目标状态相关联的状态转换方法。区块链网络可以执行对合约调用的共识处理,然后根据来自第一客户端服务方法的目标状态执行状态转换方法。执行状态转换方法以将智能合约的当前状态改变为目标状态(例如,“状态B”)。在执行智能合约时,区块链网络确定与执行第一客户端服务方法的客户端设备相关联的区块链账户是否被授权进行合约调用以执行状态转换方法。例如,可以定义智能合约中的状态转换方法,以使一个或多个角色被授权访问状态转换方法,而其他角色不被允许访问状态转换方法。
- 状态转换方法可以生成指示智能合约的当前状态转变为目标状态的事件。执行状态转换方法后,目标状态将成为智能合约的新当前状态。
- 将新当前状态和事件存储到区块链网络。状态和事件被存储到智能合约中的日志文件中。日志文件被进一步记录在存储在区块链网络上的区块链中。
- 客户端设备访问区块链网络以获得区块链的最新信息。每个客户端设备可以确定从区块链检索到的状态和事件是否分别与由客户端设备执行的客户端服务方法中定义的触发状态和触发事件相匹配。
- 客户端设备不断地或定期地(例如,周期性地)拉取或以其他方式访问区块链网络上的区块链。在客户端设备可以订阅存储在区块链中的信息。区块链网络可以将存储在区块链中的信息不断地或定期地(例如,周期性地)推送或以其他方式发送到客户端设备。这样,客户端设备可以获得包括智能 合约的当前状态和事件在内的区块链的最新信息。
- 客户端设备确定从区块链检索到的当前状态(例如,“状态B”)和事件与将由客户端设备执行的工作流逻辑的第二客户端服务方法的触发状态和触发事件匹配。可以存在被配置为由客户端设备执行的多个客户端服务方法。客户端设备可以将从区块链中检索到的状态和事件与每个客户端服务方法的触发状态和触发事件进行比较,以确定要执行哪个客户端服务方法。
- 如果确定从区块链检索到的状态和事件分别与第二客户端服务方法的触发状态和触发事件相匹配,则客户端设备执行第二客户端服务方法。第二客户端服务方法不定义目标状态。在这样的情况下,可以执行第二客户端服务方法以生成触发后续客户端服务方法执行的输出。
- 如果执行了第二客户端服务方法以生成触发第三客户端服务方法执行的输出,则客户端设备执行工作流逻辑的第三客户端服务方法。第三客户端服务方法定义目标状态(例如,“状态C”)。第三客户服务方法的执行可以导致第三客户端服务方法生成(输出)目标状态。
- 如果第三客户端服务方法定义了目标状态并且第三客户端服务方法生成了该目标状态,则客户端设备调用智能合约以执行状态转换方法。可以执行状态转换方法以将智能合约的当前状态改变为由第三客户端服务生成的目标状态。
- 在接收到智能合约并执行了共识处理之后,区块链网络可以执行状态转换方法以将智能合约的当前状态(例如,“状态B”)改变为由第三客户端服务生成的目标状态(例如,“状态C”),确定与执行第三客户端服务方法的客户端设备相关联的区块链账户是否被授权进行合约调用以执行状态转换方法。智能合约执行状态转换方法以生成指示智能合约的当前状态转变为目标状态的事件。 目标状态成为智能合约的新当前状态。
- 将智能合约的新当前状态(例如,“状态C”)和事件存储到区块链网络。状态和事件被存储到智能合约中的日志文件中。
- 可以包括区块链网络与客户端设备和之间的附加的或不同的操作和交互。处理可以包括工作流参与者的附加客户端设备。
- 可根据本文实施例执行的用于实现工作流的处理流程可以是在上下文中由区块链网络执行的处理为方便起见,处理将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。
- 由区块链网络(例如,区块链网络的共识节点或非共识节点)和/或位于区块链网络之外的客户端设备接收该工作流。例如,所述工作流规范指示将由区块链网络上的智能合约执行的一个或多个状态转换方法,以及将由位于区块链网络之外的参与工作流的一个或多个客户端设备执行的一个或多个客户端服务方法。
- 根据工作流规范生成智能合约。智能合约将在区块链网络上执行。智能合约包括一个或多个状态转换方法和一个或多个状态。在一个或多个状态的中的至少一个状态自动触发在区块链网络外执行一个或多个客户端服务方法。例如,智能合约可以将状态定义为触发状态,将事件定义为触发事件,以用于可由指定客户端设备执行的指定客户端服务方法。如果智能合约的执行导致触发状态和触发事件,则智能合约可以自动向指定的客户端设备发送信令或指令,以由位于区块链之外的指定的客户端设备调用执行指定的客户端服务方法。智能合约和指定的客户端服务方法包括相应的接口和逻辑,所述接口和逻 辑识别用于执行指定的客户端服务方法的触发状态和触发事件。
- 根据工作流规范为一个或多个客户端设备中的每个客户端设备生成可配置的客户端服务逻辑。可配置的客户端服务逻辑将由位于区块链网络之外的一个或多个客户端设备执行。客户端服务逻辑包括一个或多个客户端服务方法。工作流规范指定在智能合约的状态转换方法和可配置的客户端服务逻辑的客户端服务方法之间共同定义的一个或多个状态和事件(例如,用于指定的客户端服务方法的触发状态和触发事件)。一个或多个客户端服务方法中的至少一个客户端服务方法改变智能合约中的一个或多个状态。在执行了导致更新状态(例如,客户端服务方法的目标状态)的客户端服务方法之后,可配置的客户端服务逻辑可以包括用于在区块链上上传或以其他方式记录更新状态,和/或触发在工作流程中指定的后续方法(例如,由客户端服务或其他客户端服务执行的方法)的接口和逻辑。客户端服务可以发送诸如智能合约调用之类的请求以调用在智能合约中定义的一个或多个状态交易方法,从而更新状态。
- 可配置的客户端服务逻辑被部署到一个或多个相应的客户端设备。客户端设备可以扩展、填充、完成、编译或以其他方式配置客户端服务逻辑,以便客户端服务逻辑准备好在区块链网络外的客户端服务上执行。
- 将智能合约部署到区块链网络。智能合约被部署在区块链网络上的每个共识节点上。将智能合约部署到区块链网络包括:编译智能合约的脚本;利用智能合约的信息(例如,智能合约的字节码等)创建部署交易;以及将部署交易发送到区块链网络的共识节点。接收到部署交易的共识节点可以发起共识处理,并将部署交易分发到区块链网络的其他共识节点。每个共识节点都可以验证部署交易,如果共识节点之间达成共识,则可以将智能合约成功部署到区块链网络。
- 在将智能合约部署到区块链网络并且由相应的客户端设备配置客户端服务逻辑之后,可以执行处理以实现工作流规范中指定的工作流。
- 工作流规范指示将由区块链网络上的智能合约执行的一个或多个状态转换方法,以及将由位于区块链网络之外的参与工作流的一个或多个客户端设备执行的一个或多个客户端服务方法;用于根据工作流规范生成将在区块链网络上执行的智能合约,所述智能合约包括所述一个或多个状态转换方法和一个或多个状态,其中,所述一个或多个状态中的至少一个状态自动触发一个或多个客户端服务方法在区块链网络之外执行;第二生成模块,用于根据工作流规范为一个或多个客户端设备中的每个客户端设备生成可配置的客户端服务逻辑,所述可配置客户端服务逻辑将由位于区块链之外的一个或多个客户端设备执行,所述客户端服务逻辑包括一个或多个客户端服务方法,其中,所述一个或多个客户端服务方法中的至少一个客户端服务方法改变智能合约中的一个或多个状态;以及部署模块,用于将智能合约部署到区块链网络。
- 在区块链网络上的执行状态转换方法导致从一个状态到另一状态的转换。一个或多个状态和一个或多个事件被存储在区块链网络上,并且一个或多个事件中的每一个事件指示区块链网络的状态改变。
- 智能合约还包括一个或多个角色,其中一个或多个角色提供对一个或多个状态转换方法的访问控制,从而允许与一个或多个角色之一相关联的区块链账户访问一个或多个状态转换方法中的一个或多个。
- 可配置的客户端服务逻辑包括用于访问智能合约中定义的一个或多个状态转换方法的一个或多个应用接口。
- 可配置的客户端服务逻辑包括可由区块链网络之外的客户端设备配置的软件开发套件(SDK)。
- 一个或多个客户端服务方法中的至少一个客户端服务方法定义触发状态、触发事件和目标状态,其中,响应于确定区块链网络的当前状态为触发状态并且检测到导致从触发状态到目标状态的改变的触发事件,所述一个或多个客户端服务方法中的至少一个客户端服务方法生成目标状态。
- 装置还包括执行子模块,用于响应于至少一个客户端服务方法生成了目标状态,执行状态转换方法,以将区块链网络的当前状态改变为目标状态。
- 智能合约将工作流的状态和指示状态改变的事件存储到区块链网络上的日志文件中。通过将状态和事件存储在区块链网络上的日志文件中,由于区块链网络上的日志文件是不可篡改的,因此有关工作流处理状态的信息(即工作流的状 态)可以更加安全可靠。例如,恶意行动者无法通过篡改有关工作流的状态和事件的信息来 破坏网络。这样,本文所述的技术提高了实现所述技术的计算机系统、网络和数据库系统的安全性。
3. 链码实现
思考中…