一种基于区块链一体机的待过滤交易识别方法及装置
技术领域
本说明书实施例涉及信息技术领域,尤其涉及一种基于区块链一体机的待过滤交易识别方法及装置。
背景技术
区块链技术(也被称之为,分布式账本技术)是一种去中心化的分布式数据库技术,具有公开透明、不可篡改、可信任等特点,适用于诸多对数据可靠性具有高需求的应用场景中。
在区块链网络的实际运转过程中,某个节点可能会受理一些本节点实际不会执行的交易。本文将本节点实际不会执行的交易称为待过滤交易。
基于现有技术,需要一种比较高效的待过滤交易识别方法。
发明内容
为了解决现有的待过滤交易识别方法效率较低的问题,本说明书实施例提供一种基于区块链一体机的待过滤交易识别方法及装置,技术方案如下:
根据本说明书实施例的第1方面,提供一种基于区块链一体机的待过滤交易识别方法,所述区块链一体机包括中央处理器CPU与智能网卡,所述区块链一体机是区块链网络的任一节点,所述方法包括:
当所述区块链一体机通过所述智能网卡受理交易时,所述智能网卡对当前受理的交易进行识别,包括:
判断当前受理的交易是否满足预设过滤条件;
若确定当前受理的交易满足预设过滤条件,则将当前受理的交易确定为待过滤交易。
根据本说明书实施例的第2方面,提供一种基于区块链一体机的待过滤交易识别装置,应用于所述区块链一体机的智能网卡,所述区块链一体机还具有CPU,所述区块链一体机是区块链网络的任一节点,所述方法包括:
识别模块,当所述区块链一体机通过所述智能网卡受理交易时,对当前受理的交易进行识别,包括:判断当前受理的交易是否满足预设过滤条件;若确定当前受理的交易满足预设过滤条件,则将当前受理的交易确定为待过滤交易。
本说明书实施例所提供的技术方案,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡可以取代CPU进行待过滤交易识别。
通过本说明书实施例,可以实现如下技术效果:
1、由智能网卡专门负责识别待过滤交易,可以为CPU卸载这部分操作负担,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。
2、可以在网卡处就对待过滤交易进行识别与过滤,待过滤交易一般不会流经CPU,对待过滤交易的识别与过滤更加迅速。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种区块链一体机的机构示意图;
图2是本说明书实施例提供的一种区块链系统的结构示意图;
图3是本说明书实施例提供的一种基于区块链一体机的交易处理方法的流程示意图;
图4是本说明书实施例提供的一种基于区块链一体机的数据同步方法的流程示意图;
图5是本说明书实施例提供的一种基于区块链一体机的交易转发方法的流程示意图;
图6是本说明书实施例提供的一种基于区块链一体机的重放交易识别方法的流程示意图;
图7是本说明书实施例提供的一种基于区块链一体机的待过滤交易识别方法的流程示意图;
图8是本说明书实施例提供的一种基于区块链一体机的交易处理装置的结构示意图;
图9是本说明书实施例提供的一种基于区块链一体机的交易处理装置的结构示意图;
图10是本说明书实施例提供的一种基于区块链一体机的数据同步装置的结构示意图;
图11是本说明书实施例提供的一种基于区块链一体机的数据同步装置的结构示意图;
图12是本说明书实施例提供的一种基于区块链一体机的交易转发装置的结构示意图;
图13是本说明书实施例提供的一种基于区块链一体机的重放交易识别装置的结构示意图;
图14是本说明书实施例提供的一种基于区块链一体机的待过滤交易识别装置的结构示意图;
图15是用于配置本说明书实施例方法的一种计算机设备的结构示意图。
具体实施方式
在区块链技术的发展早期,用户基本上都是将自身持有的PC、笔记本电脑等加入区块链网络,成为区块链网络中的区块链节点。此时可以称之为区块链网络的1.0架构时代,不仅加入区块链网络的行为是用户的自主行为,而且用户还需要自主运维,譬如对自身加入区块链网络的PC等设备进行维护和配置等。随着区块链技术的不断发展,尤其是用户对于高性能、高可用基础设施的需求不断增强,区块链网络发展为基于云服务的2.0架构时代。在2.0架构时代,云服务商通过高性能服务器和云计算,向用户提供高性能、高可用的基础设施,以用于配置形成用户所需的区块链节点。而为了满足用户在区块链网络的私有化、安全性等方面的需求,需要对区块链网络实现进一步的架构升级,从而实现基于区块链一体机的3.0架构时代。
区块链一体机可以实现软硬一体化。发布方在发布区块链一体机的同时,不仅向用户提供该区块链一体机的硬件设备,并且该区块链一体机还集成了针对该硬件设备实现深度优化的软件配置,从而实现了上述的软硬一体化。
针对区块链一体机可以实现硬件优化。例如,区块链一体机上可以部署专用的智能合约处理芯片,譬如该智能合约处理芯片可以为FPGA(Field Programmable GateArray,现场可编程门阵列)芯片或其他类型的芯片,以提升针对智能合约的处理效率。智能合约处理芯片可以部署有硬件信任根密钥,譬如该硬件信任根密钥可以由发布方预先烧录至该智能合约处理芯片中,且发布方能够获知该硬件信任根密钥对应的公钥(比如该公钥被公开)。因此,智能合约处理芯片可以向发布方发送协商信息,并通过硬件信任根密钥对该协商信息进行签名,使得发布方可以基于相应的公钥进行验签;以及,在验签成功后,可以确保智能合约处理芯片和发布方分别基于上述协商信息协商得到相同的密钥。协商的密钥可以包括文件部署密钥,发布方可以基于该文件部署密钥将区块链节点所需的二进制镜像文件加密传输至智能合约处理芯片,而智能合约处理芯片可以基于该文件部署密钥实现解密并部署二进制镜像文件。协商的密钥可以包括业务秘密部署密钥,发布方可以基于该业务秘密部署密钥将区块链节点的节点私钥、业务根密钥等加密传输至智能合约处理芯片,而智能合约处理芯片可以基于该业务秘密部署密钥获取并部署节点私钥、业务根密钥等,以用于满足区块链场景下的隐私交易需求。例如,节点私钥对应于节点公钥,客户端可以通过节点公钥对区块链交易进行加密传输,而区块链节点可以通过节点私钥进行解密。而业务根密钥为对称密钥,可以用于对合约代码、合约状态的取值等业务数据进行加密存储。业务根密钥也可能并不直接被使用,智能合约处理芯片可以通过该业务根密钥的衍生密钥进行加解密,以降低业务根密钥的安全风险。通过对节点私钥、业务根密钥(或其衍生密钥)的可靠管理,并且确保数据除了被智能合约处理芯片进行处理的过程之外均处于加密状态,智能合约处理芯片实际上在区块链一体机上形成了硬件的可信执行环境(TrustedExecution Environment,简称TEE),确保交易、合约代码、合约状态等需要隐私保护的数据不会发生隐私泄露。
再例如,区块链一体机上可以部署智能网卡。智能网卡除了实现传统网卡的功能之外,还可以替代或协助区块链一体机的CPU完成部分功能,以实现对CPU的计算卸载。尤其是,可以将网络I/O密集型的操作由CPU转移至智能网卡执行,这样CPU本身就可以处理更多的计算密集型操作,比如交易执行、存储处理等。由于智能网卡相比于区块链一体机上的其他部件(如CPU)而言,无论是在物理层面上或是逻辑层面上都更靠近网络,使得智能网卡总是优先拿到网络中传输的数据,因而在不涉及或少量涉及存储访问的情况下,通过智能网卡来处理这些数据能够实现相对更高的处理效率、相对更小的延迟、相对更大的吞吐量,从而以相对较小的成本达到比较高的性能收益。例如,在共识算法中,除了网络状态发生变化、节点发生增删、共识配置发生变化等情况下,几乎不需要访问存储,因而可以由智能网卡来完成共识操作,而只需要将共识结果告知CPU即可、无需CPU直接参与共识过程,能够显著提升共识效率。类似地,由智能网卡转发交易、由新增区块链节点上的智能网卡实现区块同步等,同样可以达到类似的效果,此处不再赘述。此外,智能网卡在收到交易后,可以通过与历史交易进行比较,比如从交易的发送方信息、目的地址、时间戳、哈希值等字段进行比较,从而识别和过滤掉重放交易。智能网卡还可以对收到的交易进行内容解析,从而过滤掉非法交易或预定义的不想处理的交易等,作为对交换机实现的基于二层或三层的报文过滤的补充。
又例如,区块链一体机上可以部署密码加速卡,也可称为高速密码卡。密码加速卡可以实现全加密内存,并通过硬件加固以抵御侧信道攻击,还可以针对探针、激光等手段实现物理防护,具有极高的安全性。举例而言,区块链一体机上使用的密码加速卡可以具有国密二级资质、国密三级资质或其他资质。当部署有密码加速卡时,上文所述的硬件信任根密钥可以被维护于该密码加速卡中,并且密码加速卡可以基于该硬件信任根密钥实现签名操作,并替代或协助智能合约处理芯片完成上文所述的密钥协商等操作;类似地,密码加速卡可以用于维护公钥,使得密码加速卡可以基于维护的公钥实现签名的验证操作。总之,可以将区块链一体机上与密钥管理、加解密、签名验签等相关的至少一部分操作交由密码加速卡,从而既可以获得极高的安全性,又可以对区块链一体机的CPU或上述的智能合约处理芯片等实现性能卸载,以提升处理效率。
针对区块链一体机可以实现软件优化。例如,区块链一体机可以内置证书授权服务,可以实现自动化的证书签发与节点身份认证,可以自动建链和区块链节点的自动加入,从而实现区块链一体机的即插即用。那么,用户可以快速实现区块链一体机的部署。除了能够在多台区块链一体机之间快捷地建立私有型的区块链网络,区块链一体机可以集成标准化的云上服务接口,使得区块链一体机可以自动对接云上服务,从而实现区块链一体机与云端部署的区块链节点之间混合部署,构建混合型的区块链网络。区块链一体机还可以集成标准化的跨链服务接口,使得区块链一体机可以基于标准化的跨链协议或标准化的跨链服务实现跨链服务,极大地扩展了区块链一体机的应用场景,满足用户的跨链需求,比如实现不同区块链网络之间的跨链数据交互,再比如实现区块链网络与链下计算节点之间的跨链数据交互(譬如由链下计算节点为区块链节点分担计算任务等)等。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1是本说明书实施例提供的一种区块链一体机的机构示意图。如图1所示,区块链一体机包括中央处理器(central processing unit,CPU)与智能网卡。智能网卡区别于传统的仅支持网络通信的网卡,是内置有处理器或微处理器(如ARM处理器)的网卡,因而具有一定的数据计算与处理能力。当然,可以理解区块链一体机作为区块链网络的节点,当然也会包括存储器,存储器在图1中未示出。存储器用于存储区块链本身,或者对于以太坊区块链而言,存储器还用于存储状态数据库。
此外,区块链一体机可以进一步包括其他硬件,如智能合约处理芯片、密码加速卡等。
图2是本说明书实施例提供的一种区块链系统的结构示意图。区块链系统包括区块链网络。在区块链网络中,至少一个节点可以为区块链一体机。也就是说,区块链一体机作为节点,可以与其他非区块链一体机的节点(普通节点)进行交互,也可以与其他同样为区块链一体机的节点进行交互。本文为了描述的方便,针对单个区块链一体机进行方案说明。
图3是本说明书实施例提供的一种基于区块链一体机的交易处理方法的流程示意图,包括如下步骤:
S300:当区块链一体机通过智能网卡受理交易时,智能网卡将受理的交易写入网卡缓存。
众所周知,区块链网络处理交易的过程通常包括三个阶段,即交易受理阶段、共识阶段、交易执行与上链阶段。此处先对上述三个阶段进行简单介绍。
在交易受理阶段,区块链网络中每个节点对交易进行受理并缓存,为后续的共识与交易执行做准备。具体而言,某个客户端构建交易并提交给区块链网络中的任一节点,该节点直接受理该交易,将该交易缓存,并将交易广播给全网,使得其他节点间接受理该交易。步骤S300中所谓的区块链一体机通过智能网卡受理交易,可以是指区块链一体机直接受理交易,也可以指区块链一体机间接受理交易。总之,不论是直接受理还是间接受理,重点在于,区块链网络中的大部分节点都会缓存相同的交易。可以理解,在实际应用中,少部分节点可能出现宕机或者网络问题,导致接收不到交易,但这并不会对分布式区块链网络的运转产生影响。
在共识阶段,区块链网络的各节点基于共识算法(如拜占庭容错算法)进行交互,以便达到消息一致性,即对本次需要执行已受理的哪些交易达成共识。可以理解,在实际应用中,不一定每个节点都会参与共识,然而,由于共识算法具有容错性,因此,并不会影响共识结果。
在交易执行与上链阶段,每个节点会根据共识结果从缓存中捞取交易进行执行,执行后将捞取的交易打包成区块写入区块链(即交易上链)。
上述介绍中的缓存,通常是指节点的CPU的缓存。而在本说明书实施例中,由于为节点配置了智能网卡,因此,缓存有网卡缓存与CPU缓存之分。在交易受理阶段,智能网卡会将交易写入网卡缓存,以便后续基于网卡缓存中的交易进行区块链共识。
S302:在区块链一体机参与区块链共识的过程中,智能网卡基于网卡缓存中的交易,与区块链网络的其他节点进行共识交互。
在共识阶段,由智能网卡取代CPU实际参与共识,与其他节点进行共识交互。共识过程中产生的网络流量会直接进入智能网卡,由智能网卡基于共识算法进行处理,并将处理结果直接反馈出去,网络流量不会流经CPU。
S304:智能网卡根据本次共识结果,确定待执行交易列表并发送给CPU。
众所周知,区块链网络会根据一定的共识触发条件,进行一次次共识。例如,共识触发条件可以是每10分钟进行一次共识,这意味着区块链网络每10分钟会确定一批待执行的交易,并将这批待执行的交易打包成区块上链。所谓共识结果,实际上是指一次区块链共识所确定的待执行交易有哪些。
此处需要说明的是,通常而言,出于效率考虑,针对区块链存储(区块链以及状态数据库)的访问操作需要由CPU执行,而在实际应用中,通常采用实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT),而PBFT算法过程中涉及的换主操作并不需要访问区块链存储(区块链以及状态数据库),因此,CPU不实际参与共识过程也不会对存储访问的效率产生不利影响。
步骤S304中所述的待执行交易列表具体可以是由本次区块链共识确定的待执行交易本身组成的列表,也可以是本次区块链共识确定的待执行交易的交易标识(如交易哈希)组成的列表。
在待执行交易列表中包括交易哈希的情况下,智能网卡还需要将待执行交易也发送给CPU。在实际应用中,智能网卡可以在交易受理阶段,在将受理的交易写入网卡缓存的同时,也将受理的交易发送给CPU,CPU将接收到的交易写入CPU缓存。
S306:CPU基于待执行交易列表执行交易并完成交易上链。
在本说明书实施例中,在所述区块链一体机参与区块链共识的过程中,智能网卡若接收到共识配置修改信息则将共识配置修改信息发送给所述CPU。CPU可以基于所述共识配置修改信息,修改区块链一体机本地存储的共识配置。
由于对共识配置进行修改的操作(如节点增删,又如,一次共识需要确定的一个批次的待执行交易的容量大小,即batch size)需要访问区块链存储,因此,出于存储访问效率的考虑,此操作需要由CPU来执行。在正常情况下,如果共识过程中不涉及共识配置的修改,则CPU并不会参与共识。
此外,CPU基于待执行交易列表执行交易所产生的执行结果会返回给智能网卡,这些执行结果是智能网卡参与下一次共识所需要参考信息。举例来说,CPU执行某个账户A发起的交易,消耗了账户A的100 GAS,导致账户A仅剩余50 GAS,那么,这意味着账户A发起的其他交易无法提供足够的GAS,CPU将这一执行结果发送给智能网卡,智能网卡在下一次共识中就不会倾向于将账户A发起的其他交易确定为待执行交易。
通过图3所示的方法,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡取代CPU来代表区块链一体机实际参与区块链共识,并根据本次共识结果,将待执行交易列表发送给CPU进行交易执行与交易上链。
通过本说明书实施例,将区块链共识这种需要频繁与其他节点进行网络交互的操作由CPU转移到智能网卡,可以实现如下技术效果:
1、由智能网卡专门负责区块链共识,CPU专注于交易执行与交易上链,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。
2、区块链共识过程中的网络流量不必流经CPU,而是由智能网卡接收后直接进行处理并反馈,CPU不参与共识过程,使得共识过程中区块链一体机的反馈延时降低。
图4是本说明书实施例提供的一种基于区块链一体机的数据同步方法的流程示意图,包括如下步骤:
S400:智能网卡向其他节点查询是否存在待同步的区块数据。
一般而言,当区块链网络中有新加入的节点时,该节点需要从其他节点拉取区块数据进行同步。此外,其他情况下,节点有时也需要从其他节点拉取区块数据进行同步,不再一一赘述。
节点为了确定当前是否需要进行数据同步,通常需要频繁向其他节点查询是否存在待同步的区块数据,这会涉及频繁的I/O操作。在本说明书实施例中,由智能网卡负责向其他节点查询是否存在待同步的区块数据,从而可以将CPU的这部分操作负担卸载,提升CPU的处理效率。
S402:智能网卡若确定存在待同步的区块数据,则从其他节点拉取待同步的区块数据。
而在确定其他节点存在待同步的区块数据之后,节点需要从其他节点拉取待同步的区块数据,这意味着节点需要维持一个从网络拉取数据的进程,耗费时间等待数据拉取完成。这部分操作交由智能网卡执行,也可以为CPU卸载操作负担,提升CPU操作效率。
S404: 智能网卡将待同步的区块数据提供给所述CPU。
具体而言,智能网卡可以将待同步的区块数据直接发送给CPU,也可以将待同步的区块数据写入与所述CPU之间的公共缓存,CPU从公共缓存中捞取待同步的区块数据。例如,CPU可以在空闲时,才从公共缓存中捞取待同步的区块数据进行数据同步。
S406:CPU基于待同步的区块数据完成数据同步。
智能网卡获取到待同步的区块数据后,将待同步的区块数据发送给CPU,此时,CPU仅需要将待同步的区块数据写入节点本地区块链即可,不会耗费过多资源与过多时间。
通过图4所示的方法,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡可以取代CPU来代表区块链一体机实际参与区块链共识,并根据本次共识结果,将待执行交易列表发送给CPU进行交易执行与交易上链。
通过本说明书实施例,将区块链共识这种需要频繁与其他节点进行网络交互的操作由CPU转移到智能网卡,可以实现如下技术效果:
1、由智能网卡专门负责区块链共识,CPU专注于交易执行与交易上链,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。
2、区块链共识过程中的网络流量不必流经CPU,而是由智能网卡接收后直接进行处理并反馈,CPU不参与共识过程,使得共识过程中区块链一体机的反馈延时降低。
图5是本说明书实施例提供的一种基于区块链一体机的交易转发方法的流程示意图,包括如下步骤:
S500:当所述区块链一体机通过所述智能网卡受理到交易时,所述智能网卡确定待转发的其他节点。
S502: 所述智能网卡将所述交易转发给待转发的其他节点。
在交易受理阶段,智能网卡除了将受理的交易转发出去之外,还可以将受理的交易写入网卡缓存,以便实现图3所示的方法。
通常,智能网卡在转发以及缓存受理的交易之前,可以对交易进行合法性验证,合法性验证通常涉及基于区块链协议需要验证的一些合法性事项(如对发起交易的账户的签名验证)。
如果合法性校验不通过,则智能网卡一般不会将交易转发出去。
智能网卡可以将未通过合法性校验的交易抛弃。此外,需要说明的是,在实际应用中,对于未通过合法性校验的交易,智能网卡也可以将其保留,写入网卡缓存以及发送给CPU。这是因为,某个节点对交易进行合法性校验未通过,不一定说明交易是不合法的,有可能是交易在网络传输过程中丢失了部分数据,或者节点在执行校验时出错。而对于区块链网络这种分布式数据库来说,少部分节点得到错误的交易校验结果不应影响交易的执行,因此,节点即便对交易进行校验不通过,也可以将交易保留,后续在共识阶段,该交易可能会被全网共识为待执行的交易。
另外,在本说明书实施例中,智能网卡如果对交易进行合法性校验通过,则可以对交易进行标记。进一步地,智能网卡可以将标记后的交易发送给CPU,而通常而言,CPU在将交易写入CPU缓存之前,会判断交易是否通过合法性校验。如果交易具有标记,则说明智能网卡已经校验并通过了,CPU就不必再次进行校验,如果交易不具有标记,则说明智能网卡校验未通过,CPU可以选择记录该交易未通过校验,也可以选择重新对该交易进行校验。
通过图5所述的方法,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡可以取代CPU在交易受理阶段进行交易转发。
通过本说明书实施例,将交易转发这种需要频繁与其他节点进行网络交互的操作由CPU转移到智能网卡,可以实现如下技术效果:
1、由智能网卡专门负责交易转发,为CPU卸载这部分操作负担,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。
2、交易转发过程中涉及的网络流量不必流经CPU,而是由智能网卡接收后直接进行处理并反馈,使得区块链一体机的反馈延时降低。
图6是本说明书实施例提供的一种基于区块链一体机的重放交易识别方法的流程示意图,包括如下步骤:
S600:当所述区块链一体机通过所述智能网卡受理交易时,智能网卡将当前受理的交易与网卡缓存中的历史受理交易进行比对。
S602: 若比对结果表征存在与当前受理的交易相同的历史受理交易,则智能网卡将当前受理的交易确定为重放交易。
在本说明书实施例中,智能网卡可以将当前受理的交易与全部历史受理交易进行一一比对,以判断当前受理的交易是否为重放交易。
此外,考虑到有些过于久远的历史受理交易不太可能被重放,因此,可以将当前受理的交易与近期的历史受理交易进行比对即可。
具体而言,所述智能网卡可以将受理的每个交易写入网卡缓存中的识别交易池,以及,从所述识别交易池中取出受理时长大于指定时长的历史受理交易。其中,所述受理时长为,受理时间点与当前时间点之间的时长。智能网卡可以将当前受理的交易与所述识别交易池中的历史受理交易进行比对。
进一步地,在实际应用中,交易往往具有有效时长,如果当前距离交易受理时间过久,交易就会失效。对于过于久远的历史受理交易,即便重放也没有意义。因此,上述的指定时长具体可以设定为不小于交易的有效时长。
在本说明书实施例中,对于识别出的重放交易,智能网卡可以将其归入重放交易集合。重放交易集合不参与区块链共识,或者,所述重放交易集合不发送给所述CPU。如此,可以实现对重放交易的过滤。此外,智能网卡也可以将重放交易抛弃。
通过图6所示的方法,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡可以取代CPU进行重放交易识别。
通过本说明书实施例,可以实现如下技术效果:
1、由智能网卡专门负责识别重放交易,可以为CPU卸载这部分操作负担,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。
2、可以在网卡处就对重放交易进行识别与过滤,重放交易一般不会流经CPU,对重放交易的识别与过滤更加迅速。
图7是本说明书实施例提供的一种基于区块链一体机的待过滤交易识别方法的流程示意图,包括如下步骤:
S700:当所述区块链一体机通过所述智能网卡受理交易时,所述智能网卡判断当前受理的交易是否满足预设过滤条件;
S702:若智能网卡确定当前受理的交易满足预设过滤条件,则智能网卡将当前受理的交易确定为待过滤交易。
对于识别出的待过滤交易,智能网卡可以将其抛弃,或者将其保留,归入待过滤交易集合。待过滤交易集合不参与区块链共识,或者,所述待过滤交易集合不发送给所述CPU。如此,可以实现对待过滤交易的过滤。
此外,对于待过滤交易涉及的情况,主要有以下两种:
1、交易用于实现的业务操作对应的业务操作类型不是本节点(区块链一体机)负责的业务操作类型,不属于本节点对应的业务操作类型集合。例如,本节点的交易处理能力有限,会选择性只执行一些特定业务操作类型的交易。又如,有些业务操作类型写入了本节点的黑名单,本节点拒绝执行这些业务操作类型的交易。
此外需要说明的是,对于区块链网络这种分布式架构,少部分节点不执行一些交易并不会影响整个区块链网络的世界状态,世界状态依然会被同步到每个节点。
2、交易用于实现的业务操作对应的业务操作类型是本节点负责的业务操作类型,属于本节点对应的业务操作类型集合,但是,交易用于实现的具体业务操作内容是不合法的,不属于该业务操作类型对应的合法操作内容。例如,交易用于实现查询操作,但是该查询操作具体是对某个参数值进行无意义地反复查询,这种交易实际上属于针对区块链网络的攻击性交易,不合法。又如,交易用于实现转账操作,但是转帐方账户的余额不足,该交易也不合法。又如,交易的发起方账户没有操作权限,该交易也不合法。
此外,通过图7所示的方法,可以为智能网卡配置比较复杂的过滤条件,例如,可以配置如下过滤条件:
(某个时间段内) and (账号A发起) and (发往帐号B or C操作)。
通过图7所示的方法,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡可以取代CPU进行待过滤交易识别。
通过本说明书实施例,可以实现如下技术效果:
1、由智能网卡专门负责识别待过滤交易,可以为CPU卸载这部分操作负担,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。
2、可以在网卡处就对待过滤交易进行识别与过滤,待过滤交易一般不会流经CPU,对待过滤交易的识别与过滤更加迅速。
图8是本说明书实施例提供的一种基于区块链一体机的交易处理装置的结构示意图,应用于区块链一体机的智能网卡,所述区块链一体还具有CPU,所述区块链一体机是区块链网络的任一节点,所述方法包括:
缓存模块801,当所述区块链一体机通过所述智能网卡受理交易时,将受理的交易写入网卡缓存;
共识交互模块802,在所述区块链一体机参与区块链共识的过程中,基于所述网卡缓存中的交易,与所述区块链网络的其他节点进行共识交互;
发送模块803,根据本次共识结果,确定待执行交易列表并发送给所述CPU。
图9是本说明书实施例提供的一种基于区块链一体机的交易处理装置的结构示意图,应用于区块链一体机的CPU,所述区块链一体还具有智能网卡,所述区块链一体机是区块链网络的任一节点,所述装置包括:
执行上链模块901,基于所述智能网卡发送的待执行交易列表执行交易并完成交易上链。
图10是本说明书实施例提供的一种基于区块链一体机的数据同步装置的结构示意图,应用于所述区块链一体的智能网卡,所述区块链一体机还具有CPU,所述区块链一体机是区块链网络的任一节点,所述装置包括:
查询模块1001,向其他节点查询是否存在待同步的区块数据;
拉取模块1002,若确定存在待同步的区块数据,则从其他节点拉取待同步的区块数据;
提供模块1003,将待同步的区块数据提供给所述CPU。
图11是本说明书实施例提供的一种基于区块链一体机的数据同步装置的结构示意图,应用于所述区块链一体的CPU,所述区块链一体机还具有智能网卡,所述区块链一体机是区块链网络的任一节点,所述装置包括:
同步模块1101,基于待同步的区块数据完成数据同步。
图12是本说明书实施例提供的一种基于区块链一体机的交易转发装置的结构示意图,应用于区块链一体机的智能网卡,所述区块链一体还具有CPU,所述区块链一体机是区块链网络的任一节点,所述装置包括:
确定模块1201,当所述区块链一体机通过所述智能网卡受理到交易时,确定待转发的其他节点;
转发模块1202,将所述交易转发给待转发的其他节点。
图13是本说明书实施例提供的一种基于区块链一体机的重放交易识别装置的结构示意图,应用于所述区块链一体机的智能网卡,所述区块链一体机还具有CPU,所述区块链一体机是区块链网络的任一节点,所述装置包括:
识别模块1301,当所述区块链一体机通过所述智能网卡受理交易时,对当前受理的交易进行识别,包括:将当前受理的交易与网卡缓存中的历史受理交易进行比对;若比对结果表征存在与当前受理的交易相同的历史受理交易,则将当前受理的交易确定为重放交易。
图14是本说明书实施例提供的一种基于区块链一体机的待过滤交易识别装置的结构示意图,应用于所述区块链一体机的智能网卡,所述区块链一体机还具有CPU,所述区块链一体机是区块链网络的任一节点,所述方法包括:
识别模块1401,当所述区块链一体机通过所述智能网卡受理交易时,对当前受理的交易进行识别,包括:判断当前受理的交易是否满足预设过滤条件;若确定当前受理的交易满足预设过滤条件,则将当前受理的交易确定为待过滤交易。
本说明书实施例还提供一种计算机设备,其至少包括存储器、CPU、智能网卡,以及存储在存储器上并可在智能网卡上运行的计算机程序,其中,智能网卡执行所述程序时实现本说明书中各方法的功能。
图15示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1510、存储器1520、输入/输出接口1530、通信接口1540和总线1550。其中处理器1510、存储器1520、输入/输出接口1530和通信接口1540通过总线1550实现彼此之间在设备内部的通信连接。
处理器1510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1520可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1520中,并由处理器1510来调用执行。
输入/输出接口1530用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1540用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1550包括一通路,在设备的各个组件(例如处理器1510、存储器1520、输入/输出接口1530和通信接口1540)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1510、存储器1520、输入/输出接口1530、通信接口1540以及总线1550,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被智能网卡执行时实现本说明书中各方法的功能。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务设备,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。