Ethereum Node Stuck, Can’t Sync
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.
3 Answers 3
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:
Delete your old copy of the blockchain with the command:
From your Ethereum Wallet installation directory, run the command:
You should see something like the following messages (I’m running in Linux):
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):
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):
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:
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.
Note: some say that you need an SSD storage for fast writing so that the sync can catch up with the latest block. Personally, I find that HDD storage is alright. However, if given the choice, I would definitely use SSD storage.
To download Geth, go here for Windows users. Then click on the «Geth for Windows» button.
How to sync an Ethereum node without making the mistakes I made
Geth Client for an Ethereum node.
A few notes
When you’re developing a smart contract, you should sync the testnet first. We will only need to sync the mainnet when we are ready to deploy. Mainnet vs Testnet
This is user-friendly, but does not enable the RPC services we want to use.
It’s really important to make sure that the connection to your Geth client is not limited. One huge headache I encountered was to let my firewall limit the number of connections I could have through the Geth client.
Depending on your operating system, you will find the chaindata subdirectory in:
Ethereum Wallet Syncing Problems
OS X — HOME Library Ethereum or HOME Library Ethereum geth.
Unable To Sync [ edit ]
You can use Parity and start the Parity syncing using the following command line parameter for a reasonably quick sync: Alternatives [ edit ]
Slow Syncing Between Blocks 2, 283, 397 And 2, 717, 576 [ edit ]
Change your system settings so that your system clock is synced to an NTP Network Time Protocol server.
The following messages are displayed on the `geth —syncmode «fast» console` (pre 1.6.0) screen — note the header(s) and receipt(s):
Before getting into what happens during a sync, it’s important to note that there are three ways to get in sync on Ethereum.
Notes on syncing Ethereum nodes
The goal of nodes is to store and propagate the blockchain.
Validating Blockchain Headers
The state trie is one of the major technical differences between Ethereum and the Bitcoin blockchain. Understanding it is important to understanding the distinct scaling challenges that Ethereum presents. Syncing the State Trie
Validating the State Trie
This is convenient and probably secure I m not a particularly paranoid person but it s not in the spirit of cryptocurrency.
So this is the part of the post where it gets a little speculative. I’m sure there are smart people out there who have done a lot more research and thinking about this than me, but I want to try and outline some thoughts I have and hopefully present more detail in future posts.
Ethereum blockchains not synchronized on 3 differents computers
In Geth, this is called gcmode which refers to the concept of garbage collection. Setting it to archive basically turns it off.
Running an Ethereum Node
In Geth, this is called gcmode which refers to the concept of garbage collection.
Synchronizes a full node starting at genesis, verifying all blocks and executing all transactions. This mode is much slower than the fast sync mode but comes with increased security.
To run an archive node, enable full synchronization using —sync-mode FULL, which by default also disables pruning —pruning-enabled false.
A openethereum default node serves the network as a full node after it has finished synchronizing.
- Stores the header chain and requests everything else on demand.
- Can verify the validity of the data against the state roots in the block headers.
The default sync mode. Synchronizes a full node doing a fast synchronization by downloading the entire state database, requesting the headers first, and optionally filling in block bodies and receipts. Once the fast sync reaches the best block of the Ethereum network, it switches to full sync mode.