交易背书处理方法、服务器及计算机可读存储介质与流程

文档序号:21087210发布日期:2020-06-12 16:58阅读:217来源:国知局
交易背书处理方法、服务器及计算机可读存储介质与流程

本发明涉及区块链技术领域,尤其涉及一种交易背书处理方法、服务器及计算机可读存储介质。



背景技术:

联盟链的拜占庭容错共识算法(byzantinefaulttolerance,bft)难以在公共业界使用有多个原因,其中一点是因为数据节点之间无法互相打开防火墙,以供共识算法参与方来进行检测。

从超级账本(hyperledger)1.0以后,推出了一种简单实用的bft模式-数字签名背书机制。该机制的原理是通过单个或多个第三方机构对交易请求进行检验和数字签名,如果一个交易请求获得足够的数字签名即可被判定为合法。而需要多少数字签名来保证交易合法性取决于预先设定的“交易背书策略”。然而,每个交易发起方需要将交易发送到所述单个或多个第三方机构,以对该交易进行检验和数字签名,这本身就需要互相信任并开通防火墙。

因此,如何在尽量减少交易发起方和所有第三方机构之间的对接的情况下实现交易背书,成为一个亟待解决的技术问题。



技术实现要素:

有鉴于此,本发明提出一种交易背书处理方法、服务器及计算机可读存储介质,以解决至少一个上述技术问题。

首先,为实现上述目的,本发明提出一种交易背书处理方法,应用于服务器,所述服务器对接区块链中的所有数据节点,该方法包括步骤:

接收交易发起方发送的原始交易请求,所述原始交易请求包含交易信息;

查询与所述原始交易请求对应的交易背书策略;

根据所述交易背书策略确定与所述原始交易请求匹配的背书节点;

将所述原始交易请求发送至所确定的背书节点进行交易背书;

接收所有所述背书节点反馈的交易结果和数字签名;

打包所述原始交易请求及所有所述背书节点反馈的所述交易结果和数字签名,生成完整交易请求;及

将所述完整交易请求广播至所述区块链上的数据节点。

可选地,该方法在所述接收所有所述背书节点反馈的交易结果和数字签名的步骤之后还包括:

判断所述交易发起方是否授权所述服务器代理发送交易;

当所述交易发起方授权所述服务器代理发送交易时,执行所述打包所述原始交易请求及所有所述背书节点反馈的所述交易结果和数字签名,生成完整交易请求的步骤;

当所述交易发起方未授权所述服务器代理发送交易时,将所有所述背书节点反馈的所述交易结果和数字签名发送至所述交易发起方,并接收所述交易发起方打包生成的完整交易请求。

可选地,所述交易信息包括交易类型、交易双方、交易金额。

可选地,所述完整交易请求包括所述交易信息以及所有与所述原始交易请求对应的所述背书节点反馈的所述交易结果和数字签名,并且在打包后利用所述服务器或所述交易发起方的秘钥进行签名。

可选地,所述服务器中存储有所述区块链搭建时制定的一组交易背书策略,并在所述交易背书策略有变更时进行实时更新,所述查询与所述原始交易请求对应的交易背书策略的步骤包括:根据所述原始交易请求中的交易类型或交易发起方从所存储的所述一组交易背书策略中查询与所述原始交易请求对应的交易背书策略。

可选地,所述服务器中存储有对接的所有数据节点的身份信息,所述根据所述交易背书策略确定与所述原始交易请求匹配的背书节点的步骤包括:根据所述交易背书策略中的背书节点信息以及所存储的所有数据节点的身份信息,确定出与所述原始交易请求匹配的背书节点。

可选地,所述根据所述交易背书策略确定与所述原始交易请求匹配的背书节点的步骤还包括:

当所述交易背书策略指明所述原始交易请求具体需要哪一些背书节点来对交易结果背书时,直接通过所存储的所有数据节点的身份信息找到所述背书节点;

当所述交易背书策略仅指明所述原始交易请求需要多少个背书节点或者对背书节点的要求时,根据所述交易背书策略随机或者按预先设置的规则从所有数据节点中挑选出符合要求的背书节点。

可选地,所述判断所述交易发起方是否授权所述服务器代理发送交易的步骤包括:

根据是否接收到所述交易发起方发送的授权指令或者所述原始交易请求中是否附带有授权信息,判断所述交易发起方是否授权所述服务器代理发送交易。

此外,为实现上述目的,本发明还提供一种服务器,所述服务器对接区块链中的所有数据节点,所述服务器包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的交易背书处理系统,所述交易背书处理系统被所述处理器执行时实现如上述的交易背书处理方法的步骤。

进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有交易背书处理系统,所述交易背书处理系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述的交易背书处理方法的步骤。

相较于现有技术,本发明所提出的交易背书处理方法、服务器及计算机可读存储介质,通过在云端建立一个服务器对接所述区块链的所有数据节点,交易发起方可以通过所述服务器对接到其他数据节点,各个数据节点也可以通过所述服务器对接其他数据节点和交易发起方。当任何机构(数据节点)通过所述服务器传递信息时,所述服务器会通过业务逻辑(例如交易背书策略)判断并传递交易信息给接收方。所有数据节点和交易发起方只需要与所述服务器对接即可达到与所有第三方数据节点和交易装置对接的效果,避免了因为数据节点之间无法互相打开防火墙而无法成功进行交易背书的问题,增强了bft共识算法的可用性,提升了区块链交易的处理效率和用户体验。

附图说明

图1是本发明各个实施例一可选的应用环境架构示意图;

图2是图1中的服务器一可选的硬件架构的示意图;

图3是本发明交易背书处理系统第一实施例的程序模块示意图;

图4是本发明交易背书处理系统第二实施例的程序模块示意图;

图5是本发明交易背书处理方法第一实施例的流程示意图;

图6是本发明交易背书处理方法第二实施例的流程示意图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参阅图1所示,是本发明各个实施例一可选的应用环境架构示意图。

在本实施例中,本发明可应用于区块链网络中,所述区块链中至少包括服务器2及多个数据节点4。其中,所述服务器2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,该服务器2可以是独立的服务器,也可以是多个服务器所组成的服务器集群。所述数据节点4可以是移动电话、智能电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、导航装置、车载装置等可移动设备,以及诸如数字tv、台式计算机、笔记本、服务器等固定终端,也可以是服务器。

在本实施例中,在现有的区块链架构中增加一个服务器2,所述服务器2为建立在云端的bft服务器,对接所述区块链中的所有所述数据节点4(包括交易发起方、交易接收方、背书节点等)。当所述数据节点4位于交易参与方(交易发起方、交易接收方)所在机构时,还包括所述数据节点4(或所述机构)对应的交易装置6。交易发起方、交易接收方、背书节点和其他数据节点都可以通过所述服务器2进行对接,所有数据节点4只需要与所述服务器2对接即可达到与所有第三方数据节点4和交易装置6对接的效果。

参阅图2所示,是本发明服务器2一可选的硬件架构的示意图。

本实施例中,所述服务器2可包括,但不仅限于,可通过系统总线相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图2仅示出了具有组件11-13的服务器2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

其中,所述服务器2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,该服务器2可以是独立的服务器,也可以是多个服务器所组成的服务器集群。

所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述服务器2的内部存储单元,例如该服务器2的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述服务器2的外部存储设备,例如该服务器2上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,所述存储器11还可以既包括所述服务器2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器11通常用于存储安装于所述服务器2的操作系统和各类应用软件,例如交易背书处理系统200的程序代码等。此外,所述存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器12在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述服务器2的总体操作。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行所述的交易背书处理系统200等。

所述网络接口13可包括无线网络接口或有线网络接口,该网络接口13通常用于在所述服务器2与其他电子设备之间建立通信连接。

至此,己经详细介绍了本发明的应用环境架构及相关设备的硬件结构和功能。下面,将基于上述介绍提出本发明的各个实施例。

首先,本发明提出一种交易背书处理系统200。

参阅图3所示,是本发明交易背书处理系统200第一实施例的程序模块图。

本实施例中,所述交易背书处理系统200包括一系列的存储于存储器11上的计算机程序指令,当该计算机程序指令被处理器12执行时,可以实现本发明各实施例的交易背书处理操作。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,交易背书处理系统200可以被划分为一个或多个模块。例如,在图3中,所述交易背书处理系统200可以被分割成接收模块201、查询模块202、确定模块203、发送模块204、生成模块205。其中:

所述接收模块201,用于接收交易发起方发送的原始交易请求。

具体地,所述服务器2与所有交易发起方对接,所述交易发起方通过自身的交易装置6向所述服务器2发送原始交易请求,并可以通过所述服务器2对接至其他数据节点4。所述原始交易请求中只包括交易信息,并没有交易结果或对交易结果背书的数字签名。所述交易信息即交易请求参数,包括交易类型、交易双方、交易金额等。例如,某个交易为机构a转给机构b100元,则所述原始交易请求中的交易请求参数(交易信息)为“交易类型:转账;交易双方:a,b;交易金额:100”。

所述查询模块202,用于查询与所述原始交易请求对应的交易背书策略。

具体地,所述服务器2中存储有所述区块链系统搭建时制定的一组交易背书策略,并在所述交易背书策略有变更时进行实时更新。所述交易背书策略用于指导背书节点进行正确的背书,背书节点通过所述交易背书策略来确定一个交易是否被正确的背书。具体而言,所述交易背书策略指明原始交易请求需要多少个第三方数据节点4(背书节点)或者具体哪一些第三方数据节点4来对交易结果背书。

当从交易发起方接收到所述原始交易请求后,所述查询模块202从所存储的一组交易背书策略中查询与所述原始交易请求对应的交易背书策略。其中,可以根据交易类型或交易发起方进行查询,也可以灵活配置本领域常用的其他方式确定所述原始交易请求和所述交易背书策略之间的对应关系,在本实施例中不做限制。

所述确定模块203,用于根据所述交易背书策略确定与所述原始交易请求匹配的背书节点。

具体地,所述服务器2与所述区块链中所有数据节点4对接,每个所述数据节点4可以通过所述服务器2与其他数据节点4和所述交易发起方对接。所述服务器2中存储有所有与其对接的数据节点4的身份信息,包括数字证书、ip地址、名称等。

当查询到与所述原始交易请求对应的交易背书策略后,所述确定模块203根据所述交易背书策略中的背书节点信息和所存储的所有数据节点4的身份信息,确定所述原始交易请求匹配的背书节点。当所述交易背书策略指明具体需要哪一些第三方数据节点4(背书节点)来对交易结果背书时,所述确定模块203直接通过所存储的所有数据节点4的身份信息找到这些背书节点。当所述交易背书策略仅指明所述原始交易请求需要多少个背书节点或者对背书节点的要求时,所述确定模块203根据所述交易背书策略随机或者按预先设置的规则从所有数据节点4中挑选出符合要求的背书节点。例如,根据所述交易背书策略,确定所述原始交易请求需要由背书节点c、d、e进行交易背书。

所述发送模块204,用于将所述原始交易请求发送至所确定的背书节点进行交易背书。

具体地,当所述确定模块203确定出所述原始交易请求匹配的背书节点后,所述发送模块204将接收到的所述原始交易请求发送至所述背书节点,以使所述背书节点分别模拟该交易并验证是否合法。例如,所述发送模块204将所述原始交易请求发送至背书节点c、d、e,由背书节点c、d、e分别在本地对该交易进行背书。

所述接收模块201,还用于接收所述背书节点反馈的交易结果和数字签名。

具体地,当各个背书节点完成交易计算和检验并对交易结果进行数字签名后,将所述交易结果和数字签名反馈给所述服务器2。所述接收模块201从每一个所述背书节点接收交易结果和数字签名。例如,背书节点c、d、e分别在本地完成交易计算和检验并对交易结果进行数字签名后,将所述交易结果和数字签名反馈给所述服务器2,所述接收模块201接收背书节点c、d、e反馈的全部交易结果和数字签名。

所述生成模块205,用于打包所述原始交易请求及所述交易结果和数字签名,生成完整交易请求。

具体地,当所述接收模块201接收到所有背书节点反馈的所述交易结果和数字签名后,所述生成模块205将所述原始交易请求以及所有与所述原始交易请求对应的所述交易结果和数字签名进行打包,并用自身的秘钥签名后生成一个完整交易请求。例如,所述生成模块205将所述原始交易请求以及背书节点c、d、e反馈的全部交易结果和数字签名进行打包并签名,生成所述完整交易请求。

所述发送模块204,还用于将所述完整交易请求广播至所述区块链上的数据节点4。

具体地,所述发送模块204将生成的所述完整交易请求广播至所述区块链上的数据节点4,从而完成对该交易的背书过程。

本实施例提供的交易背书处理系统,通过在云端建立一个服务器2对接所述区块链的所有数据节点4,交易发起方可以通过所述服务器2对接到其他数据节点4,各个数据节点4也可以通过所述服务器2对接其他数据节点4和交易发起方。当任何机构(数据节点)通过所述服务器2传递信息时,所述服务器2会通过业务逻辑(例如交易背书策略)判断并传递交易信息给接收方。所有数据节点4和交易发起方只需要与所述服务器2对接即可达到与所有第三方数据节点4和交易装置6对接的效果,避免了因为数据节点4之间无法互相打开防火墙而无法成功进行交易背书的问题,增强了bft共识算法的可用性,提升了区块链交易的处理效率和用户体验。

参阅图4所示,是本发明交易背书处理系统200第二实施例的程序模块图。本实施例中,所述的交易背书处理系统200除了包括第一实施例中的所述接收模块201、查询模块202、确定模块203、发送模块204、生成模块205之外,还包括判断模块206。

所述判断模块206,用于在所述接收模块201接收到所述背书节点反馈的交易结果和数字签名后,判断所述交易发起方是否授权所述服务器2代理发送交易。

具体地,所述交易发起方可以选择是否授权所述服务器2代理发送交易,即选择由自身发起所述完整交易请求,或者由所述服务器2代理发起所述完整交易请求。其中,当选择授权所述服务器2代理发送交易时,可以向所述服务器2发送一个授权指令,或者在所述原始交易请求中附带进行授权,也可以采用本领域常用的其他方式进行授权。所述服务器2根据是否接收到所述交易发起方的授权(是否接收到所述授权指令,或者所述原始交易请求中是否附带有授权信息),判断是否为所述交易发起方代理发送交易。

若接收到所述交易发起方的授权,即为代理交易发送模式;若未接收到所述交易发起方的授权,则为非代理交易发送模式。当为代理交易发送模式时,采用上述第一实施例的处理过程,由所述生成模块205打包所述原始交易请求及所述交易结果和数字签名,生成完整交易请求,然后由所述发送模块204将所述完整交易请求广播至所述区块链上的数据节点4。当为非代理交易发送模式时,采用本实施例下述的处理过程。

所述发送模块204,还用于当所述交易发起方未授权所述服务器2代理发送交易时,将所述交易结果和数字签名发送至所述交易发起方。

具体地,当所述交易发起方没有授权所述服务器2代理发送交易时,所述接收模块201接收到所有背书节点反馈的所述交易结果和数字签名后,所述发送模块204会将所述交易结果和数字签名发送至所述交易发起方。

所述接收模块201,还用于接收所述交易发起方打包生成的完整交易请求。

具体地,所述交易发起方接收到所述发送模块204发送的所有背书节点反馈的所述交易结果和数字签名后,其对应的交易装置6会将所述原始交易请求以及所有与所述原始交易请求对应的所述交易结果和数字签名进行打包,并用自身的秘钥签名后生成一个完整交易请求,然后将所述完整交易请求再次发送至所述服务器2。所述接收模块201接收到所述完整交易请求后,再由所述发送模块204将所述完整交易请求广播至所述区块链上的数据节点4。

本实施例提供的交易背书处理系统中,交易发起方可以选择是否授权所述服务器2代理发送交易,所述服务器2根据所述交易发起方是否授权,可以灵活采用不同的方式生成完整交易请求,然后再广播至其他数据节点4,进一步增强bft共识算法的可用性和提升用户体验。

此外,本发明还提出一种交易背书处理方法。

参阅图5所示,是本发明交易背书处理方法第一实施例的流程示意图。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。

该方法包括以下步骤:

步骤s400,接收交易发起方发送的原始交易请求。

具体地,所述服务器2与所有交易发起方对接,所述交易发起方通过自身的交易装置6向所述服务器2发送原始交易请求,并可以通过所述服务器2对接至其他数据节点4。所述原始交易请求中只包括交易信息,并没有交易结果或对交易结果背书的数字签名。所述交易信息即交易请求参数,包括交易类型、交易双方、交易金额等。例如,某个交易为机构a转给机构b100元,则所述原始交易请求中的交易请求参数(交易信息)为“交易类型:转账;交易双方:a,b;交易金额:100”。

步骤s402,查询与所述原始交易请求对应的交易背书策略。

具体地,所述服务器2中存储有所述区块链系统搭建时制定的一组交易背书策略,并在所述交易背书策略有变更时进行实时更新。所述交易背书策略用于指导背书节点进行正确的背书,背书节点通过所述交易背书策略来确定一个交易是否被正确的背书。具体而言,所述交易背书策略指明原始交易请求需要多少个第三方数据节点4(背书节点)或者具体哪一些第三方数据节点4来对交易结果背书。

当从交易发起方接收到所述原始交易请求后,所述服务器2从所存储的一组交易背书策略中查询与所述原始交易请求对应的交易背书策略。其中,可以根据交易类型或交易发起方进行查询,也可以灵活配置本领域常用的其他方式确定所述原始交易请求和所述交易背书策略之间的对应关系,在本实施例中不做限制。

步骤s404,根据所述交易背书策略确定与所述原始交易请求匹配的背书节点。

具体地,所述服务器2与所述区块链中所有数据节点4对接,每个所述数据节点4可以通过所述服务器2与其他数据节点4和所述交易发起方对接。所述服务器2中存储有所有与其对接的数据节点4的身份信息,包括数字证书、ip地址、名称等。

当查询到与所述原始交易请求对应的交易背书策略后,所述服务器2根据所述交易背书策略中的背书节点信息和所存储的所有数据节点4的身份信息,确定所述原始交易请求匹配的背书节点。当所述交易背书策略指明具体需要哪一些第三方数据节点4(背书节点)来对交易结果背书时,所述服务器2直接通过所存储的所有数据节点4的身份信息找到这些背书节点。当所述交易背书策略仅指明所述原始交易请求需要多少个背书节点或者对背书节点的要求时,所述服务器2根据所述交易背书策略随机或者按预先设置的规则从所有数据节点4中挑选出符合要求的背书节点。例如,根据所述交易背书策略,确定所述原始交易请求需要由背书节点c、d、e进行交易背书。

步骤s406,将所述原始交易请求发送至所确定的背书节点进行交易背书。

具体地,当所述服务器2确定出所述原始交易请求匹配的背书节点后,将接收到的所述原始交易请求发送至所述背书节点,以使所述背书节点分别模拟该交易并验证是否合法。例如,所述服务器2将所述原始交易请求发送至背书节点c、d、e,由背书节点c、d、e分别在本地对该交易进行背书。

步骤s408,接收所述背书节点反馈的交易结果和数字签名。

具体地,当各个背书节点完成交易计算和检验并对交易结果进行数字签名后,将所述交易结果和数字签名反馈给所述服务器2。所述服务器2从每一个所述背书节点接收交易结果和数字签名。例如,背书节点c、d、e分别在本地完成交易计算和检验并对交易结果进行数字签名后,将所述交易结果和数字签名反馈给所述服务器2,所述服务器2接收背书节点c、d、e反馈的全部交易结果和数字签名。

步骤s410,打包所述原始交易请求及所述交易结果和数字签名,生成完整交易请求。

具体地,当所述服务器2接收到所有背书节点反馈的所述交易结果和数字签名后,将所述原始交易请求以及所有与所述原始交易请求对应的所述交易结果和数字签名进行打包,并用自身的秘钥签名后生成一个完整交易请求。例如,所述服务器2将所述原始交易请求以及背书节点c、d、e反馈的全部交易结果和数字签名进行打包并签名,生成所述完整交易请求。

步骤s412,将所述完整交易请求广播至所述区块链上的数据节点4。

具体地,所述服务器2将生成的所述完整交易请求广播至所述区块链上的数据节点4,从而完成对该交易的背书过程。

本实施例提供的交易背书处理方法,通过在云端建立一个服务器2对接所述区块链的所有数据节点4,交易发起方可以通过所述服务器2对接到其他数据节点4,各个数据节点4也可以通过所述服务器2对接其他数据节点4和交易发起方。当任何机构(数据节点)通过所述服务器2传递信息时,所述服务器2会通过业务逻辑(例如交易背书策略)判断并传递交易信息给接收方。所有数据节点4和交易发起方只需要与所述服务器2对接即可达到与所有第三方数据节点4和交易装置6对接的效果,避免了因为数据节点4之间无法互相打开防火墙而无法成功进行交易背书的问题,增强了bft共识算法的可用性,提升了区块链交易的处理效率和用户体验。

如图6所示,是本发明交易背书处理方法的第二实施例的流程示意图。本实施例中,所述交易背书处理方法的步骤s500-s508及s516-s518与第一实施例的步骤s400-s412相类似,区别在于该方法还包括步骤s510-s514。

该方法包括以下步骤:

步骤s500,接收交易发起方发送的原始交易请求。

具体地,所述服务器2与所有交易发起方对接,所述交易发起方通过自身的交易装置6向所述服务器2发送原始交易请求,并可以通过所述服务器2对接至其他数据节点4。所述原始交易请求中只包括交易信息,并没有交易结果或对交易结果背书的数字签名。所述交易信息即交易请求参数,包括交易类型、交易双方、交易金额等。例如,某个交易为机构a转给机构b100元,则所述原始交易请求中的交易请求参数(交易信息)为“交易类型:转账;交易双方:a,b;交易金额:100”。

步骤s502,查询与所述原始交易请求对应的交易背书策略。

具体地,所述服务器2中存储有所述区块链系统搭建时制定的一组交易背书策略,并在所述交易背书策略有变更时进行实时更新。所述交易背书策略用于指导背书节点进行正确的背书,背书节点通过所述交易背书策略来确定一个交易是否被正确的背书。具体而言,所述交易背书策略指明原始交易请求需要多少个第三方数据节点4(背书节点)或者具体哪一些第三方数据节点4来对交易结果背书。

当从交易发起方接收到所述原始交易请求后,所述服务器2从所存储的一组交易背书策略中查询与所述原始交易请求对应的交易背书策略。其中,可以根据交易类型或交易发起方进行查询,也可以灵活配置本领域常用的其他方式确定所述原始交易请求和所述交易背书策略之间的对应关系,在本实施例中不做限制。

步骤s504,根据所述交易背书策略确定与所述原始交易请求匹配的背书节点。

具体地,所述服务器2与所述区块链中所有数据节点4对接,每个所述数据节点4可以通过所述服务器2与其他数据节点4和所述交易发起方对接。所述服务器2中存储有所有与其对接的数据节点4的身份信息,包括数字证书、ip地址、名称等。

当查询到与所述原始交易请求对应的交易背书策略后,所述服务器2根据所述交易背书策略中的背书节点信息和所存储的所有数据节点4的身份信息,确定所述原始交易请求匹配的背书节点。当所述交易背书策略指明具体需要哪一些第三方数据节点4(背书节点)来对交易结果背书时,所述服务器2直接通过所存储的所有数据节点4的身份信息找到这些背书节点。当所述交易背书策略仅指明所述原始交易请求需要多少个背书节点或者对背书节点的要求时,所述服务器2根据所述交易背书策略随机或者按预先设置的规则从所有数据节点4中挑选出符合要求的背书节点。例如,根据所述交易背书策略,确定所述原始交易请求需要由背书节点c、d、e进行交易背书。

步骤s506,将所述原始交易请求发送至所确定的背书节点进行交易背书。

具体地,当所述服务器2确定出所述原始交易请求匹配的背书节点后,将接收到的所述原始交易请求发送至所述背书节点,以使所述背书节点分别模拟该交易并验证是否合法。例如,所述服务器2将所述原始交易请求发送至背书节点c、d、e,由背书节点c、d、e分别在本地对该交易进行背书。

步骤s508,接收所述背书节点反馈的交易结果和数字签名。

具体地,当各个背书节点完成交易计算和检验并对交易结果进行数字签名后,将所述交易结果和数字签名反馈给所述服务器2。所述服务器2从每一个所述背书节点接收交易结果和数字签名。例如,背书节点c、d、e分别在本地完成交易计算和检验并对交易结果进行数字签名后,将所述交易结果和数字签名反馈给所述服务器2,所述服务器2接收背书节点c、d、e反馈的全部交易结果和数字签名。

步骤s510,判断所述交易发起方是否授权所述服务器2代理发送交易。若是(代理交易发送模式),则执行步骤s516;若否(非代理交易发送模式),则执行步骤s512。

具体地,所述交易发起方可以选择是否授权所述服务器2代理发送交易,即选择由自身发起所述完整交易请求,或者由所述服务器2代理发起所述完整交易请求。其中,当选择授权所述服务器2代理发送交易时,可以向所述服务器发送一个授权指令,或者在所述原始交易请求中附带进行授权,也可以采用本领域常用的其他方式进行授权。所述服务器2根据是否接收到所述交易发起方的授权(是否接收到所述授权指令,或者所述原始交易请求中是否附带有授权信息),判断是否为所述交易发起方代理发送交易。

若所述服务器2接收到所述交易发起方的授权,即为代理交易发送模式;若未接收到所述交易发起方的授权,则为非代理交易发送模式。当为代理交易发送模式时,采用下述步骤s516-s518的处理过程;当为非代理交易发送模式时,采用下述步骤s512-s514及s518的处理过程。

步骤s512,将所述交易结果和数字签名发送至所述交易发起方。

具体地,当所述交易发起方没有授权所述服务器2代理发送交易时,所述服务器2在接收到所有背书节点反馈的所述交易结果和数字签名后,会将所述交易结果和数字签名发送至所述交易发起方。

步骤s514,接收所述交易发起方打包生成的完整交易请求。

具体地,所述交易发起方接收到所述服务器2发送的所有背书节点反馈的所述交易结果和数字签名后,其对应的交易装置6会将所述原始交易请求以及所有与所述原始交易请求对应的所述交易结果和数字签名进行打包,并用自身的秘钥签名后生成一个完整交易请求,然后将所述完整交易请求再次发送至所述服务器2。

步骤s516,打包所述原始交易请求及所述交易结果和数字签名,生成完整交易请求。

具体地,当所述交易发起方授权所述服务器2代理发送交易时,所述服务器2将所述原始交易请求以及所有与所述原始交易请求对应的所述交易结果和数字签名进行打包,并用自身的秘钥签名后生成一个完整交易请求。例如,所述服务器2将所述原始交易请求以及背书节点c、d、e反馈的全部交易结果和数字签名进行打包并签名,生成所述完整交易请求。

步骤s518,将所述完整交易请求广播至所述区块链上的数据节点4。

具体地,所述服务器2将自身生成的所述完整交易请求(代理交易发送模式)或者从所述交易发起方接收到的所述完整交易请求(非代理交易发送模式)广播至所述区块链上的数据节点4,从而完成对该交易的背书过程。

本实施例提供的交易背书处理方法中,交易发起方可以选择是否授权所述服务器2代理发送交易,所述服务器2根据所述交易发起方是否授权,可以灵活采用不同的方式生成完整交易请求,然后再广播至其他数据节点4,进一步增强bft共识算法的可用性和提升用户体验。

本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有交易背书处理程序,所述交易背书处理程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的交易背书处理方法的步骤。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1