10

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.

4

5 回答 5

8
{
    "nonce": "0x0000000000000042",
    "difficulty": "0x000000100",
    "alloc": {

    },
    "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "coinbase": "0x0000000000000000000000000000000000000000",
    "timestamp": "0x00",
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "gasLimit": "0x16388"
}
于 2015-08-11T01:59:43.447 回答
5

您可以简单地在这里生成一个并修改帐户和余额。

还将气体限制设置为更高的数字,例如0x2dc6c0(3mio)并将难度降低到0xb

于 2015-08-06T08:28:40.937 回答
3

你基本上可以创建任何你喜欢的创世块,只要它根据黄皮书 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,因为它将根据找到该区块(并添加交易)的矿工的币库为每个新区块设置。

我在这里更详细地记录了这一点。

希望这可以帮助 :)

于 2015-09-23T10:53:33.670 回答
2
{
"config": {
           "chainId":2010,
           "homesteadBlock":0,
           "eip155Block":0,
           "eip158Block":0
           },
"gasLimit": "0x8000000",     
"difficulty": "0x400",
"alloc": {}
}

Geth 1.9 版(go1.9)只接受以上属性

于 2017-09-19T07:04:46.500 回答
-1

具体来说,这篇简短的文章很好地解释了私有网络的创世块构建。

我想在这里提到的一件事是,创世区块的唯一区别是它没有参考前一个区块。

于 2015-11-13T00:36:08.383 回答