si tengo 2 nodos, uno ETH y otro ETC, y estoy escribiendo un programa para usar estos nodos, ¿cómo puedo determinar qué nodo estoy usando en un momento dado?
lo mejor que se me ocurre es verificar un bloque conocido después de la bifurcación y simplemente comparar el número de tx. Sé cuántos tx hay en ese bloque en ambas cadenas, así que puedo diferenciarlos de esa manera.
esto parece torpe. ¿Hay una mejor manera de hacer esto?
Editar: esto no es un duplicado de "¿ETH y ETC usan la misma ID de red?" porque no estoy preguntando sobre la identificación de la red. estoy preguntando acerca de la red en su conjunto. eth/etc comparte una identificación de red 1
para la red principal.
Puede extraer los datos del bloque para el bloque 1920000 usando web3. Este es el bloque de bifurcación dao, por lo que el hash del bloque será diferente.
ETC es 0x94365e3a8c0b35089c1d1195081fe7489b528a84b22199c916180db8b28ade7f
ETH es 0x4985f5ca3d2afbec36529aa96f74de3cc10a2a4a6c44f2157a57d2c6059a11bb
Como dijeron los demás en los comentarios, no parece que ningún comando RPC haga el trabajo, pero si su script/programa tiene acceso a la máquina donde se está ejecutando Geth (quizás sobre), puede intentar grepping los registros o ssh
matar y reiniciando Geth para obtener la salida del registro.
(Habiendo dicho eso, si tiene acceso a la máquina, el datadir
nombre revela el juego de todos modos: .ethereum-classic
vs. .ethereum
, a menos que se haya especificado manualmente un nombre no predeterminado en el arranque del nodo).
ETC:
$ cat /home/richard/.ethereum-classic/mainnet/log/geth.INFO | grep chainID
I1201 18:56:27.326033 cmd/geth/flag.go:767] chainID: 61
ETH:
No hay un archivo similar al anterior, pero al reiniciar Geth:
INFO [12-01|19:09:25.456] Initialised chain configuration config="{ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 Constantinople: <nil> Engine: ethash}"
(Supongo, quizás incorrectamente, que en el caso de ETH chainID
equivale a la identificación de la cadena y no a la identificación de la red. De cualquier manera, la ausencia de un archivo de registro que pueda grep le permitirá deducir que es ETH y no ETC).
usuario19510
net_version
el truco?natewelch_
natewelch_
usuario19510
yo_no_soy_etereum
net_version
rendimientos1
para ambos (como se esperaba). ¿No hay forma de hacerlo además de la forma en que lo describí (comparando 2 bloques conocidos)?