我正在使用围棋代码(主要是发现(discv4)和rlpx)来编写节点发现工具。
该程序使用discv4来发现互联网上的节点,并将发现的节点放入que中。
然后,一个不同的子例程从que中提取一个节点,并进行洞握手以传递"HELLO (0x00)“消息。所以我得到了Node正在运行的软件的功能,名称,OS,.
现在,我想区分节点实际上是ETH还是ETC节点。我怎么能这么做?
发布于 2019-12-23 21:48:29
不幸的是,由于大多数客户端实现了eth/63,因此无法区分P2P层的ETH & ETC对等点,后者将状态0x00定义为
protocolVersion: P,networkId:P,td:p,最佳散列:B_32,genesisHash: B_32
由于ETC / ETH具有相同的成因散列和网络it,因此不可能将它们与ENR /握手区分开来。
EIP-2124试图通过在STATUS 0x00中引入"ForkID“来解决这个问题。这只在Geth中实现(请参阅这里,大多数ETC节点将不会发送此数据包。
STATUS 0x00
https://ethereum.stackexchange.com/questions/78468
相似问题