[Ethereum] Ways to manage disk space? (e.g., running geth/Mist in “full,” “fast” and/or “light”)

fast-syncgo-ethereummiststorage

Looking to manage my disk space needs, knowing that the blockchain is ~20GB as of June 2016 and growing. Have a few related noob questions about the "full," "fast," and "light" syncs for Mist/geth.

(1) What's the geth default blockchain sync type when installing via command line tools? 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?)

(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.

(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?

Best Answer

(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.