掌桥专利:专业的专利平台
掌桥专利
首页

业务处理方法、电子设备及可读存储介质

文献发布时间:2023-06-19 10:11:51


业务处理方法、电子设备及可读存储介质

技术领域

本发明涉及通信技术领域,特别是涉及一种业务处理方法、电子设备及可读存储介质。

背景技术

区块链技术实现于区块链网络之上,区块链网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,从而实现区块数据的生成和共识,最终实现了数据的防篡改机制,为业务开展提供了安全可信的技术新思路。

区块链技术可应用至多种业务场景,例如金融领域、电子商务领域、商品或原材料溯源领域、电子存证领域等,由于区块链技术实现了数据防篡改机制,因此利用区块链技术开展业务,能解决业务参与各方之间的信任危机。

相关技术中,在利用区块链技术开展业务时,需要构建与业务相关的交易,并将交易提交至区块链网络,区块链网络的节点通过执行交易,从而改变相应的业务状态(例如账户余额)。然而相关技术中,在业务状态发生变化后,区块链网络难以将业务状态反馈给用户端,因此相关用户也难以获知业务状态的变化情况。因此,有必要提供一种能反馈业务状态的业务处理方法。

发明内容

本发明实施例的目的在于提供一种业务处理方法、电子设备及可读存储介质,能够向用户反馈业务状态,提升用户体验。具体技术方案如下:

在本发明实施例的第一方面,提供一种业务处理方法,应用于区块链网络的任一节点,所述方法包括:

响应于携带合约地址的交易,根据所述交易携带的合约地址,执行相应的智能合约;

在所述智能合约定义了业务日志的情况下,生成该智能合约定义的业务日志,该业务日志中包含该智能合约所约定的业务参数;

输出所述业务日志。

在本发明实施例的第二方面,提供一种业务处理方法,应用于报文中间件,所述方法包括:

获得交易和所述交易对应的业务日志,所述业务日志是所述交易依赖的智能合约所定义的,所述业务日志是区块链网络的节点在执行该智能合约时生成的,所述业务日志中包含该智能合约所约定的业务参数;

根据所述交易和所述业务日志,生成第二业务报文,所述第二业务报文携带所述业务日志中包含的业务参数;

将所述第二业务报文发送给用户端。

在本发明实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于在执行存储器上所存放的程序时,实现本发明任一实施例所提供的业务处理方法。

在本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所提供的业务处理方法。

本发明中,一些智能合约定义了业务日志,业务日志中包含智能合约所约定的业务参数。当区块链网络的节点在获得携带合约地址的交易后,通过执行该合约地址对应的智能合约,从而改变业务状态。此外,在该智能合约定义了业务日志的情况下,通过执行该智能合约,还生成了相应的业务日志,该业务日志中包含该智能合约所约定的业务参数。本发明中,当业务日志被节点输出后,使得原本仅存在于区块链技术底层的智能合约业务参数,可以被用户端获取到。如此,用户可以根据这些业务参数获知业务状态的变化情况,进而有利于提升用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1是本发明一实施例提出的基于业务处理系统的业务处理方法的示意图;

图2是本发明一实施例提出的业务处理方法的流程图;

图3是本发明另一实施例提出的业务处理方法的流程图;

图4是本发明一实施例提出的电子设备的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

区块链技术实现于区块链网络之上,区块链网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,从而实现区块数据的生成和共识,最终实现了数据的防篡改机制,为业务开展提供了安全可信的技术新思路。相关技术中,在利用区块链技术开展业务时,需要构建与业务相关的交易,并将交易提交至区块链网络,区块链网络的节点通过执行交易,从而改变相应的业务状态(例如账户余额)。

可选地,在一些具体实施方式中,区块链网络的节点执行交易的过程包括:区块链网络的各节点在接收到交易后,执行该交易,并根据该交易和该交易的执行结果生成区块;多个节点相互之间对各自生成的区块进行共识,并在达成共识的情况下,各节点将各自的区块追加至各自保存的区块链的末尾。

需要说明的是,本发明在具体实现时,对于区块链网络执行交易的过程,并不限定于上述具体实施方式。除上述具体实施方式以外,本领域技术人员也可采用其熟知的其他技术方案。

然而相关技术中,在业务状态发生变化后,区块链网络难以将业务状态反馈给用户端,因此相关用户也难以获知业务状态的变化情况。因此,有必要提供一种能反馈业务状态的业务处理方法。

有鉴于此,本发明通过以下实施例,提出业务处理方法、电子设备及可读存储介质,能够向用户反馈业务状态,提升用户体验。

参考图1,图1是本发明一实施例提出的基于业务处理系统的业务处理方法的示意图。如图1所示,业务处理系统包括:区块链网络、多个报文中间件、以及多个用户端。其中,用户端与报文中间件通信连接,报文中间件又与区块链网络内的任一节点或指定节点通信连接。如此,用户端通过报文中间件实现与区块链网络的信息交互。

具体地,用户端通过向报文中间件发送业务报文,从而实现向报文中间件传递信息。而报文中间件通过将用户端发送的业务报文解析成一个或多个交易,并提交给区块链网络,从而实现向区块链网络传递信息。此外,报文中间件通过同步区块链网络生成的新区块,从而实现从区块链网络获取信息。报文中间件把从区块链网络获取的信息组装成业务报文,并将该业务报文返回给用户端,从而实现向用户端传递信息。如此,用户端通过报文中间件实现与区块链网络的信息交互。

其中,报文中间件将区块链网络的复杂接口封装成简单、标准的金融业务接口,并提供给用户端,从而降低用户端与区块链网络的交互难度。

其中,报文中间件可以是软件程序,也可以是硬件设备。在报文中间件是软件程序的情况下,报文中间件可以运行在区块链网络的某个节点设备中,也可以运行在用户侧的计算机中,还可以运行在区块链网络和用户侧之间的某一计算机中。

其中,用户端可以是软件程序,也可以是硬件设备。在用户端是软件程序的情况下,用户端可以运行在区块链网络的某个节点设备中,也可以单独运行在区块链网络之外的计算机中。如果用户端运行在区块链网络的某个节点设备中,则相当于区块链网络的该节点设备由用户运维,用户在该节点设备中同时安装了客户端。

可选地,在一些具体实施方式中,每个用户端与一个报文中间件对应,而一个报文中间件可与多个用户端对应。每个用户端通过其对应的报文中间件,实现与区块链网络的信息交互。

具体实现时,不同的用户群体分别对应不同的报文中间件,使得每个用户群体可以自行对其报文中间件进行管理和维护,从而有利于提高报文中间件的安全性。为便于理解,示例地,一个银行的多个分行可以作为一个用户群体。例如银行A的多个分行作为一个用户群体,并共同对应报文中间件a;银行B的多个分行作为另一个用户群体,并共同对应报文中间件b;银行C的多个分行作为又一个用户群体,并共同对应报文中间件c。各银行在基于上述业务处理系统处理业务时,不同银行之间(例如银行A与银行B之间)可以便捷地传递信息。

以上,对本发明提出的业务处理系统的结构进行了介绍。以下,对基于该业务处理系统的业务处理方法进行介绍。

如图1所示,第一用户在产生业务需求的情况下,利用第一用户端向第一报文中间件发送了一个第一业务报文,该第一业务报文携带业务类型标识。

为便于理解,示例地,假设第一用户早前将数额等于1000的资产托管在智能合约S中,智能合约S中记录了第一用户的账户地址。在历经多次交易后,第一用户托管在智能合约S中资产还剩650。如果第一用户当前希望将智能合约S中的全部资产回退至第一用户的账户,则第一用户可以向第一报文中间件发送一个第一业务报文。该第一业务报文携带业务类型标识,该业务类型标识用于表征:第一业务报文的业务类型是回退资产。为便于理解,示例地,业务类型标识可以形如SMTR。

此外,第一业务报文还携带有智能合约S的合约地址,或者携带有智能合约的合约ID。

如图1所示,第一报文中间件在接收到第一用户端发送的第一业务报文后,将第一业务报文解析成若干交易。其中,每个交易携带相同的报文标识,至少一个交易携带该第一业务报文所携带的业务类型标识。

本发明中,第一业务报文具有一个报文标识,该报文标识具有唯一性。由第一业务报文解析成的若干交易均携带该第一业务报文的报文标识。

可选地,在一些具体实施方式中,第一用户端发出的第一业务报文未携带报文标识,而第一报文中间件在接收到该第一业务报文后,为该第一业务报文生成一个具有唯一性的报文标识。示例地,第一报文中间件为了生成具有唯一性的报文标识,可以以时间戳、第一报文中间件自身编号、通用唯一识别码(Universally Unique Identifier,UUID)等数据作为输入参数,通过哈希算法的计算,输出一串哈希值,最后将哈希值的前n位(例如前25位)作为报文标识。

或者可选地,在另一些具体实施方式中,第一用户端发出的第一业务报文中本身就携带报文标识。该报文标识是第一用户端为第一业务报文生成的,具体生成方式可参考上文。

本发明中,第一报文中间件在接收到第一用户端发送的第一业务报文后,根据第一业务报文的业务类型,将第一业务报文解析成相应的若干交易。

可选地,在一些具体实施方式中,第一报文中间件中预设有多个报文解析策略,每个报文解析策略分别对应一种业务类型标识,并用于对包含相应业务类型标识的业务报文进行解析,以获得与相应业务类型相关的若干交易。

当第一报文中间件接收到第一用户端发送的第一业务报文后,从第一业务报文中读取业务类型标识,并根据读取的业务类型标识,从预设的多个报文解析策略中确定该业务类型标识对应的报文解析策略。然后,第一报文中间件基于确定出的报文解析策略,将第一业务报文解析成若干交易。

具体实现时,一个报文解析策略实际是一段计算机程序,第一报文中间件通过运行该段计算机程序,从而执行该报文解析策略。

其中,报文解析策略至少用于对报文解析操作做以下限定:

1、由业务报文所需解析出的交易的交易数量,以及每个交易的交易类型;

2、针对每个交易,限定其所需携带的交易数据;并且针对交易所需携带的每个交易数据,限定具体从业务报文的哪个字段处获取该交易数据,并限定将该交易数据填充至交易的哪个字段处。

为便于理解,沿用上述示例,第一报文中间件在接收到第一用户端发送的第一业务报文后,响应于该第一业务报文,第一报文中间件首先从第一业务报文中读取出业务类型标识SMTR。然后以业务类型标识SMTR为索引,从多个预设的报文解析策略中确定出业务类型标识SMTR对应的报文解析策略X。接着再根据确定出的报文解析策略X,解析该第一业务报文。

其中,报文解析策略X对报文解析操作做出以下限定:

1、将该业务报文解析成2个交易,分别为资产回退交易r和合约冻结交易f。

2-1、在构建资产回退交易r时,从第一业务报文的第21至第100个字段处读取交易代码,并将读取的交易代码填充至交易模板r的第11至第90个字段处;从第一业务报文的第5和第6个字段处读取合约地址,并将读取的合约地址填充至交易模板r的第9和第10个字段处;填充了上述交易数据的交易模板r,形成资产回退交易r。

2-2、在构建合约冻结交易f时,从第一业务报文的第106至第150个字段处读取交易代码,并将读取的交易代码填充至交易模板f的第11至第55个字段处;从第一业务报文的第5和第6个字段处读取合约地址,并将读取的合约地址填充至交易模板f的第9和第10个字段处;填充了上述交易数据的交易模板f,形成合约冻结交易f。

需要说明的是,上述示例中所涉及的具体数据(例如业务类型标识、交易数量、交易数据、字段编号等),仅作为示意性举例。本发明在实际实施期间,所涉及的实际数据可以与上述示例中的数据相同或不同。

还需要说明的是,报文解析策略对报文解析操作的上述限定,仅作为示例。本领域技术人员在上述示例的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

此外,当第一报文中间件将第一业务报文解析成多个交易后。第一报文中间件还将预先为该第一业务报文生成的报文标识,填充至每个交易的预设字段处。如此,由该第一业务报文解析出的多个交易携带相同的报文标识。

此外,第一报文中间件还将第一业务报文携带的业务类型标识填充至每个交易的预设字段处,或者第一报文中间件将第一业务报文携带的业务类型标识填充至部分交易的预设字段处。

如图1所示,第一报文中间件将第一业务报文解析成一个或多个交易后,将这些交易提交给区块链网络。

区块链网络的节点在接收到交易后,执行其接收到的交易。其中,节点在执行交易期间,如果交易携带合约地址,则节点会调用该合约地址对应的智能合约,并执行该智能合约。

本发明中,某些智能合约定义了业务日志,业务日志中包含智能合约所约定的业务参数。当区块链网络的节点执行这种智能合约后,不仅改变了业务状态,还生成了这种智能合约所定义的业务日志。

为便于理解,沿用上述示例,智能合约S中定义了业务日志,该业务日志形如“TO-Account:3f0f4…f9403c,Amount:xxxx”。其中,TO-Account作为关键字key,表示智能合约S中的剩余资产所需退回的账户地址。3f0f4…f9403c作为值value,表示具体的账户地址,也即第一用户的账户地址。Amount作为关键字key,表示回退资产量。xxxx作为值value,表示回退资产量的具体数额,其应该等于650。

当区块链网络的节点执行上述资产回退交易r时,节点从资产回退交易r中读取到智能合约S的合约地址。响应于此,节点启动虚拟机EVM,并通过虚拟机EVM执行智能合约S。虚拟机EVM执行完智能合约S后,托管在智能合约S中的全部资产(也即余额等于650的资产)被回退至账户3f0f4…f9403c,也即第一用户的账户。此外,虚拟机EVM还生成了智能合约S定义的业务日志,该业务日志形如“TO-Account:3f0f4…f9403c,Amount:650”。

此外,区块链网络的节点在执行完交易后,将生成的业务日志填充至交易的预设字段处,并将填充了业务日志的交易作为区块数据,从而生成新的区块。如前所述,各节点在生成各自的区块后,各节点相互之间对各自生成的区块进行共识,并在达成共识的情况下,各节点将各自的区块追加至各自保存的区块链的末尾。

需要说明的是,为简化附图,图1中未示出区块链网络节点处理交易的具体过程。

如图1所示,第二报文中间件持续地同步区块链网络产生的区块,并从同步到的区块中获取交易。第二报文中间件根据携带相同报文标识的若干交易和若干交易填充的全部业务日志,生成第二业务报文。第二报文中间件将生成的第二业务报文发送给第二用户端。

需要说明的是,第一报文中间件同样会持续地同步区块链网络产生的区块,并从同步到的区块中获取交易。第一报文中间件同样会根据携带相同报文标识的若干交易和若干交易填充的全部业务日志,生成第二业务报文。简言之,第二报文中间件需要执行的步骤,第一报文中间件同样需要执行。但是为简化附图,图1中仅示出第二报文中间件执行这些步骤的过程。以下,为简化篇幅,本发明也主要从第二报文中间件的角度进行后续介绍。

本发明中,第二报文中间件在获得携带相同报文标识的若干交易后,根据若干交易对应的第一业务报文的业务类型,将若干交易及若干交易中填充的业务日志,组装成第二业务报文。

可选地,在一些具体实施方式中,第二报文中间件从同步到的区块中逐个读取交易,并检测每个交易携带的报文标识。第二报文中间件将携带相同报文标识的多个交易作为一组交易。

可选地,在一些具体实施方式中,第二报文中间件中预设有多个报文组装策略,每个报文组装策略分别对应一种业务类型标识,并用于对携带相应业务类型标识的一组交易进行组装处理,从而组装出与业务类型相关的第二业务报文。

当第二报文中间件获取到一组交易后,从该组交易中的任一交易中读取该交易携带的业务类型标识。第二报文中间件根据读取的业务类型标识,从预设的多个报文组装策略中确定该业务类型标识对应的报文组装策略。然后,第二报文中间件基于确定出的报文组装策略,从该组交易和该组交易填充的业务日志中获取用于组装报文的数据,从而组装出第二业务报文。

具体实现时,一个报文组装策略实际是一段计算机程序,第二报文中间件通过运行该段计算机程序,从而执行该报文组装策略。

其中,报文组装策略至少用于对报文组装操作做以下限定:

1、为了组装完整的第二业务报文而要求的交易需求量;

2、组装成的第二业务报文需要包含的报文数据;并且针对每个报文数据,限定具体从哪个交易的哪个字段处获取该数据,并限定将该数据填充至第二业务报文的哪个字段处。

3、组装成的第二业务报文需要包含的业务参数,并限定从具体从业务日志的哪个字段处获取该业务参数,并限定将该业务参数填充至第二业务报文的哪个字段处。

针对上述第1点限定,具体实现时,当第二报文中间件为一组交易确定出报文组装策略后,读取该报文组装策略所限定的交易需求量。然后,第二报文中间件统计该组交易所包含的交易数量,也即统计携带相同报文标识的多个交易的数量。最后,第二报文中间件将该组交易所包含的交易数量与交易需求量对比,从而判断两者是否相等。

如果两者相等,则第二报文中间件基于报文组装策略的上述第2和第3点限定,从该组交易和该组交易填充的业务日志中获取用于组装报文的数据,以组装出第二业务报文。

如果两者不相等,则第二报文中间件暂停报文组装操作,并继续接收交易,以及在经过预设时间长度后,再次统计该组交易所包含的交易数量,并将该交易数量与交易需求量对比。

需要说明的是,考虑到交易在传递期间,可能会因为多种原因而导致丢失。为此,在一些具体实施方式中,报文组装策略可以不包含上述第1点限定。如此,在一组交易中的交易数量不完整的情况下,第二报文中间件也可以根据该组交易,组装出不完整的第二业务报文,并将该第二业务报文发送给用户端,从而尽可能向第二用户端反馈业务信息。

需要说明的是,报文组装策略对报文组装操作的上述限定,仅作为示例。本领域技术人员在上述示例的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

本发明中,第二报文中间件基于报文组装策略,可以将资产回退交易r、合约冻结交易f、以及相应的业务日志组装成第二业务报文。相比于第一业务报文,第二业务报文中增加了业务参数(例如账户3f0f4…f9403c、资产650等业务参数),这些业务参数来自于业务日志,也即来自于区块链技术底层中的智能合约。当第二用户端接收到第二报文中间件发送的第二业务报文后,可以向第二用户展示第二业务报文携带的业务参数。如此第二用户可以获知:托管在智能合约S中的资产650,已经全部回退至账户3f0f4…f9403c中。

同样地,第一报文中间件基于报文组装策略,可以将资产回退交易r、合约冻结交易f、以及相应的业务日志组装成第二业务报文。相比于第一业务报文,第二业务报文中增加了业务参数(例如账户3f0f4…f9403c、资产650等业务参数),这些业务参数来自于业务日志,也即来自于区块链技术底层中的智能合约。当第一用户端接收到第一报文中间件发送的第二业务报文后,可以向第一用户展示第二业务报文携带的业务参数。如此第一用户可以获知:托管在智能合约S中的资产650,已经全部回退至账户3f0f4…f9403c中。

本发明中,一些智能合约定义了业务日志,业务日志中包含智能合约所约定的业务参数。当区块链网络的节点在获得携带合约地址的交易后,通过执行该合约地址对应的智能合约,从而改变业务状态。此外,在该智能合约定义了业务日志的情况下,通过执行该智能合约,还生成了相应的业务日志,该业务日志中包含该智能合约所约定的业务参数。

本发明中,当业务日志被节点输出给报文中间件,并被报文中间件组装成业务报文,以及该业务报文被发送给用户端后,使得原本仅存在于区块链技术底层的智能合约业务参数,可以被用户端获取到。如此,用户可以根据这些业务参数获知业务状态的变化情况,进而有利于提升用户体验。

此外本发明中,由于每个交易携带报文标识,并且由同一个第一业务报文(如前所述,第一业务报文是由第一用户端发出的)解析成的多个交易携带相同的报文标识。因此,携带相同报文标识的多个交易对应同一个第一业务报文,进而也与该第一业务报文所需处理的业务相对应。如此,第二报文中间件根据携带相同报文标识的多个交易组装出的第二业务报文,能够反映比较完整的业务信息。然后第二报文中间件再将组装出的第二业务报文发送给第二用户端,使得第二用户端可以通过解析第二业务报文,从而简便快捷地获得业务信息。可见,通过实施本发明,能够提高第一用户端与第二用户端之间的信息传递便利性,进一步提升用户体验。

以上,本发明通过一些较佳实施例,提出了基于业务处理系统的业务处理方法。以下,本发明通过另一些实施例,提出了基于同一发明构思的另一些业务处理方法。需要说明的是,以下实施例可与以上实施例相互参照。还需要说明的是,以下实施例提出的业务处理方法在实施期间,并不一定依赖于图1所示的业务处理系统。

参考图2,图2是本发明一实施例提出的业务处理方法的流程图。该业务处理方法应用于区块链网络的任一节点。如图2所示,该业务处理方法包括以下步骤:

步骤S21:响应于携带合约地址的交易,根据所述交易携带的合约地址,执行相应的智能合约。

本发明中,区块链网络的节点在获取到交易后,对交易进行处理。在处理交易期间,如果交易携带合约地址,则节点根据交易携带的合约地址,执行相应的智能合约。

其中,区块链网络的节点可以通过以下多种具体实施方式中的任一具体实施方式获取交易:

可选地,在一些具体实施方式中,区块链网络中的任一节点在接收到用户端或报文中间件提交的交易后,将交易发送给区块链网络内的排序节点。排序节点将一段时间内接收的多个交易进行排序和打包,从而生成交易包,该交易包中包括多个具有顺序关系的交易。排序节点将生成的交易包分发给区块链网络的每个节点,每个节点接收到交易包后,按照交易包中多个交易的顺序关系,从交易包中逐个读取交易。如此,区块链网络的节点从交易包中获取到交易。

可选地,在另一些具体实施方式中,区块链网络中的任一节点在接收到用户端或报文中间件提交的交易后,将交易广播给区块链网络的每个节点。如此,区块链网络的节点从其他节点处获取到交易。

可选地,在又一些具体实施方式中,区块链网络中的每个节点会同步另一个区块链网络产生的区块。每个节点同步到区块后,会读取该区块中记录的交易。如此,区块链网络的节点从其他区块链网络的区块中获取到交易。

需要说明的是,本发明中,节点获取交易的方式并不限定于上述多个具体实施方式。简言之,本发明中,对于节点如何获得交易不做限定。

本发明中,区块链节点在执行智能合约时,如前所述,可以启用虚拟机EVM,并通过虚拟机EVM执行智能合约。

步骤S22:在所述智能合约定义了业务日志的情况下,生成该智能合约定义的业务日志,该业务日志中包含该智能合约所约定的业务参数。

本发明中,一些智能合约定义了业务日志,业务日志中包含智能合约所约定的业务参数。当区块链网络的节点在获得携带合约地址的交易后,通过执行该合约地址对应的智能合约,从而改变业务状态。此外,在该智能合约定义了业务日志的情况下,通过执行该智能合约,还生成了相应的业务日志,该业务日志中包含该智能合约所约定的业务参数。

可选地,在一些具体实施方式中,在执行上述步骤S22时,具体包括以下子步骤:

子步骤S22-1:在所述智能合约定义了业务日志的情况下,判断所述交易的交易类型是否为预设类型;

子步骤S22-2:若是,则生成所述智能合约定义的业务日志,该业务日志中包含该智能合约所约定的业务参数;

子步骤S22-3:若否,则不生成所述智能定义的业务日志。

示例地,预设类型通常是指能改变账户状态(例如账户余额)的交易,例如前述资产回退交易r就属于预设类型,而前述合约冻结交易f则不属于预设类型。因此,节点的虚拟机EVM在执行资产回退交易r后会生成智能合约定义的业务日志,而在执行合约冻结交易f后不会生成智能合约定义的业务日志。如此,可以有效减少业务日志的冗余,提高业务处理效率。

步骤S23:输出所述业务日志。

本发明中,当业务日志被节点输出后,使得原本仅存在于区块链技术底层的智能合约业务参数,可以被用户端获取到。如此,用户可以根据这些业务参数获知业务状态的变化情况,进而有利于提升用户体验。

本发明中,节点在生成业务日志后,可以直接将业务日志发送给用户端。

或者本发明中,节点在生成业务日志后,可以将业务日志和交易一并发送给报文中间件,使得报文中间件根据业务日志和交易生成第二业务报文,从而将第二业务报文发送给用户端。

可选地,在一些具体实施方式中,如前所述,节点可以将交易和业务日志作为区块数据,从而生成区块。在生成的区块中,交易和业务日志相互对应。具体地,业务日志可以被填充至交易的预设字段处,如此,交易和填充在交易中的业务日志相互对应。

节点在生成区块后,将区块发送给报文中间件,使得报文中间件从该区块中读取相互对应的交易和业务日志,并根据读取的交易和业务日志生成第二业务报文,以及将该第二业务报文发送给用户端。其中,第二业务报文携带该业务日志中包含的业务参数。

对于报文中间件如何根据读取的交易和业务日志生成第二业务报文,可参考前述较佳实施例,为避免重复,此处不再赘述。

本发明中,通过报文中间件将交易和业务日志组装成业务报文,并将报文返回给用户端,有利于降低用户端与区块链网络之间的交互难度。

可选地,在一些具体实施方式中,如前所述,每个交易携带报文标识,由同一个第一业务报文解析成的若干交易携带相同的报文标识。如此,报文中间件可以根据携带相同报文标识的若干交易及若干交易对应的业务日志,组装出比较完整的第二业务报文。

可选地,在一些具体实施方式中,如前所述,携带相同报文标识的若干交易中的至少一个交易携带业务类型标识,该业务类型标识用于表征若干交易对应的第一业务报文的业务类型。如此,报文中间件可以根据交易携带的业务类型标识,选择相应的报文组装策略对若干交易及若干交易对应的业务日志进行组装。

可选地,在一些具体实施方式中,业务日志包含以下多种业务参数中的至少一种:资产转出地址、资产转入地址、资产转移量。为便于理解,例如前述较佳实施例中的账户3f0f4…f9403c即是资产转入地址,资产量650即是资产转移量。

参考图3,图3是本发明另一实施例提出的业务处理方法的流程图。该业务处理方法应用于报文中间件,该报文中间件可以是处于区块链网络和用户端之间的软件程序或硬件设备。如图3所示,该业务处理方法包括以下步骤:

步骤S31:获得交易和所述交易对应的业务日志,所述业务日志是所述交易依赖的智能合约所定义的,所述业务日志是区块链网络的节点在执行该智能合约时生成的,所述业务日志中包含该智能合约所约定的业务参数。

其中,交易依赖的智能合约是指:交易在执行期间,需要被调用并执行的智能合约。例如,某一交易在执行期间,该交易携带的合约地址所对应的智能合约需要被调用和执行,因此该智能合约是该交易依赖的智能合约。

本发明中,报文中间件可以通过以下多种具体实施方式中的任一具体实施方式获得交易和交易对应的业务日志:

可选地,在一些具体实施方式中,区块链网络的节点在处理完每个交易后,直接将该交易及处理该交易期间生成的业务日志发送给报文中间件。如此,报文中间件获得交易及交易对应的业务日志。

可选地,在另一些具体实施方式中,区块链网络的节点在生成新的区块后,将区块发送给报文中间件,该区块中包含交易及处理该交易期间生成的业务日志。如此,报文中间件可以从区块中获得交易及交易对应的业务日志。

需要说明的是,本发明中,报文中间件获得交易和业务日志的方式并不限定于上述多个具体实施方式。简言之,本发明中,对于报文中间件如何获得交易和业务日志不做限定。

步骤S32:根据所述交易和所述业务日志,生成第二业务报文,所述第二业务报文携带所述业务日志中包含的业务参数。

可选地,在一些具体实施方式中,如前所述,每个交易携带报文标识,由同一个第一业务报文解析成的若干交易携带相同的报文标识。报文中间件在执行上述步骤S32时,具体执行以下子步骤:

子步骤S32-1:根据携带相同报文标识的若干交易和若干交易对应的全部业务日志,生成第二业务报文。

可选地,在一些具体实施方式中,如前所述,携带相同报文标识的若干交易中的至少一个交易携带业务类型标识,该业务类型标识用于表征所述若干交易对应的第一业务报文的业务类型。报文中间件在执行上述子步骤S32-1时,具体地:从所述携带相同报文标识的若干交易中的任一交易中,读取该交易携带的业务类型标识,并从多个预设的报文组装策略中,确定与该业务类型标识对应的报文组装策略;基于确定出的报文组装策略,从所述若干交易和若干交易对应的全部业务日志中获取用于组装报文的数据,以组装第二业务报文。

对于报文中间件如何根据交易和业务日志生成第二业务报文,可参考前述较佳实施例,为避免重复,此处不再赘述。

步骤S33:将所述第二业务报文发送给用户端。

本发明中,当业务日志被节点输出给报文中间件,并被报文中间件组装成业务报文,以及该业务报文被发送给用户端后,使得原本仅存在于区块链技术底层的智能合约业务参数,可以被用户端获取到。如此,用户可以根据这些业务参数获知业务状态的变化情况,进而有利于提升用户体验。

基于同一发明构思,本发明实施例还提供了一种电子设备,如图4所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。

所述存储器403,用于存放计算机程序;

所述处理器401,用于在执行存储器403上所存放的程序时,实现如下步骤:

响应于携带合约地址的交易,根据所述交易携带的合约地址,执行相应的智能合约;

在所述智能合约定义了业务日志的情况下,生成该智能合约定义的业务日志,该业务日志中包含该智能合约所约定的业务参数;

输出所述业务日志。

或者,处理器801用于在执行存储器803上所存放的程序时,实现如下步骤:

获得交易和所述交易对应的业务日志,所述业务日志是所述交易依赖的智能合约所定义的,所述业务日志是区块链网络的节点在执行该智能合约时生成的,所述业务日志中包含该智能合约所约定的业务参数;

根据所述交易和所述业务日志,生成第二业务报文,所述第二业务报文携带所述业务日志中包含的业务参数;

将所述第二业务报文发送给用户端。

或者,处理器401用于在执行存储器403上所存放的程序时,实现本发明以上其他方法实施例所提供的业务处理方法步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的业务处理方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 业务处理方法、业务处理装置、电子设备及可读存储介质
  • 业务处理方法及装置、电子设备和计算机可读存储介质
技术分类

06120112455414