一种图式区块链的网络传输优化装置及方法

文档序号:28660207发布日期:2022-01-26 19:56阅读:219来源:国知局
一种图式区块链的网络传输优化装置及方法

1.本发明涉及区块链系统中的网络传输协议技术领域,尤其涉及一种图式区块链的网络传输优化装置及方法。


背景技术:

2.区块链是由加密机制、存储机制、共识机制等多种技术组成的分布式系统,可以在无中心服务器的情况下实现相互信任的点对点交易功能。在区块链系统中,区块通过区块头进行连接,形成链式的数据存储结构。然而由于区块链的链式结构存在吞吐量低、处理速度慢、等待时间长、能耗高和安全性等问题,严重限制了整个区块链的发展。
3.随着区块链技术的不断发展,各种区块链平台层出不穷,区块链系统的性能要求越来越高,对链的结构提出了新的要求。为了实现安全、可靠和高效的区块链系统,采用dag技术的图式区块链应运而生,被用于解决公链上的各种问题。对于链式网络而言,关键不是节点的处理能力不强,而是链式结构不能并行计算,吞吐量低,浪费大量的等待时间,比如发起交易后需要将交易同步所有节点以及当有一个节点确认后要向全网进行同步。对于dag而言则不存在这样的问题,dag将同步记账提升为异步记账,通过并行性解决传统区块链的高并发问题,交易只需要经历局部校验、全网广播、其他局部校验的过程即可进行确认,每一个节点将自己的和别人确认的交易拼接起来。链式网络到图式网络的转变是区块链从容量到速度的一次革新。
4.区块链网络主要负责实现节点之间的信息交互,包括区块链的组网机制、数据传播机制以及数据验证机制等等。这些机制的设计将直接影响信息的确认速度,从而影响整个系统的性能。目前运用dag技术的主流项目采用随机网络拓扑和gossip广播方式进行构建。在随机网络拓扑(非结构化网络拓扑)中,新节点随机选择网络中的节点建立连接通道,系统性能无法保证。在gossip广播方式中,节点定期随机选择邻居节点发送消息,从而产生大量的冗余数据,网络带宽利用率低。
5.目前主流的dag项目采用的网络拓扑结构并没有充分考虑节点间的物理网络延迟,存在许多高延迟连接,极大地影响了网络传输的效率,网络吞吐率极低。此外,对于高吞吐量的区块链系统需要一个很大的网络带宽来传播交易,dag技术在并发性上有显著优势,从而传统的广播方式不仅会产生大量的数据冗余,无法高效利用网络中的带宽资源,还可能造成网络拥塞,降低系统的吞吐率。例如,现有技术中公开号为cn110198233a的专利文献所提出的一种基于可信执行环境和有向无环图的区块链共识方法及系统,其步骤包括:接收邻居节点发送的事件集合,基于新事件携带的可信执行环境信息判断事件是否合法,将合法事件集合加入本节点的有向无环图中,如果任一事件被区块链系统中超过指定数量的节点的同意,则判定该事件已经达成共识,结束本轮共识;所有节点将产生的交易打包到生成的新事件,随机选择一个邻居节点,将本节点知道且该邻居节点不知道的事件集合通过gossip报文发送给该邻居节点。
6.此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于申请人做出
本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。


技术实现要素:

7.针对图式区块链的网络传输中存在的因高延迟连接以及数据冗余量大而导致的网络传输效率低以及系统吞吐率小的问题,本技术提出了一种图式区块链的网络传输优化装置及方法,旨在降低图式区块链网络中的网络延迟,以及高效利用网络带宽。本技术提出了一种图式区块链的网络传输优化装置,其特征在于,至少包括交易处理模块、节点管理模块和路由管理模块,其中,交易处理模块对交易进行压缩并通过路由管理模块在由节点管理模块对多个节点进行划分而得到的至少一个集群中所选取的路由节点将压缩后得到的交易数据在不同集群间进行传输。其中,对交易进行压缩,可以是指为每个交易分配一个序号并对新交易中引用字段进行压缩。
8.根据一种优选实施方式,所述网络传输优化装置还包括设于各节点中的广播模块,广播模块利用gossip协议实现集群内及集群之间的信息广播。
9.根据一种优选实施方式,交易处理模块至少通过将交易的第一hash指针压缩为第二hash指针来进行交易的压缩。
10.根据一种优选实施方式,交易处理模块还基于满足标准的编码格式对交易进行编码来实现交易的压缩表示。
11.根据一种优选实施方式,所述第二hash指针包括各自在第二hash指针的占据空间彼此相同的交易高度和交易索引。
12.根据一种优选实施方式,交易高度可以是交易在dag图中的序号。
13.本技术还提出了一种图式区块链的网络传输优化方法,其特征在于,至少包括:对交易进行压缩进行压缩,通过在对多个节点进行划分而得到的至少一个集群中所选取的路由节点将压缩后得到的交易数据在不同集群间进行传输。“对交易进行压缩”可以是:通过交易输入的第二hash指针替换交易输入的第一hash指针,并由满足标准的编码格式对交易进行编码,压缩交易大小,得到交易编码序列。节点接收到交易编码序列后对其进行匹配,存储交易信息。“至少一个集群”可以是通过对整个网络上的节点进行二级聚类而划分得到的。“路由节点”是在各集群所包含的节点中选取的,用以使不同集群间通过路由节点进行通信。
14.所述方法包括通过交易输入的第二hash指针替换交易输入的第一hash指针,并由满足标准的编码格式对交易进行编码,压缩交易大小,得到交易编码序列。所述方法包括节点接收到交易编码序列后在缓冲池中对其进行匹配,并附加到本地账本上。所述方法包括对整个网络上的节点进行二级聚类,以划分得到至少一个集群。所述方法包括在各集群中选取路由节点,使不同集群间通过路由节点进行通信。
15.根据一种优选实施方式,集群内及集群间均采取gossip协议进行信息广播。
16.根据一种优选实施方式,进行交易压缩的步骤至少包括:将交易的第一hash指针压缩为第二hash指针。
17.根据一种优选实施方式,进行交易压缩的步骤还包括:基于满足标准的编码格式
对交易进行编码来实现交易的压缩表示。
18.根据一种优选实施方式,所述第二hash指针包括:交易高度,其表示交易在dag图中的序号;交易索引,其表示对同一交易高度下的交易进行压缩所得到的编码序列,该序列可以唯一指定该交易。如果某个交易第二hash指针为t_x,则t表示交易高度,x表示交易索引。
19.根据一种优选实施方式,交易高度所占空间为20bits,足以容纳包含n
×
106个交易的某dag区块链账本,其中n为网络节点数。创世交易的交易高度为0。交易索引所占空间为20bits,足以记录交易的压缩编码。因此,第二hash指针所占空间为40bits。
20.根据一种优选实施方式,对交易进行编码的方式可以是对交易中的至少部分字段进行熵编码。
21.为了解决高吞吐量的区块链系统由于同一时间网络传输数据过大而在广播过程中造成的网络拥塞问题,本技术提供了一种在dag区块链中对本地已有交易进行压缩的解决方案,将32字节的txid(交易tx的sha256值)按照某种方式进一步压缩,用更短的交易编码序列代表每一笔交易,进而在新交易产生时对其引用字段进行优化,减少新交易在网络中传输时所消耗的带宽,实现网络中尽可能多的交易并行广播且不会造成网络拥塞现象,并以此提高系统的吞吐量。待节点接收到新交易后,将交易中引用字段的数据与本地缓冲池进行匹配,将新交易附加到本地账本上。在不超过有限网络资源的条件下,并行交易的数量越多,该方案的效果越好。
22.根据一种优选实施方式,对整个网络上的节点进行二级聚类的步骤至少包括:对整个网络上的节点进行一级聚类,以划分得到至少一个一级集群;对各一级集群中的节点分别进行二级聚类,以划分得到位于一级集群下的至少一个二级集群。
23.根据一种优选实施方式,对网络上的节点进行聚类划分的步骤是基于邻近节点数和节点间距进行的。
24.根据一种优选实施方式,各二级集群分别选择其集群内的一个节点作为二级路由节点,二级路由节点负责将其他二级集群传来的广播信息转发到其所在的二级集群内。
25.根据一种优选实施方式,各一级集群选择其集群内的一个二级集群的路由节点作为一级路由节点。
26.根据一种优选实施方式,二级路由节点收到广播信息后将其转发至其他二级路由节点,其他二级路由节点分别转发到其所在的二级集群内的节点,和/或一级路由节点收到广播信息后将其转发至其他一级路由节点,其他一级路由节点分别转发到其所在的一级集群内的其他二级路由节点。
27.为了解决交易在网络中传播的高延迟问题,本技术采用了聚类算法,将邻近的节点进行聚类。首先为网络中每个节点赋予一个位置坐标,节点之间的网络延迟用节点距离来表示。以此为聚类算法的设计提供理论依据。之后通过聚类算法对网络中的节点进行聚类,使得集群中的节点之间的网络延迟保持在一个较低范围内。以此实现集群内节点的低延迟传播。在聚类的基础上,对聚类后的集群内部进行二次聚类。这样做的目的是可以进一步并行化处理以降低延迟。每一个二级集群会选择一个核心节点,作为路由节点,负责二级集群间的数据转发。每一个一级集群会选择一个二级集群,其路由节点既负责二级集群间的转发,也负责一级集群间的转发。
28.根据一种优选实施方式,集群内及集群间均采取gossip协议进行信息广播。为了提高广播效率,本技术在集群内及集群间都采取gossip协议,基于本技术所采用的二级聚类的方法,二级集群内的节点、二级集群以及一级集群的数量都较小,这使得gossip协议无需覆盖很大的网络,能够有效地提高广播的效率。
29.本技术所提出的技术方案具有至少一个以下有益效果:
30.(1)本技术对现有的图式区块链系统提供了一个交易编码方案,并通过并行化广播的方式高效利用网络带宽,而不会造成网络拥塞现象。
31.(2)本技术提供的交易编码方法充分考虑了压缩的安全性,使交易和交易编码序列一一对应,避免二义性,有利于减少交易传输过程中的带宽消耗。
32.(3)本技术提供的结构化网络拓扑充分考虑了节点之间的延迟问题,能够自适应节点的动态加入和退出,有着良好的可扩展性、鲁棒性、节点分配的均匀性和自组织能力,提高了网络传输的效率。
33.(4)本发明设计的交易传输过程充分考虑了数据冗余问题,在集群间和集群内分别设计对应的广播方法,有效改善消息冗余问题和网络消耗问题,从而实现高效的并行广播。
附图说明
34.图1是本发明提供的交易压缩表示方案的简化示意图;
35.图2是本发明中提及的dag区块链账本结构的简化示意图;
36.图3是本发明提供的网络拓扑结构的简化示意图。
具体实施方式
37.为了更清楚、完整地说明本发明的内容,下面结合附图及具体实施方式来对本发明进行详细地说明,显然,所描述的实例仅仅是本发明一部分实例,而不是全部的实例。基于本发明中的实例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本发明保护的范围。
38.为了便于理解,将本发明的技术用语进行如下解释。
39.dag,directed acyclic graph,即有向无环图,按照数学上的定义,dag指的是一个没有有向循环的、有限的有向图。它由有限个顶点和有向边组成,每条有向边都从一个顶点指向另一个顶点;从任意一个顶点出发都不能通过这些有向边回到原来的顶点。在区块链的应用上,dag图的每个顶点代表在某一个时间新产生的交易或区块。一般的链式区块链是dag的一种特殊情况,也即每个时间段整个系统只能产生一个区块。不同的是,dag允许不同节点按自己的节奏生成交易,每个交易可选择一个或多个交易作为自己的父交易。dag相对于传统链式区块链的优势是非常明显的,主要在于可扩展性和交易吞吐量上。由于采取dag的数据结构的话,每个节点不需要再等其它节点的数据达到统一就可以处理新的交易,避免了因网络延迟和数据同步造成的时间浪费。因此,参与dag记账的节点很容易大幅延展。此外,dag的尾端可以平行增加任意多的新数据,因此天生具有很强的交易吞吐量。这一点更是完胜链式区块链。链式区块链每次只能增加一个区块大小的数据量,所以可以处理的交易量是很难改变的。
40.txid,transactionid,也可称为交易哈希或交易编号,其为区块链交易信息经过哈希运算后而到得的一长串字符。txid是区块链资产交易中标记转账需要的字符段,一般由几十位数字和字母组成。例如从a地址转10个eth(以太币)到b地址,可以使用a地址进行私钥签名,得到一个签名的sign,然后这个签名和交易合并,最后进行哈希值运算,就得到了txid,然后向网络广播,如果交易成功,就可以在区块链网络上查询到该交易编号/txid。
41.sha256,sha2的名称来自于安全散列算法2(secure hash algorit hm 2)的缩写,其为一种密码散列函数算法标准,sha256即为sha2下的算法标准之一。sha256算法的可以输入任意长度的数据,输出的是一串长度为32字节的随机散列数据。sha256算法的原理主要是:对于任意长度的消息,sha256都会产生一个256位的哈希值,称作消息摘要;这个摘要相当于是个长度为32个字节的数组,通常由一个长度为64的十六进制字符串来表示,其中1个字节=8位,一个十六进制的字符的长度为4位。sha256的压缩函数主要对512位的消息区块和256位的中间哈希值进行操作,本质上,它是一个通过将消息区块为密钥对中间哈希值进行加密的256位加密算法。
42.图式区块链,其主要指的是基于dag的区块链,dag采用了图的方式连接数据并进行存储。
43.并发性,是指具有处理和调度多个程序同时执行的能力。
44.熵,在信息论中,熵是接收的每条消息中包含的信息的平均量,其又被称为信息熵、信源熵或平均自信息量。其中所提及的消息代表来自分布或数据流中的事件、样本或特征。在信息世界,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。
45.熵编码,熵编码就是根据数据中不同字符出现的概率,用不同长度的编码来表示不同字符。解码后可以完全恢复原始数据。出现概率越高的字符,则用越短的编码表示;出现概率地的字符,可以用比较长的编码表示。
46.节点,一个节点就是一个服务(实例),可以实现存储数据、索引以及搜索的功能。区块链网络中的每个节点相当于存储所有块数据的每台计算机或服务器终端。所有新数据块的生成,以及事务的验证和统计,以及将它们广播到整个网络进行同步,都是由节点完成的。
47.集群,一个或多个节点集合组成一个集群,集群上的节点可以存储数据,并提供跨节点的索引和搜索功能。
48.交易,区块主体由一个个trasations组成,即打包的交易,交易是存储在区块链中的实际数据,而区块则是记录确认某些交易是在何时以及何种顺序称为区块链中的一部分。
49.交易哈希,即区块体内每笔交易的哈希值,用于构建merkle树。merkle树,每个交易哈希对应一个叶子节点,将相邻两个哈希值合并成字符串再进行哈希,直至得到顶部的一个节点,即merkle根哈希。在区块链中,一笔完整的交易由输入、输出以及脚本信息等组成,对完整的交易内容进行两次sha256哈希运算就得到了交易的哈希值,也就是交易哈希。由于交易的输入需要引用之前某笔交易的输出,于是就在交易输入里加上了被引用的交易的哈希值,来定位这笔交易,在交易输入中出现的之前某笔交易的哈希值即为交易第一hash指针。其中,交易哈希用来构建merkle树,交易第一hash指针用来定位交易输入中所引用的之前某笔交易。
50.bitnodes,其指的是区块链网络中的实时节点信息,bitnodes项目是bitcoin foundation所支持的一个开源项目。bitnodes项目的主要作用是收集维护该网络的节点信息,并依据这些节点信息的变化作出相应的网络健康状况的判断。bitnodes统计了全网节点的数目,在网站中可以看到全球节点分布的状况。
51.拓扑结构,是指分布式系统中各个计算单元之间的物理或逻辑的互联关系,结点之间的拓扑结构一直是确定系统类型的重要依据。
52.哈希指针,哈希指针是一种数据结构,是一个可以指向数据存储位置及位置的数据的哈希值的指针。哈希指针是一个不但可以指向数据存储的位置,还可以明晰某个时间戳下该数据的哈希值的指针。
53.gossip,gossip协议是一个通信协议,一种传播消息的方式。gossip协议基本思想在于:一个节点想要分享一些信息给网络中的其他的一些节点;于是,gossip协议周期性的随机选择一些节点,并把信息传递给这些节点;这些收到信息的节点接下来会做同样的事情,即把这些信息传递给其他一些随机选择的节点。一般而言,信息会周期性的传递给n个目标节点,而不只是一个。gossip协议的主要用途就是信息传播和扩散,即把一些发生的事件传播到全世界。gossip协议也被用于数据库复制,信息扩散,集群成员身份确认,故障探测等。gossip协议是可扩展的,因为它只需要o(logn)个周期就能把消息传播给所有节点。某个节点在往固定数量节点传播消息过程中,并不需要等待确认,并且,即使某条消息传播过程中丢失,它也不需要做任何补偿措施。
54.满足标准的编码格式可以是指熵编码。
55.本技术提出了面向图式区块链的网络传输优化装置,该装置包括交易处理模块、节点管理模块和路由管理模块。根据本发明实施例,该装置还可以包括诸如中央处理器、通信单元、i/o单元的其他组件。本发明的网络传输优化装置优选地例如是:计算机、服务器等,以及其他采用网络传输优化装置的装置或系统。为了简化描述仅仅示出了交易处理模块、节点管理模块和路由管理模块,各模块还可分别包括至少一个单元用以执行本技术中各模块所对应的至少一个步骤。作为示例,可以用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本公开所描述的各种示例性的逻辑块、模块和电路。通用处理器可以是微处理器,或者,处理器也可以是任何普通的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp内核的结合,或者任何其它此种结构。作为示例,本公开的实施例可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
56.本技术提出了面向图式区块链的网络传输优化方法,其中设计了交易的压缩方案以及二次聚类法,以降低图式区块链网络中的带宽消耗和交易冗余现象,达到高效利用网络资源的目的。尽管本发明具体实施方式中的网络传输优化方法以特定顺序被描绘,但这
并不应该理解为要求此类操作以示出的特定顺序或以相继顺序完成,或者执行所有图示的操作以获取期望结果。在某些情况下,多任务或并行处理会是有益的。同样地,尽管上述讨论包含了某些特定的实施细节,但这并不应解释为限制任何发明或权利要求的范围,而应解释为对可以针对特定发明的特定实施例的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以整合实施在单个实施例中。反之,在单个实施例的上下文中描述的各种特征也可以分离地在多个实施例或在任意合适的子组合中实施。
57.图式区块链系统吞吐量高,并发性好,然而在广播过程中交易数据过大造成了网络带宽消耗问题,对此,本技术提出了针对图式区块链系统的交易压缩方案,该方案包括对本地已有的交易进行压缩编码,并根据序号分类对各类中的交易分别进行压缩编码;新交易产生时,对新交易的引用字段进行优化,使用第二hash指针代替第一hash指针,即序号加压缩编码代替完整哈希表示,以此在交易传输时高效利用网络带宽。
58.图1给出了本发明提供的新的交易压缩表示方案,左右两个方框分别代表的是交易高度和交易索引。由原本的32字节的第一hash指针压缩为5字节的第二hash指针,第二hash指针由交易高度和交易索引组成。5字节为40bits,其中前20bits表示交易高度,后20bits表示交易索引。根据交易高度,对所有交易进行分类,并分别分析各类中交易的组成方式,计算熵,缩小编码表示,以此得出交易索引。
59.在信息论中,熵可以衡量平均信息量,计算公式如下:
[0060][0061]
其中i表示概率空间中所有可能的样本,xi表示该样本出现的概率。当对数所用底数为2时,上述表达式计算得到的数据单位为比特。其中p(xi)表示每个字符出现的概率。log对数计算的是每一个字符需要多少bit表示,对它们进行概率加权求和,可以理解为是求数学期望值,最后的结果即表示最少平均每个字符需要多少bit表示。
[0062]
对链式网络来说,每个区块仅有一个父区块,并且每次仅传输一个区块。但是在dag区块链中,每个交易都需要引用先前的交易。当某一交易在网络中进行传输时,除了该交易本身的基本的交易信息外,还需要包含该交易所引用的交易信息。在有限的网络资源下,这一部分数据的传输成为带宽消耗的主要原因之一。当大量交易并发时,对网络中所有的交易进行压缩编码是不太实际的,既不能保证很好的压缩率,也很难避免哈希碰撞问题。本发明为每个交易添加一个可靠的序号,序号表示一个节点产生的第几笔交易,即对于n个节点的网络,最多只有n笔相同序号的交易。这个序号是在可信环境下产生的,不可篡改和伪造。例如,tee(trusted execution enviro nment),即可信执行环境,它是cpu上的一块区域,作用是给数据和代码的执行提供一个更安全的空间,并保证它们的机密性和完整性。通过tee提供的可信环境,保证了机器中运行的代码没有被篡改,可以按照区块链协议指定的方式运行,从而为整个区块链网络提供安全性。
[0063]
图式区块链iota项目中一个交易由2673个三进制编码字符组成,经过sha256哈希运算得到32字节的交易哈希。如果直接引用交易哈希传输会浪费带宽资源,成为限制吞吐量的主要因素。对此,本发明提出了以下交易压缩传输流程:首先,产生交易的节点对本地已有的交易进行压缩编码,得到第二hash指针。具体地,产生交易的节点根据序号对本地已
有的所有交易进行分类,并对不同类别中的交易进行统计分析,运用相应编码方案缩小交易编码表示,得到第二hash指针后将优化后的编码保存在本地。之后,产生新交易的节点引用先前的交易对新交易进行验证,并优化新交易的引用字段,使用第二hash指针代替第一hash指针,即序号加压缩编码代替完整哈希表示,以此减少交易传输时的数据量,高效利用网络带宽。最后,该节点将新交易广播至整个网络,收到该交易的其他节点根据该交易的引用字段中的交易高度(即序号)和交易索引(即交易压缩编码)在本地内存池中进行交易匹配,成功后将新交易添加到自身的账本结构中。
[0064]
图2给出了本发明中提及的dag区块链账本结构,为了方便说明,我们采用不同的形状来表示不同节点产生的交易,其中正方形为代表节点1,圆形代表节点2,菱形代表节点3,五边形代表节点4。当节点4接入网络时,首先获取目前已有的交易账本结构,并在本地对相同序号的交易进行压缩编码并存储。之后,节点4产生一笔新的交易,由于这是它产生的第一笔交易,序号表示为1。该交易将选择先前的交易进行验证,如图,其选择了序号为3的交易和序号为4的交易。这样,在新交易的引用字段,使用3_x和4_y代替这两笔交易的完整哈希,其中x和y表示该交易的压缩编码表示。最后,该交易在整个网络中广播,收到交易的节点进行验证并转发。例如,节点3接收到节点4产生的该笔交易,节点3将根据引用字段3_x在序号为3的交易列表中匹配压缩编码为x的交易,根据引用字段4_y在序号为4的交易列表中匹配压缩编码为y的交易,匹配成功后节点3将新交易添加到自身的账本上。
[0065]
通过该压缩编码方案可以在一定程度上减少交易传输的数据量,在不超过网络资源限制的条件下,并行交易越多,该编码传输方案效果越好。因为在链式区块链网络中,区块的大小不能过大,否则会危害区块链系统的安全性,进而导致网络中交易的数量较少。dag方法打破了该限制,允许交易并行执行,且节点不需要等待共识之后再接收新的交易,避免了网络延迟和账本同步所造成的耗时长的问题。
[0066]
在链式网络中,新区块只会引用前一个区块为父区块,且所有节点都已收到该父区块。在dag区块链中,交易可以随机选择多个父交易进行引用,且dag异步通信的特性可能导致某一时刻节点的账本结构处于不一致状态,即节点在收到新交易时可能尚未收到所引用的交易,即无法匹配成功。但是由于最终一致性,节点将新交易保存在本地,待收到引用交易后再进行新一轮匹配。
[0067]
公链网络中节点可以自由加入网络,相同序号的交易也会增多。交易信息压缩的同时交易数量增多,很大程度上提高了碰撞概率。本方案为发生碰撞的交易设置有一个阈值,当碰撞交易数超过该阈值的时候,重新请求完整的交易哈希。另外,本方案可以有效解决双花问题,不需要对所有交易进行排序或者寻找共同祖先来识别。当攻击者在网络的两个不同的位置添加了两笔双花交易时,本方案将较早的一笔交易作为有效交易,即序号低的交易被视为有效。
[0068]
交易压缩完成后,需要在网络中进行广播。为了降低网络传输延迟,网络中的所有节点间建立网络连接,形成特定的网络拓扑结构,网络拓扑的形式如图3所示,其中最小的圆圈代表普通节点,三角形代表二级路由节点,四边形代表一级路由节点,中型圆圈代表二级集群,最大的圆圈代表一级集群。在网络传输延迟中,最主要的因素是广播延迟,而拓扑结构是广播延迟的主要决定因素。网络拓扑可以概括为两个组成因素,一是节点的邻近节点数,二是两节点间的距离。一个节点如果其邻近节点越多,那么它进行广播就可以把信息
传递给更多的节点,从而降低广播时间,如果两个节点间的距离越短,其网络延迟也就越低,也可以降低广播时间。
[0069]
针对上述两点提高广播效率的因素,本技术还提出了基于k-means聚类方法的拓扑结构——二次聚类法,其至少包括将整个网络上的节点划分为几个集群。集群划分是基于邻近节点数和节点间距进行的。这样在广播时,集群间和集群内的广播可以同时进行,不同的集群可以并行广播,极大地提高了广播效率,减少了广播所需的时间。该方法还包括对一级集群进行二次聚类,产生多个二级集群。二级集群的数量相对一级集群的数量更多,二级集群内的节点和二级集群间也是并行广播,进一步降低了广播时间,进一步提高了广播效率。
[0070]
这种基于k-means聚类的二次聚类法的关键因素在于两次聚类的平均节点数n1、n2。根据bitnodes上的信息,截止2019年12月,约有10074个在线节点。基于此,假设n1=n2,可计算出该计算结果可根据实际的情况进行调整。集群内只有20个节点的话,可以极大地减小广播时间。但实际上,平均节点数n1、n2还需要考虑其他因素,比如对一级集群采用全分布式结构化拓扑来进一步提升效率,这样的话n1选择数值小,n2选择的数值就会变大,一级集群的广播速度提高,二级集群的广播速度就会减小。基于此,为获得最佳的广播效率,要通过仿真来确定n1、n2的数值。
[0071]
除了平均节点数,二次聚类法的另一个关键因素在于路由节点的选择。每一个二级集群会选择一个二级路由节点,负责将其他二级集群传来的广播信息转发到其所在的二级集群内。反之亦然,将二级集群内的广播信息转发给其他二级集群。每一个一级集群会选择一个二级集群的路由节点作为一级路由节点,该节点既作为其所在的一级集群的路由节点,也作为二级集群的路由节点。
[0072]
在二级聚类形成的拓扑结构下,广播是并行的。比如,二级集群中的一个普通节点产生了交易并广播,只在该二级集群内广播避免了gossip协议带来的巨大网络开销。二级路由节点收到广播后转发至其他二级路由节点,其他二级路由节点分别转发到其所在的二级集群内其他节点,并行广播的速度非常快。一级路由节点收到广播后转发至其他一级路由节点,其他一级路由节点分别转发到其所在的一级集群内其他二级路由节点并进一步转发给普通节点。优选地,为了避免路由节点的崩溃影响广播,还可增加一个备份节点。备份节点的数量由路由节点的故障率决定,故障率越高,备份节点数量越多。
[0073]
需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。本发明说明书包含多项发明构思,诸如“优选地”、“根据一个优选实施方式”或“可选地”均表示相应段落公开了一个独立的构思,申请人保留根据每项发明构思提出分案申请的权利。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1