联盟链交易同步优化方法、计算机可读介质和电子设备技术

技术编号:30637887 阅读:14 留言:0更新日期:2021-11-04 00:26
本发明专利技术公开了一种联盟链交易同步优化方法、计算机可读介质和电子设备。其中方法包括以下步骤:S1,通过区块链客户端创建一笔签名交易;S2,获取参与联盟链的所有节点的公钥,通过哈希算法将每个节点公钥哈希后映射到一个一致性哈希环上;S3,计算出第i个交易哈希值;S4,按照预设方向在哈希环上查找与第i个交易哈希值距离最近的节点公钥;S5,将交易内容和递增序号i发送给查找到节点公钥对应的节点,收到交易的节点,将交易内容保存到节点交易池;S6,直到交易内容已发送给K个节点;S7,当有新的区块产生时,出块节点从本节点在哈希环上的位置为起点,按照预设方向从哈希环上的每个节点获取该节点交易池中的所有交易。节点获取该节点交易池中的所有交易。节点获取该节点交易池中的所有交易。

【技术实现步骤摘要】
联盟链交易同步优化方法、计算机可读介质和电子设备


[0001]本专利技术属于区块链
,具体涉及一种联盟链交易同步优化方法。

技术介绍

[0002]区块链运行依赖于一个由P2P(Peer to Peer,端对端)协议组成的对等网络,各节点间通过交易同步机制获取交易数据,节点验证交易数据并执行,通过共识算法保证区块链系统在部分节点出现软硬件错误、网络阻塞、网络超时及节点作弊等状况时能够容错并达成最终状态一致。其中作弊行为是指节点篡改交易内容、丢弃交易、打乱交易顺序、进行恶意投票等攻击区块链网络的行为。为了保证区块链中一笔交易在个别节点网络通信超时、宕机或作弊时也要送达所有节点,现有的交易同步方式一般是区块链客户端发送交易到多个随机节点,每个收到交易的节点,不区分交易来源,会尽可能的将交易转发给给通过P2P连接的其他节点,通过去中心化的冗余广播方式完成交易在区块链网络中的同步。
[0003]此同步机制存在大量的交易重复发送,效率较低的问题,且消息广播数量和节点规模呈O(n
²
)复杂度关系,限制了区块链节点规模的扩展性,也是区块链交易性能的重要瓶颈。联盟链是指由多个已知身份的机构或组织组成的、共同控制的区块链。联盟链不同于公有链开放系统,节点数较少,一般是运行在网络环境较好的局域网中,且各个节点需要通过公私钥证书机制对身份认证成功后才能参与,作弊可能性较低。

技术实现思路

[0004]鉴于以上存在的技术问题,本专利技术提供一种联盟链交易同步优化方法、计算机可读介质和电子设备,用于通过对交易同步方式的优化,降低交易广播、交易转发过程中存在的交易重复发送数据冗余、带宽浪费的问题。
[0005]为解决上述技术问题,本专利技术采用如下的技术方案:本专利技术第一方面提供了一种联盟链交易同步优化方法,包括以下步骤:S1,通过区块链客户端创建一笔签名交易;S2,获取参与联盟链的所有节点的公钥,通过哈希算法将每个节点公钥哈希后映射到一个一致性哈希环上;S3,根据交易内容和递增序号i,递增序号每次递增1,通过哈希算法对交易内容和递增序号进行哈希,计算出第i个交易哈希值;S4,按照预设方向在哈希环上查找与第i个交易哈希值距离最近的节点公钥;S5,将交易内容和递增序号i发送给查找到节点公钥对应的节点,,如果交易内容已发给过该节点,则不操作;如果交易发送成功,则该节点将交易内容和递增序号i保存到节点交易池,区块链客户端创建一条记录,标记交易内容已发送给该节点;如果与该节点之间无法建立网络连接或通信超时或交易发送失败,则不操作;S6,重复S3至S5,直到交易内容已成功发送给K个不同节点;S7,当有新的区块产生时,出块节点从本节点在哈希环上的位置为起点,按照预设
方向从哈希环上的每个节点获取该节点交易池中的所有交易;S8,出块节点将收到的交易,去除重复交易后,将去重后的所有交易内容打包进新的区块;S9,出块节点将新的区块广播给联盟链中其他节点,联盟链中所有节点对新区块进行共识;S10,共识成功后,其他节点通过交易签名验证区块中每笔交易是否被篡改,验证成功后执行交易;S11,节点从本地交易池删除已经被打包进区块的交易。
[0006]优选地,K取值为大于联盟中可能作弊或受到攻击的节点数;优选地,通过哈希算法将每个节点公钥哈希后映射到一个一致性哈希环上,具体为:联盟链节点总数为N,通过哈希算法将N个节点公钥哈希后映射到一个0~2^
32
次方的一致性哈希环上。
[0007]优选地,进一步包括新的节点加入,新节点加入包括一个全新的未参与过交易同步的节点加入联盟链,或是已经参与过交易同步的节点因为网络问题或节点宕机暂时未参与联盟链,网络恢复或节点重启后重新加入联盟链。
[0008]优选地,新的节点加入具体包括:S21,对新加入的节点公钥进行哈希,映射到当前联盟链的哈希环上,生成新的哈希环;S22,定位新加入的节点在哈希环上的位置,按照预设方向查找到距离新加入节点最近的一个节点;S23,新加入节点向距离新加入节点最近的一个节点发起交易同步请求;S24,距离新加入节点最近的一个节点收到请求后,对交易池中的所有交易,根据交易内容和递增序号i重新计算生成交易哈希,并在哈希环上比对生成的交易哈希,将在哈希环上距离新加入节点更近的交易内容和递增序号i发送给新加入节点,并将所发出的交易从自身交易池中删除;S25,新加入节点将收到的交易内容和递增序号i保存到交易池。
[0009]优选地,进一步包括节点的退出, 节点退出包括已经参与过交易同步的节点因为网络问题或节点宕机暂时不参与交易同步,或者是节点永久性退出联盟链,不再参与交易同步。
[0010]优选地,所述节点退出具体包括:S31,对退出的节点公钥进行哈希,映射到当前联盟链的哈希环上;S32,定位退出的节点在哈希环上的位置,按照预设方向查找到距离退出节点最近的一个节点;S33,退出的节点在退出前向距离退出节点最近的一个节点发起交易同步请求;S34,距离退出节点最近的一个节点收到交易同步请求后,向要退出的节点发起请求,将退出节点交易池中的所有交易存储到本地交易池中;S35,将退出节点从哈希环上移除,生成新的哈希环。
[0011]本专利技术第二方面提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的联盟链交易同步优化方法。
[0012]本专利技术第三方面提供了一种电子设备,包括:一个或多个中央处理器负责数据的算术运算和逻辑运算加工处理的运算器;负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问的控制器;存储装置,用于存储一个或多个程序,包括中央处理器能直接寻址访问的内存储器和包括硬盘、光盘、U盘在内的外存储器;包括键盘、鼠标等的实现计算程序和原始数据的输入设备;包括液晶显示器、扬声器等实现计算结果输出的输出设备, 当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述联盟链交易同步优化方法。
[0013]采用本专利技术具有如下的有益效果:(1)本专利技术通过对交易同步方式的优化,降低交易广播、交易转发过程中存在的交易重复发送数据冗余、带宽浪费的问题,使交易同步消息量降低到O(N+K)复杂度,提升联盟链性能和可扩展性。
[0014](2)本专利技术通过一致性哈希算法,优化了联盟链中增加节点、删除节点、节点网络波动带来的交易数据失效问题。
[0015](3)本专利技术通过对交易内容加自增变量进行哈希,随机指定交易广播节点,解决了一致性哈希环上部分相邻节点联合作弊带来的安全问题。
[0016](4)本专利技术通过对交易内容和递增序号i进行哈希决定交易广播节点的方式,使不同交易平均分布在整个区块链网络中,避免交易分布不均带来的单点负载过高问题。
附图说明
[0017]图1为为本专利技术实施例的联盟链交易同步优化方法的步骤流程图;图2为节点映射到一致性哈希环的示意图;图3为交易被哈希后在哈希环上不同节点分布示意图;图4为联盟链中新节点加入时交易转发的流程图;图5为联盟本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种联盟链交易同步优化方法,其特征在于,包括以下步骤:S1,通过区块链客户端创建一笔签名交易;S2,获取参与联盟链的所有节点的公钥,通过哈希算法将每个节点公钥哈希后映射到一个一致性哈希环上;S3,根据交易内容和递增序号i,递增序号每次递增1,通过哈希算法对交易内容和递增序号进行哈希,计算出第i个交易哈希值;S4,按照预设方向在哈希环上查找与第i个交易哈希值距离最近的节点公钥;S5,将交易内容和递增序号i发送给查找到的距离最近节点公钥对应的节点,如果交易内容已发给过该节点,则不操作;如果交易发送成功,则该节点将交易内容和递增序号i保存到节点交易池,区块链客户端创建一条记录,标记交易内容已发送给该节点;如果与该节点之间无法建立网络连接或通信超时或交易发送失败,则不操作;S6,重复S3至S5,直到交易内容已成功发送给K个不同节点;S7,当有新的区块产生时,出块节点从本节点在哈希环上的位置为起点,按照预设方向从哈希环上的每个节点获取该节点交易池中的所有交易;S8,出块节点将收到的交易,去除重复交易后,将去重后的所有交易内容打包进新的区块;S9,出块节点将新的区块广播给联盟链中其他节点,联盟链中所有节点对新区块进行共识;S10,共识成功后,其他节点通过交易签名验证区块中每笔交易是否被篡改,验证成功后执行交易;S11,节点从本地交易池删除已经被打包进区块的交易。2.如权利要求1所述的联盟链交易同步优化方法,其特征在于,预设方向为顺时针或逆时针,每次查找方向一致即可。3.如权利要求1所述的联盟链交易同步优化方法,其特征在于,K取值为大于联盟中可能作弊或受到攻击的节点数。4.如权利要求1所述的联盟链交易同步优化方法,其特征在于,通过哈希算法将每个节点公钥哈希后映射到一个一致性哈希环上,具体为:联盟链节点总数为N,通过哈希算法将N个节点公钥哈希后映射到一个0~2^
32
次方的一致性哈希环上。5.如权利要求1至4任一所述的联盟链交易同步优化方法,其特征在于,进一步包括新的节点加入,新节点加入包括一个全新的未参与过交易同步的节点加入联盟链,或是已经参与过交易同步的节点因为网络问题或节点宕机暂时未参与联盟链,网络恢复或节点重启后重新加入联盟链。6.如...

【专利技术属性】
技术研发人员:赵刚程希冀滕海明张森罗骁陈柏臻
申请(专利权)人:杭州宇链科技有限公司
类型:发明
国别省市:

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

1