8

I'm using a Macbook Pro OS X Version 10.9.5 and am unable to get through the syncing phase. "Ethereum node needs to sync, please wait..." is exactly what is prompt but regardless of the time I wait, it's unable to sync. I have the option to skip peer search and start the application but it then isn't synced to my wallet, thus showing 0 Ether in my main account. I downloaded the app 20 days ago and am just getting around to posting for help. Any insight would be greatly appreciated.

5

Download Latest Wallet And Run Packaged Geth

  • Download the latest Ethereum Wallet from https://github.com/ethereum/mist/releases and install it.

  • You will find a geth executable in the ./resources/node/geth/ subdirectory under your Ethereum Wallet installation directory. This is the software that connects to peers in the Ethereum network to synchronise the blockchain. Here is the Linux equivalent listing of the Ethereum Wallet directory and geth subdirectory:

    user@Kumquat:~/Ethereum-Wallet-linux64-0-5-1$ ls -al
    total 99520
    drwxr-xr-x  4 user user     4096 Apr  2 00:11 .
    drwxrwxr-x 10 user user     4096 Apr  8 17:21 ..
    -rw-r--r--  1 user user      153 Mar  5 03:33 AUTHORS
    -rw-r--r--  1 user user  9215042 Mar  5 03:32 content_shell.pak
    -rwxr-xr-x  1 user user 59738392 Mar  5 03:32 Ethereum-Wallet
    -rw-r--r--  1 user user 10206624 Mar  5 03:32 icudtl.dat
    -rw-r--r--  1 user user  2546072 Mar  5 03:32 libffmpeg.so
    -rw-r--r--  1 user user   520152 Mar  5 03:32 libgcrypt.so.11
    -rwxr-xr-x  1 user user 17367040 Mar  5 03:32 libnode.so
    -rw-r--r--  1 user user    32422 Mar  5 03:33 LICENSE
    -rw-r--r--  1 user user  1137248 Mar  5 03:32 LICENSES.chromium.html
    drwxr-xr-x  2 user user     4096 Mar  5 03:32 locales
    -rw-r--r--  1 user user   439857 Mar  5 03:32 natives_blob.bin
    -rw-rw-r--  1 user user       65 Apr  2 00:11 privatekey.txt
    -rw-r--r--  1 user user     1987 Mar  5 03:33 README.txt
    drwxr-xr-x  3 user user     4096 Mar  5 03:33 resources
    -rw-r--r--  1 user user   657164 Mar  5 03:32 snapshot_blob.bin
    -rw-r--r--  1 user user        6 Mar  5 03:33 version
    user@Kumquat:~/Ethereum-Wallet-linux64-0-5-1$ ls -al resources/node/geth/geth 
    -rwxr-xr-x 1 user user 26892984 Mar  5 03:33 resources/node/geth/geth
    
  • Delete your old copy of the blockchain with the command:

    rm -rf ~/Library/Ethereum/chaindata
    
  • From your Ethereum Wallet installation directory, run the command:

    ./resources/node/geth/geth --fast console
    
  • You should see something like the following messages (I'm running in Linux):

    I0408 17:21:39.549439   29822 flags.go:425] WARNING: No etherbase set and no accounts found as default
    I0408 17:21:39.549604   29822 database.go:71] Alloted 16MB cache to /home/user/EthereumWallet/tmp/chaindata
    I0408 17:21:39.719778   29822 database.go:71] Alloted 16MB cache to /home/user/EthereumWallet/tmp/dapp
    I0408 17:21:39.721252   29822 backend.go:314] Protocol Versions: [63 62 61], Network Id: 1
    I0408 17:21:39.721397   29822 backend.go:362] Blockchain DB Version: 3
    I0408 17:21:39.721823   29822 blockchain.go:214] Last header: #0 [d4e56740…] TD=17179869184
    I0408 17:21:39.721875   29822 blockchain.go:215] Last block: #0 [d4e56740…] TD=17179869184
    I0408 17:21:39.721917   29822 blockchain.go:216] Fast block: #0 [d4e56740…] TD=17179869184
    I0408 17:21:39.727628   29822 cmd.go:114] Starting Geth/v1.3.5-34b622a2/linux/go1.6
    I0408 17:21:39.727768   29822 server.go:311] Starting Server
    I0408 17:21:41.677719   29822 udp.go:212] Listening, enode://2b3f690e2c7c398d5782a5a33d47da9965cf08497299d3b232014fc89b0a8cbdc66d789110f0cb5a047d24aa4e1f9987ebdbcf88108aec035629d3af8b5faba4@[::]:30303
    I0408 17:21:41.677903   29822 backend.go:526] Server started
    I0408 17:21:41.678055   29822 server.go:552] Listening on [::]:30303
    I0408 17:21:41.678340   29822 ipc.go:112] IPC service started (/home/user/EthereumWallet/tmp/geth.ipc)
    instance: Geth/v1.3.5-34b622a2/linux/go1.6
     datadir: /home/user/EthereumWallet/tmp
    coinbase: null
    at block: 0 (Thu, 01 Jan 1970 10:00:00 AEST)
    modules: admin:1.0 db:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 shh:1.0 txpool:1.0 web3:1.0
    > I0408 17:22:01.678243   29822 downloader.go:288] Block synchronisation started
    I0408 17:22:06.973046   29822 blockchain.go:889] imported 192 header(s) (0 ignored) in 1.274319263s. #192 [88e96d45… / 723899e8…]
    I0408 17:22:06.982296   29822 blockchain.go:1044] imported 2 receipt(s) (0 ignored) in 711.895µs. #2 [88e96d45… / b495a1d7…]
    I0408 17:22:09.990297   29822 downloader.go:1102] Rolled back 192 headers (LH: 192->0, FB: 2->0, LB: 0->0)
    I0408 17:22:11.778867   29822 blockchain.go:1044] imported 190 receipt(s) (0 ignored) in 36.573252ms. #192 [3d612266… / 723899e8…]
    

The last five lines of messages above show that geth is successfully connected to other peers on the Ethereum network and is downloading the blockchain data.



Still Does Not Work - Troubleshooting Connectivity

  • If you still cannot get the blockchain to sync as shown in the previous section, you may have a firewall issue. geth will try to communicate to computers on port 30303 over the Internet.
  • Are you running this from a corporate network or a home network?
  • Are there firewalls in place that prevent communication to raw IP addresses?
  • Are there any restrictions on the ports that can be communicated with?
  • Here are the initial Ethereum bootnodes that geth will try to initially communicate with (from https://github.com/ethereum/go-ethereum/blob/master/eth/backend.go#L71-L78):

    defaultBootNodes = []*discover.Node{
        // ETH/DEV Go Bootnodes
        discover.MustParseNode("enode://a979fb57...3331163c@52.16.188.185:30303"), // IE
        discover.MustParseNode("enode://de471bcc...b723c786@54.94.239.50:30303"),  // BR
        discover.MustParseNode("enode://1118980b...f0855082@52.74.57.123:30303"),  // SG
        // ETH/DEV cpp-ethereum (poc-9.ethdev.com)
        discover.MustParseNode("enode://979b7fa2...aa3637f9@5.1.83.226:30303"),
    }
    
  • Let's try communicating with the first bootnode server using the following command. In this case the results show that the connection is successful (the empty reply is because curl does not communicate with the same Discovery protocol as the Ethereum bootnode server):

    user@Kumquat:~/Ethereum-Wallet-linux64-0-5-1$ curl http://52.16.188.185:30303 -o outfile
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
      0     0    0     0    0     0      0      0 --:--:--  0:00:05 --:--:--     0
    curl: (52) Empty reply from server
    
  • Here is what it would look like if your network does not allow communication to the Ethereum bootnode server. I'm simulating this condition by providing an incorrect IP address. The Time Spent value just keeps clicking over. You will have to press Control-C to break out of the curl program:

    user@Kumquat:~/Ethereum-Wallet-linux64-0-5-1$ curl http://52.16.188.188:30303 -o outfile
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
      0     0    0     0    0     0      0      0 --:--:--  0:02:03 --:--:--     0^C
    user@Kumquat:~/Ethereum-Wallet-linux64-0-5-1$ 
    
  • If you are having the connectivity issues as shown in the previous point, you will need an un-blocked connection to the Internet if you want to synchronise your blockchain to the Ethereum network.

  • Bokky, you are on fire! Thanks for your contributions! – Afr Apr 8 '16 at 12:12
  • 5chdn, Ethereum.SE is a great place to learn about the Ethereum technology supported by a great community. – The Officious BokkyPooBah Apr 8 '16 at 14:42
  • I think the output from curl can be a little confusing when trying to test an open port, which is why you may want to instead use netcat like this: nc -zvv 52.16.188.185 30303. – Tom Purl Feb 14 '18 at 21:16
4

Here's what I would do:

  • Make sure you're using the latest Ethereum-Wallet release: https://github.com/ethereum/mist/releases

  • Connect to the testnet to verify that all is well (there should be less transactions on the testnet blockchain so you should be able to sync quicker)

    • Skip peer search
    • Appbar -> Develop -> Network -> Testnet (Morden)

If you can sync'd on the testnet, you'll know it's working.

Additional things you can try:

  • verify that all dependencies are up-to-date. You may need to reinstall all Ethereum related stuff. Don't forget to backup your accounts
  • Check your computer. Is it having issues building a DAG?
  • Try connecting with Geth (it'll also sync you up and build a DAG)
2

I'm not a big fan of syncing large chunks of chaindata with Mist because it's quite slow and generally doesn't print very good error messages. I would recommend getting geth and running geth --fast for anything larger than a few days' worth of blockchain data.

If you get an error message from geth saying something is corrupted (this has happened to me multiple times), I recommend the following:

  1. Delete your copy of the blockchain with rm ~/Library/Ethereum/chaindata/*
  2. Run geth --fast to download a new copy of the blockchain.

This will take 1-2 hours.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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