マイニングしていると、マイニングが遅くなる、という問題への対処方法。
プライベートのブロックチェーンで利用したい場合を想定しています。
1. まずは、genesis.jsonで設定
ただ、difficultyが調整されるので、根本解決になっておらず。
1.3.x 以前: geth –genesis genesis.json
1.4.x 以降: geth init genesis.json の後、geth + オプション
{
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "Custem Ethereum Genesis Block",
"gasLimit": "0xffffffff"
}
2. コードを変更する
gethのコードを変更して、コンパイルする
func CalcDifficulty(config *ChainConfig, time, parentTime uint64, parentNumber, parentDiff *big.Int) *big.Int {
return big.NewInt(1)
}
1.4.10だと、この辺り
https://github.com/ethereum/go-ethereum/blob/master/core/block_validator.go#L257
関連用語
- Ethereum
- geth, go-ethereum
- genesis ジェネシスブロック