System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及区块链,具体为一种基于改进pbft算法的区块链溯源方法及系统。
技术介绍
1、
2、利用区块链技术去中心化的特点,采用一种全新的数据库技术,可以高价值、多方位对交易数据进行保护,并通过密码学技术保护交易数据内容难以进行篡改、造假或者抵赖。区块链技术的应用有助于建立新的交易平台建设体系,以去中心化、开放的特征,强调和尊重时长交易的自愿原则,发挥统筹协调机制。
3、鉴于此,有必要研究一种基于改进pbft算法的区块链溯源方法,将改进后的pbft算法融入合约层中,提高了算法的效率、吞吐量、容错率,使供应链中各成员无需建立相互之间的信任,仅通过各个节点的交易记录签订智能合约以保证信息的安全性。
技术实现思路
1、鉴于上述存在的问题,提出了本专利技术。
2、因此,本专利技术解决的技术问题是:现有的区块链溯源技术中pbft算法的收敛时间较高、主节点选取策略有待改进、节点不能被动态监测等问题。
3、为解决上述技术问题,本专利技术提供如下技术方案:一种基于改进pbft算法的区块链溯源方法,包括:
4、封装区块链的底层数据结构以及相关技术;
5、封装区块链间各节点的组网方式;
6、使用改进之后的pbft算法以代替以太坊使用的工作量证明和权益证明;
7、采用以太坊的智能合约作为开发工具,设计并编码实现了溯源系统的智能合约;
8、使用gui组件对各项数据进行展示。
9、作为
10、利用密码学算法和技术保证账户和交易的实现与安全;
11、所述封装区块链间各节点的组网方式包括下,在网络层封装区块链间各节点分布式的组网机制,包括节点间建立链接所使用的p2p节点间的信息传输机制和每个节点对区块的验证机制。
12、作为本专利技术所述的基于改进pbft算法的区块链溯源方法的一种优选方案,其中:所述改进之后的pbft算法包括,
13、共识节点编号为0,1…n-1,每一个节点对应一个视图,每次共识均在一个视图中进行,令视图编号为p,v为节点编号,视图与主节点编号规则为:
14、p=v mod n
15、每一个共识节点均可以为一个节点投票,投票为广播形式,投票过半数的节点成为主节点;
16、若没有确定主节点,则选取票数最多的三个节点,再次投票,票数最多的节点当选主节点;
17、主节点确定之后,确定视图的切换顺序,下次若没有节点加入或退出,则直接按照顺序切换视图;
18、若有节点加入或者退出,则为新增的节点分配投票权,并对节点和对应视图进行编号,删除退出节点和视图,同时生成信用评价,信用评价
19、
20、其中,为主节点发现普通节点间交易违规可获得的信用奖励;a1为普通节点交易判断系数,普通节点违规为1,未违规为0;cn为普通节点除额外信用值奖励外所能获得的信用值;n为区块中打包的总交易数;
21、视图切换协议触发时,若有新增节点,重新进行投票,并确定视图切换次序。
22、作为本专利技术所述的基于改进pbft算法的区块链溯源方法的一种优选方案,其中:当区块链中全部为诚实节点时,采用两阶段协议达成共识;当拜占庭节点出现时,切换为pbft算法,算法使用以下策略达成一致:
23、系统根据节点选择策略计算出一个主节点p,由p发起一致性协议;
24、主节点打包交易记录;并向其余副本节点发送广播消息,同时生成信用评价,信用评价
25、
26、其中,为主节点出块时间评价参数;a2、a3为出块时间评价系数,出块时间在允许范围内,a2为1,a3为0;超出时间允许范围,a2为0,a3为-1;t1为出块时间,单位为s,对出块的时间限制为3s;
27、其余备份节点收到主节点消息后,验证该消息,并向主节点发送确认消息;
28、主节点收到所有副本节点验证通过的消息后,将交易记录打包成区块并添加到区块链上,并向其余节点发送广播消息,同时生成cp、及信用评价;主节点发现收到来自备份节点的响应存在冲突或在一个时间段内的所有交易不合法,则认为备份节点中存在恶意节点,此时切换至pbft算法,若副节点发现主节点打包的区块与自己验证的区块不一致或在一个时间段内的所有交易不合法,则认为主节点故障,此时触发视图切换协议;
29、信用评价cp、及表示为:
30、
31、
32、cr2=b3·cp
33、其中,cp为主节点打包签名行为评价参数;为共识达成时间评价参数;为主节点生成区块未能通过共识,共识节点所能获得的信用奖励;a4为打包签名评价系数,该项取值由共识节点决定,共识通过取值为1,未通过为-1;b1、b2为共识评价系数,共识完成时间在允许范围内,b1为1,b2为0,共识时间超时,b1为0,b2为-1;2为共识达成时间,单位为s,对共识时间限制为3s;b3为主节点评价系数,主节点未通过共识为1,通过共识为0;
34、备份节点验证区块,并将区块同步到链上。
35、作为本专利技术所述的基于改进pbft算法的区块链溯源方法的一种优选方案,其中:所述改进之后的pbft算法还包括,算法的总流程:
36、由客户端c向系统发起交易请求,请求为m;
37、节点之间共同推举主节点p及对应视图v,若节点出现变化,则对p和v重新编号并生成信用评价,将节点接入进来;不触发视图切换,待主节点出错触发视图切换协议之后,再使用新确定的编号对应规则;
38、主节点p打包交易,并向所有备份节点广播一个准备消息<prepare,v,p,d>,同时生成信用评价,其中d是交易列表的摘要;
39、备份节点验证该消息,并向主节点发送一个确认消息<commit,v,p,i>;
40、主节点收到全部响应后将交易打包成区块,并将该区块转发给所有备份节点,区块格式<block,m,v,p>,同时生成cp、及信用评价;若收到两个或两个以上互相冲突的响应,或没有收到全部响应,则转到使用pbft协议进行共识过程;
41、若收到全部响应且无冲突,则备份节点验证区块,验证无误后将区块写入自己维护区块链;当验证不通过,则转到触发视图变更协议;
42、将区块写入自己维护区块链后,使用pbft协议进行共识过程;
43、当主节点出现故障,触发视图变更协议,回到节点之间共同推举主节点p及对应视图v,重新执行循环;
44、当主节点没有出现故障,节点向客户端发送反馈,一轮共识结束。
本文档来自技高网...【技术保护点】
1.一种基于改进PBFT算法的区块链溯源方法,其特征在于,包括:
2.如权利要求1所述的基于改进PBFT算法的区块链溯源方法,其特征在于:所述封装区块链的底层数据结构以及相关技术包括,在数据层保留区块链基本架构中数据层的基础范式,基于Merkle树用区块的方式和链式结构将供应链中产生的各数据进行存储;
3.如权利要求2所述的基于改进PBFT算法的区块链溯源方法,其特征在于:所述改进之后的PBFT算法包括,
4.如权利要求3所述的基于改进PBFT算法的区块链溯源方法,其特征在于:当区块链中全部为诚实节点时,采用两阶段协议达成共识;当拜占庭节点出现时,切换为PBFT算法,算法使用以下策略达成一致:
5.如权利要求4所述的基于改进PBFT算法的区块链溯源方法,其特征在于:所述改进之后的PBFT算法还包括,算法的总流程:
6.如权利要求5所述的基于改进PBFT算法的区块链溯源方法,其特征在于:所述智能合约包括,合约层结合智能合约技术,设计一种针对供应链溯源系统的智能合约;
7.如权利要求6所述的基于改进PBFT算法的
8.一种采用如权利要求1-7任一所述方法的基于改进PBFT算法的区块链溯源系统,其特征在于:
9.一种计算机设备,包括:存储器和处理器;所述存储器存储有计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种基于改进pbft算法的区块链溯源方法,其特征在于,包括:
2.如权利要求1所述的基于改进pbft算法的区块链溯源方法,其特征在于:所述封装区块链的底层数据结构以及相关技术包括,在数据层保留区块链基本架构中数据层的基础范式,基于merkle树用区块的方式和链式结构将供应链中产生的各数据进行存储;
3.如权利要求2所述的基于改进pbft算法的区块链溯源方法,其特征在于:所述改进之后的pbft算法包括,
4.如权利要求3所述的基于改进pbft算法的区块链溯源方法,其特征在于:当区块链中全部为诚实节点时,采用两阶段协议达成共识;当拜占庭节点出现时,切换为pbft算法,算法使用以下策略达成一致:
5.如权利要求4所述的基于改进pbft算法的区块链溯源方法,其特征在于:所述改进之后的pbft算法还包括,算法的总流程:
...
【专利技术属性】
技术研发人员:李家浩,熊峻,徐飞,沈鑫,尹钰君,赵毅涛,蔡华祥,王帮灿,陈然,王逸飞,骆钊,张绍芳,
申请(专利权)人:云南电网有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。