1.一种主链选择方法,其特征在于,包括以下步骤:步骤1:计算区块难度:
先按照比特币协议计算当前块的区块难度;
步骤2:计算区块权重;
步骤3:计算区块总权重;
步骤4:根据区块总权重选择主链:方法如下:
如果区块总权重<主链总权重,转步骤5;
如果区块总权重>主链总权重,转步骤6;
如果区块总权重=主链总权重,且区块高度<主链链顶区块高度,转步骤6;
如果区块总权重=主链总权重,且区块高度=主链链顶区块高度,按以下2种方法中的任一种进行处理:方法1:比较当前区块块与主链链顶区块包含二级孤块总难度,如果当前区块包含二级孤块总难度比当前主链链顶区块二级孤块总难度,则转步骤6,否则转步骤5;
方法2:比较当前区块哈希与主链链顶区块哈希,如果当前区块哈希小于当前主链链顶区块哈希,则转步骤6,否则转步骤5如果区块总权重=主链总权重,且区块高度>主链链顶区块高度,转步骤5;
步骤5、保持主链不变,结束;
步骤6、区块所在链替换主链成为新的主链,结束。
2.根据权利要求1所述的主链选择方法,其特征在于,当前块是指当前待处理块。
3.根据权利要求1所述的主链选择方法,其特征在于,一级孤块是按照设定方法选取的对链的收敛有益的孤块,二级孤块是按照设定方法选取的非一级孤块。
4.根据权利要求1-3任一所述的主链选择方法,其特征在于,区块权重的计算方法如下:区块权重=区块难度+∑(一级孤块难度*孤块权重系数);
孤块权重系数=(孤块块高+限制深度-当前块高)*调整系数。
5.根据权利要求4所述的主链选择方法,其特征在于,区块总权重的计算方法如下:区块总权重=区块的父区块总权重+区块权重。
6.根据权利要求4任一项所述的主链选择方法,其特征在于,调整系数=1/(2048*限制深度)。
7.一种利用孤块算力的主链选择装置,其特征在于,包括:模块1,用于计算区块难度,先按照比特币协议计算当前块的块难度;
模块2,用于计算区块权重;
模块3,用于计算区块总权重;
模块4,用于根据区块总权重选择主链:方法如下:
如果区块总权重<主链总权重,转步骤5;
如果区块总权重>主链总权重,转步骤6;
如果区块总权重=主链总权重,且区块高度<主链链顶区块高度,转步骤6;
如果区块总权重=主链总权重,且区块高度=主链链顶区块高度,按以下2种方法中的任一种进行处理:方法1:比较当前区块块与主链链顶区块包含二级孤块总难度,如果当前区块包含二级孤块总难度比当前主链链顶区块二级孤块总难度,则转步骤6,否则转步骤5;
方法2:比较当前区块哈希与主链链顶区块哈希,如果当前区块哈希小于当前主链链顶区块哈希,则转步骤6,否则转步骤5;
如果区块总权重=主链总权重,且区块高度>主链链顶区块高度,转步骤5;
模块5,用于保持主链不变,结束;
模块6,用于将区块所在链替换主链成为新的主链,结束。
8.一种利用孤块算力的主链选择装置,其特征在于,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如权利要求1至6任一项所述的主链选择方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1至6任一项所述的主链选择方法。