This is a community wiki, with the hope that it can be updated by the community as developments take place.
Here's latest from Ethereum Core developer Péter:
karalabe [Ethereum] - Péter Szilágyi
Hi, the stable
geth didn't account for a lot of weak peers, which make syncing quite
hard even for well connected peers. One suggestion is to try the
latest develop version, which is light years ahead sync wise from the
stable branch
(https://gitter.im/ethereum/go-ethereum?at=57526dc7e8163f872c4de23c),
or if you don't mind building geth for yourself, run this aggregating
PR (https://github.com/ethereum/go-ethereum/pull/2657) that introduces
a ton of fixes for full imports and higher latency connections. This
latter PR should be merged in on Monday and hopefully also pushed out
to the stable branch, so you can consider it safe to use :)
You should be able to update to this when the next release, Geth 1.4.6 is available imminently according to Péter. (Geth 1.5 will be released later.)
--cache=1024
should usually be specified in addition to --fast
, otherwise the default uses a much smaller cache (--cache=16
). A 50% speed increase is possible just by increasing the cache.
If you stop geth --fast
, you can run geth --cache=1024
without needing to delete anything.
The flags --jitvm
and --jitcache
may also give a speed increase.
(1) What's the geth default blockchain sync type when installing via command line tools? Full?
Just tested with geth 1.5.6, the default is full
.
(2) Do my settings for geth automatically transfer over to Mist -- and visa versa? (e.g., if I'm running geth --fast
will Mist also refer to the same size blockchain?)
Yes, mist uses (in most cases) geth as Ethereum node, so if you run geth --fast
, mist will work in fast mode. However, if you stop a geth --fast
node, and restart it, it will resume in full
mode as far as I remember. This means, after shutting down geth, and starting mist, it will start a full node. But that terminology is misleading in some cases, and you should probably read on here:
(3) Is it possible to run Mist in "light" mode? I saw from this answer that Mist can be in "full" or "fast" sync but didn't see "light". I tried it, and it looks like I'm not getting any errors yet, but curious if there are known issues.
Light client was just very recently released and you should expect hiccups. The same goes for mist if you use a geth node in light
mode. As if Ethereum Stack Exchange isn't awesome already, check out this post:
(4) Is it possible to have multiple copies of the blockchain on my computer? For example, if I first set up geth using geth -full
and then I run geth -light
, will the light version overwrite the full version or will I need additional space to sync light?
Yes, that is possible. Running a full node, i.e.,
$ geth #full node (default),
creates a full copy of the blockchain in ~/.ethereum/geth/chaindata/
.
Running a light node, i.e.,
$ geth --light #,
creates a directory for the state in ~/.ethereum/geth/lightchaindata/
. To run both clients at the same time, you need some additional adjustments such as IPC path, ports, etc.
However, if you want to run a --fast
sync, this only works on the first run of geth
. If you already synced the full chain, you will get a message like this if you run geth in fast mode:
I0112 21:09:00.024747 eth/handler.go:119] blockchain not empty, fast sync disabled
If you insist on keeping a full and a fast copy of the blockchain on the same device, you can use the --datadir
switch.
Best Answer
FYI: --fast is default if you start geth the first time with no blocks downloaded. If you restart geth after initial start, --fast doesn't work anymore (it only works starting from scratch).
If you have an SSD, it's expected to take 3-6h. If you have a spinning HDD, it might take days (so i wouldn't recommend it).
Try adding --cache 2048 or --cache 4096 if you have a lot of RAM (8/16GB) to help the sync a little bit (default is 1024).