Ethereum Wallet Syncing Problems

From The Ethereum Wiki
Revision as of 14:52, 24 July 2017 by Kellwin13 (talk | contribs) (Fast Sync In Progress)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

One of the most common problems with the Ethereum Wallet application is keeping the blockchain in sync with the Ethereum network. This page describes some of the common issues users may encounter while trying to sync the blockchain and potential methods to work around the problems.

Note that Ethereum Wallet will not display your account balance correctly when it is not synced fully or correctly.


Unable To Sync

Check that your the clock on your computer is close to real time. Change your system settings so that your system clock is synced to an NTP (Network Time Protocol) server.


Slow Syncing Between Blocks 2,283,397 And 2,717,576

You may be encountering some problems syncing Ethereum Wallet (or Mist) to the Mainnet blockchain. A common problem when syncing Ethereum Wallet's blockchain data is that the syncing slows down between blocks 2,283,397 and 2,620,384 due to the attack on the Ethereum network (reference Why is my node synchronization stuck/extremely slow at block 2,306,843?).

The syncing also slows down between blocks 2,675,055 and 2,717,576 due to the state clearing process to remove the 20 million empty accounts created by the network attack.


How to recover from slow syncing?

If you have a problem with slow syncing, the easiest way to recover from this slowdown is to remove your blockchain data and restart Ethereum Wallet. Ethereum Wallet will then perform a fast sync which skips over these attack blocks.

WARNING: Make sure you back up your keystore directory so you don't accidentally delete your account information.

Shut down Ethereum Wallet.

Depending on your operating system, you will find the chaindata subdirectory in:

  • Linux - $HOME/.ethereum/geth
  • OS/X - $HOME/Library/Ethereum or $HOME/Library/Ethereum/geth
  • Windows - %APPDATA%/Ethereum

Remove the chaindata directory.

Alternatively, you can run geth removedb to remove the blockchain data.

Start Ethereum Wallet. It should now start fast syncing the blockchain data. Alternatively, run geth --syncmode "fast" --cache 1024 console and then start Ethereum Wallet.

Refer to Network Ports, Files And Directories for more information on the location of Ethereum software files and directories on your computer.

Another method to reduce sync-time is to run your copy of the blockchain from a Solid State Drive (SSD) as rotational drives are much more affected by the I/O generated by the clearing process, if you are running a full sync.


How can I tell if my node client is fast syncing or not?

Compare your logging messages with the following logging messages to determine whethere your node client is fast syncing or normal syncing.


Fast Sync In Progress

The following messages are displayed on the `geth --syncmode "fast" console` (pre 1.6.0) screen - note the header(s) and receipt(s):

I0416 13:35:53.497422   30629 blockchain.go:889] imported 192 header(s) (0 ignored) in 71.941018ms. #6336 [2edbbc3f… / b80c9ac3…]
I0416 13:35:54.263134   30629 blockchain.go:1044] imported 192 receipt(s) (0 ignored) in 55.447062ms. #6336 [2edbbc3f… / b80c9ac3…]
I0416 13:35:54.683682   30629 blockchain.go:889] imported 192 header(s) (0 ignored) in 73.050377ms. #6528 [8ab9a7af… / f2ffecac…]

And following is the equivalent geth 1.6.0 (Testnet) message during a fast sync:

INFO [03-29|00:44:05] Imported new block headers               count=576  elapsed=83.935ms  number=165038 hash=0d79ae…139c84 ignored=0
INFO [03-29|00:44:05] Imported new state entries               count=128  elapsed=25.678ms  processed=150388 pending=45633
INFO [03-29|00:44:05] Imported new block receipts              count=156  elapsed=32.949ms  number=146168 hash=40f288…4f46ca ignored=0
INFO [03-29|00:44:06] Imported new block headers               count=192  elapsed=28.569ms  number=165230 hash=9a4733…688bd0 ignored=0

Fast Sync Just Completed, Transitioning To Normal Sync

Here is the transition when the `--syncmode "fast"` syncing (pre 1.6.0) has completed and normal syncing starts:

I0416 17:16:12.631667   30629 blockchain.go:1251] imported 195 block(s) (0 queued 0 ignored) including 0 txs in 1.235990428s. #384 [d707e667 / d3d5d5c1]
I0416 17:16:12.631825   30629 sync.go:180] fast sync complete, auto disabling
I0416 17:16:48.831757   30629 blockchain.go:1251] imported 4 block(s) (0 queued 0 ignored) including 0 txs in 12.933585ms. #388 [bbb506ab / 0ace7268]

And following is the equivalent geth 1.6.0 message during the transition:

INFO [04-05|19:22:07] Imported new state entries               count=17   elapsed=675.795µs processed=672794 pending=598
INFO [04-05|19:22:08] Imported new state entries               count=267  elapsed=7.681ms   processed=673061 pending=123
INFO [04-05|19:22:08] Imported new state entries               count=26   elapsed=1.053ms   processed=673087 pending=13
INFO [04-05|19:22:08] Imported new state entries               count=1    elapsed=361.354µs processed=673088 pending=0
INFO [04-05|19:22:08] Imported new block receipts              count=1    elapsed=3.234ms   number=3480221 hash=e61ce2…40f00d ignored=0
INFO [04-05|19:22:08] Committed new head block                 number=3480221 hash=e61ce2…40f00d
INFO [04-05|19:22:16] Imported new chain segment               blocks=208 txs=2654 mgas=75.759 elapsed=8.082s    mgasps=9.373 number=3480429 hash=4da365…1f252e
INFO [04-05|19:22:19] Imported new chain segment               blocks=71  txs=883  mgas=26.608 elapsed=2.818s    mgasps=9.440 number=3480500 hash=be85e6…b3926f
INFO [04-05|19:22:19] Fast sync complete, auto disabling 
INFO [04-05|19:22:28] Imported new chain segment               blocks=1   txs=0    mgas=0.000  elapsed=7.716ms   mgasps=0.000 number=3480501 hash=f080ca…ac0b54
INFO [04-05|19:22:32] Imported new chain segment               blocks=54  txs=844  mgas=32.843 elapsed=2.700s    mgasps=12.160 number=3480555 hash=d6cd57…4d77c1
INFO [04-05|19:22:34] Imported new chain segment               blocks=1   txs=9    mgas=0.270  elapsed=32.803ms  mgasps=8.244  number=3480556 hash=a45d32…a1f89d
INFO [04-05|19:23:04] Imported new chain segment               blocks=1   txs=2    mgas=0.055  elapsed=39.279ms  mgasps=1.389  number=3480557 hash=a01317…b2701c
INFO [04-05|19:23:06] Imported new chain segment               blocks=1   txs=51   mgas=2.904  elapsed=1.515s    mgasps=1.916  number=3480558 hash=ec84c9…fb5703


Normal Sync In Progress

And the following messages are displayed on the `geth console` (pre 1.6.0) screen - note the block(s):

I0416 13:32:23.331906   30581 blockchain.go:1251] imported 256 block(s) (0 queued 0 ignored) including 0 txs in 979.938402ms. #6366 [66dcf4c1 / c5d009a1]
I0416 13:32:24.169955   30581 blockchain.go:1251] imported 256 block(s) (0 queued 0 ignored) including 0 txs in 836.388044ms. #6622 [e11a3fa9 / d211c2e1]
I0416 13:32:24.974790   30581 blockchain.go:1251] imported 256 block(s) (0 queued 0 ignored) including 0 txs in 803.457715ms. #6878 [c9f9ae12 / 238493b8]

And following is the equivalent geth 1.6.0 message from a full sync transitioning to incremental single block updates. The blocks will sync in batches, and when your blockchain data is up to date, single blocks are received approximately every 14 seconds:

INFO [04-01|10:36:24] Imported new chain segment               blocks=2 txs=4 mgas=0.229 elapsed=111.408ms mgasps=2.053 number=3454425 hash=2f3ad3…768034
INFO [04-01|10:36:24] Imported new chain segment               blocks=1 txs=0 mgas=0.000 elapsed=9.165ms   mgasps=0.000 number=3454426 hash=e54658…80d4c4
INFO [04-01|10:36:27] Imported new chain segment               blocks=12 txs=170 mgas=4.707 elapsed=2.535s    mgasps=1.857 number=3454438 hash=6aaa7e…c12f5d
INFO [04-01|10:36:30] Imported new chain segment               blocks=9  txs=198 mgas=6.030 elapsed=2.882s    mgasps=2.092 number=3454447 hash=4de30c…7d6c05
INFO [04-01|10:36:48] Imported new chain segment               blocks=1  txs=4   mgas=0.084 elapsed=51.447ms  mgasps=1.633 number=3454448 hash=ef97fd…6a11b5
INFO [04-01|10:37:20] Imported new chain segment               blocks=1  txs=4   mgas=0.084 elapsed=10.502ms  mgasps=7.998 number=3454449 hash=c1307d…e73a90
INFO [04-01|10:37:21] Imported new chain segment               blocks=1  txs=35  mgas=0.920 elapsed=542.136ms mgasps=1.697 number=3454449 hash=fd6829…afa455
INFO [04-01|10:37:23] Imported new chain segment               blocks=1  txs=1   mgas=0.021 elapsed=7.924ms   mgasps=2.650 number=3454450 hash=c8f298…0945a0
INFO [04-01|10:37:34] Imported new chain segment               blocks=1  txs=1   mgas=0.021 elapsed=19.412ms  mgasps=1.082 number=3454451 hash=e3d371…769036


Alternatives

Use Parity Node Client And User Interface

You can use Parity and start the Parity syncing using the following command line parameter for a reasonably quick sync:

parity --warp

You can access the Parity user interface by navigating in your browser to http://localhost:8080 .


Use Parity Node Client With Ethereum Wallet

You can use Parity as a back end to Ethereum Wallet. Start Parity with the following command line

parity --warp --geth

You can then start Ethereum Wallet and it will connect to your Parity instance.


See Also