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

基于区块链网络的数据处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:27:38


基于区块链网络的数据处理方法、装置、设备及存储介质

技术领域

本发明涉及计算机技术领域,具体涉及一种基于区块链网络的数据处理方法、一种基于区块链网络的数据处理装置、一种基于区块链网络的数据处理设备及一种计算机可读存储介质。

背景技术

随着计算机技术的不断发展,区块链以其去中心化的特点被广泛应用在互联网交易、票据存储等领域。在实际应用中,区块链网络中的业务节点与共识节点通常是直接建立通信连接的。实践发现,一个共识节点通常与多个业务节点相连接,当多个业务节点同时向共识节点上传存证票据时,可能会出现拥塞的情况,导致共识节点性能下降,对区块链网络的吞吐量造成不利影响。

发明内容

本发明实施例提供了一种数据处理方法、装置、设备及存储介质,可以提高区块链网络的吞吐量,增强数据传输的稳定性。

一方面,本申请实施例提供了一种基于区块链网络的数据处理方法,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点,数据处理方法由任一个代理节点执行,包括:

获取连接权限集合,连接权限集合包括见证子网络中具备连接权限的N个业务节点的标识及N个业务节点的通信地址,N为正整数;

接收第一业务节点发送的接入请求,接入请求携带第一业务节点的标识,第一业务节点为见证子网络中的任一个业务节点;

若第一业务节点的标识不属于连接权限集合,则获取通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P个业务节点是从连接权限集合中的N个业务节点中选取的,P为正整数;

向第一业务节点发送通信地址表,使得第一业务节点从通信地址表中选择一个业务节点进行中继接入。

一方面,本申请实施例提供了一种基于区块链网络的数据处理方法,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点,数据处理方法由任一个共识节点执行,包括:

统计见证子网络中各个业务节点的历史存证记录;

根据各个业务节点的历史存证记录,筛选满足直连条件的N个业务节点,N为正整数;

为N个业务节点分配连接权限,并将N个业务节点的标识及N个业务节点的通信地址添加至连接权限集合中;以及,

向接入层中的至少一个代理节点发送连接权限集合。

一方面,本申请实施例提供了一种基于区块链网络的数据处理方法,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点;数据处理方法由第一业务节点执行,第一业务节点为见证子网络中的任一个业务节点,包括:

向接入层发送接入请求,接入请求中携带第一业务节点的标识;

若接收到接入层返回的通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P个业务节点是从连接权限集合中具备连接权限的N个业务节点中选取的;N、P均为正整数;

从通信地址表中选择任一个业务节点作为中继节点,并向中继节点发送接入请求,以通过中继节点接入至核心子网络。

一方面,本申请实施例提供了一种基于区块链网络的数据处理装置,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点,数据处理装置搭载在代理节点上;数据处理装置包括:

获取单元,用于获取连接权限集合,连接权限集合包括见证子网络中具备连接权限的N个业务节点的标识及N个业务节点的通信地址,N为正整数;以及用于接收第一业务节点发送的接入请求,接入请求携带第一业务节点的标识,第一业务节点为见证子网络中的任一个业务节点;

处理单元,用于若第一业务节点的标识不属于连接权限集合,则获取通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P个业务节点是从连接权限集合中的N个业务节点中选取的,P为正整数;以及用于向第一业务节点发送通信地址表,使得第一业务节点从通信地址表中选择一个业务节点进行中继接入。

在一种实施方式中,处理单元还用于:

若第一业务节点的标识属于连接权限集合,则与第一业务节点建立直连通信连接。

在一种实施方式中,处理单元还用于:

接收第二业务节点发送的直连请求,直连请求用于请求获得连接权限;直连请求携带第二业务节点的标识及第二业务节点的通信地址;第二业务节点是见证子网络中的任一个业务节点;

根据第二业务节点的标识获取第二业务节点的历史通信记录;

若第二业务节点的历史通信记录满足直连条件,则为第二业务节点分配连接权限,并将第二业务节点的标识和第二业务节点的通信地址添加至连接权限集合;以及,

向第二业务节点发送直连请求的响应信息。

在一种实施方式中,第二业务节点的历史通信记录包括以下至少一种:第二业务节点在历史时间段内的数据上传量、第二业务节点历史时间段内的网络延迟;

第二业务节点的历史通信记录满足直连条件,包括:第二业务节点在单位时间内的数据上传量未超过数量阈值,且第二业务节点的网络延迟小于延迟阈值。

在一种实施方式中,处理单元还用于:

当检测到连接权限集合中存在第三业务节点满足移除条件时,则撤销第三业务节点的连接权限,并从连接权限集合中删除第三业务节点的标识和第三业务节点的通信地址;

其中,第三业务节点满足移除条件包括以下至少一种:第三业务节点离线;第三业务节点的网络延迟大于或等于延迟阈值;第三业务节点在单位时间内的数据上传频率低于或等于频率阈值;第三业务节点请求撤销连接权限。

一方面,本申请实施例提供了一种基于区块链网络的数据处理装置,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点,数据处理装置搭载在共识节点上,数据处理装置包括:

处理单元,用于统计见证子网络中各个业务节点的历史存证记录;以及用于根据各个业务节点的历史存证记录,筛选满足直连条件的N个业务节点,N为正整数;以及用于为N个业务节点分配连接权限,并将N个业务节点的标识及N个业务节点的通信地址添加至连接权限集合中;以及用于向接入层中的至少一个代理节点发送连接权限集合。

在一种实施方式中,处理单元还用于:

当更新事件被触发时,统计见证子网络中各个业务节点在目标时段内的存证记录;

根据各个业务节点在目标时段内的存证记录,筛选满足直连条件的M个业务节点,M为正整数;

更新M个业务节点与N个业务节点中,不属于M个业务节点与N个业务节点的交集的第四业务节点的连接权限;

根据第四业务节点的标识及第四业务节点的通信地址更新连接权限集合。

一方面,本申请实施例提供了一种基于区块链网络的数据处理装置,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点;数据处理装置搭载在第一业务节点上,第一业务节点为见证子网络中的任一个业务节点,数据处理装置包括:

处理单元,用于向接入层发送接入请求,接入请求中携带第一业务节点的标识;

若获取单元接收到接入层返回的通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P个业务节点是从连接权限集合中具备连接权限的N个业务节点中选取的;N、P均为正整数;

处理单元,还用于从通信地址表中选择任一个业务节点作为中继节点,并向中继节点发送接入请求,以通过中继节点接入至核心子网络。

在一种实施方式中,处理单元用于,向中继节点发送接入请求,以通过中继节点接入至核心子网络,具体用于:

从中继节点中获取同步信息,同步信息包括区块链网络的状态信息;

根据区块链网络的状态信息和待处理的存证票据生成加密数据,并向中继节点发送接入请求,接入请求中包含加密数据,以通过中继节点将加密数据传输至核心子网络执行共识处理。

在一种实施方式中,处理单元还用于:

通过中继节点向接入层发送直连请求,直连请求用于请求获得连接权限;直连请求携带第一业务节点的标识及第一业务节点的通信地址;

获取直连请求的响应信息;

若直连请求的响应信息指示第一业务节点成功获得连接权限,则与接入层建立直连通信连接。

一方面,本申请提供了一种基于区块链网络的数据处理设备,该设备包括:

处理器,用于加载并执行计算机程序;

计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时,实现上述基于区块链网络的数据处理方法。

一方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行上述基于区块链网络的数据处理方法。

一方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于区块链网络的数据处理方法。

本申请实施例中,获取连接权限集合,连接权限集合包括见证子网络中具备连接权限的N个业务节点的节点信息(节点的标识和节点的通信地址),N为正整数,接收第一业务节点发送的接入请求,若第一业务节点的标识不属于连接权限集合,则获取通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P为正整数,向第一业务节点发送通信地址表,使得第一业务节点从通信地址表中选择一个业务节点进行中继接入。可见,本申请实施例见证子网络中部分业务节点具备连接权限,可直连至接入层;而部分业务节点不具备连接权限,通过具备连接权限的业务节点进行中继接入至接入层,通过动态调整见证子网络中各业务节点的连接权限,使得见证子网络能够动态适应区块链网络的数据传输需求,通过这样的设计既能够有效保证核心子网络的连接安全和网络安全,还可充分利用区块链网络的全网带宽进行数据同步和分发,从而提高区块链网络的吞吐量,增强数据传输的稳定性。

附图说明

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

图1a示出了本申请一个示例性实施例提供的一种数据共享系统的架构图;

图1b示出了本申请一个示例性实施例提供的一种区块链的结构示意图;

图1c示出了本申请一个示例性实施例提供的一种区块产生流程示意图;

图1d示出了本申请一个示例性实施例提供的一种区块链网络的架构图;

图1e示出了本申请一个示例性实施例提供的一种双层网络的架构图;

图1f示出了本申请一个示例性实施例提供的一种基于双层网络的场景架构图;

图1g示出了本申请一个示例性实施例提供的一种区块链网络的网络连接架构图;

图2示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理方法的流程图;

图3示出了本申请一个示例性实施例提供的另一种基于区块链网络的数据处理方法的流程图;

图4示出了本申请一个示例性实施例提供的又一种基于区块链网络的数据处理方法的流程图;

图5示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理方法的交互流程图;

图6示出了本申请一个示例性实施例提供的另一种基于区块链网络的数据处理方法的交互流程图;

图7示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理装置的结构示意图;

图8示出了本申请一个示例性实施例提供的另一种基于区块链网络的数据处理装置的结构示意图;

图9示出了本申请一个示例性实施例提供的又一种基于区块链网络的数据处理装置的结构示意图;

图10示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

下面对本申请实施例涉及的各术语进行阐述:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

参见图1a所示的数据共享系统,数据共享系统100是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括多个节点101,多个节点101可以是指数据共享系统中各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。

对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息;例如,节点的标识还可以是二进制序列码(如110001110),表1中仅以IP地址为例进行说明:

表1

数据共享系统中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。

在生成区块链中的各个区块时,参见图1c,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:

SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))

其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。

这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其他节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。区块链的实际应用方案包括但不限于:

1)比特币网络:

比特币网络中的节点主要有四大功能:钱包、挖矿、区块链数据库、网络路由。比特币网络中的每个节点都具有网络路由的功能,除网络路由功能外的钱包功能、挖矿功能和区块链数据库功能为各个节点的可选功能,通常比特币网络中的核心节点才会全部包含上述四种功能。包含上述四种功能的节点也叫全节点。除了比特币网络中的核心节点是全节点外,其他大部分节点都是轻节点(即包含上述四种功能中部分功能的节点)。用户可以通过具有钱包功能的轻(simplified payment verification,SPV)节点查看自己的账户余额、管理钱包地址和私钥、发起交易等。具有挖矿功能的节点又称为挖矿节点,如果挖矿节点存储着区块链中所有区块的数据,那该挖矿节点也是全节点,一般来说每个挖矿节点都是独立矿工(即独立挖矿的节点)。若某个挖矿节点不是独立矿工,且该挖矿节点和其他挖矿节点一起连接矿池,进行集体挖矿,则该挖矿节点是集体矿工;这也会形成一个矿池网络,这是一种有中心化的网络,中心节点是矿池服务器,其他挖矿矿工(即集体矿工)和矿池服务器相连,挖矿矿工和矿池服务器之间的通信一般采用矿池(Stratum)协议。另外,矿工创建新的区块后,还需要广播给比特币网络中的所有节点,比特币网络接受区块后,给矿工的奖励才是有效的;比特币网络中的矿工才会开始进行下一个区块哈希的计算。所以矿工尽量缩短新区块的广播时间和下一块区块的计算时间。因此需要一个专门广播的网络用来加快区块的传播,这个传播网络也叫比特币中继网络(Bitcoin Relay NetWork)。在比特币网络中,一个节点可以将自己维护的对等节点列表 (peer list) 发送给相邻节点。所以在初始节点发现之后,需要从相邻节点复制一份节点列表。

2)以太坊网络:

和比特币网络一样,以太坊网络中的节点也主要具有钱包、挖矿、区块链数据库、区块路由四大功能,且按照各个节点具有的功能进行划分也可以将以太坊网络中的节点划分为轻节点,全节点等。以太坊网络与比特币网络的区别在于网络结构不同,以太坊网络中的网络可采用Kademlia(Kad)算法构建,基于该算法,以太坊网络可以快速而又准确的进行路由和数据定位。Kad的路由表是通过称为K桶的数据构造而成,K桶记录了节点标识、节点距离、末尾节点、节点通信地址等信息。K桶按照以太坊网络中除目标节点外的其他节点与目标节点距离进行排序,共256个K桶,每个K桶包含16个节点。此处的目标节点可以是指以太坊网络中的任一个节点。

Kad网络中的节点之间通过用户数据报协议(User Datagram Protocol,UDP)进行通信,若两个节点间ping-pong通过,则判定对端节点在线。具体地,可以通过ping命令探测节点是否在线,并通过pong命令对ping命令进行响应,可以通过FindNODE命令查询核心子网络中与目标节点的标识距离最近的节点,并通过neighbors命令对FindNODE命令进行响应。

其中,相邻节点的探测流程为:系统第一次启动时随机生成本机节点(目标共识节点)的标识(NodeId),记为LocalId,目标共识节点的标识生成后将固定不变。目标共识节点读取核心子网络中节点的信息,ping-pong握手完成后,将其写入K桶。目标共识节点每隔一段时间(如7200ms)刷新一次K桶。具体的刷新K桶的流程如下:

(1)随机生成目标共识节点的标识,记为TargetId,从1开始记录发现次数和刷新时间。

(2)计算TargetId与LocalId的距离,记为Dlt。

(3)核心子网络中共识节点的标识(NodeId)记为KadId,计算KadId与TargetId的距离,记为Dkt。

(4)找出核心子网络中Dlt大于Dkt的节点,记为k桶节点(共识节点或者存储节点),向k桶节点发送FindNODE命令,FindNODE命令包含TargetId。

(5)K桶节点收到FindNODE命令后,同样执行(2)-(4)的过程,将从K桶中找到的节点使用Neighbours命令发回给目标共识节点。

目标共识节点收到Neighbours后,将收到的节点写入到K桶中。

若搜索次数不超过8次,刷新时间不超过搜索阈值(如600ms),则返回到(2)步骤循环执行。

3)联盟链(如Fabric,Terdermint)网络:

联盟链网络是基于流言(Gossip)协议的数据分发网络,信息(“流言”)的传播是由种子节点发起的,当一个种子节点有状态需要更新到联盟链网络中的其他节点时,它会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程(即随机的选择周围几个节点散播消息),直至联盟链网络中所有的节点都收到了消息。这个过程可能需要一定的时间,虽然理论上最终所有节点都会收到消息,但是由于不能保证某个时刻联盟链网络中所有节点都收到消息,因此Gossip协议是一个最终一致性协议。Gossip协议包括:

传播协议/流言协议(Dissemination Protocol/Rumor-Mongering Protocol):通过网络中的泛洪代理来工作,节点收到广播的数据后直接转发给所有的邻居节点。此方式可以提高网络的健壮性,但是容易造成广播风暴。

反熵协议(Anti-Entropy Protocol):用于修复复制数据,通过比较复制和协调差异进行操作。Hyperledger Fabric(一种账本平台)中的数据同步就是使用此方式实现的。

计算聚合的协议:对网络中节点的信息进行采样,并将这些值组合起来得到系统范围内的值,从而计算出网络范围内的集合;之后将建立一种全面的信息流模式。

Gossip协议包括两种数据传输方式,一种数据传输方式为推送方式(Push-based):①网络中的某个节点随机选择N个节点作为数据接收对象;②该节点向其选中的N个节点传输相应的信息;③接收到信息的节点处理所接收的数据;④接收到数据的节点再按照步骤①和步骤②传播接收的数据。另一种数据传输方式为拉取方式(Pull-based):某个节点周期性地随机选择N个节点询问有没有最新(预设时间范围内)的信息,收到请求的节点回复请求节点其最近新收到的信息。

以Hyperledger Fabric为例,在Hyperledger Fabric 的交易流程中,对等(Peer)节点作为参与交易的主体,主要负责存储完整的区块链数据、执行智能合约,Peer 节点之间可以通过 Gossip 协议来完成区块分发、状态同步等问题。

在每个 Peer 节点上都维护了其它 Peer 节点的信息,通过随机的与其它Peer节点通信来交换信息(发送SignedGossipMessage),达到最终一致性。主要过程为通过GossipClient客户端的GossipStream双向流进行通信。Peer节点组成了一个P2P的网络,P2P网络是一种点对点连接的网络,P2P网络基于一类特定的网络协议,网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻的节点连接状态。客户端会提交请求给Peer节点,Peer节点处理后会提交交易提案(Transaction Proposal)给背书节点(Endorser),然后进行背书签名(Endorsement),最后经过排序服务达成共识后广播给Peer节点。图1d示出了本申请一个示例性实施例提供的一种区块链网络的架构图。如图1d所示。Gossip负责连接排序服务和Peer节点上,实现从单个源节点到所有节点高效的数据分发,在后台实现不同节点间的状态同步,并且可以处理拜占庭问题、动态的节点增加和网络分区。

在实际应用中发现,当区块链被用于政府或者商业机构的一些场景(如开发票场景)中时,并非所有的区块链参与节点都有足够的资源和必要性成为参与区块链共识的节点。而出于对数据的安全性考虑,在区块链体系中涉及个人隐私或者国家安全的相关数据时,也不适用普遍的数据对等的区块链部署方式。为了适应业务需求(如内外网,业务网,办公网分隔等),并进一步提高数据的安全性和保密性,本申请实施例提供了一种双层链,通过P2P网络形成“见证子网络-核心子网络”的双层网络架构。图1e示出了本申请一个示例性实施例提供的一种双层网络的架构图。如图1e所示,业务节点部署在处于公网的见证子网络中,而运行区块链共识协议的记账节点(即共识节点)则部署在私有的核心子网络中,二者通过路由边界进行交互。也就是说,见证子网络中的节点主要进行业务执行,不参与记账共识,而是通过身份认证的方式从核心子网络中获得区块头数据和部分授权可见的区块数据。见证子网络和核心子网络处在不同网络环境下,通常来说见证子网络处于公有网络中而核心子网络处于私有网络中。

由于核心子网络处于相对安全的私有网络中,其互相访问本就有共识机制保证安全,不需要额外加入身份管理和网络控制。而业务节点处于公共网络中,可能会被其他不确定的网络终端访问,因此业务节点以及其他可能的节点接入核心子网络中的行为需要被严格控制。

以电子发票业务为例,图1f示出了本申请一个示例性实施例提供的一种基于双层网络的场景架构图。如图1f所示,业务层、路由代理层、核心共识网络层组成了整个完整区块链业务体系。业务层处于见证子网络中,业务层包括至少一个业务节点,业务节点可以处理(地方税局)税务、票据(企业开票)、支付(企业资金流动)等业务。核心共识网络层处于核心子网络层中,共识节点具体可以是可信(计算)节点,每个共识节点中存储有权限合约以及区块链中的区块。业务层通过路由代理层向核心共识网络层提交业务操作交互,即路由代理层对于业务层和核心共识网络层起到了隔离的作用,代理层中包括至少一个代理节点,代理节点可以提供路由服务、认证服务、证书缓存服务、点对点(P2P)服务等。

图1g示出了本申请一个示例性实施例提供的一种区块链网络的网络连接架构图。如图1g所示,业务节点通过树形多级级联的方式连接接入层。该网络连接架构是接入层基于连接权限对不同业务节点采用不同的连接方式得到的,具体的处理流程包括:接入层中的代理节点获取连接权限集合,该连接权限集合是核心子网络中的共识节点基于见证子网络中各个业务节点的历史存证记录得到的;例如共识节点根据各个业务节点的历史存证记录统计各个业务节点在目标时间段内上传存证票据的频率,将频率高于频率阈值的业务节点添加至连接权限集合中,并按照预设频率对连接权限集合进行更新。在获取连接权限集合后,在接收到业务节点的接入请求时,会根据连接权限集合判断该业务节点是否具有连接权限。若该业务节点不具有连接权限(如业务节点4-业务节点7),则代理节点向该业务节点发送通信地址表,该通信地址表中包括连接权限集合中至少一个具有连接权限的业务节点的节点信息(如节点的标识,节点的通信地址等),以使不具有连接权限的业务节点通过具有连接权限的业务节点中继接入;具体地,业务节点在获取通信地址表后,从该通信地址表中选择一个业务节点作为中继节点,并通过该中继节点接入核心子网络。相应地,若该业务节点具有连接权限,则代理节点与该业务节点直接建立连接(如业务节点1-业务节点3)。

本申请实施例中,获取连接权限集合,连接权限集合包括见证子网络中具备连接权限的N个业务节点的节点信息(节点的标识和节点的通信地址),N为正整数,接收第一业务节点发送的接入请求,若第一业务节点的标识不属于连接权限集合,则获取通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P为正整数,向第一业务节点发送通信地址表,使得第一业务节点从通信地址表中选择一个业务节点进行中继接入。可见,本申请实施例见证子网络中部分业务节点具备连接权限,可直连至接入层;而部分业务节点不具备连接权限,通过具备连接权限的业务节点进行中继接入至接入层,通过动态调整见证子网络中各业务节点的连接权限,使得见证子网络能够动态适应区块链网络的数据传输需求,通过这样的设计既能够有效保证核心子网络的连接安全和网络安全,还可充分利用区块链网络的全网带宽进行数据同步和分发,从而提高区块链网络的吞吐量,增强数据传输的稳定性。

基于上述描述,下面将结合附图,对本申请实施例提出的基于区块链网络的数据处理方法进行详细介绍。

图2示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理方法的流程图。区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点;本申请实施例提供的基于区块链网络的数据处理方法可以由任一个代理节点执行;如图2所示,数据处理方法包括但不限于如下步骤S201-步骤S204:

S201:获取连接权限集合。

连接权限集合包括见证子网络中具备连接权限的N个业务节点的标识及N个业务节点的通信地址。在一种实施方式中,连接权限集合是核心子网络中的共识节点基于见证子网络中各个业务节点的历史存证记录得到的。

在一个实施例中,共识节点根据各个业务节点的历史存证记录,统计各个业务节点在目标时间段(如一天,一星期等)内上传存证票据的频率,并将频率高于频率阈值的业务节点确定为候选业务节点;对这些候选业务节点的网络延迟进行检测,并网络延迟小于延迟阈值的候选业务节点添加至连接权限集合中。

S202:接收第一业务节点发送的接入请求。

第一业务节点可以是见证子网络中任一个业务节点,接入请求携带第一业务节点的标识;例如,代理节点接收业务节点1发送接入请求1,接入请求1中携带了业务节点1的标识:1100100101。

S203:若第一业务节点的标识不属于连接权限集合,则获取通信地址表。

通信地址表包括具备连接权限的P个业务节点的通信地址,这P个业务节点是从连接权限集合中的N个业务节点中选取的,P为正整数;例如,设N=10,P=3,则通信地址表1包括3个业务节点的通信地址,这3个业务节点是从连接权限集合中的10个业务节点中选取的。

在一种实施方式中,代理节点判断第一业务节点的标识是否属于连接权限集合,若第一业务节点的标识不属于连接权限集合(即第一业务节点不具备连接权限),则获取通信地址表,并继续执行步骤S204;若第一业务节点属于连接权限集合(即第一业务节点具备连接权限),则与第一业务节点建立直接通信连接,并结束本次流程。

S204:向第一业务节点发送通信地址表,使得第一业务节点从通信地址表中选择一个业务节点进行中继接入。

在一种实施方式中,代理节点向第一业务节点发送通信地址表,第一业务节点在接收到通信地址表后,从该通信地址表中选择一个业务节点作为中继节点,并通过该中继节点接入核心子网络。

本申请实施例中,获取连接权限集合,连接权限集合包括见证子网络中具备连接权限的N个业务节点的节点信息(节点的标识和节点的通信地址),N为正整数,接收第一业务节点发送的接入请求,若第一业务节点的标识不属于连接权限集合,则获取通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P为正整数,向第一业务节点发送通信地址表,使得第一业务节点从通信地址表中选择一个业务节点进行中继接入。可见,本申请实施例见证子网络中部分业务节点具备连接权限,可直连至接入层;而部分业务节点不具备连接权限,通过具备连接权限的业务节点进行中继接入至接入层,通过动态调整见证子网络中各业务节点的连接权限,使得见证子网络能够动态适应区块链网络的数据传输需求,通过这样的设计既能够有效保证核心子网络的连接安全和网络安全,还可充分利用区块链网络的全网带宽进行数据同步和分发,从而提高区块链网络的吞吐量,增强数据传输的稳定性。

图3示出了本申请一个示例性实施例提供的另一种基于区块链网络的数据处理方法的流程图。区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点;本申请实施例提供的基于区块链网络的数据处理方法可以由任一个共识节点执行;如图3所示,数据处理方法包括但不限于如下步骤S301-步骤S305:

S301:统计见证子网络中各个业务节点的历史存证记录。

每个业务节点的历史存证记录中包括该业务节点在历史时段内上传的存证票据;此外,历史存证记录中还可以包括该业务节点在上传存证票据时的时间,以及该业务节点在上传存证票据时的网络延迟。在一种实施方式中,共识节点通过历史存证记录表来记录目标业务节点的历史存证记录,目标业务节点可以是见证子网络中任一个业务节点。在一个实施例中,历史存证记录表如下表2所示:

表2

由表2可知,存证票据的标识具有索引功能,每条存证记录记录了存证票据的内容、存证时间以及存证时目标业务节点的网络延迟。例如,存证票据1的存证内容为“XXX”,存证时间为“2020.5.21”,网络延迟为“34ms”。

S302:根据各个业务节点的历史存证记录,筛选满足直连条件的N个业务节点。

直连条件包括:业务节点在单位时间内的数据上传量超过数量阈值,且业务节点的网络延迟(当前网络延迟或者历史平均网络延迟)小于延迟阈值;或者,业务节点在单位时间内的数据上传频率超过频率阈值,且业务节点的网络延迟(当前网络延迟或者历史平均网络延迟)小于延迟阈值。此外,直连条件还可以包括:业务节点无恶意行为记录等(如上传违规数据,重复上传无效数据等)。

在一种实施方式中,共识节点根据各个业务节点的历史存证记录的统计结果,从见证子网络的业务节点中筛选满足直连条件的N个业务节点,N为正整数。

S303:为N个业务节点分配连接权限,并将N个业务节点的标识及N个业务节点的通信地址添加至连接权限集合中。

在一种实施方式中,共识节点向核心子网络中除共识节点外的其他共识节点发送(广播)授权信息,授权信息用于通知其他共识节点为满足直连条件的N个业务节点分配连接权限(如将满足直连条件的N个业务节点标记为直连业务节点)。进一步地,将N个业务节点的标识及N个业务节点的通信地址添加至连接权限集合中。

S304:向接入层中的至少一个代理节点发送连接权限集合。

在一种实施方式中,在生成连接权限集合后,共识节点向接入层中的至少一个代理节点发送连接权限集合,以使接入层中的各个代理节点根据该连接权限集合与见证子网络中的业务节点建立连接,具体的实施方式可参考图2实施例,在此不再赘述。

S305:周期性地更新连接权限集合。

在一种实施方式中,当更新事件被触发时,共识节点统计见证子网络中各个业务节点在目标时段内的存证记录;更新事件包括但不限于:当前时间与预设更新时间匹配,当前连接权限集合中业务节点的数量超过数量阈值。共识节点根据各个业务节点在目标时段(如当前时间的前一周、前一个月等)内的存证记录,筛选满足直连条件的M个业务节点,M为正整数。进一步地,共识节点更新M个业务节点与N个业务节点中,不属于M个业务节点与N个业务节点的交集的第四业务节点的连接权限,并根据第四业务节点的标识及第四业务节点的通信地址更新连接权限集合;例如,设业务节点1属于M个业务节点,且不属于N个业务节点(即业务节点1是新增的);业务节点2属于M个业务节点,且属于N个业务节点(即业务节点2是保持不变的);业务节点3不属于M个业务节点,且属于N个业务节点(即业务节点3是需要从连接权限集合移除的);则共识节点更新业务节点1和业务节点3的连接权限(即将业务节点1标记为可直连节点,将业务节点3标记为不可直连节点),并根据业务节点1的标识和业务节点3的标识更新连接权限集合(即将业务节点1的标识和业务节点1的通信地址添加至连接权限集合,将业务节点3的标识和业务节点3的通信地址从连接权限集合中移除)。

本申请实施例中,共识节点统计见证子网络中各个业务节点的历史存证记录,根据各个业务节点的历史存证记录,筛选满足直连条件的N个业务节点,N为正整数,为N个业务节点分配连接权限,并将N个业务节点的标识及N个业务节点的通信地址添加至连接权限集合中,以及向接入层中的至少一个代理节点发送连接权限集合。可见,通过维护权限集合,可以动态调整见证子网络中各业务节点的连接权限,使得见证子网络能够动态适应区块链网络的数据传输需求,通过这样的设计既能够有效保证核心子网络的连接安全和网络安全,还可充分利用区块链网络的全网带宽进行数据同步和分发,从而提高区块链网络的吞吐量,增强数据传输的稳定性。

图4示出了本申请一个示例性实施例提供的又一种基于区块链网络的数据处理方法的流程图。区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点;本申请实施例提供的基于区块链网络的数据处理方法可以由第一业务节点执行,第一业务节点可以是见证子网络中的任一个业务节点;如图4所示,数据处理方法包括但不限于如下步骤S401-步骤S404:

S401:向接入层发送接入请求。

接入请求中携带第一业务节点的标识。接入层的代理节点在接收接入请求后,会根据获取的权限集合判断第一业务节点是否具备连接权限,具体的实施方式可参考图2实施例,在此不再赘述。若代理节点判定第一业务节点具备连接权限,则与第一业务节点建立直接通信连接;若代理节点判定第一业务节点不具备连接权限,则向第一业务节点返回通信地址表,并继续执行步骤S402。

S402:若接收到接入层返回的通信地址表,则从通信地址表中选择任一个业务节点作为中继节点。

通信地址表包括具备连接权限的P个业务节点的通信地址,这P个业务节点是从连接权限集合中具备连接权限的N个业务节点中选取的;N、P均为正整数。

在一种实施方式中,第一业务节点在接收到接入层返回的通信地址表后,从通信地址表中随机选择一个业务节点作为中继节点。在另一种实施方式中,第一业务节点在接收到接入层返回的通信地址表后,获取P个业务节点的状态信息,状态信息可以包括但不限于业务节点的网络延迟,以及当前通过该业务节点进行中继的业务节点的数量。第一业务节点根据P个业务节点的状态信息,选择一个业务节点作为中继节点;例如,选择网络延迟小于第一阈值,且当前通过该业务节点进行中继的业务节点的数量小于第二阈值的业务节点作为中继节点。

S403:向中继节点发送接入请求,以通过中继节点接入至核心子网络。

在一种实施方式中,第一业务节点从中继节点中获取同步信息,同步信息包括区块链网络的状态信息(如区块链中最新区块的区块头信息)。在获取同步信息后,第一业务节点根据区块链网络的状态信息和待处理的存证票据生成加密数据(如通过第一业务节点的私钥对待处理的存证票据进行签名得到加密数据),并向中继节点发送接入请求(如第一业务节点通过P2P通道向中继节点发送接入请求),接入请求中包含加密数据,以通过中继节点将加密数据传输至核心子网络执行共识处理。在一个实施例中,第一业务节点在向中继节点发送接入请求后,会订阅消息通知渠道(如pubsub通知渠道),该消息通知渠道用于接收接入请求的响应信息。

S404:通过中继节点向接入层发送直连请求,若直连请求的响应信息指示第一业务节点成功获得连接权限,则与接入层建立直连通信连接。

直连请求用于请求获得连接权限,该直连请求携带第一业务节点的标识及第一业务节点的通信地址。在一种实施方式中,代理节点在接收直连请求后,会获取第一业务节点的历史存证记录,并根据第一业务节点的历史存证记录对第一业务节点进行资格审核,具体的实施方式可参考图6实施例,在此不再赘述。代理节点在审核完成后会通过消息通知渠道向第一业务节点返回直连请求的响应信息。第一业务节点通过消息通知渠道获取该响应信息,若直连请求的响应信息指示第一业务节点成功获取连接权限,则第一业务节点与接入层建立直接通信连接,并向其他业务节点开放中继通道,以使其他业务节点可以通过该中继通道接入核心子网络。

本申请实施例中,向接入层发送接入请求,若接收到接入层返回的通信地址表,则从通信地址表中选择任一个业务节点作为中继节点,并向中继节点发送接入请求,以通过中继节点接入至核心子网络。可见,第一业务节点在需要与核心子网络进行通信时,可以通过通信地址表确定中继节点,并通过中继节点接入至核心子网络。改善了所有业务节点均与核心子网络建立通信连接,导致区块链并发性过大网络拥塞的情况,使得见证子网络能够动态适应区块链网络的数据传输需求,通过这样的设计既能够有效保证核心子网络的连接安全和网络安全,还可充分利用区块链网络的全网带宽进行数据同步和分发,进而提高区块链网络的吞吐量,增强数据传输的稳定性。

图5示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理方法的交互流程图。区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点;本申请实施例提供的基于区块链网络的数据处理方法可以由代理节点和第一业务节点协作执行,第一业务节点可以是见证子网络中的任一个业务节点;如图5所示,数据处理方法包括但不限于如下步骤S501-步骤S505:

S501:获取连接权限集合。

步骤S501的具体实施方式可参考图2中步骤S201的实施方式,在此不再赘述。

S502:向接入层发送接入请求。

步骤S502的具体实施方式可参考图4中步骤S401的实施方式,在此不再赘述。

S503:获取通信地址表。

S504:向第一业务节点发送通信地址表。

步骤S503和步骤S504的具体实施方式可参考图2中步骤S203和步骤S204的实施方式,在此不再赘述。

S505:从通信地址表中选择一个业务节点进行中继接入。

步骤S505的具体实施方式可参考图4中步骤S402的实施方式,在此不再赘述。

结合图1g进行举例说明:接入层中的代理节点获取连接权限集合,该连接权限集合是核心子网络中的共识节点会对于区块信息中的业务节点的交易热度进行统计,并根据统计结果生成的。接入层中的至少一个代理节点通过一个中心化数据库,维护连接权限集合,并根据该连接权限集合(如图1g中的业务节点1-业务节点3)确定接受哪些业务节点的连接请求(即建立直接通信连接)。当代理节点接收到当前不在连接权限集合中的业务节点的连接请求时(如图1g中的业务节点4),则向业务节点4 返回通信地址表,该通信地址表是根据连接权限集合得到的,该通信地址表包括业务节点1-业务节点3中的至少一个业务节点的通信地址;业务节点4在接收代理节点返回的通信地址表后,从通信地址表中选择一个业务节点作为自己的中继节点(图1g中的示例是业务节点1),并向业务节点1发送接入请求,由业务节点1提供区块链网络当前的状态数据(如当前最新的区块头数据),以及为业务节点4提供中继服务。也就是说,业务节点4的区块头从业务节点1获得,业务节点4根据区块头和自身需要上链的数据生成加密数据,并向业务节点1发送转发请求,转发请求中携带加密数据。业务节点1在接收转发请求后,向接入层转发加密数据(如在TCP协议层进行转发)。此外,业务节点4还可以通过业务节点1向接入层发送数据清分请求,数据清分请求是通过安全传输层(Transport Layer Security,TLS)协议来通讯的,因此虽然业务节点1提供了转发请求以及数据清分请求的中继,但也无法获得业务节点4相关数据(加密数据、清分数据)的具体内容。

本申请实施例中,获取连接权限集合,连接权限集合包括见证子网络中具备连接权限的N个业务节点的节点信息(节点的标识和节点的通信地址),N为正整数,接收第一业务节点发送的接入请求,若第一业务节点的标识不属于连接权限集合,则获取通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P为正整数,向第一业务节点发送通信地址表,使得第一业务节点从通信地址表中选择一个业务节点进行中继接入。可见,本申请实施例见证子网络中部分业务节点具备连接权限,可直连至接入层;而部分业务节点不具备连接权限,通过具备连接权限的业务节点进行中继接入至接入层,通过动态调整见证子网络中各业务节点的连接权限,使得见证子网络能够动态适应区块链网络的数据传输需求,通过这样的设计既能够有效保证核心子网络的连接安全和网络安全,还可充分利用区块链网络的全网带宽进行数据同步和分发,从而提高区块链网络的吞吐量,增强数据传输的稳定性。

图6示出了本申请一个示例性实施例提供的另一种基于区块链网络的数据处理方法的交互流程图。区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点;本申请实施例提供的基于区块链网络的数据处理方法可以由共识节点、代理节点、第一业务节点和第二业务节点协作执行,第一业务节点和第二业务节点均可以是见证子网络中的任一个业务节点;如图6所示,数据处理方法包括但不限于如下步骤S601-步骤S613:

S601:共识节点生成连接权限集合。

S602:共识节点向接入层中的至少一个代理节点发送连接权限集合。

步骤S601和步骤S602的具体实施方式可参考图3中步骤S301-步骤S304的实施方式,在此不再赘述。

S603:代理节点接收第一业务节点发送的接入请求。

S604:代理节点获取通信地址表。

步骤S603和步骤S604的具体实施方式可参考图2中步骤S202和步骤S203,在此不再赘述。

S605:第一业务节点接收通信地址表。

S606:第一业务节点从通信地址表中选择一个业务节点进行中继接入。

步骤S605和步骤S606的具体实施方式可参考图4中步骤S402和步骤S403,在此不再赘述。

S607:代理节点接收第二业务节点发送的直连请求。

第二业务节点是见证子网络中的任一个业务节点,第二业务节点和第一业务节点可以是同一个(不具备连接权限的)业务节点。直连请求用于请求获得连接权限(即与代理节点建立直接通信连接的权限),直连请求携带第二业务节点的标识及第二业务节点的通信地址。

S608:代理节点确定第二业务节点是否满足直连条件。

代理节点根据第二业务节点的标识获取第二业务节点的历史存证记录。第二业务节点的历史存证记录包括以下至少一种:第二业务节点在历史时间段内的数据上传量(以及数据的上传时间)、第二业务节点在历史时间段内的网络延迟(如平均网络延迟)。

在一种实施方式中,代理节点向核心子网络中的共识节点发送获取请求,获取请求中携带第二业务节点的标识。共识节点在接收到获取请求后,根据第二业务节点的标识提取第二业务节点的历史存证记录,并将第二业务节点的历史存证记录作为获取请求的响应信息发送给代理节点。若第二业务节点的历史存证记录满足直连条件,则继续执行步骤S609。

S609:代理节点为第二业务节点分配连接权限。

代理节点为第二业务节点分配连接权限,并将第二业务节点的标识和第二业务节点的通信地址添加至连接权限集合。直连条件包括:第二业务节点在单位时间内的数据上传量未超过数量阈值,且第二业务节点的网络延迟(当前网络延迟或者历史平均网络延迟)小于延迟阈值。此外,直连条件还可以包括:第二业务节点无恶意行为记录(如上传违规数据,重复上传无效数据等),第二业务节点在某个历史时间段内的数据上传频率超过频率阈值等。

在一种实施方式中,若代理节点根据第二业务节点的历史存证记录判定第二业务节点满足直连条件,则为第二业务节点分配连接权限(如将第二业务节点标记为直连业务节点),并更新连接权限集合(即将第二业务节点的标识和第二业务节点的通信地址添加至连接权限集合)。

S610:代理节点向第二业务节点发送直连请求的响应信息。

在一种实施方式中,代理节点可以通过消息通知渠道(如pubsub通知渠道)向第二业务节点发送直连请求的响应信息,该响应信息用于通知第二业务节点成功获得连接权限。相应地,若代理节点根据第二业务节点的历史存证记录判定第二业务节点不满足直连条件,则向第二业务节点返回提示信息,提示信息用于提示第二业务节点不满足直连条件,提示信息中还可以携带通信地址列表。

S611:第二业务节点与代理节点建立直接通信连接。

在一种实施方式中,若直连请求的响应信息指示第二业务节点成功获取连接权限,则第二业务节点与接入层中的代理节点建立直接通信连接,并向其他业务节点开放中继通道,以使其他业务节点可以通过该中继通道接入核心子网络。具体地,第二业务节点获取中继请求,该中继请求包括中继请求的发送方的标识,向中继请求的发送方发送同步信息,该同步信息包括区块链网络当前的网络状态信息。获取待转发数据,并向接入层转发该待转发数据;该待转发数据是中继请求的发送方根据区块链网络当前的网络状态信息和需要上链的票据生成的。

S612:当检测到连接权限集合中存在第三业务节点满足移除条件时,代理节点更新连接权限集合。

在一种实施方式中,当检测到连接权限集合中存在第三业务节点满足移除条件时,代理节点撤销第三业务节点的连接权限,并从连接权限集合中删除第三业务节点的标识和第三业务节点的通信地址。第三业务节点是具备连接权限的N个业务节点中的任一个业务节点。第三业务节点满足移除条件包括以下至少一种:第三业务节点离线;第三业务节点的网络延迟大于或等于延迟阈值;第三业务节点在单位时间内的数据上传频率低于或等于频率阈值;第三业务节点请求撤销连接权限。

在一种实施方式中,代理节点周期性地检测权限集合中各个业务节点是否满足移除条件。当检测到连接权限集合中存在第三业务节点满足移除条件时,撤销第三业务节点的连接权限(如将第三业务节点标记为非直连业务节点),并从连接权限集合中删除第三业务节点的标识和第三业务节点的通信地址。

S613:共识节点更新连接权限集合。

步骤S613的具体实施方式可参考图3中步骤S305的实施方式,在此不再赘述。需要说明的是,步骤S603-步骤S606,步骤S607-步骤S611,步骤S612和步骤S613可以交换顺序执行,也可以同步执行,对此本申请不作限制;例如,步骤S613可以在步骤S607之前执行,步骤S612和步骤S608可以同步执行。

结合图1g进行举例说明:连接权限集合(业务节点1-业务节点3)是共识节点根据业务节点1-业务节点7最近(如一周,一个月)上链交易(如上传存证票据)的频率统计出来的;此外,连接权限集合中的业务节点还需要满足一定网络延迟条件;例如ping的返回速度小于延迟阈值(如10ms)。该连接权限集合由共识节点定期更新维护。连接权限集合目的是让最近需要上链的业务节点能够直接与连接入层建立连接,以获取更快的(相较于中继接入更快)将需要上链的票据进行上链,获得更小的时延。而业务节点的数据同步(如业务节点4)的速度可以相对减缓(如业务节点没有上传存证票据的需求,且需要同步清分回去的数据也不多),从而加大区块链网络的吞吐量,以及保护接入层避免接受大量的直接连接。

进一步地,当图1g中业务节点5需要开始批量上传存证票据(集中开票)时,可以通过点对点通道,由业务节点1发送直连请求,通过业务节点1向接入层请求建立直连通信联系,同时可以订阅对应的消息通知(如pubsub)渠道。接入层的代理节点收到接入请求后进行业务节点5进行资格审核,如业务节点5上传存证票据的数量是否超过数量阈值,当前网络延迟是否小于延迟阈值等,业务节点5通过资格审核之后,代理节点通过消息通知渠道向业务节点5发送通知消息,并且更新连接权限集合(将业务节点5的标识和业务节点5的通信地址添加至连接权限集合中)。业务节点5从消息通知渠道接收到通知消息之后,即可与接入层建立直接通信连接,并上传需要上传的存证票据,同时为区块链中的其他业务节点提供中继服务(即允许其他业务节点通过业务节点5进行中继接入)。业务节点完成存证票据的上传之后,可以继续与接入层保持直接通信连接,也可以主动退出与接入层的直接通信连接,并通过其他与接入层建立直接通信连接的业务节点(如业务节点1)进行中继接入。

当检测建立直接通信连接的业务节点出现掉线,或者出现连接状态出错的情况时,接入层中的代理节点会更新连接权限集合, 并通过消息通知渠道通知区块链网络中的业务节点(如图1g中的业务节点6和业务节点7)作为新的直连节点(即具备连接权限的节点),让其直接与接入层建立直接通信连接。

本申请实施例中,获取连接权限集合,连接权限集合包括见证子网络中具备连接权限的N个业务节点的节点信息(节点的标识和节点的通信地址),N为正整数,接收第一业务节点发送的接入请求,若第一业务节点的标识不属于连接权限集合,则获取通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P为正整数,向第一业务节点发送通信地址表,使得第一业务节点从通信地址表中选择一个业务节点进行中继接入。可见,本申请实施例见证子网络中部分业务节点具备连接权限,可直连至接入层;而部分业务节点不具备连接权限,通过具备连接权限的业务节点进行中继接入至接入层,通过动态调整见证子网络中各业务节点的连接权限,使得见证子网络能够动态适应区块链网络的数据传输需求,通过这样的设计既能够有效保证核心子网络的连接安全和网络安全,还可充分利用区块链网络的全网带宽进行数据同步和分发,从而提高区块链网络的吞吐量,增强数据传输的稳定性。

上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。

请参见图7,图7示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理装置的结构示意图。图7所示的基于区块链网络的数据处理装置可以用于执行上述图2,图5和图6所描述的方法实施例中的部分或全部功能。其中,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点,数据处理装置搭载在各个代理节点上;该数据处理装置的各个单元的详细描述如下:

获取单元701,用于获取连接权限集合,连接权限集合包括见证子网络中具备连接权限的N个业务节点的标识及N个业务节点的通信地址,N为正整数;以及用于接收第一业务节点发送的接入请求,接入请求携带第一业务节点的标识,第一业务节点为见证子网络中的任一个业务节点;

处理单元702,用于若第一业务节点的标识不属于连接权限集合,则获取通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P个业务节点是从连接权限集合中的N个业务节点中选取的,P为正整数;以及用于向第一业务节点发送通信地址表,使得第一业务节点从通信地址表中选择一个业务节点进行中继接入。

在一种实施方式中,处理单元702还用于:

若第一业务节点的标识属于连接权限集合,则与第一业务节点建立直连通信连接。

在一种实施方式中,处理单元702还用于:

接收第二业务节点发送的直连请求,直连请求用于请求获得连接权限;直连请求携带第二业务节点的标识及第二业务节点的通信地址;第二业务节点是见证子网络中的任一个业务节点;

根据第二业务节点的标识获取第二业务节点的历史通信记录;

若第二业务节点的历史通信记录满足直连条件,则为第二业务节点分配连接权限,并将第二业务节点的标识和第二业务节点的通信地址添加至连接权限集合;以及,

向第二业务节点发送直连请求的响应信息。

在一种实施方式中,第二业务节点的历史通信记录包括以下至少一种:第二业务节点在历史时间段内的数据上传量、第二业务节点历史时间段内的网络延迟;

第二业务节点的历史通信记录满足直连条件,包括:第二业务节点在单位时间内的数据上传量未超过数量阈值,且第二业务节点的网络延迟小于延迟阈值。

在一种实施方式中,处理单元702还用于:

当检测到连接权限集合中存在第三业务节点满足移除条件时,则撤销第三业务节点的连接权限,并从连接权限集合中删除第三业务节点的标识和第三业务节点的通信地址;

其中,第三业务节点满足移除条件包括以下至少一种:第三业务节点离线;第三业务节点的网络延迟大于或等于延迟阈值;第三业务节点在单位时间内的数据上传频率低于或等于频率阈值;第三业务节点请求撤销连接权限。

根据本申请的一个实施例,图2,图5和图6所示的基于区块链网络的数据处理方法所涉及的部分步骤可由图7所示的基于区块链网络的数据处理装置中的各个单元来执行。例如,图2中所示的步骤S201和步骤S202可由图7所示的获取单元701执行,步骤S203和步骤S204可由图7所示的处理单元702执行。图5中所示的步骤S501-步骤S503可由图7所示的获取单元701执行,步骤S504可由图7所示处理单元702执行。图6中所示的步骤S602-步骤S604和步骤S607可由图7所示的获取单元701执行,步骤S605,步骤S608-步骤S610和步骤S612可由图7所示处理单元702执行。图7所示的基于区块链网络的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于区块链网络的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。

根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图2,图5和图6中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的基于区块链网络的数据处理装置,以及来实现本申请实施例的基于区块链网络的数据处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。

基于同一发明构思,本申请实施例中提供的基于区块链网络的数据处理装置解决问题的原理与有益效果与本申请方法实施例中基于区块链网络的数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。

请参见图8,图8示出了本申请一个示例性实施例提供的另一种基于区块链网络的数据处理装置的结构示意图。图8所示的基于区块链网络的数据处理装置可以用于执行上述图3和图6所描述的方法实施例中的部分或全部功能。其中,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点,数据处理装置搭载在各个共识节点上;该数据处理装置的各个单元的详细描述如下:

处理单元801,用于统计见证子网络中各个业务节点的历史存证记录;以及用于根据各个业务节点的历史存证记录,筛选满足直连条件的N个业务节点,N为正整数;以及用于为N个业务节点分配连接权限,并将N个业务节点的标识及N个业务节点的通信地址添加至连接权限集合中;以及用于向接入层中的至少一个代理节点发送连接权限集合。

在一种实施方式中,处理单元801还用于:

当更新事件被触发时,统计见证子网络中各个业务节点在目标时段内的存证记录;

根据各个业务节点在目标时段内的存证记录,筛选满足直连条件的M个业务节点,M为正整数;

更新M个业务节点与N个业务节点中,不属于M个业务节点与N个业务节点的交集的第四业务节点的连接权限;

根据第四业务节点的标识及第四业务节点的通信地址更新连接权限集合。

根据本申请的一个实施例,图3和图6所示的基于区块链网络的数据处理方法所涉及的部分步骤可由图8所示的基于区块链网络的数据处理装置中的各个单元来执行。例如,图3中所示的步骤S301-步骤S305可由图8所示的处理单元801执行。图6中所示的步骤S601和步骤S613可由图8所示的处理单元801执行。图8所示的基于区块链网络的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于区块链网络的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。

根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图3和图6中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图8中所示的基于区块链网络的数据处理装置,以及来实现本申请实施例的基于区块链网络的数据处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。

基于同一发明构思,本申请实施例中提供的基于区块链网络的数据处理装置解决问题的原理与有益效果与本申请方法实施例中基于区块链网络的数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。

请参见图9,图9示出了本申请一个示例性实施例提供的又一种基于区块链网络的数据处理装置的结构示意图。图9所示的基于区块链网络的数据处理装置可以用于执行上述图4,图5和图6所描述的方法实施例中的部分或全部功能。其中,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点,数据处理装置搭载在第一业务节点上;第一业务节点为见证子网络中的任一个业务节点;该数据处理装置的各个单元的详细描述如下:

处理单元901,用于向接入层发送接入请求,接入请求中携带第一业务节点的标识;

若获取单元902接收到接入层返回的通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P个业务节点是从连接权限集合中具备连接权限的N个业务节点中选取的;N、P均为正整数;

处理单元901,还用于从通信地址表中选择任一个业务节点作为中继节点,并向中继节点发送接入请求,以通过中继节点接入至核心子网络。

在一种实施方式中,处理单元901用于,向中继节点发送接入请求,以通过中继节点接入至核心子网络,具体用于:

从中继节点中获取同步信息,同步信息包括区块链网络的状态信息;

根据区块链网络的状态信息和待处理的存证票据生成加密数据,并向中继节点发送接入请求,接入请求中包含加密数据,以通过中继节点将加密数据传输至核心子网络执行共识处理。

在一种实施方式中,处理单元901还用于:

通过中继节点向接入层发送直连请求,直连请求用于请求获得连接权限;直连请求携带第一业务节点的标识及第一业务节点的通信地址;

获取直连请求的响应信息;

若直连请求的响应信息指示第一业务节点成功获得连接权限,则与接入层建立直连通信连接。

根据本申请的一个实施例,图4,图5和图6所示的基于区块链网络的数据处理方法所涉及的部分步骤可由图9所示的基于区块链网络的数据处理装置中的各个单元来执行。例如,图4中所示的步骤S401,步骤S403和步骤S404可由图9所示的处理单元901执行,步骤S402可由图9所示的处理单元901和获取单元902协作执行。图5中所示的步骤S504可由图9所示的获取单元902执行,步骤S505可由图9所示处理单元901执行。图6中所示的步骤S605和步骤S610可由图9所示的获取单元902执行,步骤S606和步骤S611可由图9所示处理单元901执行。图9所示的基于区块链网络的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于区块链网络的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。

根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图4,图5和图6中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图9中所示的基于区块链网络的数据处理装置,以及来实现本申请实施例的基于区块链网络的数据处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。

基于同一发明构思,本申请实施例中提供的基于区块链网络的数据处理装置解决问题的原理与有益效果与本申请方法实施例中基于区块链网络的数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。

请参阅图10,图10示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理设备的结构示意图,该基于区块链网络的数据处理设备至少包括处理器1001、通信接口1002和存储器1003。其中,处理器1001、通信接口1002和存储器1003可通过总线或其他方式连接,本申请实施例以通过总线连接为例。其中,处理器1001(或称中央处理器(Central Processing Unit,CPU))是基于区块链网络的数据处理设备的计算核心以及控制核心,其可以解析基于区块链网络的数据处理设备内的各类指令以及处理数据处理设备的各类数据,例如:CPU可以用于解析用户向基于区块链网络的数据处理设备所发送的开关机指令,并控制数据处理设备进行开关机操作;再如:CPU可以在数据处理设备内部结构之间传输各类交互数据,等等。通信接口1002可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器1001的控制可以用于收发数据;通信接口1002还可以用于基于区块链网络的数据处理设备内部数据的传输以及交互。存储器1003(Memory)是基于区块链网络的数据处理设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器1003既可以包括基于区块链网络的数据处理设备的内置存储器,当然也可以包括基于区块链网络的数据处理设备所支持的扩展存储器。存储器1003提供存储空间,该存储空间存储了数据处理设备的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。

在一个实施例中,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点,该数据处设备可以是任一个代理节点。

在本申请实施例中,处理器1001通过运行存储器1003中的可执行程序代码,执行如下操作:

通过通信接口1002获取连接权限集合,连接权限集合包括见证子网络中具备连接权限的N个业务节点的标识及N个业务节点的通信地址,N为正整数;以及用于接收第一业务节点发送的接入请求,接入请求携带第一业务节点的标识,第一业务节点为见证子网络中的任一个业务节点;

若第一业务节点的标识不属于连接权限集合,则获取通信地址表,通信地址表包括具备连接权限的P个业务节点的通信地址,P个业务节点是从连接权限集合中的N个业务节点中选取的,P为正整数;以及用于向第一业务节点发送通信地址表,使得第一业务节点从通信地址表中选择一个业务节点进行中继接入。

作为一种可选的实施方式,处理器1001通过运行存储器1003中的可执行程序代码,还执行如下操作:

若第一业务节点的标识属于连接权限集合,则与第一业务节点建立直连通信连接。

作为一种可选的实施方式,处理器1001通过运行存储器1003中的可执行程序代码,还执行如下操作:

接收第二业务节点发送的直连请求,直连请求用于请求获得连接权限;直连请求携带第二业务节点的标识及第二业务节点的通信地址;第二业务节点是见证子网络中的任一个业务节点;

根据第二业务节点的标识获取第二业务节点的历史通信记录;

若第二业务节点的历史通信记录满足直连条件,则为第二业务节点分配连接权限,并将第二业务节点的标识和第二业务节点的通信地址添加至连接权限集合;以及,

向第二业务节点发送直连请求的响应信息。

作为一种可选的实施方式,第二业务节点的历史通信记录包括以下至少一种:第二业务节点在历史时间段内的数据上传量、第二业务节点历史时间段内的网络延迟;

第二业务节点的历史通信记录满足直连条件,包括:第二业务节点在单位时间内的数据上传量未超过数量阈值,且第二业务节点的网络延迟小于延迟阈值。

作为一种可选的实施方式,处理器1001通过运行存储器1003中的可执行程序代码,还执行如下操作:

当检测到连接权限集合中存在第三业务节点满足移除条件时,则撤销第三业务节点的连接权限,并从连接权限集合中删除第三业务节点的标识和第三业务节点的通信地址;

其中,第三业务节点满足移除条件包括以下至少一种:第三业务节点离线;第三业务节点的网络延迟大于或等于延迟阈值;第三业务节点在单位时间内的数据上传频率低于或等于频率阈值;第三业务节点请求撤销连接权限。

在另一个实施例中,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点,数据处理设备可以是任一个共识节点。

在本申请实施例中,处理器1101通过运行存储器1103中的可执行程序代码,执行如下操作:

统计见证子网络中各个业务节点的历史存证记录;以及用于根据各个业务节点的历史存证记录,筛选满足直连条件的N个业务节点,N为正整数;以及用于为N个业务节点分配连接权限,并将N个业务节点的标识及N个业务节点的通信地址添加至连接权限集合中;以及用于向接入层中的至少一个代理节点发送连接权限集合。

作为一种可选的实施方式,处理器1101通过运行存储器1103中的可执行程序代码,还执行如下操作:

当更新事件被触发时,统计见证子网络中各个业务节点在目标时段内的存证记录;

根据各个业务节点在目标时段内的存证记录,筛选满足直连条件的M个业务节点,M为正整数;

更新M个业务节点与N个业务节点中,不属于M个业务节点与N个业务节点的交集的第四业务节点的连接权限;

根据第四业务节点的标识及第四业务节点的通信地址更新连接权限集合。

在又一个实施例中,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点;至少一个业务节点通过接入层接入至核心子网络;接入层包含至少一个代理节点;数据处理设备可以是第一业务节点,第一业务节点为见证子网络中的任一个业务节点;

在本申请实施例中,处理器1201通过运行存储器1203中的可执行程序代码,执行如下操作:

作为一种可选的实施方式,处理器1201向中继节点发送接入请求,以通过中继节点接入至核心子网络的具体实施方式为:

从中继节点中获取同步信息,同步信息包括区块链网络的状态信息;

根据区块链网络的状态信息和待处理的存证票据生成加密数据,并向中继节点发送接入请求,接入请求中包含加密数据,以通过中继节点将加密数据传输至核心子网络执行共识处理。

作为一种可选的实施方式,处理器1201通过运行存储器1203中的可执行程序代码,还执行如下操作:

通过中继节点向接入层发送直连请求,直连请求用于请求获得连接权限;直连请求携带第一业务节点的标识及第一业务节点的通信地址;

获取直连请求的响应信息;

若直连请求的响应信息指示第一业务节点成功获得连接权限,则与接入层建立直连通信连接。

基于同一发明构思,本申请实施例中提供的基于区块链网络的数据处理设备解决问题的原理与有益效果与本申请方法实施例中基于区块链网络的数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。

本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行上述方法实施例的基于区块链网络的数据处理方法。

本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于区块链网络的数据处理方法。

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

本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。

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

以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。

相关技术
  • 基于区块链网络的数据处理方法、装置、电子设备及存储介质
  • 基于区块链网络的数据处理方法、装置、设备及存储介质
技术分类

06120112935338