Hell, I'm struggling to get a PoA network to run with nodes on several servers. I've reduced the problem to try to get a 2 sealers network since with more than 2 nodes it doesn't even start. With 2 nodes, it started, then I killed one node and it stuck.

I removed one node's geth directory, and try syncing from scratch, but I keep getting this:

DEBUG[09-26|09:31:37.939] Ethereum message handling failed id=077ea0d162f14b7a conn=dyndial err=EOF
DEBUG[09-26|09:31:37.939] Removing Ethereum peer                   peer=077ea0d162f14b7a
DEBUG[09-26|09:31:37.939] Removing p2p peer                        id=077ea0d162f14b7a conn=dyndial duration=39.835s peers=0 req=false err="read tcp> i/o timeout"
DEBUG[09-26|09:31:37.940] Block body download terminated           err="block body download canceled (requested)"
DEBUG[09-26|09:31:37.940] Transaction receipt download terminated  err="receipt download canceled (requested)"
DEBUG[09-26|09:31:37.940] Skeleton fill terminated                 err="block header download canceled (requested)"
DEBUG[09-26|09:31:37.940] Skeleton chain invalid                   peer=077ea0d162f14b7a err="block header download canceled (requested)"
DEBUG[09-26|09:31:37.940] Header download terminated               peer=077ea0d162f14b7a
DEBUG[09-26|09:31:37.940] Synchronisation terminated               elapsed=30.241010243s
WARN [09-26|09:31:37.940] Synchronisation failed, retrying         err="block body download canceled (requested)"
DEBUG[09-26|09:31:38.101] Adding p2p peer                          name=Geth/v1.8.15-stable-...                         addr=   peers=1
DEBUG[09-26|09:31:38.101] Ethereum peer connected                  id=077ea0d162f14b7a conn=dyndial name=Geth/v1.8.15-stable-89451f7c/linux-amd64/go1.10
DEBUG[09-26|09:31:41.702] Found seed node in database              id=485df49d29823cfb addr= age=427201h31m41.702795396s

Basically, err="read tcp> i/o timeout" every time, before or after removing the geth DB.

Since it started when I killed the network to restart it in a screen instance, it's obivously not a real connection problem between the machines (I can ssh from one to the other without any problem).

It seems like geth just bugs and does not deliver the blocks it has. Any help please?

1 Answer 1


Yay, sweet self answer. It seems that bootnodes and sealer nodes are quite different and incompatible. To bootstrap the system I tried to add other peers in the bootnode list. What it does is that the node will try to send those PING/v4 requests that will be unanswered, and cause the peer to be dropped, then re-adding it immediately.

Verdict: only bootnodes in the --bootnodes option.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.