CN114327804A - 基于区块链的分布式事务处理方法、装置、设备和介质 - Google Patents
基于区块链的分布式事务处理方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN114327804A CN114327804A CN202210252602.0A CN202210252602A CN114327804A CN 114327804 A CN114327804 A CN 114327804A CN 202210252602 A CN202210252602 A CN 202210252602A CN 114327804 A CN114327804 A CN 114327804A
- Authority
- CN
- China
- Prior art keywords
- transaction
- service
- execution
- processing
- micro
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种基于区块链的分布式事务处理方法、装置、设备和介质,涉及计算机技术领域,尤其涉及区块链技术。该方法应用于分布式系统,该方法包括:在执行业务处理请求的过程中产生至少一个事务处理请求;调用智能合约的预执行接口,以预执行事务处理请求,并使得预执行的事务处理数据上链且将预执行的写数据集进行冻结;向分布式事务协调器发送业务预执行通知;接收智能合约反馈的事务预执行结果;根据至少一个事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知分布式事务协调器,指示分布式事务协调器通知智能合约调整所述写数据集的冻结状态。上述技术方案有助于提高微服务模块和区块链的运行效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及区块链技术。
背景技术
现有的业务处理系统功能越来越庞大,通常设置众多独立的微服务模块来进行功能解耦,可称为分布式系统。
微服务模块之间会存在调用关系,例如,购物微服务会调用身份验证微服务的功能。随着区块链技术的发展,微服务模块也可能需要用到区块链上部署的智能合约所提供的功能。例如,智能合约可能提供某些数据存储和查询的功能等。
上述技术存在的缺陷在于,为了使用一项业务目标,可能需要微服务模块之间的调用和对智能合约的调用,每个微服务模块和智能合约会分布式进行处理并产生处理结果,这种处理可称为原子性的事务处理。当任一事务处理结果为失败时,其他事务处理结果也将失效。这些失效结果对微服务模块和区块链的运行效率都产生了一定影响,特别是会产生区块链数据的回滚操作,占用过多处理资源。
发明内容
本公开提供了一种基于区块链的分布式事务处理方法、装置、设备和介质,以保证微服务模块和区块链的运行效率,避免处理资源的大量占用。
第一方面,本公开实施例提供了一种基于区块链的分布式事务处理方法,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述方法由微服务模块执行,所述方法包括:
获取业务处理请求,在执行所述业务处理请求的过程中产生至少一个事务处理请求;
根据所述事务处理请求,调用智能合约的预执行接口,以预执行所述事务处理请求,并使得所述智能合约在预执行所述事务处理请求之后,将预执行的事务处理数据上链且将预执行的写数据集进行冻结;
向分布式事务协调器发送业务预执行通知;
接收智能合约反馈的事务预执行结果;
根据至少一个所述事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知所述分布式事务协调器,指示所述分布式事务协调器通知所述智能合约调整所述写数据集的冻结状态。
第二方面,本公开实施例还提供了一种基于区块链的分布式事务处理方法,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述方法由所述智能合约执行,所述方法包括:
接收微服务模块基于预执行接口发起的事务处理请求;
预执行所述事务处理请求,以产生事务处理数据,所述事务处理数据包括对区块链中数据进行变更的写数据集;
将事务预执行通知给分布式事务协调器;
将所述事务处理数据进行上链,并根据所述写数据集将本地对应的区块链中数据进行冻结;
将事务预执行结果反馈给微服务模块;
接收所述分布式事务协调器发送的处理结果通知;
根据所述处理结果通知调整所述写数据集的冻结状态。
第三方面,本公开实施例还提供了一种基于区块链的分布式事务处理方法,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述方法由所述分布式事务协调器执行,所述方法包括:
接收微服务模块发送的业务预执行通知;
接收智能合约和/或其他微服务模块在预执行事务处理请求之后发送的事务预执行通知;其中,至少一个事务处理请求是在微服务模块执行业务处理请求的过程中产生的;
接收微服务模块发送的业务处理结果;
根据所述业务处理结果,和业务关联的事务预执行通知,将所述业务处理结果发送给所述智能合约和/或其他微服务模块,指示所述智能合约调整写数据集的冻结状态。
第四方面,本公开实施例还提供了一种基于区块链的分布式事务处理装置,应用于分布式系统,所述分布式系统包括:所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述装置配置于微服务模块,所述装置包括:
事务处理请求生成模块,用于获取业务处理请求,在执行所述业务处理请求的过程中产生至少一个事务处理请求;
预执行接口调用模块,用于根据所述事务处理请求,调用智能合约的预执行接口,以预执行所述事务处理请求,并使得所述智能合约在预执行所述事务处理请求之后,将预执行的事务处理数据上链且将预执行的写数据集进行冻结;
业务预执行通知发送模块,用于向分布式事务协调器发送业务预执行通知;
事务预执行结果接收模块,用于接收智能合约反馈的事务预执行结果;
业务预执行结果确定模块,用于根据至少一个所述事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知所述分布式事务协调器,指示所述分布式事务协调器通知所述智能合约调整所述写数据集的冻结状态。
第五方面,本公开实施例还提供了一种基于区块链的分布式事务处理装置,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述装置配置于智能合约,所述装置包括:
事务处理请求接收模块,用于接收微服务模块基于预执行接口发起的事务处理请求;
事务处理请求预执行模块,用于预执行所述事务处理请求,以产生事务处理数据,所述事务处理数据包括对区块链中数据进行变更的写数据集;
事务预执行通知模块,用于将事务预执行通知给分布式事务协调器;
事务处理数据处理模块,用于将所述事务处理数据进行上链,并根据所述写数据集将本地对应的区块链中数据进行冻结;
事务预执行结果反馈模块,用于将事务预执行结果反馈给微服务模块;
处理结果通知接收模块,用于接收所述分布式事务协调器发送的处理结果通知;
写数据集状态调整模块,用于根据所述处理结果通知调整所述写数据集的冻结状态。
第六方面,本公开实施例还提供了一种基于区块链的分布式事务处理装置,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述装置配置于分布式事务协调器,所述装置包括:
业务预执行通知接收模块,用于接收微服务模块发送的业务预执行通知;
事务预执行通知接收模块,用于接收智能合约和/或其他微服务模块在预执行事务处理请求之后发送的事务预执行通知;其中,至少一个事务处理请求是在微服务模块执行业务处理请求的过程中产生的;
业务处理结果接收模块,用于接收微服务模块发送的业务处理结果;
业务处理结果发送模块,用于根据所述业务处理结果,和业务关联的事务预执行通知,将所述业务处理结果发送给所述智能合约和/或其他微服务模块,指示所述智能合约调整写数据集的冻结状态。
第七方面,本公开实施例还提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面,或第二方面,或第三方面实施例所提供的基于区块链的分布式事务处理方法。
第八方面,本公开实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如第一方面,或者第二方面,或者第三方面实施例所提供的基于区块链的分布式事务处理方法。
第九方面,本公开实施例还提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令在被处理器执行时实现如第一方面,或者第二方面,或者第三方面实施例所提供的基于区块链的分布式事务处理方法。
本公开实施例通过微服务模块调用智能合约的预执行接口,对业务处理请求执行过程中所产生的事务处理请求展开预执行操作,并将预执行的写数据集进行冻结,能够避免对该写数据集在区块链中的对应数据的即时更新,在此基础上,通过将基于至少一个事务预执行结果所确定的业务预执行结果发送至分布式事务协调器,使得分布式事务协调器基于该业务预执行结果通知智能合约对写数据集的冻结状态进行调整,从而确保了在确定业务处理请求的业务预执行结果之后,方可对写数据集在区块链中的对应数据做出相应的调整,有效解决了在出现事务预执行结果发生失效的情况时,需对所有事务处理数据进行回滚操作而占用过多处理资源的问题,同时有助于提高微服务模块和区块链的运行效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例所提供的一种基于区块链的分布式事务处理方法的流程图;
图2是根据本公开实施例所提供的一种基于区块链的分布式事务处理方法的流程图;
图3是根据本公开实施例所提供的一种基于区块链的分布式事务处理方法的流程图;
图4是根据本公开实施例所提供的一种基于区块链的分布式事务处理方法的流程图;
图5是根据本公开实施例所提供的一种基于区块链的分布式事务处理方法的流程图;
图6是根据本公开实施例所提供的一种基于区块链的分布式事务处理装置的结构示意图;
图7是根据本公开实施例所提供的一种基于区块链的分布式事务处理装置的结构示意图;
图8是根据本公开实施例所提供的一种基于区块链的分布式事务处理装置的结构示意图;
图9是用来实现本公开实施例所提供的一种基于区块链的分布式事务处理方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是本公开实施例提供的一种基于区块链的分布式事务处理方法的流程图,本公开实施例可适用于区块链进行分布式事务处理的情况。该方法应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器。该方法可由一种基于区块链的分布式事务处理装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备,该电子设备可以是微服务模块或配置有微服务模块的设备。参考图1,所述方法由微服务模块执行,具体包括如下:
S110、获取业务处理请求,在执行所述业务处理请求的过程中产生至少一个事务处理请求。
其中,在区块链系统中可以部署各种智能合约来实现相应的有业务功能,业务功能例如为:电子货物的购买、游戏等直接提供给用户的功能,业务功能也可以是在区块链系统中需要为其他业务智能合约提供的功能,例如,转账数据处理、权限验证等。用户可通过区块链的客户端获取各智能合约所提供的接口界面。其中,智能合约可以用于执行涉及复杂业务功能的业务处理请求,还可以用于执行涉及简单业务功能的事务处理请求。
其中,微服务模块可以是用于实现特定业务功能的服务模块。每一个微服务模块中可以包含有一个微服务,微服务可以对区块链中所部署的智能合约进行调用,用于实现特定的业务功能。不同的微服务之间可以相互调用,例如微服务A可以调用微服务B和/或C,微服务B可以调用微服务A和/或C,以此类推。微服务可以配置在区块链节点上,微服务本身可以为区块链上部署的功能,也可以不是区块链上部署的功能。
其中,业务处理请求可以是由用户根据自身需要通过客户端向微服务模块发起,微服务执行的过程中向区块链上对应智能合约发起的事务处理请求。事务处理请求可以是在业务处理请求执行过程中,所产生的链上处理请求。
具体地,微服务模块可以对用户所发起的业务处理请求进行获取,并对该业务处理请求进行执行,该业务处理请求在执行过程中可以产生至少一个事务处理请求。例如,微服务为购物服务,在购物服务的过程中,可能需要对用户的人脸、指纹进行识别以验证身份,可能需要进行转账,可能需要对电子购物对象进行记录和追踪等。购物服务可以为链下业务,验证身份、转账、记录追踪等功能可以为链上智能合约提供的业务功能,当然,也可以是其他微服务模块提供的业务功能。
S120、根据所述事务处理请求,调用智能合约的预执行接口,以预执行所述事务处理请求,并使得所述智能合约在预执行所述事务处理请求之后,将预执行的事务处理数据上链且将预执行的写数据集进行冻结。
其中,预执行接口可以是智能合约中用于调用智能合约对事务处理请求进行预执行的接口。预执行的事务处理数据可以是由各个区块链节点分别对事务处理请求进行预执行所产生的事务数据,该事务数据中一般包括读数据集和写数据集。读数据集和写数据集,均为区块链所属数据,即其他账户也需依赖这些数据进行业务处理。例如,用户的账户余额,如果经本次事务处理要改写账户中的金额,则后续其他用户继续转账时也需要依赖该账户的已有金额才能确定后续转账操作是否成功。正常的区块链事务请求处理,会产生事务数据记录在当前区块中,同时修改区块链节点的合约状态层所存储的数据,以备后续事务请求来读取使用。但本实施例中的预执行,可以仅将事务数据写入当前区块进行记录,而不马上基于写数据集更新区块链节点合约状态层的数据,仅冻结需要更新的数据,使得后续事务请求无法读取和更改该冻结的数据,实现了在区块链节点底层不更新数据。如果不更新区块链底层数据,而仅记录在当前区块中,则如果整体业务请求处理失败,需要回滚时,则可以发起回滚事务请求,将删除区块或设置该事务数据失效即可,同时对底层数据进行解冻,不必将区块中全部事务请求进行重新处理。如果整体业务请求处理成功,可再次发起一次提交事务请求,用于将冻结的底层区块链数据进行解冻更新。
可选的,可以针对每一个事务处理请求,基于尝试、确认或撤销(Try ConfirmCancel,TCC)协议,在区块链中对应的智能合约中注册对应的尝试(Try)接口、确认(Confirm)接口及撤销(Cancel)接口。其中,Try接口可以被自定义为智能合约的预执行接口。微服务模块可以通过Try接口对区块链中对应的智能合约进行调用,预执行事务处理请求,并将预执行的写数据集进行冻结。Confirm接口和Cancel接口可以用于对预执行的结果进行确认,以对预执行的写数据集的冻结状态进行调整。
具体地,微服务模块可以根据事务处理请求,基于所对应的微服务,通过该微服务对该事务处理请求对应的智能合约的预执行接口进行调用,例如可以通过调用Try接口,以实现对该事务处理请求的预执行操作,并使得该智能合约将预执行该事务处理请求所产生的事务数据上传至区块链中进行存储,且将事务数据中所包括的写数据集进行冻结。
S130、向分布式事务协调器发送业务预执行通知。
其中,分布式事务协调器可以是微服务模块执行业务处理请求过程中的调度中心,可以为至少一个事务处理请求的执行提供调度服务。业务预执行通知可以是智能合约对事务处理请求执行预执行操作的通知信息。
具体地,微服务模块可以在调用智能合约的预执行接口对所产生的事务处理请求进行预执行操作后,向分布式事务协调器发送业务预执行通知。
S140、接收智能合约反馈的事务预执行结果。
其中,事务预执行结果可以是用于指示智能合约对事务处理请求是否预执行成功的结果。该事务预执行结果可以是执行成功,也可以是执行失败。
具体地,智能合约可以在对事务处理请求执行预执行操作后,产生对应的事务预执行结果,并将该预执行结果反馈至微服务模块。相应的,微服务模块可以对该预执行结果进行接收。
S150、根据至少一个所述事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知所述分布式事务协调器,指示所述分布式事务协调器通知所述智能合约调整所述写数据集的冻结状态。
其中,业务预执行结果可以是用于指示业务处理请求是否处理成功的结果。该业务预执行结果可以是处理成功,也可以是处理失败。
具体地,微服务模块可以基于至少一个事务预执行结果,对业务处理请求所对应的业务预执行结果进行判定,并将所确定的业务预执行结果通知至分布式事务协调器,基于该业务预执行结果,可以指示分布式事务协调器通知智能合约对预执行的写数据集的冻结状态进行调整。对于多个事务预执行结果的情况,成功的事务预执行结果满足设定成功条件时,才可确定业务预执行结果是成功的。失败的情况与此类似。
示例性地,根据至少一个所述事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知所述分布式事务协调器,指示所述分布式事务协调器通知所述智能合约调整所述写数据集的冻结状态可以包括:
根据至少一个所述事务预执行结果确定业务处理请求处理成功,则向所述分布式事务协调器发送成功通知,指示所述分布式事务协调器通知所述智能合约取消所述写数据集的冻结,以更新所述写数据集在区块链中的对应数据;
根据至少一个所述事务预执行结果确定业务处理请求处理失败,则向所述分布式事务协调器发送失败通知,以指示所述分布式事务协调器通知所述智能合约释放所述写数据集的冻结,以恢复所述写数据集在区块链中的对应数据。
具体地,可以基于至少一个事务预执行结果,对业务处理请求是否处理成功进行确定。其中,若确认该业务处理请求处理成功,则可以向分布式事务协调器发送该业务处理请求处理成功的通知信息,基于该通知信息,分布式事务协调器可以向一个或多个智能合约发送取消对应写数据集的冻结的通知,以对在区块链中与该写数据集对应的数据进行更新。若确认该业务处理请求处理失败,则可以向分布式事务协调器发送该业务处理请求处理失败的通知信息,基于该处理失败的通知信息,分布式事务协调器可以对被冻结的对应的写数据集进行释放,以对在区块链中与该写数据集对应的数据进行恢复。
可以理解的是,微服务模块可以基于至少一个事务预执行结果对业务处理请求是否执行成功进行确定,并向分布式事务协调器发送相应的成功或失败通知,使得分布式事务协调器可以根据所接收的成功或失败通知,对智能合约发出对应写数据集的冻结状态调整通知,以更新或恢复区块链中的对应数据,从而确保了在确定业务处理请求的执行结果的成功与否之后,方可对区块链中的对应数据进行调整操作,能够有效解决在业务处理请求处理失败的情况下,需要对所有事务处理数据进行回滚操作而占用过多处理资源的问题,同时有助于提高微服务模块和区块链的运行效率。
在一个可选实施例中,在执行所述业务处理请求的过程中产生至少一个事务处理请求之后,还可以包括:
根据所述事务处理请求,调用其他微服务模块的预执行接口,以预执行所述事务处理请求;
接收其他微服务模块反馈的事务预执行结果。
具体地,当前微服务模块在对所获取的业务处理请求进行执行的过程中,可以产生至少一个事务处理请求。其中,该事务处理请求可以用于请求当前微服务模块对应的业务功能之外的其他业务功能,基于此,当前微服务模块可以对其他微服务模块的预执行接口进行调用,以对该事务处理请求进行预执行。其他微服务模块在执行完相应事务处理请求后,可以将事务预执行结果反馈至当前微服务模块。相应的,当前微服务模块可以对其他微服务模块反馈的事务预执行结果进行接收。
可以理解的是,当前微服务模块可以在业务处理请求执行的过程中,对其他微服务模块进行调用,以对执行业务处理请求所产生的至少一个事务处理请求进行预执行操作并接收对应的事务预执行结果,能够实现对所产生的事务处理请求的分开执行,从而提高业务处理请求的处理效率,同时有助于保证微服务模块的运行效率。
本公开实施例通过微服务模块调用智能合约的预执行接口,对业务处理请求执行过程中所产生的事务处理请求展开预执行操作,并将预执行的写数据集进行冻结,能够避免对该写数据集在区块链中的对应数据的即时更新,在此基础上,通过将基于至少一个事务预执行结果所确定的业务预执行结果发送至分布式事务协调器,使得分布式事务协调器基于该业务预执行结果通知智能合约对写数据集的冻结状态进行调整,从而确保了在确定业务处理请求的业务预执行结果之后,方可对写数据集在区块链中的对应数据做出相应的调整操作,有效解决了在出现事务预执行结果发生失效的情况时,需对所有事务处理数据进行回滚操作而占用过多处理资源的问题,同时有助于提高微服务模块和区块链的运行效率。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等,均符合相关法律法规的规定,且不违背公序良俗。
图2是本公开实施例提供的一种基于区块链的分布式事务处理方法的流程图,本公开实施例可适用于区块链进行分布式事务处理的情况。该方法应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器。该方法可由一种基于区块链的分布式事务处理装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,特别是部署由智能合约的区块链节点。参考图2,所述方法由智能合约执行,具体包括如下:
S210、接收微服务模块基于预执行接口发起的事务处理请求。
具体地,微服务模块可以在对业务处理请求执行的过程中,产生至少一个事务处理请求,且通过智能合约中所设置的预执行接口,可以向该智能合约发起相应的事务处理请求。相应的,智能合约可以对该事务处理请求进行接收。
S220、预执行所述事务处理请求,以产生事务处理数据,所述事务处理数据包括对区块链中数据进行变更的写数据集。
具体地,智能合约可以对接收的事务处理请求展开预执行操作,该预执行操作可以产生与该事务处理请求对应的事务处理数据。其中,该事务处理数据中包括写数据集,智能合约可以基于该写数据集,对区块链中对应的数据进行变更。
S230、将事务预执行通知给分布式事务协调器。
具体地,智能合约在对所接收的事务处理请求开展预执行操作后,可以对分布式事务协调器发起相应的通知,以使得分布式事务协调器获知相应事务处理请求的执行情况。
S240、将所述事务处理数据进行上链,并根据所述写数据集将本地对应的区块链中数据进行冻结。
具体地,智能合约对事务处理请求进行预执行所产生的事务处理数据,需要上传至区块链中进行存储。相应的,智能合约可以将事务处理数据上传至区块链进行存储,进一步地,还可基于该事务处理数据中的写数据集,将区块链本地中所对应的需要变更的数据进行冻结。
S250、将事务预执行结果反馈给微服务模块。
具体地,智能合约针对事务处理请求的预执行操作可以产生对应的事务预执行结果。其中,该事务预执行结果可以是执行成功,也可以是执行失败。进一步地,智能合约可以将该事务预执行结果反馈至微服务模块。
S260、接收所述分布式事务协调器发送的处理结果通知。
其中,处理结果通知可以是针对业务处理请求的处理结果所发出的通知信息。
具体地,分布式事务协调器可以向智能合约发送相应的业务处理请求的处理结果通知,并调用智能合约中所注册的Confirm接口或Cancel接口,对该处理结果进行接收。
S270、根据所述处理结果通知调整所述写数据集的冻结状态。
具体地,智能合约在接收到处理结果通知后,可以通过该处理结果通知所包含的具体信息,对处理结果的类型进行判断,并基于该处理结果的类型对写数据集的冻结状态做出相应的调整。其中,处理结果的类型可以是处理成功,也可以是处理失败。
示例性地,根据所述处理结果通知调整所述写数据集的冻结状态可以包括:
如果处理结果通知为处理成功,则取消所述写数据集的冻结,以更新所述写数据集在区块链中的对应数据;
如果处理结果通知为处理失败,则释放所述写数据集的冻结,以恢复所述写数据集在区块链中的对应数据。
具体地,当处理结果通知是处理成功时,智能合约可以取消对写数据集的冻结,从而可以基于非冻结状态的写数据集,对该写数据集在区块链中的对应数据进行更新。当处理结果通知是失败时,智能合约可以对冻结的写数据集进行释放,以实现该写数据集在区块链中的对应数据的恢复。
可以理解的是,通过基于处理结果通知的类型,对写数据集的冻结状态进行相应的调整,以完成区块链中对应数据的变更,确保了在确定处理结果的成功与否之后,方可对区块链中的对应数据进行相应的调整操作,从而能够有效解决在业务处理请求处理失败的情况下,需对所有事务处理数据进行回滚操作而占用过多处理资源的问题,同时有助于提高微服务模块和区块链的运行效率。
本公开实施例通过智能合约对事务处理请求进行预执行,并基于所产生的事务处理数据中写数据集,将本地对应的区块链中数据进行冻结,能够避免对本地对应的区块链数据的即时更改。并且,该智能合约在获取分布式事务协调器所发送的处理结果通知之后,才可对事务处理数据中的写数据集的冻结状态进行调整,以更改本地对应的区块链数据,从而能够有效解决在业务处理请求处理失败的情况下,需对所有的事务处理数据进行回滚操作而占用过多处理资源的问题,同时有助于提高微服务模块和区块链的运行效率。
图3是本公开实施例提供的一种基于区块链的分布式事务处理方法的流程图,本公开实施例可适用于区块链进行分布式事务处理的情况。该方法应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器。该方法可由一种基于区块链的分布式事务处理装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备,该电子设备可以是分布式事务协调器。参考图3,所述方法由智能合约执行,具体包括如下:
S310、接收微服务模块发送的业务预执行通知。
具体地,微服务模块可以在执行所获取的业务处理请求的过程中,产生至少一个事务处理请求,并可以根据事务处理请求,调用智能合约的预执行接口对该事务处理请求展开预执行操作。基于此,微服务模块可以向分布式事务协调器发送相应的业务预执行通知,相应的,分布式事务协调器可以对该业务预执行通知进行接收。
S320、接收智能合约和/或其他微服务模块在预执行事务处理请求之后发送的事务预执行通知;其中,至少一个事务处理请求是在微服务模块执行业务处理请求的过程中产生的。
具体地,智能合约在对所接收的事务处理请求进行预执行后,可以向分布式事务协调器发送相应的事务预执行通知。针对微服务模块在执行业务处理请求的过程中所产生的至少一个事务处理请求,可以调用当前微服务模块之外的其他微服务模块对该事务处理请求进行预执行。其他微服务模块在对相应事务处理请求进行预执行操作后,可以向分布式事务协调器发送事务预执行通知。相应的,分布式事务协调器可以对智能合约和/或其他微服务模块在预执行事务处理请求之后发送的事务预执行通知进行接收。
S330、接收微服务模块发送的业务处理结果。
其中,业务处理结果可以是根据至少一个事务预执行结果所确定的业务处理请求的业务预执行结果。业务预执行结果可以是用于指示业务处理请求是否处理成功的结果。
具体地,智能合约可以在对事务处理请求进行预执行后,将该事务处理请求对应的事务预执行结果反馈至对应的微服务模块。微服务模块可以根据所接收的至少一个事务预执行结果,确定业务处理请求的业务预执行结果,并将该业务处理结果发送至分布式事务协调器。相应的,分布式事务协调器可以对该业务处理结果进行接收。
S340、根据所述业务处理结果,和业务关联的事务预执行通知,将所述业务处理结果发送给所述智能合约和/或其他微服务模块,指示所述智能合约调整写数据集的冻结状态。
具体地,分布式事务协调器可以基于所获取的业务处理结果,和所接收的与业务关联的事务预执行通知,向智能合约和/或其他微服务模块发送对应的业务处理结果,智能合约可以根据该业务处理结果的具体信息,对写数据集的冻结状态进行调整。
示例性地,将所述业务处理结果发送给所述智能合约和/或其他微服务模块可以包括:
如果所述业务处理结果为处理成功,则调用所述智能合约和/或其他微服务模块的成功接口发送处理成功通知;
如果所述业务处理结果为处理失败,则调用所述智能合约和/或其他微服务模块的失败接口发送处理失败通知。
其中,处理成功通知可以是用于指示业务处理请求处理成功的通知信息。处理失败通知可以是用于指示业务处理请求处理失败的通知信息。成功接口可以是用于接收业务处理请求处理成功通知的接口,例如可以是Confirm接口,失败接口可以是用于接收业务处理请求处理失败通知的接口,例如可以是Cancel接口。
具体地,如果业务处理请求所对应的业务处理结果为成处理成功时,分布式事务协调器可以对智能合约和/或其他微服务模块中的成功接口进行调用,以发送相应的处理成功通知;如果业务处理请求所对应的业务处理结果为处理失败时,分布式事务协调器可以对智能合约和/或其他微服务模块中的失败接口进行调用,以发送相应的处理失败通知。
可以理解的是,通过确定业务处理结果为处理成功还是处理失败,能够对智能合约和/或其他微服务模块所对应的成功接口或失败接口进行调用,以发送相应的处理成功通知或处理失败通知,从而确保智能合约和/或其他微服务模块是针对所接收到的通知类型,对写数据集的冻结状态做出的相应调整,从而可以有助于解决在业务处理请求处理失败的情况下,需对所有的事务处理数据进行回滚操作而占用过多处理资源的问题,同时有助于提高微服务模块和区块链的运行效率。
本公开实施例通过确定业务处理结果为处理成功还是处理失败,能够对智能合约和/或其他微服务模块所对应的成功接口或失败接口进行调用,以发送相应的处理成功通知或处理失败通知,能够保证智能合约/或其他微服务模块在获取分布式事务协调器所发送的处理结果通知之后,才可对事务处理数据中的写数据集的冻结状态进行调整,以更改本地对应的区块链数据,从而能够有效解决在业务处理请求处理失败的情况下,需对所有的事务处理数据进行回滚操作而占用过多处理资源的问题,同时有助于提高微服务模块和区块链的运行效率。
图4是本公开实施例提供的一种基于区块链的分布式事务处理方法的流程图,本公开实施例可适用于区块链进行分布式事务处理的情况。该方法可由一种基于区块链的分布式事务处理装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备,该电子设备可以是分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器。参考图4,所述方法由分布式系统执行,具体包括如下:
S410、微服务模块A获取业务处理请求,在执行所述业务处理请求的过程中产生至少一个事务处理请求,并根据所述事务处理请求,调用智能合约B的预执行接口。
具体地,微服务模块A可以对用户所发起的业务处理请求进行获取,并对该业务处理请求进行执行,该业务处理请求在执行过程中可以产生至少一个事务处理请求。进一步地,该微服务模块A还可以基于其所对应的微服务,通过该微服务实现对该事务处理请求对应的智能合约B的预执行接口的调用,以对事务处理请求进行预执行。
S420、所述智能合约B预执行所述事务处理请求,以产生事务处理数据,所述事务处理数据包括对区块链中数据进行变更的写数据集,并将事务预执行通知给分布式事务协调器。
具体地,智能合约B可以对接收的事务处理请求展开预执行操作,该预执行操作可以产生与该事务处理请求对应的事务处理数据。其中,该事务处理数据中包括写数据集,相应的,智能合约B可以基于该写数据集,对区块链中对应的数据进行变更。并且,该智能合约B还可以将对应于事务处理请求的事务预执行通知给分布式事务协调器。
S430、所述微服务模块A向分布式事务协调器发送业务预执行通知。
具体地,微服务模块A可以在调用智能合约B的预执行接口对所产生的事务处理请求进行预执行操作后,向分布式事务协调器发送对应于业务处理请求的业务预执行通知。
S440、所述智能合约B将所述事务处理数据进行上链,并根据所述写数据集将本地对应的区块链中数据进行冻结,并将事务预执行结果反馈给微服务模块A。
具体地,智能合约B对事务处理请求进行预执行所产生的事务处理数据,需要上传至区块链中进行存储。相应的,智能合约B可以将事务处理数据上传至区块链进行存储,进一步地,还可基于该事务处理数据中的写数据集,将区块链本地中所对应的需要变更的数据进行冻结。并且,智能合约B还可针对事务处理请求的预执行操作产生对应的事务预执行结果,并将该事务预执行结果反馈至微服务模块A。
S450、所述微服务模块A根据至少一个所述事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知所述分布式事务协调器。
具体地,微服务模块A可以基于至少一个事务预执行结果,对业务处理请求所对应的业务预执行结果进行判定,并将所确定的业务预执行结果通知至分布式事务协调器,基于该业务预执行结果,可以指示分布式事务协调器通知智能合约B对预执行的写数据集的冻结状态进行调整。
S460、所述分布式事务协调器根据所述微服务模块A发送的业务处理结果,和业务关联的事务预执行通知,将所述业务处理结果发送给所述智能合约B和/或其他微服务模块C。
其中,业务处理结果可以是根据至少一个事务预执行结果所确定的业务处理请求的业务预执行结果。业务预执行结果可以是用于指示业务处理请求是否处理成功的结果。
具体地,分布式事务协调器可以基于所获取的业务处理结果,和所接收的与业务关联的事务预执行通知,向智能合约B和/或其他微服务模块C发送对应的业务处理结果,智能合约B可以根据该业务处理结果的具体信息,对写数据集的冻结状态进行调整。
S470、如果处理结果通知为处理成功,则所述智能合约B取消所述写数据集的冻结,以更新所述写数据集在区块链中的对应数据。
其中,处理结果通知可以是基于业务处理结果所发出的通知信息,可以包括处理成功和处理失败。
具体地,当处理结果通知是处理成功时,智能合约B可以取消对写数据集的冻结,从而可以基于非冻结状态的写数据集,对该写数据集在区块链中的对应数据进行更新。
本公开实施例通过在确定业务处理结果为处理成功时,对智能合约B和/或其他微服务模块C所对应的成功接口进行调用,以发送相应的处理成功通知,能够确保智能合约能够基于所接收到的处理成功的通知后,方可对写数据集的冻结进行取消,以对该写数据集在区块链中的对应数据进行更新,从而避免在业务处理请求处理失败的情况下,需对所有的事务处理数据进行回滚操作而占用过多处理资源的问题,同时有助于提高微服务模块和区块链的运行效率。
图5是本公开实施例提供的一种基于区块链的分布式事务处理方法的流程图,本公开实施例可适用于区块链进行分布式事务处理的情况。该方法可由一种基于区块链的分布式事务处理装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备,该电子设备可以是分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器。参考图5,所述方法由分布式系统执行,具体包括如下:
S510、微服务模块A获取业务处理请求,在执行所述业务处理请求的过程中产生至少一个事务处理请求,并根据所述事务处理请求,调用智能合约B的预执行接口。
S520、所述智能合约B预执行所述事务处理请求,以产生事务处理数据,所述事务处理数据包括对区块链中数据进行变更的写数据集,并将事务预执行通知给分布式事务协调器;
S530、所述微服务模块A向分布式事务协调器发送业务预执行通知;
S540、所述智能合约B将所述事务处理数据进行上链,并根据所述写数据集将本地对应的区块链中数据进行冻结,并将事务预执行结果反馈给微服务模块A;
S550、所述微服务模块A根据至少一个所述事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知所述分布式事务协调器。
S560、所述分布式事务协调器根据所述微服务模块A发送的业务处理结果,和业务关联的事务预执行通知,将所述业务处理结果发送给所述智能合约B和/或其他微服务模块C。
S570、如果处理结果通知为处理失败,则所述智能合约B释放所述写数据集的冻结,以恢复所述写数据集在区块链中的对应数据。
具体地,当处理结果通知是失败时,智能合约B可以对冻结的写数据集进行释放,以实现该写数据集在区块链中的对应数据的恢复。
本公开实施例通过在确定业务处理结果为处理失败时,对智能合约B和/或其他微服务模块所对应的失败接口进行调用,以发送相应的处理失败通知,能够确保智能合约能够基于所接收到的处理失败的通知后,方可对写数据集的冻结进行释放,以对该写数据集在区块链中的对应数据进行恢复,从而避免需要对所有的事务处理数据进行回滚操作而占用过多处理资源的问题,同时有助于提高微服务模块和区块链的运行效率。
图6是本公开实施例提供的一种基于区块链的分布式事务处理装置的结构示意图,本公开实施例可适用于区块链进行分布式事务处理的情况。该装置应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器。该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以是微服务模块。参考图6,所述装置配置于微服务模块,具体包括如下:
事务处理请求生成模块610,用于获取业务处理请求,在执行所述业务处理请求的过程中产生至少一个事务处理请求;
第一预执行接口调用模块620,用于根据所述事务处理请求,调用智能合约的预执行接口,以预执行所述事务处理请求,并使得所述智能合约在预执行所述事务处理请求之后,将预执行的事务处理数据上链且将预执行的写数据集进行冻结;
业务预执行通知发送模块630,用于向分布式事务协调器发送业务预执行通知;
第一事务预执行结果接收模块640,用于接收智能合约反馈的事务预执行结果;
业务预执行结果确定模块650,用于根据至少一个所述事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知所述分布式事务协调器,指示所述分布式事务协调器通知所述智能合约调整所述写数据集的冻结状态。
可选的,业务预执行结果确定模块650可以包括:
业务处理请求处理成功确定单元,可以用于根据至少一个所述事务预执行结果确定业务处理请求处理成功,则向所述分布式事务协调器发送成功通知,指示所述分布式事务协调器通知所述智能合约取消所述写数据集的冻结,以更新所述写数据集在区块链中的对应数据;
业务处理请求处理失败确定单元,可以用于根据至少一个所述事务预执行结果确定业务处理请求处理失败,则向所述分布式事务协调器发送失败通知,以指示所述分布式事务协调器通知所述智能合约释放所述写数据集的冻结,以恢复所述写数据集在区块链中的对应数据。
可选的,在执行所述业务处理请求的过程中产生至少一个事务处理请求之后,还包括:
第二预执行接口调用模块,可以用于根据所述事务处理请求,调用其他微服务模块的预执行接口,以预执行所述事务处理请求;
第二事务预执行结果接收模块,接收其他微服务模块反馈的事务预执行结果。
本公开实施例所提供的基于区块链的分布式事务处理装置可以执行本公开实施例所提供的任意的基于区块链的分布式事务处理方法,具备执行方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本公开任意方法实施例中的描述。
图7是本公开实施例提供的一种基于区块链的分布式事务处理装置的结构示意图,本公开实施例可适用于区块链进行分布式事务处理的情况。该装置应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器。该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中。参考图7,所述装置具体包括如下:
事务处理请求接收模块710,用于接收微服务模块基于预执行接口发起的事务处理请求;
事务处理请求预执行模块720,用于预执行所述事务处理请求,以产生事务处理数据,所述事务处理数据包括对区块链中数据进行变更的写数据集;
事务预执行通知模块730,用于将事务预执行通知给分布式事务协调器;
事务处理数据处理模块740,用于将所述事务处理数据进行上链,并根据所述写数据集将本地对应的区块链中数据进行冻结;
事务预执行结果反馈模块750,用于将事务预执行结果反馈给微服务模块;
处理结果通知接收模块760,用于接收所述分布式事务协调器发送的处理结果通知;
写数据集状态调整模块770,用于根据所述处理结果通知调整所述写数据集的冻结状态。
可选的,所述写数据集状态调整模块770可以包括:
写数据集冻结取消单元,可以用于如果处理结果通知为处理成功,则取消所述写数据集的冻结,以更新所述写数据集在区块链中的对应数据;
写数据集冻结释放单元,可以用于如果处理结果通知为处理失败,则释放所述写数据集的冻结,以恢复所述写数据集在区块链中的对应数据。
本公开实施例所提供的基于区块链的分布式事务处理装置可以执行本公开实施例所提供的任意的基于区块链的分布式事务处理方法,具备执行方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本公开任意方法实施例中的描述。
图8是本公开实施例提供的一种基于区块链的分布式事务处理装置的结构示意图,本公开实施例可适用于区块链进行分布式事务处理的情况。该装置应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器。该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以是分布式事务协调器。参考图8,所述装置配置于分布式事务协调器,具体包括如下:
业务预执行通知接收模块810,用于接收微服务模块发送的业务预执行通知;
事务预执行通知接收模块820,用于接收智能合约和/或其他微服务模块在预执行事务处理请求之后发送的事务预执行通知;其中,至少一个事务处理请求是在微服务模块执行业务处理请求的过程中产生的;
业务处理结果接收模块830,用于接收微服务模块发送的业务处理结果;
业务处理结果发送模块840,用于根据所述业务处理结果,和业务关联的事务预执行通知,将所述业务处理结果发送给所述智能合约和/或其他微服务模块,指示所述智能合约调整写数据集的冻结状态。
可选的,业务处理结果发送模块840可以包括:
处理成功通知发送单元,可以用于如果所述业务处理结果为处理成功,则调用所述智能合约和/或其他微服务模块的成功接口发送处理成功通知;
处理失败通知发送单元,可以用于如果所述业务处理结果为处理失败,则调用所述智能合约和/或其他微服务模块的失败接口发送处理失败通知。
本公开实施例所提供的基于区块链的分布式事务处理装置可以执行本公开实施例所提供的任意的基于区块链的分布式事务处理方法,具备执行方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本公开任意方法实施例中的描述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如基于区块链的分布式事务处理方法。例如,在一些实施例中,基于区块链的分布式事务处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的基于区块链的分布式事务处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于区块链的分布式事务处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (12)
1.一种基于区块链的分布式事务处理方法,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述方法由微服务模块执行,所述方法包括:
获取业务处理请求,在执行所述业务处理请求的过程中产生至少一个事务处理请求;
根据所述事务处理请求,调用智能合约的预执行接口,以预执行所述事务处理请求,并使得所述智能合约在预执行所述事务处理请求之后,将预执行的事务处理数据上链且将预执行的写数据集进行冻结;
向分布式事务协调器发送业务预执行通知;
接收智能合约反馈的事务预执行结果;
根据至少一个所述事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知所述分布式事务协调器,指示所述分布式事务协调器通知所述智能合约调整所述写数据集的冻结状态。
2.根据权利要求1所述的方法,其中,根据至少一个所述事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知所述分布式事务协调器,指示所述分布式事务协调器通知所述智能合约调整所述写数据集的冻结状态包括:
根据至少一个所述事务预执行结果确定业务处理请求处理成功,则向所述分布式事务协调器发送成功通知,指示所述分布式事务协调器通知所述智能合约取消所述写数据集的冻结,以更新所述写数据集在区块链中的对应数据;
根据至少一个所述事务预执行结果确定业务处理请求处理失败,则向所述分布式事务协调器发送失败通知,以指示所述分布式事务协调器通知所述智能合约释放所述写数据集的冻结,以恢复所述写数据集在区块链中的对应数据。
3.根据权利要求1所述的方法,在执行所述业务处理请求的过程中产生至少一个事务处理请求之后,还包括:
根据所述事务处理请求,调用其他微服务模块的预执行接口,以预执行所述事务处理请求;
接收其他微服务模块反馈的事务预执行结果。
4.一种基于区块链的分布式事务处理方法,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述方法由所述智能合约执行,所述方法包括:
接收微服务模块基于预执行接口发起的事务处理请求;
预执行所述事务处理请求,以产生事务处理数据,所述事务处理数据包括对区块链中数据进行变更的写数据集;
将事务预执行通知给分布式事务协调器;
将所述事务处理数据进行上链,并根据所述写数据集将本地对应的区块链中数据进行冻结;
将事务预执行结果反馈给微服务模块;
接收所述分布式事务协调器发送的处理结果通知;
根据所述处理结果通知调整所述写数据集的冻结状态。
5.根据权利要求4所述的方法,其中,根据所述处理结果通知调整所述写数据集的冻结状态包括:
如果处理结果通知为处理成功,则取消所述写数据集的冻结,以更新所述写数据集在区块链中的对应数据;
如果处理结果通知为处理失败,则释放所述写数据集的冻结,以恢复所述写数据集在区块链中的对应数据。
6.一种基于区块链的分布式事务处理方法,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述方法由所述分布式事务协调器执行,所述方法包括:
接收微服务模块发送的业务预执行通知;
接收智能合约和/或其他微服务模块在预执行事务处理请求之后发送的事务预执行通知;其中,至少一个事务处理请求是在微服务模块执行业务处理请求的过程中产生的;
接收微服务模块发送的业务处理结果;
根据所述业务处理结果,和业务关联的事务预执行通知,将所述业务处理结果发送给所述智能合约和/或其他微服务模块,指示所述智能合约调整写数据集的冻结状态。
7.根据权利要求6所述的方法,其中,将所述业务处理结果发送给所述智能合约和/或其他微服务模块包括:
如果所述业务处理结果为处理成功,则调用所述智能合约和/或其他微服务模块的成功接口发送处理成功通知;
如果所述业务处理结果为处理失败,则调用所述智能合约和/或其他微服务模块的失败接口发送处理失败通知。
8.一种基于区块链的分布式事务处理装置,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述装置配置于微服务模块,所述装置包括:
事务处理请求生成模块,用于获取业务处理请求,在执行所述业务处理请求的过程中产生至少一个事务处理请求;
第一预执行接口调用模块,用于根据所述事务处理请求,调用智能合约的预执行接口,以预执行所述事务处理请求,并使得所述智能合约在预执行所述事务处理请求之后,将预执行的事务处理数据上链且将预执行的写数据集进行冻结;
业务预执行通知发送模块,用于向分布式事务协调器发送业务预执行通知;
第一事务预执行结果接收模块,用于接收智能合约反馈的事务预执行结果;
业务预执行结果确定模块,用于根据至少一个所述事务预执行结果确定业务处理请求的业务预执行结果,并将业务预执行结果通知所述分布式事务协调器,指示所述分布式事务协调器通知所述智能合约调整所述写数据集的冻结状态。
9.一种基于区块链的分布式事务处理装置,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述装置配置于智能合约,所述装置包括:
事务处理请求接收模块,用于接收微服务模块基于预执行接口发起的事务处理请求;
事务处理请求预执行模块,用于预执行所述事务处理请求,以产生事务处理数据,所述事务处理数据包括对区块链中数据进行变更的写数据集;
事务预执行通知模块,用于将事务预执行通知给分布式事务协调器;
事务处理数据处理模块,用于将所述事务处理数据进行上链,并根据所述写数据集将本地对应的区块链中数据进行冻结;
事务预执行结果反馈模块,用于将事务预执行结果反馈给微服务模块;
处理结果通知接收模块,用于接收所述分布式事务协调器发送的处理结果通知;
写数据集状态调整模块,用于根据所述处理结果通知调整所述写数据集的冻结状态。
10.一种基于区块链的分布式事务处理装置,应用于分布式系统,所述分布式系统包括微服务模块、区块链上部署的智能合约和分布式事务协调器,所述装置配置于分布式事务协调器,所述装置包括:
业务预执行通知接收模块,用于接收微服务模块发送的业务预执行通知;
事务预执行通知接收模块,用于接收智能合约和/或其他微服务模块在预执行事务处理请求之后发送的事务预执行通知;其中,至少一个事务处理请求是在微服务模块执行业务处理请求的过程中产生的;
业务处理结果接收模块,用于接收微服务模块发送的业务处理结果;
业务处理结果发送模块,用于根据所述业务处理结果,和业务关联的事务预执行通知,将所述业务处理结果发送给所述智能合约和/或其他微服务模块,指示所述智能合约调整写数据集的冻结状态。
11.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至3,或者4至5,或者6至7中任一项所述的基于区块链的分布式事务处理方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至3,或者4至5,或者6至7中任一项所述的基于区块链的分布式事务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210252602.0A CN114327804B (zh) | 2022-03-15 | 2022-03-15 | 基于区块链的分布式事务处理方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210252602.0A CN114327804B (zh) | 2022-03-15 | 2022-03-15 | 基于区块链的分布式事务处理方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327804A true CN114327804A (zh) | 2022-04-12 |
CN114327804B CN114327804B (zh) | 2022-06-07 |
Family
ID=81034043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210252602.0A Active CN114327804B (zh) | 2022-03-15 | 2022-03-15 | 基于区块链的分布式事务处理方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327804B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115190123A (zh) * | 2022-06-21 | 2022-10-14 | 上海万向区块链股份公司 | 基于智能合约的分布式系统任务调度方法及系统 |
CN115964198A (zh) * | 2023-03-17 | 2023-04-14 | 北京徐工汉云技术有限公司 | 基于长事务的分布式柔性事务处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965468A (zh) * | 2018-08-16 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 区块链网络服务平台及其链码安装方法、存储介质 |
CN109951546A (zh) * | 2019-03-15 | 2019-06-28 | 百度在线网络技术(北京)有限公司 | 基于智能合约的事务请求处理方法、装置、设备和介质 |
CN111339187A (zh) * | 2020-02-20 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 基于智能合约的数据处理方法、装置、设备和存储介质 |
CN111930852A (zh) * | 2020-09-29 | 2020-11-13 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
US20210350368A1 (en) * | 2020-05-06 | 2021-11-11 | Foris Technology Pte Ltd | Method and system for blockchain intrusion prevention |
-
2022
- 2022-03-15 CN CN202210252602.0A patent/CN114327804B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965468A (zh) * | 2018-08-16 | 2018-12-07 | 北京京东尚科信息技术有限公司 | 区块链网络服务平台及其链码安装方法、存储介质 |
CN109951546A (zh) * | 2019-03-15 | 2019-06-28 | 百度在线网络技术(北京)有限公司 | 基于智能合约的事务请求处理方法、装置、设备和介质 |
CN111339187A (zh) * | 2020-02-20 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 基于智能合约的数据处理方法、装置、设备和存储介质 |
US20210350368A1 (en) * | 2020-05-06 | 2021-11-11 | Foris Technology Pte Ltd | Method and system for blockchain intrusion prevention |
CN111930852A (zh) * | 2020-09-29 | 2020-11-13 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备以及存储介质 |
Non-Patent Citations (2)
Title |
---|
HENRY M. KIM 等: "A Perspective on Blockchain Smart Contracts: Reducing Uncertainty and Complexity in Value Exchange", 《IEEE WORKSHOP ON WORKSHOP ON PRIVACY, SECURITY, TRUST & BLOCKCHAIN TECHNOLOGIES》 * |
朱岩 等: "基于安全多方计算的区块链智能合约执行系统", 《密码学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115190123A (zh) * | 2022-06-21 | 2022-10-14 | 上海万向区块链股份公司 | 基于智能合约的分布式系统任务调度方法及系统 |
CN115964198A (zh) * | 2023-03-17 | 2023-04-14 | 北京徐工汉云技术有限公司 | 基于长事务的分布式柔性事务处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114327804B (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114327804B (zh) | 基于区块链的分布式事务处理方法、装置、设备和介质 | |
US8396961B2 (en) | Dynamic control of transaction timeout periods | |
CN112650576B (zh) | 资源调度方法、装置、设备、存储介质及计算机程序产品 | |
CN112860342B (zh) | 微服务配置的方法、装置、设备、系统以及存储介质 | |
CN109104336A (zh) | 服务请求处理方法、装置、计算机设备及存储介质 | |
US10417062B2 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
CN110363663B (zh) | 基于区块链的数据批量处理方法、装置、设备及存储介质 | |
CN110751458B (zh) | 一种业务审批方法、装置和系统 | |
CN114328132A (zh) | 外部数据源的状态监控方法、装置、设备和介质 | |
CN114357495B (zh) | 基于区块链的预言机链下聚合方法、装置、设备和介质 | |
CN115544044A (zh) | 一种数据一致性保持方法、装置、设备和存储介质 | |
CN112965799A (zh) | 任务状态的提示方法、装置、电子设备和介质 | |
CN115328621B (zh) | 基于区块链的事务处理方法、装置、设备及存储介质 | |
CN111598571A (zh) | 区块链的事务处理方法、装置、设备和存储介质 | |
CN111367934A (zh) | 数据一致性的检验方法、装置、服务器和介质 | |
CN114443057B (zh) | 对话模型的部署和对话方法、装置、电子设备及存储介质 | |
CN113641688B (zh) | 节点更新方法、相关装置及计算机程序产品 | |
CN114567536B (zh) | 异常数据处理方法、装置、电子设备和存储介质 | |
CN113360689B (zh) | 图像检索系统、方法、相关装置及计算机程序产品 | |
US11500857B2 (en) | Asynchronous remote calls with undo data structures | |
CN112799879A (zh) | 节点的故障处理方法、装置、设备和存储介质 | |
CN114546705B (zh) | 操作响应方法、操作响应装置、电子设备以及存储介质 | |
CN114115718B (zh) | 分布式块存储系统服务质量控制方法、装置、设备及介质 | |
CN113806801B (zh) | 交易信息上链方法、装置、计算机设备及存储介质 | |
CN114362968B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |