System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于区块链,尤其涉及一种用于区块链网络的分布式广播方法及区块链系统。
技术介绍
1、本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
2、在使用bft拜占庭容错的共识算法的特定联盟链场景中,交易节点是负责交易构建,提供接口服务的节点,不参与共识过程,只保证分布式账本的正确性,共识节点是参与区块共识的节点,负责区块的构建和共识,两种节点类型各自成一个群组。两个群组之间存在多种消息交互,其中一种比较重要的消息为区块消息。共识节点在区块通过共识后,需要将完整区块信息和所有共识节点对区块共识结果的签名写入到区块消息中并广播给交易节点。每个交易节点都需要接受到区块消息,验证各共识节点的签名进行区块验证和区块写入。此外,在共识节点区块上链时,会给其他所有节点广播区块哈希消息,包含已上链的区块哈希和区块高度,其他节点在收到该区块哈希时会进校验。
3、为保证所有交易节点一定能收到区块消息,传统的区块广播策略采用全广播的方式或采用goss ip广播策略。全广播的方式每一个共识节点都要广播区块消息给所有的交易节点,假设交易节点的个数为m,共识节点的个数为n,那么对于一个区块来说,该区块链涉及的区块消息个数为m*n。专利技术人发现,全广播的方式虽然安全可靠,但是有比较严重的性能损耗,区块链节点越多,全广播方式的性能越差,网络压力越大,goss ip广播方式为每个节点给相邻的节点广播消息,最终达到全网都能收到消息的目的,该方式虽然有较强的网络适应能力,但是消息广播路径长,节点重复收到消息次数
技术实现思路
1、为克服上述现有技术的不足,本专利技术提供了一种用于区块链网络的分布式广播方法及区块链系统,所述方案具备一定的容错性,能够在共识系统能够正常工作的前提下,即只要超过三分之二的共识节点正常工作并和交易节点进行通信,则保证每个交易节点一定能收到区块消息;同时,所述方案大幅度减少了每个共识节点需要广播的区块消息数,减少了网络资源和计算资源的损耗,减少了网络拥堵,大幅度提升了性能和通信效率。
2、根据本专利技术实施例的第一个方面,提供了一种用于区块链网络的分布式广播方法,所述区块链网络包括共识节点和交易节点,所述广播方法包括:
3、根据区块链节点的动态标识,分别对区块链中当前准入的交易节点和共识节点进行排序;
4、计算每个交易节点需要收到的消息数以及消息广播任务总数;
5、构建消息广播任务和交易节点的广播关系,其中,所述广播关系的构建具体为:对消息广播任务进行排列并编号;基于消息广播任务的编号及交易节点的编号,以保证预设消息广播任务号区间内的消息广播任务中不存在对同一交易节点的重复广播为约束条件,对交易节点进行消息广播任务的分配,实现消息广播任务和交易节点的广播关系构建;
6、每个共识节点根据自身编号按照预设策略选取广播任务进行广播。
7、进一步的,所述动态标识的计算具体为:基于区块链节点id拼接区块哈希后的字符串,计算所述字符串的哈希值,以所述哈希值作为节点的动态标识。
8、进一步的,所述构建消息广播任务和交易节点的广播关系,具体为:对于编号为i的交易节点以及编号为k的消息广播任务,将满足k%t=i的消息广播任务与该交易节点之间进行广播关系的构建,其中,t为交易节点数。
9、进一步的,所述每个共识节点根据自身编号按照预设策略选取广播任务进行广播,具体为:计算共识节点自身需要广播的区块消息数;基于自身需要广播的区块消息数,结合自身排序后的编号进行任务选取;对选取的消息任务进行广播。
10、进一步的,所述计算共识节点自身需要广播的区块消息数,具体采用如下公式:
11、
12、其中,b为共识节点自身需要广播的区块消息数,m为总的消息广播任务总数,c为共识节点数。
13、进一步的,当总的消息广播任务总数与共识节点数作模运算的结果不等于0,则存在剩余数量的消息广播任务不能被共识节点平分,则对于剩余的消息广播任务根据共识节点的排序序号从小到大依次进行分配,直至消息广播任务分配完毕。
14、进一步的,所述基于自身需要广播的区块消息数,结合自身排序后的编号进行任务选取,具体为:对于编号为j的共识节点,其选取的消息广播任务的任务号需满足大于等于j×b,且小于(j+1)×b,其中,b为共识节点自身需要广播的区块消息数。
15、进一步的,所述分别对区块链中当前准入的交易节点和共识节点进行排序,具体为:分别根据交易节点和共识节点的节点动态标识由小到大进行排序并依次编号,获得交易节点和共识节点的排序结果。
16、进一步的,所述计算每个交易节点需要收到的消息数以及消息广播任务总数,其中,每个交易节点需要收到的消息数的计算,采用如下方式:
17、
18、其中,n为每个交易节点需要收到的消息数,c为共识节点数;消息广播任务总数为交易节点总数乘以每个交易节点需要收到的消息数。
19、根据本专利技术实施例的第二个方面,提供了一种区块链系统,包括共识节点和交易节点,且所述系统在交易过程中执行如下广播策略:
20、根据区块链节点的动态标识,分别对区块链中当前准入的交易节点和共识节点进行排序;
21、计算每个交易节点需要收到的消息数以及消息广播任务总数;
22、构建消息广播任务和交易节点的广播关系,其中,所述广播关系的构建具体为:对消息广播任务进行排列并编号;基于消息广播任务的编号及交易节点的编号,以保证预设消息广播任务号区间内的消息广播任务中不存在对同一交易节点的重复广播为约束条件,对交易节点进行消息广播任务的分配,实现消息广播任务和交易节点的广播关系构建;
23、每个共识节点根据自身编号按照预设策略选取广播任务进行广播。
24、以上一个或多个技术方案存在以下有益效果:
25、(1)本专利技术所述方案提供了一种用于区块链网络的分布式广播方法及区块链系统,所述方案具备一定的容错性,能够在共识系统能够正常工作的前提下,即只要超过三分之二的共识节点正常工作并和交易节点进行通信,则保证每个交易节点一定能收到区块消息;
26、(2)本专利技术所述方案大幅度减少了每个共识节点需要广播的区块消息数,减少了网络资源和计算资源的损耗,减少了网络拥堵,大幅度提升了性能和通信效率;
27、(3)本专利技术所述方案中,节点采用不定向广播的方式,共识节点针对不同的区块消息动态地选择广播对象,可以有效防止出现针对特定节点消息作恶的情况。
28、本专利技术附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。
本文档来自技高网...【技术保护点】
1.一种用于区块链网络的分布式广播方法,所述区块链网络包括共识节点和交易节点,其特征在于,所述广播方法包括:
2.如权利要求1所述的一种用于区块链网络的分布式广播方法,其特征在于,所述动态标识的计算具体为:基于区块链节点ID拼接区块哈希后的字符串,计算所述字符串的哈希值,以所述哈希值作为节点的动态标识。
3.如权利要求1所述的一种用于区块链网络的分布式广播方法,其特征在于,所述构建消息广播任务和交易节点的广播关系,具体为:对于编号为i的交易节点以及编号为k的消息广播任务,将满足k%T=i的消息广播任务与该交易节点之间进行广播关系的构建,其中,T为交易节点数。
4.如权利要求1所述的一种用于区块链网络的分布式广播方法,其特征在于,所述每个共识节点根据自身编号按照预设策略选取广播任务进行广播,具体为:计算共识节点自身需要广播的区块消息数;基于自身需要广播的区块消息数,结合自身排序后的编号进行任务选取;对选取的消息任务进行广播。
5.如权利要求4所述的一种用于区块链网络的分布式广播方法,其特征在于,所述计算共识节点自身需要广播的区块消息数
6.如权利要求5所述的一种用于区块链网络的分布式广播方法,其特征在于,当总的消息广播任务总数与共识节点数作模运算的结果不等于0,则存在剩余数量的消息广播任务不能被共识节点平分,则对于剩余的消息广播任务根据共识节点的排序序号从小到大依次进行分配,直至消息广播任务分配完毕。
7.如权利要求4所述的一种用于区块链网络的分布式广播方法,其特征在于,所述基于自身需要广播的区块消息数,结合自身排序后的编号进行任务选取,具体为:对于编号为j的共识节点,其选取的消息广播任务的任务号需满足大于等于j×B,且小于(j+1)×B,其中,B为共识节点自身需要广播的区块消息数。
8.如权利要求1所述的一种用于区块链网络的分布式广播方法,其特征在于,所述分别对区块链中当前准入的交易节点和共识节点进行排序,具体为:分别根据交易节点和共识节点的节点动态标识由小到大进行排序并依次编号,获得交易节点和共识节点的排序结果。
9.如权利要求1所述的一种用于区块链网络的分布式广播方法,其特征在于,所述计算每个交易节点需要收到的消息数以及消息广播任务总数,其中,每个交易节点需要收到的消息数的计算,采用如下方式:
10.一种区块链系统,其特征在于,包括共识节点和交易节点,且所述系统在交易过程中执行如下广播策略:
...【技术特征摘要】
1.一种用于区块链网络的分布式广播方法,所述区块链网络包括共识节点和交易节点,其特征在于,所述广播方法包括:
2.如权利要求1所述的一种用于区块链网络的分布式广播方法,其特征在于,所述动态标识的计算具体为:基于区块链节点id拼接区块哈希后的字符串,计算所述字符串的哈希值,以所述哈希值作为节点的动态标识。
3.如权利要求1所述的一种用于区块链网络的分布式广播方法,其特征在于,所述构建消息广播任务和交易节点的广播关系,具体为:对于编号为i的交易节点以及编号为k的消息广播任务,将满足k%t=i的消息广播任务与该交易节点之间进行广播关系的构建,其中,t为交易节点数。
4.如权利要求1所述的一种用于区块链网络的分布式广播方法,其特征在于,所述每个共识节点根据自身编号按照预设策略选取广播任务进行广播,具体为:计算共识节点自身需要广播的区块消息数;基于自身需要广播的区块消息数,结合自身排序后的编号进行任务选取;对选取的消息任务进行广播。
5.如权利要求4所述的一种用于区块链网络的分布式广播方法,其特征在于,所述计算共识节点自身需要广播的区块消息数,具体采用如下公式:
6.如权利要求5所述的一种用于区块链网络的分布式广播...
【专利技术属性】
技术研发人员:史玉良,郑永清,王永良,张玉波,吴朋,仪莉,
申请(专利权)人:山大地纬软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。