基于有向无环图和布谷鸟过滤器的区块链系统构建方法技术方案

技术编号:38610036 阅读:10 留言:0更新日期:2023-08-26 23:39
本发明专利技术涉及区块链技术领域,具体为基于有向无环图和布谷鸟过滤器的区块链系统构建方法,包括以下步骤:系统启动、确定服务主节点和重选服务主节点;交易生成到被传送至服务主节点;服务主节点在收到大量交易时,使用布谷鸟过滤器将单链结构扩展为有向无环图;区块链系统在交易频繁的情况下,在有向无环图的结构下记录交易;区块链系统在交易不频繁的情况下,由有向无环图收敛成为单链结构;有益效果为:本发明专利技术提出的基于有向无环图和布谷鸟过滤器的区块链系统构建方法;基于配置进行服务主节点的投票和轮换,减少了服务节点崩溃时多个主节点竞争主节点花费的时间和通信开销。节点竞争主节点花费的时间和通信开销。节点竞争主节点花费的时间和通信开销。

【技术实现步骤摘要】
基于有向无环图和布谷鸟过滤器的区块链系统构建方法


[0001]本专利技术涉及区块链
,具体为基于有向无环图和布谷鸟过滤器的区块链系统构建方法。

技术介绍

[0002]有向无环图是计算机领域一种常用数据结构,因为独特的拓扑结构所带来的优异特性,经常被用于处理动态规划、导航中寻求最短路径、数据压缩等多种算法场景。
[0003]现有技术中,在区块链领域的有向无环图中,其组成单元是一笔笔的交易,每个单元记录的是单个用户的交易,验证手段则依赖于后一笔交易对前一笔交易的验证;要想进行一笔交易,就必须要验证前面的交易,具体验证几个交易,根据不同的规则来进行。
[0004]但是,在区块链中,数据保存在多方,利用共识算法实现多节点数据的一致性。在区块链中,数据只能追加不能删除或修改。新型区块链是可编程的,利用智能合约可以将业务规则编码到区块链中,规则(代码)像数据一样不能删除或修改,代码在调用时自动执行,不能跳过,执行的结果也写入区块链。由于数据保存在多方,链上数据不可篡。

技术实现思路

[0005]本专利技术的目的在于提供基于有向无环图和布谷鸟过滤器的区块链系统构建方法,以解决上述
技术介绍
中提出的问题。
[0006]为实现上述目的,本专利技术提供如下技术方案:基于有向无环图和布谷鸟过滤器的区块链系统构建方法,所述区块链系统构建方法包括以下步骤:
[0007]S1.系统启动、确定服务主节点和重选服务主节点;
[0008]S2.交易生成到被传送至服务主节点;
[0009]S3.服务主节点在收到大量交易时,使用布谷鸟过滤器将单链结构扩展为有向无环图;
[0010]S4.区块链系统在交易频繁的情况下,在有向无环图的结构下记录交易;
[0011]S5.区块链系统在交易不频繁的情况下,由有向无环图收敛成为单链结构。
[0012]优选的,系统启动、确定服务主节点和重选服务主节点的具体操作如下:
[0013]S1.1每个服务节点读取配置中相同的、预生成的初始区块;将配置中所有服务节点的地址排序后,写入每个服务节点配置中的服务节点列表ServeList,设共有n个服务节点被写入该列表,设当前主节点索引i=0;
[0014]S1.2每个服务节点以无服务主节点的状态启动,启动后默认将ServeList[i]服务节点列表中的第i

1个节点作为预备服务主节点,并发送存活探测请求;
[0015]S1.3 ServeList[i]节点一一响应存活探测请求,并定期广播自己存活的心跳消息;
[0016]S1.4其余服务节点在收到存活探测响应或ServeList[i]的心跳消息后,广播ServeList[i]的存活确认消息;
[0017]S1.5其余节点在收到超过(n/2)个不同来源的关于当前预备服务主节点ServeList[i]的心跳消息或存活确认消息后,将当前预备服务主节点设为服务主节点,选主完成;否则,执行步骤S1.7;
[0018]S1.6若其余服务节点在一定时间内未接收到服务主节点ServeList[i]的心跳消息,广播重选主请求;
[0019]S1.7收到重选主请求的节点确定最近是否收到当前服务主节点的心跳消息:若未收到,发送同意重选举的响应;否则,发送拒绝重选举的响应;
[0020]S1.8节点在收到超过(n/2)个不同来源的关于ServeList[i]的重选举请求后,计算i=(i+1)mod n,并将ServeList[i]作为预备服务主节点,向其发送服务节点存活探测请求;并执行步骤S1.3。
[0021]优选的,交易生成到被传送至服务主节点具体操作如下:
[0022]S2.1用户通过区块链系统的客户端生成交易,并将交易发送至区块链服务节点;
[0023]S2.2收到交易的服务节点判断自己是否为服务主节点。
[0024]优选的,服务主节点在收到大量交易时,使用布谷鸟过滤器将单链结构扩展为有向无环图的具体操作为:
[0025]S3.1服务主节点若在一秒的时间内收到超过一定数量的交易,则提取出每个交易的交易发起方,向布谷鸟过滤器列表中的布谷鸟过滤器依次查询交易发起方是否存在;
[0026]S3.2通过步骤S3.1的查询请求,找到满足交易发起方在该布谷鸟过滤器中不存在的首个布谷鸟过滤器;若不存在这样的布谷鸟过滤器,新建一个布谷鸟过滤器,加入布谷鸟过滤器列表的尾部,作为满足上述条件的布谷鸟过滤器;
[0027]S3.3尝试将交易和交易的发起方插入到步骤S3.2中找到的布谷鸟过滤器中;
[0028]S3.4若布谷鸟过滤器列表首的布谷鸟过滤器容量已满,或是计时器计时超时,则根据布谷鸟过滤器中的交易发起方对交易进行划分,再使用多个线程,将划分后的交易并行打包成多个区块,再将区块向其它服务节点进行分发;
[0029]S3.5在服务主节点收到超过一半的服务节点的分发确认请求后,将短时间内确认分发的区块并行链接在上个最新生成的区块上;
[0030]S3.6服务主节点将已确认分发区块中对应的交易发起方从布谷鸟过滤器列表首的布谷鸟过滤器中删除,如果删除交易发起方后布谷鸟过滤器为空,则将该布谷鸟过滤器从其列表中删除,让下个布谷鸟过滤器成为新的布谷鸟过滤器列表首的元素并开始计时。
[0031]优选的,区块链系统在交易频繁的情况下,在有向无环图的结构下记录交易的具体操作如下:
[0032]S4.1服务主节点对于布谷鸟过滤器列表中的第二个布谷鸟过滤器,查询交易发起方在中是否存在于布谷鸟过滤器列表的第一个布谷鸟过滤器中;
[0033]S4.2若存在:则在第二个布谷鸟过滤器中进行下一个交易发起方的查询;否则,从第二个布谷鸟过滤器中删除该交易发起方并加入到布谷鸟过滤器列表的第一个布谷鸟过滤器中,直到布谷鸟过滤器列表中第一个布谷鸟过滤器的容量已满或第二个布谷鸟过滤器中不包含任何交易发起方;且如果在删除过程中布谷鸟过滤器列表中的第二个布谷鸟过滤器为空,则删除该为空的布谷鸟过滤器;
[0034]S4.3在步骤S4.2中搜索完毕第二个布谷鸟过滤器或第一个布谷鸟过滤器已达到
最大容量后,布谷鸟过滤器列表重新开始计时;
[0035]S4.4在计时器计时到指定的时间后,服务主节点根据布谷鸟过滤器列表的第一个布谷鸟过滤器中未处理过的交易发起方对交易进行划分,再使用多个线程,将划分后的交易并行打包成多个区块,再将区块向其它服务节点进行分发;
[0036]S4.5若服务主节点收到超过一半的服务节点的分发确认请求,则将短时间内确认分发的区块并行链接在最近确认分发的区块上,以此来扩展有向无环图结构;
[0037]S4.6按照与步骤S3.6相同的方式操作布谷鸟过滤器列表中的布谷鸟过滤器。
[0038]优选的,区块链系统在交易不频繁的情况下,由有向无环图收敛成为单链结构具体操作如下:
[0039]S5.1若服务主节点在一秒时间内本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于有向无环图和布谷鸟过滤器的区块链系统构建方法,其特征在于:所述区块链系统构建方法包括以下步骤:S1.系统启动、确定服务主节点和重选服务主节点;S2.交易生成到被传送至服务主节点;S3.服务主节点在收到大量交易时,使用布谷鸟过滤器将单链结构扩展为有向无环图;S4.区块链系统在交易频繁的情况下,在有向无环图的结构下记录交易;S5.区块链系统在交易不频繁的情况下,由有向无环图收敛成为单链结构。2.根据权利要求1所述的基于有向无环图和布谷鸟过滤器的区块链系统构建方法,其特征在于:系统启动、确定服务主节点和重选服务主节点的具体操作如下:S1.1每个服务节点读取配置中相同的、预生成的初始区块;将配置中所有服务节点的地址排序后,写入每个服务节点配置中的服务节点列表ServeList,设共有n个服务节点被写入该列表,设当前主节点索引i=0;S1.2每个服务节点以无服务主节点的状态启动,启动后默认将ServeList[i]服务节点列表中的第i

1个节点作为预备服务主节点,并发送存活探测请求;S1.3 ServeList[i]节点一一响应存活探测请求,并定期广播自己存活的心跳消息;S1.4其余服务节点在收到存活探测响应或ServeList[i]的心跳消息后,广播ServeList[i]的存活确认消息;S1.5其余节点在收到超过(n/2)个不同来源的关于当前预备服务主节点ServeList[i]的心跳消息或存活确认消息后,将当前预备服务主节点设为服务主节点,选主完成;否则,执行步骤S1.7;S1.6若其余服务节点在一定时间内未接收到服务主节点ServeList[i]的心跳消息,广播重选主请求;S1.7收到重选主请求的节点确定最近是否收到当前服务主节点的心跳消息:若未收到,发送同意重选举的响应;否则,发送拒绝重选举的响应;S1.8节点在收到超过(n/2)个不同来源的关于ServeList[i]的重选举请求后,计算i=(i+1)mod n,并将ServeList[i]作为预备服务主节点,向其发送服务节点存活探测请求;并执行步骤S1.3。3.根据权利要求2所述的基于有向无环图和布谷鸟过滤器的区块链系统构建方法,其特征在于:交易生成到被传送至服务主节点具体操作如下:S2.1用户通过区块链系统的客户端生成交易,并将交易发送至区块链服务节点;S2.2收到交易的服务节点判断自己是否为服务主节点。4.根据权利要求1所述的基于有向无环图和布谷鸟过滤器的区块链系统构建方法,其特征在于:服务主节点在收到大量交易时,使用布谷鸟过滤器将单链结构扩展为有向无环图的具体操作为:S3.1服务主节点若在一秒的时间内收到超过一定数量的交易,则提取出每个交易的交易发起方,向布谷鸟过滤器列表中的布谷鸟过滤器依次查询交易发起方是否存在;S3.2通过步骤S3.1的查询请求,找到满足交易发起方在该布谷鸟过滤器中不存在的首个布谷鸟过滤器;若不存在这样的布谷鸟过滤器,新建一个布谷鸟过滤器,加入布谷鸟过滤器列表的尾部,作为满足上述条件的布谷鸟过滤器...

【专利技术属性】
技术研发人员:孟奇秦雪娇
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1