Estoy ejecutando 2 mineros y 1 nodo no minero usando docker. Simplemente no puedo ver a los 2 mineros trabajar en conjunto. Cada uno puede ensamblar su DAG. Solo parece funcionar con un solo minero. Estoy usando Geth/peer1/v1.8.16-stable-477eb093/linux-amd64/go1.9.4
ethereum/go-client:alpine.
Los nodos se configuran a través de static-nodes.json y puedo llegar a cada nodo en el puerto 30303 (probado con nc -zv)
[
"enode://b27ff3191f16c7de4c9037eaf419e8d3f25c847b551dd15100c5a375f02032ca5275af29cb29c64258e99c450e0d8825010a13d18c0d404b4c95fb8a1ee9e699@172.17.0.3:30303",
"enode://29bd9b51c2b7f031bf5be15d4cb6028300d4d254ace507bfb5ce283121566f3cd3d96ba303c3ce5c857a7daa29522999cbe545ea64f66c639f4ec526ae3f7cb8@172.17.0.4:30303",
"enode://dc014606c0ee47f9ce917c9497b1a1b2819dfdc4f2d574965b6aa38f447b3c5721f6a63e8942f97cef41f656cce2429a698a0690f48d2faa0019a0026c4cbca2@172.17.0.5:30303"
]
Génesis tiene dificultad baja
{
"config": {
"chainId" : 11,
"homesteadBlock" : 0,
"eip150Block" : 0,
"eip150Hash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"eip155Block" : 0,
"eip158Block" : 0,
"byzantiumBlock" : 0,
"ethash" : {}
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x100",
"extraData" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit" : "0xffffffff",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc" : {}
}
Cuando inicio 2 mineros, ambos nodos de minería parecen bloquearse después de construir DAG. NOTA: vea las ediciones a continuación. Puedo activar la creación de bloques si detengo a un minero. A continuación se muestra la salida de peer1 (después de reiniciar y matar a peer2 para crear unos 11 bloques) Simplemente se cuelga allí y no sucede nada.
WARN [09-29|16:21:19.909] Sanitizing cache to Go's GC limits provided=1024 updated=660
INFO [09-29|16:21:19.922] Maximum peer count ETH=25 LES=0 total=25
INFO [09-29|16:21:19.948] Starting peer-to-peer node instance=Geth/peer1/v1.8.16-stable-477eb093/linux-amd64/go1.9.4
INFO [09-29|16:21:19.949] Allocated cache and file handles database=/root/.ethereum/geth/chaindata cache=495 handles=1024
INFO [09-29|16:21:20.485] Initialised chain configuration config="{ChainID: 11 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: <nil> Engine: ethash}"
INFO [09-29|16:21:20.485] Disk storage enabled for ethash caches dir=/root/.ethereum/geth/ethash count=3
INFO [09-29|16:21:20.486] Disk storage enabled for ethash DAGs dir=/root/.ethash count=2
INFO [09-29|16:21:20.486] Initialising Ethereum protocol versions="[63 62]" network=11
INFO [09-29|16:21:20.497] Loaded most recent local header number=11 hash=f506b2…e1a16f td=1444928 age=1h6m40s
INFO [09-29|16:21:20.498] Loaded most recent local full block number=11 hash=f506b2…e1a16f td=1444928 age=1h6m40s
INFO [09-29|16:21:20.498] Loaded most recent local fast block number=11 hash=f506b2…e1a16f td=1444928 age=1h6m40s
INFO [09-29|16:21:20.501] Loaded local transaction journal transactions=0 dropped=0
INFO [09-29|16:21:20.513] Regenerated local transaction journal transactions=0 accounts=0
INFO [09-29|16:21:20.513] Starting P2P networking
INFO [09-29|16:21:20.517] Stats daemon started
INFO [09-29|16:21:20.517] RLPx listener up self="enode://b27ff3191f16c7de4c9037eaf419e8d3f25c847b551dd15100c5a375f02032ca5275af29cb29c64258e99c450e0d8825010a13d18c0d404b4c95fb8a1ee9e699@[::]:30303?discport=0"
INFO [09-29|16:21:20.530] IPC endpoint opened url=/var/run/geth.ipc
INFO [09-29|16:21:20.530] Transaction pool price threshold updated price=1000000000
INFO [09-29|16:21:20.531] Updated mining threads threads=1
INFO [09-29|16:21:20.531] Transaction pool price threshold updated price=1000000000
INFO [09-29|16:21:20.531] Etherbase automatically configured address=0xFDb60C5297aE226dd8B8813cd94995813eEaDd22
INFO [09-29|16:21:20.531] Commit new mining work number=12 sealhash=aeaead…9c6d63 uncles=0 txs=0 gas=0 fees=0 elapsed=176.2µs
A continuación se muestran los comandos que uso de un archivo por lotes (incluido el contenedor netstats) Cada contenedor tiene su carpeta separada asignada a su contenedor.
docker run -d --rm -v /c/Users/P33/playground/p2p/shared/peer1:/root --name peer1 --link netstats ethereum/client-go:alpine --nodiscover --networkid 11 --mine --minerthreads 1 --ipcpath /var/run/geth.ipc --identity peer1 --syncmode "full" --ethstats "peer1:password@ws://netstats:3000"
docker run -d --rm -v /c/Users/P33/playground/p2p/shared/peer2:/root --name peer2 --link netstats ethereum/client-go:alpine --nodiscover --networkid 11 --mine --minerthreads 1 --ipcpath /var/run/geth.ipc --identity peer2 --syncmode "full" --ethstats "peer2:password@ws://netstats:3000"
docker run -d --rm -v /c/Users/P33/playground/p2p/shared/peer3:/root --name peer3 --link netstats -p 8545:8545 ethereum/client-go:alpine --nodiscover --networkid 11 --rpc --rpcapi eth,net,web3,personal --rpcaddr "0.0.0.0" --rpccorsdomain "*" --ipcpath /var/run/geth.ipc --identity peer3 --syncmode "full" --ethstats "peer3:password@ws://netstats:3000"
¿Alguna idea? ¡TIA!
Al agregar un retraso de 60 segundos entre el lanzamiento de miner1 y miner2, observo que el proceso DAG se completa con miner1 a la cabeza; inicio de la minería; entonces ambos cuelgan. Luego me detengo y vuelvo a lanzar con el mismo retraso de 60 s. El primer minero se mantiene a la cabeza, luego llega a "Minería demasiado lejos en el futuro" (alrededor de 80 bloques) y nuevamente ambos mineros permanecen allí.
Esperaba ver a ambos mineros competir y "ganar" aleatoriamente el siguiente bloque, ya que comparten recursos idénticos en la misma computadora portátil...
Logré que esta pequeña red de 2 mineros y un par durara un poco más haciendo lo siguiente:
Previamente tenía a cada miembro señalando a los otros dos (NOK). Tener el minero 2 apuntando al minero 1 (incluso después de la demora) eventualmente detendría la generación de bloques después de 20-30 bloques en esta computadora portátil.
Con esta configuración puedo llegar a más de 190 bloques... todavía no estoy seguro de por qué...
vmodule=buscador=6, descargador=6 registros a continuación
minero 1
DEBUG[10-05|08:00:20.959] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|08:00:40.959] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|08:01:00.960] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|08:01:20.962] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|08:01:40.963] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|08:02:00.964] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|08:02:20.965] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|08:02:40.965] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|08:03:00.966] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|08:03:20.966] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
minero 2
DEBUG[10-05|07:56:36.651] Queued propagated block peer=36d0dbecc9bbf66d number=192 hash=4fda3f…90ff75 queued=1
DEBUG[10-05|07:56:36.651] Importing propagated block peer=36d0dbecc9bbf66d number=192 hash=4fda3f…90ff75
DEBUG[10-05|07:56:36.758] Queued propagated block peer=36d0dbecc9bbf66d number=193 hash=3c3c32…c9e9b3 queued=1
DEBUG[10-05|07:56:36.758] Importing propagated block peer=36d0dbecc9bbf66d number=193 hash=3c3c32…c9e9b3
DEBUG[10-05|07:56:44.029] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|07:57:04.029] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|07:57:24.030] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|07:57:44.030] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|07:58:04.030] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
DEBUG[10-05|07:58:24.031] Recalculated downloader QoS values rtt=20s confidence=1.000 ttl=1m0s
peer 3 (no minería)
DEBUG[10-05|07:56:33.362] Inserted new block number=189 hash=b0209e…4edc82 uncles=0 txs=0 gas=0 elapsed=140.556ms
INFO [10-05|07:56:33.363] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=143.084ms mgasps=0.000 number=189 hash=b0209e…4edc82 cache=27.26kB
DEBUG[10-05|07:56:33.371] Reinjecting stale transactions count=0
DEBUG[10-05|07:56:35.048] Inserted new block number=190 hash=aecf0c…285ae1 uncles=0 txs=0 gas=0 elapsed=54.696ms
INFO [10-05|07:56:35.048] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=54.858ms mgasps=0.000 number=190 hash=aecf0c…285ae1 cache=27.26kB
DEBUG[10-05|07:56:35.048] Reinjecting stale transactions count=0
DEBUG[10-05|07:56:36.434] Inserted new block number=191 hash=f33bf0…b82196 uncles=0 txs=0 gas=0 elapsed=54.571ms
INFO [10-05|07:56:36.434] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=68.644ms mgasps=0.000 number=191 hash=f33bf0…b82196 cache=27.26kB
DEBUG[10-05|07:56:36.435] Reinjecting stale transactions count=0
DEBUG[10-05|07:56:36.703] Inserted new block number=192 hash=4fda3f…90ff75 uncles=0 txs=0 gas=0 elapsed=12.576ms
INFO [10-05|07:56:36.703] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=12.688ms mgasps=0.000 number=192 hash=4fda3f…90ff75 cache=27.26kB
DEBUG[10-05|07:56:36.703] Reinjecting stale transactions count=0
DEBUG[10-05|07:56:36.802] Inserted new block number=193 hash=3c3c32…c9e9b3 uncles=0 txs=0 gas=0 elapsed=15.051ms
INFO [10-05|07:56:36.802] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=16.326ms mgasps=0.000 number=193 hash=3c3c32…c9e9b3 cache=27.26kB
DEBUG[10-05|07:56:36.802] Reinjecting stale transactions count=0
Probé diferentes topologías, reduciendo las conexiones entre pares. Incluso con { Miner 1 -> Miner 2 -> Peer 3 }, la configuración se bloquea después de un tiempo (con retraso después de iniciar el primer minero) o inmediatamente. No estoy seguro en este punto dónde más buscar...
Entonces, lo que puedo observar es que el minero 1 comienza a extraer bloques a medida que obtiene una ventaja inicial. Miner 2 comienza a sincronizarse. Una vez que ocurre la situación de "minar demasiado en el futuro", ambos se bloquean en el mensaje "esperar 2 segundos", como cuando comienzo inmediatamente a ambos mineros sin demora. He limitado cada minero a 1 hilo. Cuando detengo el minero 2 mientras genera bloques, el minero 2 se recupera. Pero cuando se detiene el minero 2, el primero no vuelve a levantarse....
Cambié el título de estancamiento a sincronización lenta... Dejé los 3 nodos ejecutándose y uno de los mineros produjo un nuevo bloque después de unos 30 minutos. En la captura de pantalla a continuación, 2 mineros están en la parte inferior y un nodo no minero en la parte superior. Cada minero apunta al compañero normal. Estoy en SSD 2th 16GB RAM: cada contenedor obtiene 2GB y configuré el caché Geth en 512KB.
Cambiar la ventana acoplable predeterminada de 2 GB por contenedor a 3 GB resolvió mi problema. Ahora tengo una red privada rápida de 3 pares y 2 mineros.
jdevoo
jdevoo
ismael
jdevoo
ismael
jdevoo
jdevoo
jdevoo
ismael
jdevoo