1.一种在区块链中自适应调整采样窗口的方法,其特征在于,包括:
s1、基于全网高度h和采样窗口最大值nmax判定是否需要进行采样窗口调整,如果是,执行步骤s2,否则执行步骤s4;
s2、基于所述全网高度h、所述采样窗口最大值nmax、偏差计算采样区间a,再次判断需要进行采样窗口调整,如果是,执行步骤s3,否则执行步骤s4;
s3、基于所述全网高度h、所述采样窗口最大值nmax、偏差计算采样区间a、异常增大阀值b、异常缩小阀值c计算采样窗口调整值n;
s4、将所述采样窗口最大值nmax作为采样窗口调整值n。
2.根据权利要求1所述的在区块链中自适应调整采样窗口的方法,其特征在于,所述步骤s2进一步包括:
s21、基于所述全网高度h、所述采样窗口最大值nmax取索引i=h-nmax;
s22、判断所述索引i和所述偏差计算采样区间a是否满足i-1<0||i-2<0||i-a<0||i-a-1<0||i-a-2<0,如果是,则直至步骤s4,否则执行步骤s3。
3.根据权利要求1或2所述的在区块链中自适应调整采样窗口的方法,其特征在于,所述步骤s3进一步包括:
s31、获取索引i=h-nmax;
s32、基于所述索引、所述偏差计算采样区间a中的时间戳列表ts,以及所述偏差计算采样区间a,计算第一中位数m1=med(ts[i],ts[i-1],ts[i-2])以及第二中位数m2=med(ts[i-a],ts[i-a-1],ts[i-a-2]);
s33、基于所述第一中位数m1、第二中位数m2、所述偏差计算采样区间a、所述异常增大阀值为b、所述异常缩小阀值c是否满足:m1-m2>b||m1-m2<c,如果是执行步骤s34,否则执行步骤s4;
s34、取异常波动值为u=i-h+1+nmin,其中nmin为采样窗口最小值,并执行索引i++,再判定索引i是否大于所述全网高度h,如果是执行步骤s35,否则返回步骤s32;
s35、基于所述异常波动值为u和所述采样窗口最大值nmax计算所述采样窗口调整值n。
4.根据权利要求3所述的在区块链中自适应调整采样窗口的方法,其特征在于,在所述步骤s35中,选择所述采样窗口调整值n=min(nmax,u)。
5.根据权利要求1-4中任意一项所述的在区块链中自适应调整采样窗口的方法,其特征在于,进一步包括:
s5、基于根据所述步骤s3或所述步骤s4确定的所述采样窗口调整值n选择n个采样区块,并获取所述采样区块的时间戳和难度,并基于所述时间戳和难度计算当前高度的区块所需的难度。
6.根据权利要求5所述的在区块链中自适应调整采样窗口的方法,其特征在于,所述步骤s5进一步包括:
s51、基于所述采样窗口调整值n选择n个采样区块,并获取所述采样区块的时间戳和难度d;
s52、按照所述时间戳的先后顺序进行降序排列以获得时间戳列表ts,取索引i=0,d0为采样区块的平均难度;
s53、计算难度
s54、判定索引是否满足i=n,如果是将dn+1作为当前高度的区块所需的难度,否则返回步骤s53。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现根据权利要求1-6中任意一项权利要求所述的在区块链中自适应调整采样窗口的方法。
8.一种区块链网络,包括多个区块链节点,所述区块链节点上存储有计算机程序,其特征在于,所述程序被处理器执行时实现根据权利要求1-6中任意一项权利要求所述的在区块链中自适应调整采样窗口的方法。