技术新讯 > 电子通信装置的制造及其应用技术 > 一种基于节点贡献值实现负载均衡的区块链分片方法  >  正文

一种基于节点贡献值实现负载均衡的区块链分片方法

  • 国知局
  • 2024-08-02 14:37:05

本发明涉及区块链分片,尤其是涉及一种基于节点贡献值实现负载均衡的区块链分片方法。

背景技术:

1、近年来,区块链技术持续蓬勃发展,广泛应用到物联网、工业互联网、金融系统等领域。然而,随着应用设备和传输数据的爆炸式增长,区块链的可扩展性问题逐渐显现,这一问题限制了区块链在大规模应用场景下的发展。为了解决这一挑战,数据库领域的分片技术被引入到区块链领域,极大地提升了区块链的吞吐量,被学术界和工业界认为是解决区块链系统可扩展性问题的最有效的方法之一。

2、区块链分片技术的核心思想是将整个区块链网络拆分成若干个独立的子网络,每个子网络称为一个“分片”。整个系统的事务分散到分片之中,每个分片独立处理事务,使得整个系统能够并行执行多个事务,从而使区块链的吞吐量可以实现近似线性的增长。区块链分片根据实现方式可以分为三种主要类型:网络分片、事务分片和状态分片。网络分片是指将整个区块链网络划分成多个分片,分片之间可以并行运行,从而提高了整个网络的吞吐量和性能。网络分片的目标是减少整个网络的拥塞,并降低参与节点的负担,使区块链能够支持大规模的交易和用户。网络分片是其他分片方式的基础;交易分片是一种将交易按某种方式分组或分类的方法,以便它们可以并行处理。不同的交易分片可以独立验证和打包交易,而不会相互干扰。交易分片有助于提高区块链网络的交易处理能力,减少交易的拥塞,并加速交易确认的速度。交易分片通常与网络分片结合使用,以实现全面的扩展性;状态分片是指整个账本被分割成完全不同的部分,并分别存储在各个分片内,通常情况下,分片内的节点会存储相同版本的账本数据。这些分片构成了一个完整的账本,使整个分片网络能够共同协作。这有助于降低节点的存储负担,提高区块链的可扩展性。在所有的分片当中,状态分片是最具挑战的分片方式。

3、elastico是第一个将分片技术应用到区块链的分片方案,应用于非许可链场景。为保证分片安全性,该方案采取随机分片的方法,在每个共识周期的开始,每个参与者都要计算出一个工作量证明(proof of work, pow)的答案。工作量证明所需的大量算力为系统提供了安全性保证,同时工作量证明答案的结果将作为节点分片的依据。为了应对分片算法中出现的处理耗时过长的问题,后续的omniledger协议提出使用分布式随机数生成方案和可验证随机函数来配置分片,减少了分片过程的计算开销。针对跨分片事务确认时间严重制约分片性能的问题,rapidchain协议设计了分片间的路由协议替代广播的方式来处理跨分片事务,减少了通信开销;pyramid系统允许一些特殊分片存储多个分片的区块,充当桥梁的角色,直接验证打包跨分片事务,从而降低了跨分片事务确认的延迟。brokerchain协议针对账户/余额模型,设计了针对账户的分片机制,注重通过减少跨分片事务数量来提升系统性能。针对分片间负载均衡问题,transformers协议针对账户/余额模型的状态分片设计了兼顾负载均衡和跨分片事务数量的分片算法,依据账户交易图将分片内部的事务和跨分片事务进行度量,进而描述分片的负载情况。

4、然而,现有的区块链分片方案在节点划分和账户划分时,仍缺乏对于分片本身的安全性和性能的双重考虑,也未充分考虑到节点对于分片安全性和性能的贡献程度。此外,现有方案考虑负载均衡时主要追求分片之间处理事务的数量的一致,而忽略了分片内事务和跨分片事务所需处理时间的差异,也忽略了不同分片之间的性能差异,这使得真正的分片间负载均衡难以实现。

技术实现思路

1、本发明的目的是提供一种基于节点贡献值实现负载均衡的区块链分片方法,以解决上述背景技术中提到的问题。

2、为实现上述目的,本发明提供了一种基于节点贡献值实现负载均衡的区块链分片方法,包括四个阶段,四个阶段构成一个共识周期(epoch),四个阶段分别为节点分配阶段,账户分配阶段,交易处理阶段和数据更新阶段;

3、节点分配阶段是指参与到区块链的工作节点经过求解pow答案后确定工作节点身份,首先随机选取一部分节点作为分配节点,剩余节点作为工作节点,然后根据安全贡献值确定工作节点所属工作分片,其中分配节点所属分片为分配委员会,工作节点所属分片为工作分片;

4、账户分配阶段是指分配委员会根据上一个epoch的账户交易数据和本epoch的工作节点的性能贡献值将账户分配给各个分片;

5、交易处理阶段是指各个工作分片处理属于本工作分片的账户的交易,并打包成块提交到本工作分片所属的交易链;

6、数据更新阶段是指分配委员会根据工作分片提交的贡献值报告来对节点贡献值进行更新,并根据工作分片提交的交易区块保存账户交易数据。

7、优选的,节点分配阶段的具体步骤如下:

8、sa1、从分配链的数据更新块中获取节点贡献值、交易数据和交易加权系数,其中安全贡献值在工作节点分配阶段使用,交易数据和交易加权系数在账户分配阶段使用;

9、sa2、分配委员会leader根据节点安全贡献值分为四个等级,将个工作节点按照安全贡献值进行从大到小排序,得到工作节点的排名,然后根据下面公式得到工作节点的等级;

10、;

11、sa3、将每个等级中的工作节点按照安全贡献值依次分配到个工作分片中,根据下面公式得到节点的所属工作分片,

12、;

13、sa4、通过pbft在分配委员会中对分配结果进行共识,分配委员会中通过pbft共识算法将工作节点分配结果在委员会内部进行投票;

14、sa5、判断是否达成共识,如果达成共识,执行sa6;如果没有达成共识,执行sa7;

15、sa6、广播工作节点分配结果;

16、sa7、更换分配委员会leader,更换分配委员会leader后执行sa1。

17、优选的,账户分配阶段具体步骤如下:

18、sb1、根据节点性能贡献值计算工作分片的性能预测值,工作分片的性能预测值由本工作分片的所有工作节点的性能贡献值累加得到;

19、sb2、根据账户交易数据构建账户交易图,账户交易数据包含上一个epoch中各个账户之间交易的总次数,根据该交易数据构建账户交易图,结点为账户,边代表上个epoch中进行了交易,边的权重代表交易次数;

20、sb3、将账户随机分配到各个工作分片;

21、sb4、针对每个账户计算移动其到邻居账户所在工作分片的值,并移动该账户到值最大且对应的工作分片,其中代表每个工作分片的预测交易处理时间,表示如下:

22、;

23、其中表示工作分片内的交易数,为跨分片交易数,为交易加权系数,为工作分片的性能预测值,在节点分配阶段已经从分配链中获得,在此基础上,账户从工作分片移动到工作分片的可以表示如下:

24、;

25、其中当账户所在工作分片只有一个账户时,,否则,为该账户移动后工作分片和工作分片的预测交易处理时间;

26、sb5、判断是否有账户改变所属工作分片,如果有账户改变所属工作分片,那么执行sb4;否则,执行sb6;

27、sb6、广播账户分配结果并构建账户分配块,将账户分配结果即账户-分片映射表写进区块在委员会内部进行pbft共识,达到共识后向工作节点广播账户分配结果,并将该区块即账户分配块添加到分配链中。

28、优选的,交易处理阶段具体步骤如下:

29、sc1、从待处理交易中选取交易双方中有账户属于本工作分片的交易;

30、sc2、验证交易并打包成块,通过本工作分片的交易链对交易进行验证,选取验证成功的交易打包成块;

31、sc3、通过pbft在分配委员会中对交易块进行投票,各个工作节点对交易块中下交易进行验证并投票;

32、sc4、判断是否达成共识,如果没有达成共识,执行sc5;如果达成共识,执行sc6;

33、sc5、更换分配委员会leader,更换完分配委员会leader后执行sc1;

34、sc6、分配委员会leader根据共识过程更新本地节点贡献值列表,其中贡献值分为安全贡献值和性能贡献值,安全贡献值和性能贡献值,根据本次共识处理的交易数和处理时间,以及工作节点是否为分配委员会leader更新节点的性能贡献值,一次epoch中第次更新后工作分片j的工作节点的性能贡献值表示如下:

35、;

36、其中表示主节点相对于从节点的奖罚权重,表示本次共识的从节点的数量,;

37、安全贡献值一次epoch中第次更新后安全贡献值表示如下:

38、;

39、其中表示提交区块成功的奖励权重,表示提交区块失败的惩罚权重,;

40、sc7、将交易块上链并广播给分配委员会。

41、优选的,数据更新阶段具体步骤如下:

42、sd1、工作节点提交贡献值报告给分配节点,其中包含本分片所在工作节点的安全贡献值和性能贡献值最近一次更新后的值,在本工作分片就贡献值报告进行pbft共识后,将报告发送给分配委员会;

43、sd2、分配节点更新节点贡献值并整理对账户交易数据,其中贡献值报告中的贡献值表示工作节点在本epoch中的贡献值,根据此值对节点全局贡献值进行更新:

44、;

45、其中表示本轮epoch之后节点的性能贡献值,表示本轮epoch之前工作节点的性能贡献值,表示本轮epoch最新一次更新后工作节点在本轮的性能贡献值,表示贡献值保留系数,同理对工作节点性能值更新:

46、;

47、更新完工作节点贡献值后对本轮epoch中账户交易情况进行整理,计算账户之间交易总次数,然后计算各个工作分片的跨分片事务和分片内事务的处理用时比,取平均值后作为的最新值,最后将贡献值数据、交易数据和值打包成块;

48、sd3、通过pbft在分配委员会中对数据更新结果进行投票;

49、sd4、判断是否达成共识,如果没有达成共识,执行sd5;如果达成共识,执行sd6;

50、sd5、更换分配委员会leader,更换完分配委员会leader后执行sd2;

51、sd6、将数据更新块提交到分配链。

52、因此,本发明采用上述的一种基于节点贡献值实现负载均衡的区块链分片方法,具有以下有益效果:

53、(1)通过对节点进行安全贡献值和性能贡献值设计,从安全性和性能两方面对节点和分片进行考量,通过对分片内事务和跨分片事务处理时间的区分,对分片负载进行重新定义;

54、(2)利用节点安全贡献值和pow算法,在节点分配时提高了分片的安全性;利用节点性能贡献值和社团划分算法,在账户分配时实现负载均衡和跨分片事务数量少,提高了分片的性能。

55、下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

本文地址:https://www.jishuxx.com/zhuanli/20240801/243385.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。