我正在运行一个私有区块链,并且我的奇偶节点似乎连接得很好。我已经经历过一些我以前有过的问题,但是它仍然无法连接。
然而,当我用奇偶校验从同一台计算机连接时,它似乎连接得很好。
下面是我第一次调用geth的方式(不是真正的端口9090,但这就是例子):
./geth --datadir /path/to/custom --networkid 9090 --port 9090 init CustomGenesis.jsonCustomGenesis.json文件的值是手动从我的奇偶校验.json文件中提取的,并且我已经成功地连接到奇偶校验。所以我相信这些价值观是正确的。我使用了这里列出的项目,并使用了平价值:https://github.com/ethereum/go-ethereum/wiki/Private-network
我还有一个名为/path/to/custom-nodes.json的文件,它列出了两个现有奇偶校验节点的"enodes“。
此外,我(有时是单独的,有时除了静态-nodes.json文件之外)使用了--引导节点标志,并列出了命令行中奇偶校验节点的enodes。
./geth --datadir /path/to/custom --networkid 9090 --port 9090 --ipcpath ~/.ethCustom/geth.ipc然而,这些事情会发生/不会发生:
1)我的其他节点没有显示新节点已进入网络
2)当我在/path/ to /定制/geth.ipc上附加控制台并运行"admin.peers“时,我只需得到"[]”。
3)除了偶尔有一个对等点,但它不是自定义网络中的一个对等点,而是一些端口为30303的看似随机的节点!太奇怪了!为什么30303会渗透到我的自定义设置?
但当我打字的时候
admin.nodeInfo
我得到了一个非常令人满意的输出,显示了正确的本地enode;用于"listenAddr、侦听器和发现“的相同(正确)端口;正确的网络id和编码困难。
我遗漏了什么?如果我能提供其他信息,请告诉我。谢谢。
发布于 2017-09-01 09:23:03
我遗漏了什么?如果我能提供其他信息,请告诉我。谢谢。
下一次用奇偶标记你的问题,以确保我不会错过它:
盖思是为以太写的客户。它是第一个正式的引用实现之一,除了Ethereum之外,它从来没有运行过其他任何东西。如果要为任何其他链配置配置Geth,则必须分叉源代码,并根据所需的规则集创建自己的客户端实现。例如,展开(格普)和虚空经典(Getc)就发生了这种情况。
但是,奇偶性是由一个最初参与C++ Ethereum客户端(Eth)的团队创建的,它的创建时间远远晚于Ethereum本身。之后(Gavin Wood,等)创立了Ethcore (现在的平价),他们创建了一个具有更广阔视野的客户,一个不应该只运行Ethereum的客户端。
奇偶校验允许在核心中进行更多的抽象,因此,启动新链所需要的就是一个所谓的链规范文件,该文件描述整个链参数,包括协商一致规则、验证器引擎等。最明显的后果是Ethereum、Ethereum经典和Expanse (只是为了获取上面的示例形式)不需要维护他们自己的奇偶校验源代码副本,以支持他们的项目和他们的共识规则。奇偶校验只会与--chain参数foundation、classic或expanse一起使用。
此外,--chain参数允许配置具有可插拔的全定制链、自定义转换和您喜欢的验证器引擎。
相反,Geth只允许指定一个定制的创世纪,这只是完整链规范的拼图中的一部分。因此,将Geth节点连接到奇偶节点的自定义网络将遇到困难。但是,您基本上有两个选项可以运行具有Geth和奇偶节点的自定义跨客户机网络,下面将对此进行解释。
现在,由于Geth中的链配置选项比奇偶选项少,我将最明显的想法称为"Geth First“。您选择了一个网络ID并创建了一个习俗创世,并使用geth init初始化了新的网络。此时,您可以启动一个矿工线程和几个Geth节点,以验证网络正是您所需要的。
现在,您可以开始集成奇偶校验节点。有一个很小的生锈工具酮恩/奇偶-规范,可以将您的自定义Geth成因文件转换为完整的奇偶校验链规范文件。
cargo run -- geth-genesis.json可以将输出parity-spec.json直接传递给具有--chain参数的奇偶校验节点。要进行发现,可以使用盖斯admin.addPeer()命令或奇偶--reserved-peers功能。
然而,Geth和奇偶校验都是积极开发的代码库,转换工具很容易出现错误,而且用户经常报告生成的链规范文件仍然会导致一致的问题。如果这种情况经常发生在您身上,请查看下面的另一个选项。
运行一个与Geth兼容的私有网络的最稳定也是最明显的选择,可能还有其他所有的客户,我称之为"Ropsten复活-复活“。
以已知的、所有客户端支持的工作网络(如Ropsten公共测试网 )为例,稍微修改一下它。为了简化这个过程,我在5 5 5chdn/交叉链-链上为创世纪和奇偶链规范创建了预置。它包含一个geth.json和一个模仿网络ID 1337 (0x539)的Ropsten复兴的parity.json。
这样做的缺点可能是不满意地希望为您的自定义专用开发网络添加更复杂的修改。然而,预定义的成因和链规范提供了一个很好的起点,让您引导任何您想要的网络。
https://ethereum.stackexchange.com/questions/16866
复制相似问题