I am trying to mine on a private network.
How does one go about creating a genesis block for a private network in frontier ethereum?
I have seen: https://blog.ethereum.org/2015/07/27/final-steps/ but this is to get the public Genesis block.
I am trying to mine on a private network.
How does one go about creating a genesis block for a private network in frontier ethereum?
I have seen: https://blog.ethereum.org/2015/07/27/final-steps/ but this is to get the public Genesis block.
{
"nonce": "0x0000000000000042",
"difficulty": "0x000000100",
"alloc": {
},
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x16388"
}
您可以简单地在这里生成一个并修改帐户和余额。
还将气体限制设置为更高的数字,例如0x2dc6c0
(3mio)并将难度降低到0xb
你基本上可以创建任何你喜欢的创世块,只要它根据黄皮书 4.3.4 是有效的。块头有效性。
创世区块没有指明矿工在哪个区块链上工作。这是通过连接到正确的对等网络来定义的,或者,如果您在运行多个区块链的网络上使用发现机制,则使用网络 ID。
(Genesis) Block 描述了这个特定 Block 的参数,它们是根据 Miner 的算法设置的。当然,任何违法行为都会被共识机制拒绝。
总之,您可以为所有自定义区块链使用相同的 GB。
在数学验证方面必须正确的值是nonce(工作证明)、mixhash(Fowler–Noll–Vo 减少的 DAG 值集)、timestamp(创建时间)。此示例中的极客值是原始 Frontier 版本 Genesis Block 的副本。parentHash指向链中的父块,创世块是唯一允许和要求为 0 的块。alloc允许用 Ether “预填充”帐户,但这里不需要这样做,因为我们可以非常快速地挖掘 Ether。
难度定义了矿工(哈希)算法找到有效区块所要满足的条件。在测试网络上,它通常保持较小,以便为每次迭代找到一个块。这对于测试很有用,因为需要在区块链上执行交易。块生成频率是区块链的响应时间。
gasLimit是一笔交易可以燃烧的Gas上限。它被继承到下一个块中。extraData是 32 字节的自由文本,您可以在其中 et(h)ernalise 区块链上的智能事物 :) coinbase是获得该区块的挖掘和交易执行奖励的地址,以以太币表示。这里可以为 0,因为它将根据找到该区块(并添加交易)的矿工的币库为每个新区块设置。
我在这里更详细地记录了这一点。
希望这可以帮助 :)
{
"config": {
"chainId":2010,
"homesteadBlock":0,
"eip155Block":0,
"eip158Block":0
},
"gasLimit": "0x8000000",
"difficulty": "0x400",
"alloc": {}
}
Geth 1.9 版(go1.9)只接受以上属性
具体来说,这篇简短的文章很好地解释了私有网络的创世块构建。
我想在这里提到的一件事是,创世区块的唯一区别是它没有参考前一个区块。