我很难理解genesis.json文件。
假设:在我看来,它既可以初始化第一个块,也可以为链的其余部分设置配置参数。对还是错?
nonce、mixHash和coinbase这样的选项要放在genesis.json文件中呢?如果第一个街区不能开采,它们有什么用途?alloc {}部分中有这些帐户?或者第一个块是在没有这个文件的情况下创建的?发布于 2018-01-28 08:04:32
是真的。
你的问题很棘手。要成为主网络的对等方,您需要与网络上的每个人完全相同的成因文件。如果不是,那你就不会是同龄人了。
我不这么认为,你从一个特定的成因文件开始,你结束它,或者你完全改变了链
检查这
因为要声明是否允许同步,我们需要一种方法来知道是否要与这个特定的链同步。成因文件类似于链的ID。假设我有两个私有链,每个都有相同的chainID,但在成因文件中有不同的配置:我的一些节点将连接到链A,另一些将连接到B链,这取决于我给它们的创建。如果尝试与具有不同成因文件的对等程序同步,则将拒绝它。
实际上,您并不是“创建”第一个块。成因文件只是一个ID,并描述了块0之前的链。
我想你对块文件和成因文件有误解。如前所述,成因文件是对第一个块之前的链的描述。如果成因文件有一些分配的地址,则链的状态将具有特定余额的地址,从块0开始。
下面是一个私有链的第一个块的例子,它有预先分配的地址,您可以看到,它只是一个没有任何事务的普通块。唯一具体的事情是parentHash。因为它不存在,而是来自创世纪文件。
{
difficulty: 1024,
extraData: "0x",
gasLimit: 134217728,
gasUsed: 0,
hash: "0xd3f87ee4cf1e44bc4024a519d91b08efdf187fa05f3a7a39efd1e4f73c29426a",
logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
miner: "0x0000000000000000000000000000000000000000",
mixHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
nonce: "0x0000000000000042",
number: 0,
parentHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
size: 507,
stateRoot: "0x041288fa59918e8775cddb418d92c1ef125438a1d9f2e4d481fae84ab85fcd22",
timestamp: 0,
totalDifficulty: 1024,
transactions: [],
transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
uncles: []
}https://ethereum.stackexchange.com/questions/37720
复制相似问题