Synchronization – How to Speed Up the Initial Sync Process?

synchronization

Is there a way to speed up initial sync process?

It is lasting for the 3rd week and seems to ever slowing down as I am close to 90% of blocks.

I am running full node on my server.

Funny thing is that even full bitcoin core sync on the same server took just 10 days while ethereum seems to stuck.

There is no eth bootstrap, am I right?

I have turned everything off, leaving geth to utilize whole server and bandwidth. It does sync occasionally, but most of the time it is looking for peers.

I have tried various geth options – no luck.

geth.exe --fast --cache 512 --maxpeers 100 --maxpendpeers 25 --v5disc --verbosity 5 console shows mostly these errors while looking for peers:

TRACE[05-20|12:28:41] << PONG/v4                               addr=x.x.x.x:30303  err=expired
TRACE[05-20|12:28:21] Failed proto handshake                   id=3f1d12044546b763 addr=x.x.x.x:30303  conn=dyndial err="too many peers"
TRACE[05-20|12:28:39] Skipping dial candidate                  id=78de8a0916848093 addr=x.x.x.x:30303 err="recently dialed"

Specs:

Mist 0.8.10 @ win 2016 server 8gb ram, RAID10 SAS 15K hdds; 1Gbit internet
Geth
Version: 1.6.0-stable
Git Commit: facc47cb5cec97b22c815a0a6118816a98f39876
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.8.1
Operating System: windows

Update: there were time sync errors; After syncing time on server I am getting other errors:

DEBUG[05-20|13:02:48] Ethereum handshake failed id=e0785eadc076b1ab conn=dyndial err="Genesis block mismatch 2720038ef46044a7 (!= d4e56740f876aef8)"
DEBUG[05-20|13:00:01] Ethereum handshake failed id=3c50be8974756f30 conn=dyndial err="Genesis block mismatch 406f1b7dd39fca54 (!= d4e56740f876aef8)"
DEBUG[05-20|13:03:30] Ethereum handshake failed id=17677980aa2fb04f conn=dyndial err="Genesis block mismatch 40cb5b4035ddab4b (!= d4e56740f876aef8)"
DEBUG[05-20|12:59:37] Ethereum handshake failed id=2507fb78c342d4c8 conn=dyndial err="Genesis block mismatch 41941023680923e0 (!= d4e56740f876aef8)"
DEBUG[05-20|13:01:06] Ethereum handshake failed id=1d612ac4de33ab58 conn=dyndial err="Genesis block mismatch 4a0055a7f3ddb050 (!= d4e56740f876aef8)"
DEBUG[05-20|12:59:14] Ethereum handshake failed id=799d0a8836e17ef7 conn=dyndial err="Genesis block mismatch 4fa57903dad05875 (!= d4e56740f876aef8)"
DEBUG[05-20|12:59:04] Ethereum handshake failed id=a3b861e2e4c0df30 conn=dyndial err="Genesis block mismatch 61ba9d21b32224a2 (!= d4e56740f876aef8)"
DEBUG[05-20|12:59:18] Ethereum handshake failed id=5bbc22cd4f3dd031 conn=dyndial err="Genesis block mismatch 6577484f58748da6 (!= d4e56740f876aef8)"
DEBUG[05-20|12:59:35] Ethereum handshake failed id=ba64dd01810cb970 conn=dyndial err="Genesis block mismatch 77b03ae0c86cc644 (!= d4e56740f876aef8)"
DEBUG[05-20|12:59:09] Ethereum handshake failed id=093900bf548eeb6e conn=dyndial err="Genesis block mismatch 8ce2489a3df8bc04 (!= d4e56740f876aef8)"
DEBUG[05-20|12:59:31] Ethereum handshake failed id=183bd38c75c213b4 conn=dyndial err="Genesis block mismatch 8ecbab5d2002f425 (!= d4e56740f876aef8)"
DEBUG[05-20|12:59:04] Ethereum handshake failed id=23a6298815a13486 conn=dyndial err="Genesis block mismatch a3c565fc15c74788 (!= d4e56740f876aef8)"
DEBUG[05-20|13:02:07] Ethereum handshake failed id=a59155da80d4db50 conn=dyndial err="Genesis block mismatch fbfd267771e132d0 (!= d4e56740f876aef8)"

Best Answer

There is no way to speedup initial sync. Make sure network ports are open. Make sure node have correct time. Then just wait.

Update: Make sure you have correct time:

Run time.is or similar online time checker. If there is more than a 10 sec difference you have time sync problem.

Normally you use NTP client to keep your machine synced with correct time. Each modern OS does it automatically for you.

For windows it may be enough to just turn internet time sync on and use pool.ntp.org as a source.windows time sync w/ pool.ntp.org

If you want more control - check this link.

If you a pro, I would recommend using Meinberg NTP service(server included) instead of standard windows' w32time.

For Mac and *nix - just check NTPd. See example here.