1.一种可信区块链分片性能优化方法,其特征在于,所述优化方法包括以下步骤:S1,设置分片节点信任度计算所需要的信任评测项,基于信任评测项自动收集分片节点状态数据和行为数据并存储于可信区块链中;
S2,根据步骤S1的收集数据计算分片节点信任度;
S3,动态更新节点信任度,摒弃分片节点信任度达不到预设信任度要求的分片,并且根据分片的信任需求自适应动态调节节点信任更新频率;
S4,以分片容错率、片内信任度和跨片边数作为衡量指标,构建可信区块链分片性能优化模型;该可信区块链分片性能优化模型以在最小跨片边数的基础上片内信任度最高为约束条件,计算得到交易的最优分片分配结果,且计算得到的分片容错率小于分片容错率阈值;其中,分片容错率是分片中出错节点所占的比例,片内信任度是分片的所有分片节点信任度的平均值。
2.根据权利要求1所述的可信区块链分片性能优化方法,其特征在于,步骤S1中,所述信任评测项包括分片内的交易处理数据和跨片的交易处理数据;该交易处理数据包括节点状态和节点行为数据,均来自于各节点所在的分片;
所述节点状态和节点行为数据包括分片节点的信任评价、成功处理分片交易数、处理交易时出现的错误数与总处理次数、稳定运行时间、总时间和处理时长。
3.根据权利要求2所述的可信区块链分片性能优化方法,其特征在于,根据下述公式分别计算分片节点的转发率、记账率、验证率和响应率:分片节点转发率=片内成功转发分片交易数/片内总转发交易数;
分片节点记账率=片内成功记账分片交易数/片内总记账交易数;
分片节点验证率=片内成功验证分片交易数/片内总验证交易数;
分片节点响应率=片内成功交易数+处理跨片交易数/处理时长。
4.根据权利要求2所述的可信区块链分片性能优化方法,其特征在于,步骤S1中,所述基于信任评测项自动收集分片节点状态数据和行为数据并存储于可信区块链中的过程包括以下步骤:
以太坊建立抽象的基础层,编制自动化脚本代码组成相应的智能合约并部署在以太坊区块链系统上,并在其中设立自由定义的所有权规则、交易方式和状态转换函数;该智能合约由区块链交易触发后,自动执行读取评测项信息并在区块链中写入读取数据的操作;
该智能合约制定和调用的过程包括:通过账户导入以太坊节点,使用合约语言Solidity编写智能合约;使用以太坊控制台来编译智能合约,并将编译好的智能合约部署到网络中;智能合约被打包保存到以太坊区块链的合约部署的地址上;基于智能合约部署的地址调用该智能合约其中,信任评价是由与节点有交互的其他节点提供。
5.根据权利要求1所述的可信区块链分片性能优化方法,其特征在于,步骤S2中,所述计算分片节点信任度的过程包括以下步骤:记分片节点i有n个信任评测项,在t时刻评测项的信任向量记为a=(ai1,ai2,...,aij,...ain),评测项的权重向量为 根据下述公式计算分片i的节点信任度Ti:
式中,aj≥0, Δi=Mi/Ni,Mi和Ni分别表示分片节点i的记账、验证、转发交易、处理跨片交易的错误数和总数。
6.根据权利要求1所述的可信区块链分片性能优化方法,其特征在于,步骤S3中,所述根据分片的信任需求自适应动态调节节点信任更新频率的过程包括以下步骤:令fi为节点i的信任更新频率,Γi为节点i的信任度更新周期,fi=1/Γi,根据下述公式计算Γi:
式中,Ti是计算得到的节点i的信任度,Tmin为预先设置的最小更新周期;Tmax为最大更新周期;ω是比例系数,0.5≤ω≤1;y1、y2和y3为自适应调整的参数,且0<y1<y2<y3<1;
其中,初始时的信任更新周期为(Tmax+Tmin)/2。
7.根据权利要求1所述的可信区块链分片性能优化方法,其特征在于,步骤S4中,所述以分片容错率、片内信任度和跨片边数作为衡量指标,构建可信区块链分片性能优化模型;
该可信区块链分片性能优化模型以在最小跨片边数的基础上片内信任度最高为约束条件,计算得到交易的最优分片分配结果的过程包括以下步骤:构建可信区块链分片性能优化模型:G=(V,E)
式中,V是交易集合构成的顶点集,E是交易之间关系集合构成的边集;
基于交易流图,寻找基于G的分片集合Q={S1,S2,...,Sk},Sk表示分片k且 Sk=(Vk,Ek),K=|Q|,
当区块链系统有K个分片时,对于输入d新交易u,基于可信区块链分片性能优化模型,对分片交易进行优化放置,包括如下步骤:(a)基于可信区块链中存储的分片节点信息,根据下述公式计算分片k的分片容错率Lk:Lk=Fk/|Vk|
式中,Fk是分片k中的出错节点个数,|Vk|是分片k中的节点总数;
(b)对Lk进行分析:
如果Lk≤Ω的分片为1个,则将u放到该分片,结束流程;
如果Lk≤Ω的分片为0个,判断K个分片均不能满足分片容错率的阈值要求,交易放置失败,区块链系统摒弃恶意节点并对可信节点重新划分,形成新一轮的多个分片,转入步骤(a);
如果Lk≤Ω的分片为有H个,1<H≤K,则进入步骤(c);
其中,Ω是最低分片容错率阈值;
(c)统计在每个分片中放置交易u而产生的跨片边数:式中,ekj表示交易u放入分片k时与分片j产生的跨片边数,其中j,k∈[1,H]且j≠k;
(d)根据下述公式筛选出具有最少跨片边数Q的分片集合;
(e)如果具有最少跨片边数Q的分片集合中只有一个分片,则将交易u放置到该分片中,结束流程;如果具有相同值Q的分片有X个,1<X≤H,转入步骤(f);
(f)根据下述公式计算分片集合中X个分片的片内信任度*
式中,k∈[1,X];
将交易u放置到片内信任度最高的分片中。