黄金形态通APP下载

以太坊私链的挖矿速度与难度值的关系

jay區塊鏈5年前 (2021-05-15)57
本文从代码层面预测了以太坊私链的挖矿速度与难度值的关系。…以太坊,挖矿,技术...

FxAjax ChainNews:

本文从代码层面预测了以太坊私链的挖矿速度与难度值的关系。最终发现:后面区块的难度值都是跟初始块设置的难度值相关,所以只是由初始块的难度值决定整个链的速度 。

来源 | DDFFR 的博客 作者 | 不折腾就闹心

之前呢都是用很小的难度值,让挖矿速度很快,可以轻松的打包交易并且获得以太币,但是这样的话也会让机器的内存很卡,而且涉及到具体的项目应用时是不想让他这么快的,所以我们来测试一下难度值跟挖矿速度的关系:

首先在自己创建的镜像里面跑一个容器 node2:

docker run -it --name node2 daocloud.io/ubuntu/node

创建目录,并写好创世块

mkdir test && cd test

vim genesis.json{"config": { "chainId": 12345,"homesteadBlock": 0, "eip155Block": 0,"eip158Block": 0 },"coinbase" : "0x0000000000000000000000000000000000000000", "difficulty" : "0x77fff88","extraData" : "0x123456", "gasLimit" : "0xffffffff","nonce" : "0x0000000000000042", "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000","timestamp" : "0x00","alloc": { } }

初始化创始块

geth  --datadir  ./data/01  init  genesis.json

进入 geth

geth  --identity  "haha"  --datadir  ./data/01  --networkid  12345  --rpcapi  "db,eth,net,web3"  --port  2221  --rpcport  3331  console

创建账户,挖矿并记录挖矿的时间和区块的高度

personal.newAccount("123")miner.start()miner.stop()

每次更改创始块只需要把容器停掉然后重新创建就好了。

docker stop node2 && docker rm node2

接下来是难度值的更改:

十六进制 “0x99999” 对应的十进制 629145 还是挺快的,半分钟大概 30 个,就是一秒一个 DDDDDDDD 3722304989 挖不到 放大了近四万倍 等了三分钟没挖到 176ffe890 6291450000 放大一万倍,五分钟没挖到 好吧,我放弃了,设置的小一点

5ffffa 6291450 放大十倍 一分钟五个2ffffd 3145725 五倍 一分钟五到十个之间个bffff4 12582900 二十倍 六分钟挖了八个3bfffc4 62914500 一百倍 六分钟两个12bffed4 314572500 五百倍 15 分钟没有一个77fff88 125829000 两百倍 十分钟两个

四五分钟一个区块是不是差不多了呢? 挖矿速度是可以通过算法自动调整,让速度保持与我们设置的难度值保持相当,但是后面区块的难度值都是跟初始块设置的难度值相关,所以只是由初始块的难度值决定整个链的速度 。

这个是黄皮书关于难度值设定的算法。

20170811113956927.png

更多精彩内容,关注FxAjax ChainNews 公众号(id:chainnewscom),或者来微博 @ FxAjax ChainNews 与我们互动!转载请注明版权和原文链接!

来源链接:blog.csdn.net

相关文章

您暂未设置收款码

请在主题配置——文章设置里上传

扫描二维码手机访问