签名的验证方法、装置和系统、存储介质、电子装置与流程

文档序号:15878336发布日期:2018-11-09 17:24阅读:221来源:国知局
签名的验证方法、装置和系统、存储介质、电子装置与流程

本发明涉及互联网领域,具体而言,涉及一种签名的验证方法、装置和系统、存储介质、电子装置。

背景技术

区块链是一种源自比特币的去中心化分布式记账技术,其通过将加密区块数据按照时间顺序叠加而生成持久的、不可修改的记录,并且将记录存储在区块链网络的各个节点中,使得参与到区块链中的各个节点共同维护一个可靠的分布式数据存储。由此,区块链具有去中心化、不可篡改、过程透明和可追踪等技术优势,其被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。

根据区块链参与方的不同,区块链通常被分为公有链、联盟链和私有链三种类型,其中联盟链是商业应用的普遍形式。联盟链在实践中存在多种需要多个组织背书才可提交的业务,例如,添加/移除联盟链组织成员等。相关技术中的背书机制需要遍历区块链中所有组织以获得一定数目的背书,然后逐个验证背书签名,这在很大程度上限制了联盟链的背书效率。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种签名的验证方法、装置和系统、存储介质、电子装置,以至少解决相关技术中的验证背书签名的效率较低的技术问题。

根据本发明实施例的一个方面,提供了一种签名的验证方法,包括:获取到目标账号的第一请求,其中,第一请求用于发起交易事件;向区块链中的多个第一节点发送第二请求,其中,第二请求用于获取多个第一节点对交易事件的签名;获取多个第一节点响应第二请求所返回的对交易事件的签名;通过多个第二节点验证多个第一节点对交易事件的签名。

根据本发明实施例的另一方面,还提供了一种签名的验证装置,包括:第一获取单元,用于获取到目标账号的第一请求,其中,第一请求用于发起交易事件;发送单元,用于向区块链中的多个第一节点发送第二请求,其中,第二请求用于获取多个第一节点对交易事件的签名;第二获取单元,用于获取多个第一节点响应第二请求所返回的对交易事件的签名;验证单元,用于通过多个第二节点验证多个第一节点对交易事件的签名。

根据本发明实施例的另一方面,还提供了一种签名的验证系统,包括:云端集群,云端集群中的第四节点用于获取目标账号的第一请求,其中,第一请求用于发起交易事件,区块链,区块链中的多个第一节点用于接收云端集群中的第四节点发送的第二请求,并返回对交易事件的签名给云端集群中的第四节点,其中,第二请求用于获取多个第一节点对交易事件的签名;资源池,资源池中的多个第二节点用于验证多个第一节点对交易事件的签名。

根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本发明实施例中,获取到目标账号的第一请求,其中,第一请求用于发起交易事件;向区块链中的多个第一节点发送第二请求,其中,第二请求用于获取多个第一节点对交易事件的签名;获取多个第一节点响应第二请求所返回的对交易事件的签名;通过多个第二节点验证多个第一节点对交易事件的签名,由于第一请求的接收与签名验证是不同节点处理的,且通过多个第二节点来验证签名相较于使用一个节点来验证显然处理效率更高,从而可以解决相关技术中的验证背书签名的效率较低的技术问题,进而达到提高验证效率的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的签名的验证方法的硬件环境的示意图;

图2是根据本发明实施例的一种可选的签名的验证方法的流程图;

图3是根据本发明实施例的一种可选的签名的验证方法的流程图;

图4是根据本发明实施例的一种可选的签名的验证方法的流程图;

图5是根据本发明实施例的一种可选的签名的验证系统的示意图;

图6是根据本发明实施例的一种可选的签名的验证方法的流程图;

图7是根据本发明实施例的一种可选的客户端的示意图;

图8是根据本发明实施例的一种可选的签名的验证方法的流程图;

图9是根据本发明实施例的一种可选的签名的验证装置的示意图;

以及

图10是根据本发明实施例的一种终端的结构框图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例的一方面,提供了一种签名的验证方法的方法实施例。

可选地,在本实施例中,上述签名的验证方法可以应用于如图1所示的由云端集群101、终端103以及区块链105所构成的硬件环境中。如图1所示,云端集群101通过网络与终端103进行连接,云端集群101通过网络与区块链105进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端103并不限定于pc、手机、平板电脑等。

本发明实施例的签名的验证方法可以由云端集群101来执行,也可以由终端103来执行,还可以是由云端集群101和终端103共同执行。其中,终端103执行本发明实施例的签名的验证方法也可以是由安装在其上的客户端来执行。

图2是根据本发明实施例的一种可选的签名的验证方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤s202,云端集群中的第四节点获取到目标账号的第一请求,第一请求用于发起交易事件。

上述的云端集群为包括一个或多个节点(这些节点包括上述具体执行本申请方法的第四节点)的集群,可以为一套实现多网统一接入、外网网络请求转发、支持自动负载均衡的系统,如tgw(全称tencentgateway),上述的节点属于一个逻辑概念,不同类型的多个节点可以运行在同一个物理服务器上面,也可一个节点运行在一个物理服务器上。

上述的第一请求为客户端发出的请求,该客户端可安装在前述用户终端上,且该客户端上登录有目标账号或登录有与目标账号相关联的另一账号。

上述的交易事件可以理解一种需要在区块链中付出交易代币(如比特币)的事件,该事件具体可以为:证券交易、电子商务、文件存储等事件。

步骤s204,云端集群中的第四节点向区块链中的多个第一节点发送第二请求,第二请求用于获取多个第一节点对交易事件的签名。

区块链中的节点是区块链的通信实体,该节点也属于一个逻辑概念,不同类型的多个节点可以运行在同一个物理服务器上面,也可一个节点运行在一个物理服务器上。上述第一节点即背书节点(英文名称为fabricendorser)或称背书者endorser,该节点承担利用背书策略(endorsementpolicy)背书的功能;背书策略是对交易进行背书的条件,即要得到背书成功的结论,须满足背书策略中给出的条件,一种典型的背书策略是指定某些节点进行背书,形成一个背书节点的集合,完成一个背书节点集合的签名,即联合签名。

步骤s206,云端集群中的第四节点获取多个第一节点响应第二请求所返回的对交易事件的签名。

步骤s208,云端集群中的第四节点通过多个第二节点验证多个第一节点对交易事件的签名。

本发明实施例的签名的验证方法可以由云端集群101来执行,也可以由云端集群101、终端103以及区块链105共同执行。其中,云端集群101执行本发明实施例的签名的验证方法也可以是由安装在云端集群101的一个节点上的客户端来执行。

通过上述步骤s202至步骤s208,获取到目标账号的第一请求,其中,第一请求用于发起交易事件;向区块链中的多个第一节点发送第二请求,其中,第二请求用于获取多个第一节点对交易事件的签名;获取多个第一节点响应第二请求所返回的对交易事件的签名;通过多个第二节点验证多个第一节点对交易事件的签名,由于第一请求的接收与签名验证是不同节点处理的,且通过多个第二节点来验证签名相较于使用一个节点来验证显然处理效率更高,从而可以解决相关技术中的验证背书签名的效率较低的技术问题,进而达到提高验证效率的技术效果。

在一个可选的实施例中,可以采用如图3所示的背书策略实现背书:

步骤s302,客户端向区块链中的peer提交节点请求交易;

步骤s304,区块链的peer提交节点向智能合约(英文名称为smartcontract)指定所有背书节点(包括背书节点1至背书节点n)请求区块链所有组织的数字证书私钥签名,智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议,智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转;

步骤s306,等待返回智能合约要求的各组织的背书签名;

步骤s308,peer提交节点用所有组织的数字证书公钥串行验证签名。

在上述实施例中,用户客户端可以连接区块链中的任意一个peer提交节点,利用区块链的背书机制,所有组织证书公钥均保留在各组织peer提交节点上,其中各组织证书私钥仅在本组织背书节点上,所有签名均在智能合约选定的背书节点上进行签名;提交节点保留各组织证书公钥,以在提交节点上串行地执行签名验签。

在又一个可选的实施例中,可以采用如图4所示的背书策略实现背书:

步骤s402,客户端向区块链中的peer提交节点请求交易;

步骤s404,区块链peer提交节点向智能合约指定所有背书节点请求区块链所有组织的数字证书私钥签名;

步骤s406,等待返回智能合约要求的各组织的背书签名;

步骤s408,peer提交节点通过所连接的高速加解密机用所有组织的数字证书公钥串行验证签名。

在上述实施例中,用户客户端可以连接区块链的任意一个节点,修改前一实施例的区块链的背书机制,所有组织证书公钥均保留在各组织peer提交节点连接的高速加解密机上,其中各组织证书私钥仅保存在本组织背书节点上,所有签名操作均在智能合约选定的背书节点上进行;提交节点连接的高速加解密机上保留各组织证书公钥,签名验签串行在加解密机上进行。

在上述两个方案均存在无法避免的问题:其一是,客户端可以连接任意一个提交节点,导致对客户端的用户交易请求频率和请求总量的控制难度非常大,各提交节点需要实时数据同步,提交节点数目众多的情况下无法实现;其二是,peer提交节点需要用所有组织的数字证书公钥串行验证签名,处理效率极其低下,即使使用加解密机来串行验证,但受限于单机性能,即使性能再高也存在上限。

而在本申请的实施例中,是云端集群中的第四节点通过多个第二节点验证多个第一节点对交易事件的签名:1)第一请求的处理和验证的处理是分开进行的,通过多个第二节点来验证多个第一节点对交易事件的签名,而不用云端集群中的第四节点来验证,换言之,云端集群中的第四节点不用既处理第一请求,又进行验证,可以降低其业务压力;2)是通过多个第二节点验证多个第一节点对交易事件的签名,换言之,若存在多个第一请求,那么对应每个第一请求的签名可以由多个第二节点分别处理,即并行验证对应多个第一请求的签名验证,如每个第二节点处理对应一个第一请求的签名验证,而不用在一个节点上串行处理,可以提高对多个第一请求的响应速度;3)对应每个第一请求的签名,可以在多个第二节点上并行验证,由于一个交易事件需要得到多个第一节点的签名,而每个第一节点的签名均需要验证,因此,这多个第一节点的签名的验证可以在多个第二节点上并行执行,如一个第二节点至少验证一个第一节点的签名,从而可以提高对单个第一请求的相应速度;4)处理第一请求的对象是云端集群中的第四节点,而不是peer提交节点。

下面结合图2所示的步骤进一步详述本申请的技术方案:

在步骤s202提供的技术方案中,如图5所示,当客户端存在业务需求时,如需要访问业务数据区块链中的数据时,可向云端集群发送第一请求,云端集群中的第四节点可接收客户端上目标账号的第一请求,第一请求用于发起交易事件(如访问业务数据的事件),云端集群可通过权项数据区块链中的节点实现签名。

可选地,可利用云端弹性扩充能力,根据用户交易请求量和背书验签数动态实现中间件集群的负载均衡,获取到目标账号的第一请求包括:计算云端集群中各节点的负载率(负载率可以表示为某节点已经使用的运算资源与该节点的所有运算资源之间的比值),通过云端集群中的第四节点获取目标账号的第一请求,第四节点的负载率不大于云端集群中除第四节点以外的节点的负载率。

在通过云端集群中的第四节点获取目标账号的第一请求之前或之后,在云端集群中处于激活状态的所有节点的负载率达到第一阈值的情况下,换言之,即中间件集群的负载较高的情况下,将为云端集群配置的备用节点的状态由备用状态切换为激活状态,并加入到云端集群中,此处的备用节点可以是预先配置好的,也可是在需要的当前时刻配置好的。

在上述实施例中,在中间件集群的负载较高的情况下可以自动增加节点来降低云端集群的负载,当然在云端集群的负载较小的情况下也可进行资源回收,在云端集群中处于激活状态的所有节点的负载率小于第二阈值的情况下,将云端集群中未使用的节点的状态由激活状态切换为备用状态,并云端集群中删除,第二阈值为小于第一阈值的正数,从云端集群中删除的含义包括回收该节点所占用的硬件资源和保留该节点,但是该节点处于不可用状态(或称备用状态)。

在上述的实施例中,在云端集群中处于激活状态的所有节点的负载率达到第一阈值的情况下,向发送第一请求的客户端发送提示信息,提示信息用于提示云端集群中所有节点的负载率达到第一阈值;与此同时,还可统计目标账号的请求发送频率,通过提示信息提示目标账号,其发送的请求的频率过高(导致云端负载率过高),在一定时间内不再处理其所发送的第一请求,通过中间件层实现区块链用户交易请求频率和请求总量控制。

在步骤s204提供的技术方案中,云端集群中的第四节点向区块链中的多个第一节点发送第二请求,第二请求用于获取多个第一节点对交易事件的签名。

在步骤s206提供的技术方案中,云端集群中的第四节点获取多个第一节点响应第二请求所返回的对交易事件的签名。

上述的第一节点可以为区块链中的peer背书节点,各组织证书私钥仅在本组织的背书节点上,所有签名均在智能合约选定的背书节点(即上述多个第一节点)上进行签名。

在步骤s208提供的技术方案中,云端集群中的第四节点通过多个第二节点验证多个第一节点对交易事件的签名。

可选地,在通过多个第二节点验证多个第一节点对交易事件的签名之后,在多个第二节点对多个第一节点的签名的验证均通过的情况下,确定交易事件为合法的交易;在至少一个第二节点对第一节点的签名的验证未通过的情况下,确定交易事件不为合法的交易。

可选地,中间件层可实现区块链组织数字证书公钥的云端分布式p2p计算资源的分发,在通过多个第二节点验证多个第一节点对交易事件的签名之前,从多个第一节点获取所有组织的多个公钥,多个公钥中的每个公钥用于第二节点验证一个第一节点的签名;将多个公钥发送给对等p2p网络中的第三节点(也即控制节点,该节点可以是指定的节点,也可以是网络中的任意节点),通过第三节点将多个公钥传送给对等网络中的其它节点,对等网络中的节点为采用现场可编程门阵列fpga处理器的节点,对等网络中的任一节点用于在接收到多个公钥的情况下,将接收到的多个公钥传送给与任一节点通讯连接的节点,换言之,节点可通过临近节点的p2p网络的病毒式传播即可获得各组织的数字证书公钥。

在上述实施例中,通过多个第二节点验证多个第一节点对交易事件的签名可包括:通过多个第二节点中的每个第二节点验证一个第一节点的签名是否正确,任意两个第二节点验证的签名所属的第一节点不同,换言之,第二节点间不会重复验证某个签名,多个第二节点中的一个节点在第一时间段执行对交易事件的签名操作,多个第二节点中的另一个节点在第二时间段执行对交易事件的签名操作,第一时间段与第二时间段之间部分或全部重叠,也即任意两个第二节点的验证操作可以是并行执行的。

可选地,通过多个第二节点中的每个第二节点验证一个第一节点的签名是否正确包括:向对等网络中的第三节点发送第三请求,换言之,中间件层只需要向p2p网络传输一次第三请求,而不用向每个第二节点传输第三请求,第三节点将第三请求传送给对等网络中的多个第二节点,任意一个第二节点接收到的第三请求来源于第三节点或另一个第二节点;第二节点利用签名私钥完成签名后,返回签名给第三节点,然后云端集群中的第四节点会接收第三节点返回的多个第二节点的签名。

在上述实施例中,向对等网络中的一个第三节点发送第三请求可包括:向资源池中的第三节点发送第三请求,资源池中的所有资源节点采用对等网络相连接,第三节点为资源池的控制节点,第三节点用于从所有资源节点中选取出第二节点,第二节点为负载率小于所有资源节点中除第二节点以外的资源节点的负载率。

本申请利用云端弹性扩充能力,根据用户交易请求量和背书验签数动态实现了中间件集群的负载均衡、分布式p2p云计算验签资源的弹性扩充,中间件集群并行分发和收集分布式p2p云计算资源背书验签结果,利用云端分布式高效fpga计算资源高效完成区块链背书验证。本方案支持公有云和私有云下部署。

作为一种可选的实施例,下面以将本申请的技术方案应用于互联网数据中心idc为例进行说明。

互联网数据中心是电信等互联网服务提供商利用已有的互联网通信线路、带宽资源,建立标准化的电信专业级机房环境,为企业、政府提供服务器托管、租用以及相关增值等方面的全方位服务;通俗点可以理解为机房,跨域即跨idc。里面可以包括私有网络vpc、云服务器cvm(全称为cloudvirtualmachine)、数据中心网络集群dci、云硬盘cbs(全称为cloudblockstorage)、云专用宿主机cdh(全称为cvmdedicatedhost)、云消息服务cmq(全称为cloudmessagequeue)、弹性缓存crs(全称为cloudredisstore)、云容器服务ccs(全称为cloudcontainerservice)、文件存储cfs(全称为cloudfilestorage)等组件。

上述云私有网络vpc,是一块可用户自定义的网络空间,用户可以在私有网络内部署云主机、负载均衡、数据库、nosql快存储等云服务资源。用户可自由划分网段、制定路由策略,私有网络可以配置公网网关来访问internet,同时也支持配置公网或专线接入搭建混合云,私有网络之间网络逻辑隔离,本申请中第一请求所请求的业务可以保存在云私有网络中。

云私有网络中可以有云服务器cvm,云服务器是高性能高稳定的云虚拟机,可在云中提供大小可调的计算容量,降低客户对计算规模预估的难度;客户可以轻松购买自定义配置的机型,在几分钟内获取到新服务器,并根据客户的需要使用镜像进行快速的扩容。

云私有网络中可以有云硬盘cbs,云硬盘是一种高可用、高可靠、低成本、可定制化的网络块设备,可以作为云服务器的独立可扩展硬盘使用。它提供数据块级别的数据存储,采用三副本的分布式机制,为cvm提供数据可靠性保证。cbs支持在可用区内自动复制,将客户的数据备份在不同机器上,从而免除单个机器故障带来的数据丢失等问题,提高数据的可用性及持久性。根据性能的不同,分为普通云硬盘和ssd云硬盘两种类型。

云专用宿主机cdh,区别于腾讯云云服务器cvm,云专用宿主机可提供用户独享的物理服务器资源,是云服务器产品的补充,满足客户资源独享、资源物理隔离、安全、合规需求。用户可通过独享整台宿主机的方式购买、管理资源。购买后可以在其上创建免费的cvm实例,实例规格、数量支持自主定义、自主规划。

弹性缓存crs,是为云打造的兼容redis协议的缓存和存储服务(如保存前述的业务数据),提供主从版和集群版,丰富的数据结构能帮助您完成不同类型的业务场景开发,支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。

云容器服务ccs,是高度可扩展的高性能容器管理服务,客户可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,无需安装、运维、扩展您的集群管理基础设施,只需进行简单的api调用,便可启动和停止docker应用程序,查询集群的完整状态,以及使用各种云服务。可以根据客户的资源需求和可用性要求在您的集群中安排容器的置放,满足业务或应用程序的特定要求(如本申请的方法可以此方式运行)。

文件存储cfs,提供了可扩展的共享文件存储服务,可与云的cvm等服务搭配使用,cfs提供了标准的nfs文件系统访问协议,为多个cvm实例提供共享的数据源,支持无限容量和性能的扩展,现有应用无需修改即可挂载使用,是一种高可用、高可靠的分布式文件系统,适合于大数据分析、媒体处理和内容管理等场景。

ckafka(全称为cloudkafka),是一个分布式的、高吞吐量、高可扩展性的消息系统,ckafka基于发布/订阅模式,通过消息解耦,使生产者和消费者异步交互,无需彼此等待,ckafka具有数据压缩、同时支持离线和实时数据处理等优点,适用于日志压缩收集、监控数据聚合等场景,如本申请的区块链、云端集群中间件、分布式验签计算资源池之间,或者区块链、云端集群中间件、分布式验签计算资源池内部的组件之间可以采用此方式进行通讯。

在本申请的技术方案中,架构如6所示:

客户端:区块链终端客户使用的客户端,图7示出了一种可选的客户端,用户可以在某业务的后台管理界面执行“新增账户”、“权限设置”等操作;

云端集群中间件:可使用云端负载均衡集群替代区块链提交节点,云端负载均衡集群主要提供分发服务;

背书节点:负责背书策略签字,存储本组织私钥,下发公钥到集群中间件;

分布式验签计算资源池:负责背书策略验签,接收并存储所有组织的公钥。

一种可选的云端集群中间件的具体软件流程如下:

步骤s602,云端集群中间件接受客户端交易请求(即第一请求),云端集群中间件之间可以采用tgw,实现多网统一接入、外网网络请求转发、支持自动负载均衡。

云端集群内部的中间件之间可采用云消息服务cmq,云消息服务提供了分布式消息队列服务,能够为分布式部署的不同应用之间或者一个应用的不同组件之间,提供基于消息的可靠的异步通信机制,消息被存储在高可靠、高可用的cmq队列中,多进程可以同时读写,互不干扰。

步骤s604,接受证书公钥上传请求。

步骤s606,依据智能合约要求向背书节点提交交易背书请求(即第二请求)。

步骤s608,下发证书公钥到p2p网络分布式验签计算资源池。

步骤s610,背书节点返回背书签名。

步骤s612,依据智能合约要求向p2p网络分布式验签计算资源池提交验签请求(即第三请求)。

步骤s614,返回验签结果。

在本申请的技术方案中,支持客户端请求的统一接入,频率控制和请求总量控制。可根据客户请求量和验签频率弹性扩充云端中间件和云端p2p网络分布式计算资源。支持云端p2p网络分布式计算资源池数字证书分发及管理,支持并行验签高性能计算。具体如下:

步骤s802,客户端通过域名解析向云端集群中间件连接并发出交易请求,以请求交易。

步骤s804,云端集群中间件根据交易请求智能合约通过负载均衡无状态向智能合约规定有限数量组织背书节点发出背书签名请求(即发起交易背书请求)。

步骤s806,有限数量组织背书节点返回背书签名给集群中间件。

步骤s808,云端集群中间件根据交易请求智能合约判断是否满足背书策略签名规则,并提交签名集群(一阶段提交)列表。

步骤s810,云端集群中间件根据提交的签名集群列表分发验签请求到云端p2p网络分布式fpga高速计算资源池,该资源池各计算节点根据当前的负载状况接受签名列表中的有限个验签计算请求,并将剩余验签计算请求在p2p网络分布式fpga高速计算资源池中传播,直到所有计算请求并发在资源池完成验签计算。

步骤s812,云端p2p网络分布式fpga高速计算资源池返回验签结果给云端集群中间件。

步骤s814,云端集群中间件根据交易请求智能合约判断是否满足背书策略验签规则,并提交验签集群(二阶段提交)列表。

步骤s816,云端集群中间件返回交易结果给请求客户端。

采用本申请的技术方案,具有如下有点:

本申请的技术方案支持集群部署,能够提升调度系统容灾和可用性,即实现了集群带域名容灾调度,可在集群间离线同步请求用户的请求次数、客户端的用户交易频率和请求总量配置,通过云端集群中间件替代众多提交节点,完美的通过集群接入控制客户端的用户交易请求频率和请求总量,并能根据客户端的请求动态增减集群中间件的负载均衡组件数量;

通过云端集群中间件将各组织的数字证书公钥分发到云端p2p网络的分布式高效fpga计算资源上,各分布式高效fpga计算资源无需都和云端集群中间件直接连接,只需通过临近节点的p2p网络的病毒式传播即可获得各组织的数字证书公钥;分布式高效fpga计算资源池可以根据客户验签的计算任务来动态增减。

通过云端集群中间件,将客户交易请求按如下一次请求两阶段无状态提交的流程(省略区块链共识、排序、分布式记账流程)并发处理,高效完成签名和验签的计算任务。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

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

根据本发明实施例的另一个方面,还提供了一种用于实施上述签名的验证方法的签名的验证装置。图9是根据本发明实施例的一种可选的签名的验证装置的示意图,如图9所示,该装置可以包括:

第一获取单元901,用于获取到目标账号的第一请求,其中,第一请求用于发起交易事件。

上述的云端集群为包括一个或多个节点(这些节点包括上述具体执行本申请方法的第四节点)的集群,可以为一套实现多网统一接入、外网网络请求转发、支持自动负载均衡的系统,如tgw(全称tencentgateway),上述的节点属于一个逻辑概念,不同类型的多个节点可以运行在同一个物理服务器上面,也可一个节点运行在一个物理服务器上。

上述的第一请求为客户端发出的请求,该客户端可安装在前述用户终端上,且该客户端上登录有目标账号或登录有与目标账号相关联的另一账号。

上述的交易事件可以理解一种需要在区块链中付出交易代币(如比特币)的事件,该事件具体可以为:证券交易、电子商务、文件存储等事件。

发送单元903,用于向区块链中的多个第一节点发送第二请求,其中,第二请求用于获取多个第一节点对交易事件的签名。

区块链中的节点是区块链的通信实体,该节点也属于一个逻辑概念,不同类型的多个节点可以运行在同一个物理服务器上面,也可一个节点运行在一个物理服务器上。上述第一节点即背书节点(英文名称为fabricendorser)或称背书者endorser,该节点承担利用背书策略(endorsementpolicy)背书的功能;背书策略是对交易进行背书的条件,即要得到背书成功的结论,须满足背书策略中给出的条件,一种典型的背书策略是指定某些节点进行背书,形成一个背书节点的集合,完成一个背书节点集合的签名,即联合签名。

第二获取单元905,用于获取多个第一节点响应第二请求所返回的对交易事件的签名。

验证单元907,用于通过多个第二节点验证多个第一节点对交易事件的签名。

需要说明的是,该实施例中的发起模块72可以用于执行本申请实施例中的步骤s202,该实施例中的开启模块74可以用于执行本申请实施例中的步骤s204,该实施例中的发送模块76可以用于执行本申请实施例中的步骤s206,该实施例中的第一关闭模块78可以用于执行本申请实施例中的步骤s208。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,获取到目标账号的第一请求,其中,第一请求用于发起交易事件;向区块链中的多个第一节点发送第二请求,其中,第二请求用于获取多个第一节点对交易事件的签名;获取多个第一节点响应第二请求所返回的对交易事件的签名;通过多个第二节点验证多个第一节点对交易事件的签名,由于第一请求的接收与签名验证是不同节点处理的,且通过多个第二节点来验证签名相较于使用一个节点来验证显然处理效率更高,从而可以解决相关技术中的验证背书签名的效率较低的技术问题,进而达到提高验证效率的技术效果。

在本申请的实施例中,是云端集群中的第四节点通过多个第二节点验证多个第一节点对交易事件的签名:1)第一请求的处理和验证的处理是分开进行的,通过多个第二节点来验证多个第一节点对交易事件的签名,而不用云端集群中的第四节点来验证,换言之,云端集群中的第四节点不用既处理第一请求,又进行验证,可以降低其业务压力;2)是通过多个第二节点验证多个第一节点对交易事件的签名,换言之,若存在多个第一请求,那么对应每个第一请求的签名可以由多个第二节点分别处理,即并行验证对应多个第一请求的签名验证,如每个第二节点处理对应一个第一请求的签名验证,而不用在一个节点上串行处理,可以提高对多个第一请求的响应速度;3)对应每个第一请求的签名,可以在多个第二节点上并行验证,由于一个交易事件需要得到多个第一节点的签名,而每个第一节点的签名均需要验证,因此,这多个第一节点的签名的验证可以在多个第二节点上并行执行,如一个第二节点至少验证一个第一节点的签名,从而可以提高对单个第一请求的相应速度;4)处理第一请求的对象是云端集群中的第四节点,而不是peer提交节点。

在一个可选的实施例中,验证单元还可用于:通过多个第二节点中的每个第二节点验证一个第一节点的签名是否正确,其中,任意两个第二节点验证的签名所属的第一节点不同,多个第二节点中的一个节点在第一时间段执行对交易事件的签名操作,多个第二节点中的另一个节点在第二时间段执行对交易事件的签名操作,第一时间段与第二时间段之间部分或全部重叠。

上述的验证单元可包括:发送模块,用于向对等网络中的第三节点发送第三请求,其中,第三节点用于将第三请求传送给对等网络中的多个第二节点,任意一个第二节点接收到的第三请求来源于第三节点或另一个第二节点;接收模块,可用于接收第三节点返回的多个第二节点的签名。

上述的发送模块还可用于:向资源池中的第三节点发送第三请求,其中,资源池中的所有资源节点采用对等网络相连接,第三节点为资源池的控制节点,第三节点用于从所有资源节点中选取出第二节点,第二节点为负载率小于所有资源节点中除第二节点以外的资源节点的负载率。

在又一个可选的实施例中,验证单元在通过多个第二节点验证多个第一节点对交易事件的签名之后,还可用于:在多个第二节点对多个第一节点的签名的验证均通过的情况下,确定交易事件为合法的交易;在至少一个第二节点对第一节点的签名的验证未通过的情况下,确定交易事件不为合法的交易。

可选地,本申请的装置还可包括:第三获取单元,用于在通过多个第二节点验证多个第一节点对交易事件的签名之前,从多个第一节点获取多个公钥,其中,多个公钥中的每个公钥用于第二节点验证一个第一节点的签名;传输单元,将多个公钥发送给对等网络中的第三节点,通过第三节点将多个公钥传送给对等网络中的其它节点,其中,对等网络中的其它节点为采用现场可编程门阵列处理器的节点,对等网络中的任一节点用于在接收到多个公钥的情况下,将接收到的多个公钥传送给与任一节点通讯连接的节点。

可选地,第一获取单元还可用于:通过云端集群中的第四节点获取目标账号的第一请求,其中,第四节点的负载率不大于云端集群中除第四节点以外的节点的负载率。

可选地,本申请的装置还可包括:资源管理单元,用于在通过云端集群中的第四节点获取目标账号的第一请求之前或之后,在云端集群中处于激活状态的所有节点的负载率达到第一阈值的情况下,将为云端集群配置的备用节点的状态由备用状态切换为激活状态,并加入到云端集群中;在云端集群中处于激活状态的所有节点的负载率小于第二阈值的情况下,将云端集群中未使用的节点的状态由激活状态切换为备用状态,并云端集群中删除,其中,第二阈值小于第一阈值。

可选地,本申请的装置还可包括:提示单元,用于在云端集群中处于激活状态的所有节点的负载率达到第一阈值的情况下,向发送第一请求的客户端发送提示信息,其中,提示信息用于提示云端集群中所有节点的负载率达到第一阈值。

本申请的技术方案支持集群部署,能够提升调度系统容灾和可用性,即实现了集群带域名容灾调度,可在集群间离线同步请求用户的请求次数、客户端的用户交易频率和请求总量配置,通过云端集群中间件替代众多提交节点,完美的通过集群接入控制客户端的用户交易请求频率和请求总量,并能根据客户端的请求动态增减集群中间件的负载均衡组件数量;

通过云端集群中间件将各组织的数字证书公钥分发到云端p2p网络的分布式高效fpga计算资源上,各分布式高效fpga计算资源无需都和云端集群中间件直接连接,只需通过临近节点的p2p网络的病毒式传播即可获得各组织的数字证书公钥;分布式高效fpga计算资源池可以根据客户验签的计算任务来动态增减。

通过云端集群中间件,将客户交易请求按如下一次请求两阶段无状态提交的流程(省略区块链共识、排序、分布式记账流程)并发处理,高效完成签名和验签的计算任务。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本发明实施例的另一个方面,还提供了一种用于实施上述签名的验证方法的系统,如图5所示。

云端集群,云端集群中的第四节点用于获取目标账号的第一请求,其中,第一请求用于发起交易事件。

区块链,区块链中的多个第一节点用于接收云端集群中的第四节点发送的第二请求,并返回对交易事件的签名给云端集群中的第四节点,其中,第二请求用于获取多个第一节点对交易事件的签名。

资源池,资源池中的多个第二节点用于验证多个第一节点对交易事件的签名。

具体的实施方案可以参见前述实施例。

根据本发明实施例的另一个方面,还提供了一种用于实施上述签名的验证方法的服务器或终端。

图10是根据本发明实施例的一种终端的结构框图,如图10所示,该终端可以包括:一个或多个(图10中仅示出一个)处理器1001、存储器1003、以及传输装置1005,如图10所示,该终端还可以包括输入输出设备1007。

其中,存储器1003可用于存储软件程序以及模块,如本发明实施例中的签名的验证方法和装置对应的程序指令/模块,处理器1001通过运行存储在存储器1003内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的签名的验证方法。存储器1003可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1003可进一步包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1005用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1005包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1005为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1003用于存储应用程序。

处理器1001可以通过传输装置1005调用存储器1003存储的应用程序,以执行下述步骤:

获取到目标账号的第一请求,其中,第一请求用于发起交易事件;

向区块链中的多个第一节点发送第二请求,其中,第二请求用于获取多个第一节点对交易事件的签名;

获取多个第一节点响应第二请求所返回的对交易事件的签名;

通过多个第二节点验证多个第一节点对交易事件的签名。

处理器1001还用于执行下述步骤:

从多个第一节点获取多个公钥,其中,多个公钥中的每个公钥用于第二节点验证一个第一节点的签名;

将多个公钥发送给对等网络中的第三节点,通过第三节点将多个公钥传送给对等网络中的其它节点,其中,对等网络中的其它节点为采用现场可编程门阵列处理器的节点,对等网络中的任一节点用于在接收到多个公钥的情况下,将接收到的多个公钥传送给与任一节点通讯连接的节点。

采用本发明实施例,获取到目标账号的第一请求,其中,第一请求用于发起交易事件;向区块链中的多个第一节点发送第二请求,其中,第二请求用于获取多个第一节点对交易事件的签名;获取多个第一节点响应第二请求所返回的对交易事件的签名;通过多个第二节点验证多个第一节点对交易事件的签名,由于第一请求的接收与签名验证是不同节点处理的,且通过多个第二节点来验证签名相较于使用一个节点来验证显然处理效率更高,从而可以解决相关技术中的验证背书签名的效率较低的技术问题,进而达到提高验证效率的技术效果。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图10所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图10其并不对上述电子装置的结构造成限定。例如,终端还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行签名的验证方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s12,获取到目标账号的第一请求,其中,第一请求用于发起交易事件;

s14,向区块链中的多个第一节点发送第二请求,其中,第二请求用于获取多个第一节点对交易事件的签名;

s16,获取多个第一节点响应第二请求所返回的对交易事件的签名;

s18,通过多个第二节点验证多个第一节点对交易事件的签名。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s22,从多个第一节点获取多个公钥,其中,多个公钥中的每个公钥用于第二节点验证一个第一节点的签名;

s24,将多个公钥发送给对等网络中的第三节点,通过第三节点将多个公钥传送给对等网络中的其它节点,其中,对等网络中的其它节点为采用现场可编程门阵列处理器的节点,对等网络中的任一节点用于在接收到多个公钥的情况下,将接收到的多个公钥传送给与任一节点通讯连接的节点。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

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

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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