区块链交易信息处理方法及区块链节点与流程

文档序号:13949966阅读:307来源:国知局
区块链交易信息处理方法及区块链节点与流程

本发明实施例涉及通信技术领域,尤其涉及一种区块链交易信息处理方法及区块链节点。



背景技术:

区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。

现有技术中,区块链网络中存在如下两种方式来发布交易信息:第一种方式是每个节点都将自己有关的交易信息,通过广播的方式广播到整个区块链网络中,那么每个节点都将收到整个区块链网络中所有交易的数据;第二种方式是每个节点都将自己有关的交易信息发布给中央节点,由中央节点在固定的周期时间进行统一的交易发布。

对于第一种方式而言,如果区块链网络中的交易频繁,就会导致区块链网络的传输压力较大,对于区块链网络中的单个节点而言,需要存储整个区块链网络的交易信息,因此需要单个节点具备较大的存储空间。对于第二种方式而言,一旦中央节点发生故障,则整个区块链网络就会发生故障。



技术实现要素:

本发明实施例提供一种区块链交易信息处理方法及区块链节点,以减轻区块链网络的传输压力、降低单个节点的存储空间、提高区块链网络的安全性。

本发明实施例的一个方面是提供一种区块链交易信息处理方法,包括:

区块链节点将与其相关的交易信息分成多个片段;

所述区块链节点将多个片段中的每个片段发送给所述区块链节点的至少一个目标相邻节点;

所述区块链节点将与所述交易信息相关的交易方信息以及至少一个目标相邻节点中各相邻节点的地址信息发布到区块链网络中。

本发明实施例的另一个方面是提供一种区块链节点,包括:

分片模块,用于将与区块链节点相关的交易信息分成多个片段;

发送模块,用于将多个片段中的每个片段发送给所述区块链节点的至少一个目标相邻节点;以及将与所述交易信息相关的交易方信息以及至少一个目标相邻节点中各相邻节点的地址信息发布到区块链网络中。

本发明实施例提供的区块链交易信息处理方法及区块链节点,通过将交易信息相关的交易方信息以及存储有该交易信息的片段的区块链节点的地址信息发布到区块链网络中,而不是将交易信息本身的内容发布到区块链网络中,不仅可以减轻区块链网络的传输压力,对于区块链网络中的单个节点而言,还可以降低单个节点的存储空间,另外,将同一交易信息的多个分片中的每个分片存储在多个区块链节点上,避免了某一区块链节点恶意修改分片内容而造成的故障,提高了区块链网络的安全性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1为本发明实施例提供的通信系统的示意图;

图2为本发明实施例提供的区块链交易信息处理方法流程图;

图3为本发明另一实施例提供的区块链交易信息处理方法流程图;

图4为本发明实施例提供的区块链节点的结构图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链的设计是一种保护措施,比如(应用于)高容错的分布式计算系统。区块链使混合一致性成为可能。这使区块链适合记录事件、标题、医疗记录和其他需要收录数据的活动、身份识别管理,交易流程管理和出处证明管理。区块链对于金融脱媒有巨大的潜能,对于引领全球贸易有着巨大的影响。

目前区块链的节点主要具有以下几个方面的功能:p2p网络功能,广播消息的发送和接收,记账权计算,签名和加解密,账本存储等。而这些功能都是为了区块链网络中的交易而存在的。

现有技术中,区块链网络中存在如下两种方式来发布交易信息:第一种方式是每个节点都将自己有关的交易信息,通过广播的方式广播到整个区块链网络中,那么每个节点都将收到整个区块链网络中所有交易的数据;第二种方式是每个节点都将自己有关的交易信息发布给中央节点,由中央节点在固定的周期时间进行统一的交易发布。

对于第一种方式而言,如果区块链网络中的交易频繁,就会导致区块链网络的传输压力较大,对于区块链网络中的单个节点而言,需要存储整个区块链网络的交易信息,因此需要单个节点具备较大的存储空间。对于第二种方式而言,一旦中央节点发生故障,则整个区块链网络就会发生故障。为了解决该问题,本实施例提供了一种区块链交易信息处理方法,下面结合具体的实施例对该区块链交易信息处理方法进行介绍。

本发明提供的区块链交易信息处理方法,可以适用于图1所示的通信系统。如图1所示,该通信系统包括:区块链网络10以及区块链节点11-区块链节点17,此处只是示意性说明,并不限定区块链节点的具体个数。区块链节点具体可以是智能手机、平板电脑、膝上型电脑等及其组合。

本发明提供的区块链交易信息处理方法,旨在解决现有技术的如上技术问题。

下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图2为本发明实施例提供的区块链交易信息处理方法流程图。本发明实施例针对现有技术的如上技术问题,提供了区块链交易信息处理方法,该方法具体步骤如下:

步骤201、区块链节点将与其相关的交易信息分成多个片段。

如图1所示,区块链节点11-区块链节点17中的任一区块链节点可以和其他的区块链节点进行网络交易,例如,区块链节点14可以和其他的区块链节点例如区块链节点11通过区块链网络10进行网络交易,在交易过程中,区块链节点14和/或区块链节点11可能产生交易信息,区块链节点14和/或区块链节点11需要将该交易信息发布到区块链网络10中,在本实施例中,区块链节点14和/或区块链节点11并不是将该交易信息本身发布到区块链网络10中。以区块链节点14为例,当区块链节点14需要将该交易信息发布到区块链网络10中时,区块链节点14先将需要发布到区块链网络10中的交易信息分成多个片段,例如n个片段。

可选的,所述片段的个数是根据所述交易信息的大小以及所述区块链节点的相邻节点的总数确定的。也就是说,n是区块链节点14根据该交易信息的大小以及区块链节点14的相邻节点的总数确定的。如图1所示,假设区块链节点14的相邻节点可以包括:区块链节点12、区块链节点13、区块链节点15、区块链节点16。也就是说,区块链节点14的相邻节点的个数是4。具体的,区块链节点14采用第一预设算法,根据该交易信息的大小以及区块链节点14的相邻节点的总数4计算出需要将该交易信息分成的片段的个数n。

步骤202、所述区块链节点将多个片段中的每个片段发送给所述区块链节点的至少一个目标相邻节点。

如图1所示,区块链节点12、区块链节点13、区块链节点15、区块链节点16是区块链节点14的相邻节点,区块链节点14可以将n个片段中的每一个片段发送给区块链节点12、区块链节点13、区块链节点15、区块链节点16。但是,区块链节点12、区块链节点13、区块链节点15、区块链节点16中可能存在恶意节点、非法节点或故障节点,为了避免恶意节点或非法节点对分片后的片段内容进行恶意修改,或者,为了避免故障节点无法正常处理片后的片段,区块链节点14可以从区块链节点12、区块链节点13、区块链节点15、区块链节点16中选取可信度较高的区块链节点,将n个片段中的每一个片段发送给可信度较高的区块链节点,而不是发送给所有的相邻节点。

本实施例并不对选取的具体方法进行限制。假设区块链节点14从区块链节点12、区块链节点13、区块链节点15、区块链节点16中选取出的可信度较高的区块链节点是区块链节点12和区块链节点13,也就是说,区块链节点14选取出的至少一个目标相邻节点的个数为2。并将n个片段中的每一个片段发送给区块链节点12和区块链节点13。

可选的,所述至少一个目标相邻节点的个数是根据所述区块链节点的相邻节点的总数以及所述片段的个数确定的。假设区块链节点14选取出的至少一个目标相邻节点的个数为m,区块链节点14的相邻节点的总数为w,则区块链节点14可以采用第二预设算法,根据区块链节点14的相邻节点的总数w和需要将该交易信息分成的片段的个数n,确定出至少一个目标相邻节点的个数m。也就是说,区块链节点14从其相邻的所有w个区块链节点中选出m个目标相邻节点。并将n个片段中的每一个片段发送给该m个目标相邻节点,而不是所有的w个区块链节点。

步骤203、所述区块链节点将与所述交易信息相关的交易方信息以及至少一个目标相邻节点中各相邻节点的地址信息发布到区块链网络中。

如图1所示,假设区块链节点14和区块链节点11通过区块链网络10进行网络交易,在交易过程中,区块链节点14和/或区块链节点11可能产生交易信息,可以理解的是,该交易信息的交易方为区块链节点14和区块链节点11,交易方信息可以是区块链节点14的标识信息和区块链节点11的标识信息。

在本实施例中,当区块链节点14从其相邻的所有w个区块链节点中选出m个目标相邻节点之后,区块链节点14将该交易信息的交易方信息即区块链节点14的标识信息和区块链节点11的标识信息,以及区块链节点14的至少一个目标相邻节点中各相邻节点的地址信息即区块链节点12的地址信息和区块链节点13的地址信息发布到区块链网络10中。具体的,区块链节点14将区块链节点14的标识信息和区块链节点11的标识信息,以及区块链节点12的地址信息和区块链节点13的地址信息广播到区块链网络10中。区块链网络10中的其他区块链节点将接收到区块链节点14发送的广播消息,该广播消息中包括区块链节点14的标识信息和区块链节点11的标识信息,以及区块链节点12的地址信息和区块链节点13的地址信息。该广播消息表示的意思是:区块链节点14和区块链节点11进行交易时产生的交易信息的片段存储在区块链节点12和区块链节点13中,区块链网络10中的其他区块链节点可以根据区块链节点12的地址信息和区块链节点13的地址信息从区块链节点12和区块链节点13中获取区块链节点14和区块链节点11进行交易时产生的交易信息的片段。

所述区块链网络中的其他区块链节点存储有与所述交易信息相关的交易方信息以及至少一个目标相邻节点中各相邻节点的地址信息。

区块链节点14将区块链节点14的标识信息和区块链节点11的标识信息,以及区块链节点12的地址信息和区块链节点13的地址信息广播到区块链网络10之后,区块链网络10中的其他区块链节点按照现有技术中的抢夺记账权的方式进行记账权的抢夺,抢夺到记账权的区块链节点将区块链节点14广播的消息存储在区块中,区块链网络10中的所有区块链节点需要将区块链网络10中的所有区块存储在本地,也就是说,现有技术中,区块链网络10中的所有区块存储的是交易信息本身的内容,在本实施例中,区块链网络10中的所有区块存储的是与交易信息相关的交易方信息以及存储有该交易信息的片段的区块链节点的地址信息,可选的,存储有该交易信息的片段的区块链节点的地址信息具体可以是地址索引表信息。

例如,区块链网络10中的其他区块链节点将区块链节点14广播的区块链节点14的标识信息和区块链节点11的标识信息,以及区块链节点12的地址信息和区块链节点13的地址信息存储在本地。

可以理解的是,在本实施例中,区块链节点14不仅可以和区块链节点11进行网络交易,还可以和其他的区块链节点进行网络交易,当区块链节点14和其他的区块链节点进行网络交易时,区块链节点14将交易方信息和存储有交易信息的片段的区块链节点的地址信息发布到区块链网络中。另外,除了区块链节点14之外的其他区块链节点也可以将与其相关的网络交易的交易方信息和存储有交易信息的片段的区块链节点的地址信息发布到区块链网络中。

本发明实施例通过将交易信息相关的交易方信息以及存储有该交易信息的片段的区块链节点的地址信息发布到区块链网络中,而不是将交易信息本身的内容发布到区块链网络中,不仅可以减轻区块链网络的传输压力,对于区块链网络中的单个节点而言,还可以降低单个节点的存储空间,另外,将同一交易信息的多个分片中的每个分片存储在多个区块链节点上,避免了某一区块链节点恶意修改分片内容而造成的故障,提高了区块链网络的安全性。

图3为本发明另一实施例提供的区块链交易信息处理方法流程图。在上述实施例的基础上,本实施例提供的区块链交易信息处理方法包括如下步骤:

步骤301、区块链节点将与其相关的交易信息分成多个片段。

步骤302、所述区块链节点将多个片段中的每个片段发送给所述区块链节点的至少一个目标相邻节点。

步骤303、所述区块链节点将与所述交易信息相关的交易方信息以及至少一个目标相邻节点中各相邻节点的地址信息发布到区块链网络中。

步骤301-步骤303与步骤201-步骤203的实现原理和方式一致,此处不再赘述。

步骤304、所述区块链节点向所述其他区块链节点发送交易请求,以使所述其他区块链节点查询到所述区块链节点的至少一个目标相邻节点的地址信息,根据所述至少一个目标相邻节点的地址信息,从至少一个目标相邻节点中获取与所述区块链节点相关的交易信息的片段,并根据与所述区块链节点相关的交易信息的片段,确定是否与所述区块链节点进行交易。

例如,区块链节点14需要和区块链网络10中的区块链节点17进行交易,例如,区块链节点17拥有区块链节点14想购买的产品,区块链节点14需要向区块链节点17发送交易请求,该交易请求中包括产品的金额信息,假设区块链节点14想购买的产品的价格是10元,则该交易请求具体可以是:区块链节点14向区块链节点17支付10元。区块链节点17接收到区块链节点14发送的该交易请求后,确认区块链节点14是否有能力支付10元。可选的,区块链节点17查询本地存储的区块链网络10中的区块信息,从区块信息中查询获取到与区块链节点14相关的所有交易的地址索引表信息,该地址索引表信息可以包括多个地址信息,多个地址信息可以是多个区块链节点的地址信息,该多个区块链节点可以是存储有与区块链节点14相关的所有交易信息的片段的区块链节点。假设与区块链节点14相关的所有交易信息的片段均存储在区块链节点12和区块链节点13,则该地址索引表信息包括区块链节点12的地址信息和区块链节点13的地址信息。

在其他实施例中,与区块链节点14相关的所有交易信息的片段可以不限于存储在区块链节点12和区块链节点13,也可以存储在区块链节点12、区块链节点13、区块链节点15、区块链节点16,在这种情况下,该地址索引表信息包括区块链节点12的地址信息、区块链节点13的地址信息、区块链节点15的地址信息、区块链节点16的地址信息。

当区块链节点17查询获取到与区块链节点14相关的所有交易的地址索引表信息之后,按照该地址索引表信息中的地址信息确定出与区块链节点14有关的相邻节点,例如区块链节点12和区块链节点13。进一步的,区块链节点17向区块链节点12和区块链节点13分别发送请求消息,该请求消息用于请求获取与区块链节点14相关的所有交易的交易信息的片段。当区块链节点12和区块链节点13分别接收到该请求消息之后,区块链节点12和区块链节点13分别将本地存储的与区块链节点14相关的所有交易的交易信息的片段发送给区块链节点17,区块链节点17接收到区块链节点12和区块链节点13分别返回的与区块链节点14相关的所有交易的交易信息的片段之后,确定出哪些片段是属于同一个交易信息的,并将属于同一个交易信息的片段进行组合构成与区块链节点14相关的一次交易的交易信息。如此可组合出与区块链节点14相关的多次交易的交易信息,进一步的,区块链节点17根据与区块链节点14相关的多次交易的交易信息,计算出区块链节点14的剩余金额。如果区块链节点14的剩余金额大于10元,则区块链节点17确认和区块链节点14进行该笔交易,如果区块链节点14的剩余金额小于10元,则区块链节点17停止和区块链节点14进行该笔交易。

可以理解的是,区块链节点11-区块链节点17中的任一区块链节点可以和其他的区块链节点进行网络交易,当区块链节点11-区块链节点17中的任一区块链节点和另一个区块链节点进行网络交易时,均可以根据本实施例提供的类似于区块链节点17确定区块链节点14的剩余金额的方法来确定请求交易的一方是否有能力继续交易。

本发明实施例通过将交易信息相关的交易方信息以及存储有该交易信息的片段的区块链节点的地址信息发布到区块链网络中,而不是将交易信息本身的内容发布到区块链网络中,不仅可以减轻区块链网络的传输压力,对于区块链网络中的单个节点而言,还可以降低单个节点的存储空间,另外,将同一交易信息的多个分片中的每个分片存储在多个区块链节点上,避免了某一区块链节点恶意修改分片内容而造成的故障,提高了区块链网络的安全性。

图4为本发明实施例提供的区块链节点的结构图。本发明实施例提供的区块链节点可以执行区块链交易信息处理方法实施例提供的处理流程,如图4所示,区块链节点40包括:分片模块41和发送模块42,其中,分片模块41用于将与区块链节点相关的交易信息分成多个片段;发送模块42用于将多个片段中的每个片段发送给所述区块链节点的至少一个目标相邻节点;以及将与所述交易信息相关的交易方信息以及至少一个目标相邻节点中各相邻节点的地址信息发布到区块链网络中。

可选的,所述片段的个数是根据所述交易信息的大小以及所述区块链节点的相邻节点的总数确定的。

可选的,所述至少一个目标相邻节点的个数是根据所述区块链节点的相邻节点的总数以及所述片段的个数确定的。

可选的,所述区块链网络中的其他区块链节点存储有与所述交易信息相关的交易方信息以及至少一个目标相邻节点中各相邻节点的地址信息。

本发明实施例提供的区块链节点可以具体用于执行上述图2所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过将交易信息相关的交易方信息以及存储有该交易信息的片段的区块链节点的地址信息发布到区块链网络中,而不是将交易信息本身的内容发布到区块链网络中,不仅可以减轻区块链网络的传输压力,对于区块链网络中的单个节点而言,还可以降低单个节点的存储空间,另外,将同一交易信息的多个分片中的每个分片存储在多个区块链节点上,避免了某一区块链节点恶意修改分片内容而造成的故障,提高了区块链网络的安全性。

在上述实施例的基础上,发送模块42还用于:向所述其他区块链节点发送交易请求,以使所述其他区块链节点查询到所述区块链节点的至少一个目标相邻节点的地址信息,根据所述至少一个目标相邻节点的地址信息,从至少一个目标相邻节点中获取与所述区块链节点相关的交易信息的片段,并根据与所述区块链节点相关的交易信息的片段,确定是否与所述区块链节点进行交易。

本发明实施例提供的区块链节点可以具体用于执行上述图3所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过将交易信息相关的交易方信息以及存储有该交易信息的片段的区块链节点的地址信息发布到区块链网络中,而不是将交易信息本身的内容发布到区块链网络中,不仅可以减轻区块链网络的传输压力,对于区块链网络中的单个节点而言,还可以降低单个节点的存储空间,另外,将同一交易信息的多个分片中的每个分片存储在多个区块链节点上,避免了某一区块链节点恶意修改分片内容而造成的故障,提高了区块链网络的安全性。

综上所述,本发明实施例通过将交易信息相关的交易方信息以及存储有该交易信息的片段的区块链节点的地址信息发布到区块链网络中,而不是将交易信息本身的内容发布到区块链网络中,不仅可以减轻区块链网络的传输压力,对于区块链网络中的单个节点而言,还可以降低单个节点的存储空间,另外,将同一交易信息的多个分片中的每个分片存储在多个区块链节点上,避免了某一区块链节点恶意修改分片内容而造成的故障,提高了区块链网络的安全性。

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

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

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

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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