美文网首页
以太坊私有链搭建(2)--修改挖矿难度

以太坊私有链搭建(2)--修改挖矿难度

作者: 十三流 | 来源:发表于2017-09-29 11:27 被阅读0次

什么是挖矿难度(Difficulty)

官放解释就不多说了,Difficulty值越大,越难出区块,意味着交易不容易确认,默认的机制是难度越来越大,对私有链一般是不可接受的,当然这个值也不是越小越好,这样的话也会让机器的很卡,所以这个值要根据项目自己确定。

如何调整

创世区块中的的难度能影响整体的挖矿速度,但是并不能改变难度上升这个趋势,所以在自己的项目中,仅仅在创世区块中指定难度是不够的。

当前geth版本 1.7 unstable
源文件 consensus/ethash/consensus.go 行290

// CalcDifficulty is the difficulty adjustment algorithm. It returns
// the difficulty that a new block should have when created at time
// given the parent block's time and difficulty.
// TODO (karalabe): Move the chain maker into this package and make this private!
func CalcDifficulty(config *params.ChainConfig, time uint64, parent *types.Header) *big.Int {
        next := new(big.Int).Add(parent.Number, big1)
        switch {
        case config.IsByzantium(next):
                return calcDifficultyByzantium(time, parent)
        case config.IsHomestead(next):
                return calcDifficultyHomestead(time, parent)
        default:
                return calcDifficultyFrontier(time, parent)
        }
}

好了,这里也不多想怎么实现了,我也看不懂,简单改下返回难度为恒定值就会~~
将这个函数改为

func CalcDifficulty(config *params.ChainConfig, time uint64, parent *types.Header) *big.Int {
        return big.NewInt(0x400)
}

重新make geth,试试看出块难度是不是恒定了。

相关文章

网友评论

      本文标题:以太坊私有链搭建(2)--修改挖矿难度

      本文链接:https://www.haomeiwen.com/subject/ucxiextx.html