以太坊网络使用网络 ID 和链 ID 运行。
网络 ID 是对等方的属性,而不是对等方管理的链的属性。网络 ID 通过命令行 --networkid <id>传入。其目的是将运行在不同网络 ID 下的对等点分开。您无法与运行具有不同网络 ID 的节点的任何人同步。然而更改这一点很简单,因此它是 GoQuorum 的 --permissioned f标志的安全性较低的版本,并且仅用于简单的隔离。
链 ID 是节点管理的链的属性。它用于交易的重放保护。设置链 ID 具有改变交易参数之一的效果,即V 参数。 V 参数设置为2*ChainID + 35/36。对于链 ID 为 1 的以太坊主网,这意味着所有交易的值为 37 或 38。
在创世配置文件中设置的链 ID,在 config部分,并且仅在区块编号高于 eip155Block 设置的区块编号时使用。有关示例,请参阅 GoQuorum example genesis files 。当链低于 eip155Block 编号并重新运行 geth init时,可以根据需要多次更改它 - 这不会删除或修改任何当前同步过程或保存的块。
在 GoQuorum 中,如果 v 参数设置为 37或 38,则交易被认为是私有的,这与链 ID 为1 的网络发生冲突。因此,GoQuorum 不会使用链 ID 1 运行,如果以这样的方式启动,则会立即退出一个配置。