The geth
Bootnodes Are Down
I've tested, and the peer discovery nodes are intermittently / mostly down.
Update 08:19 Sep 25 2016
I suspect that the bootnodes are congested due to the many geth
clients trying to get connections as the clients are being restarted due to the recent memory bug attack and spam / IO transaction attacks.
telnet
is able to intermittently connect to some of the bootnodes, but geth
has been unable to find any peers for over an hour.
A separate geth
node I started many hours ago is working fine with 25 peer connections.
I have checked the blockhash for the latest block I have synced up to and it matches etherscan.io #2,287,735:
> admin.peers
[]
> eth.blockNumber
2287735
> eth.getBlock(eth.blockNumber).hash
"0x53a331f2c93a796170e3af16f66b998fd0ed5acb8caccb79c2431e111b67419b"
Update 23:17 Sep 25 2016
@jamiepitts-ethereum in reddit said
Please test this now and reply whether peers are found and the sync begins for you.
In geth 1.4.12, I am now able to find peers and successfully start syncing.
I've tested and my previously non-syncing node now syncs automatically. I retested connectivity to the bootnodes below and the first 3 connect immediately.
It would be interesting to know what caused this non-syncing situation for many geth
nodes. Update the node software on their bootnode servers? Reboot their bootnode servers? Make available more connection slots on their bootnode server?
Update 12:09 Sep 26 2016
There is a new version of geth
named Geth 1.4.13: Into the Woods (various DoS fixes) that you can download from https://github.com/ethereum/go-ethereum/releases/tag/v1.4.13 .
The .zip files with the source code and some of the different operating systems version have been made available from this page. Download the version appropriate to your operating system (if it is there, or else wait until it is available).
The Ubuntu ppa now contains http://ppa.launchpad.net/ethereum/ethereum/ubuntu/ trusty/main bootnode amd64 1.4.13+87trusty-0ubuntu1
with this new version, so just update your ubuntu installation to pick up the new version.
This version should sync to other peers (problem fixed in the last update), but should process the I/O spam transactions much quicker compared to version 1.4.12 .
Temporary Workaround
See How can I extract create a list of peers from my syncing geth node to manually paste into my non-syncing geth node using the admin.addPeer() command? for a list of admin.addPeer(...)
commands you can paste into your geth
console to kick-start your node syncing.
My Tests
Update 13:51 Oct 01 2016
Note that the following test are not definitive as the bootnodes normally operated using the UDP protocol on port 30301, but I used the TCP 30303 for my testing. See Why does java Ethereum use UDP? - isn't devp2p TCP only and What is an Enode ID in Ethereum?.
Checking geth
version
user@Kumquat:~$ geth version
Geth
Version: 1.4.12-stable
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.5.1
OS: linux
GOPATH=/home/user/go
GOROOT=/usr/lib/go
The geth
bootnodes are listed in https://github.com/ethereum/go-ethereum/blob/master/cmd/utils/bootnodes.go#L25-L30 and are:
discover.MustParseNode("enode://[email protected]:30303"), // IE
discover.MustParseNode("enode://[email protected]:30303"), // BR
discover.MustParseNode("enode://[email protected]:30303"), // SG
// ETH/DEV Cpp Bootnodes
discover.MustParseNode("enode://[email protected]:30303"),
Testing the first server:
user@Kumquat:~$ telnet 52.16.188.185 30303
Trying 52.16.188.185...
telnet: Unable to connect to remote host: Connection timed out
Testing the second server:
user@Kumquat:~$ telnet 54.94.239.50 30303
Trying 54.94.239.50...
telnet: Unable to connect to remote host: Connection timed out
Testing the third server:
user@Kumquat:~$ telnet 52.74.57.123 30303
Trying 52.74.57.123...
telnet: Unable to connect to remote host: Connection timed out
Testing the fourth server:
bok@Kumquat:~$ telnet 5.1.83.226 30303
Trying 5.1.83.226...
telnet: Unable to connect to remote host: Connection refused
Expected Results As Demonstrated On The Testnet Bootnode Servers
This is not the normal response for the bootnode servers. Here is the bootnode server for Testnet, listed in https://github.com/ethereum/go-ethereum/blob/master/cmd/utils/bootnodes.go#L37-L38:
discover.MustParseNode("enode://[email protected]:40404"),
discover.MustParseNode("enode://[email protected]:30303"),
The second bootnode server is responding as expected, not the first:
user@Kumquat:~$ telnet 94.242.229.4 40404
Trying 94.242.229.4...
telnet: Unable to connect to remote host: Connection refused
user@Kumquat:~$ telnet 94.242.229.203 30303
Trying 94.242.229.203...
Connected to 94.242.229.203.
Escape character is '^]'.
Connection closed by foreign host.