Go Ethereum's documentation for running the command line program is at https://geth.ethereum.org/docs/interface/command-line-options

There it specifies the --syncmode option with the explanation:

Blockchain sync mode ("fast", "full", or "light")

Where are the terms "fast", "full", and "light" specified?


Not sure where exactly it is officially documented, but I recently wrote an article about Running an Ethereum Full Node on a RaspberryPi 4 (model B) where I provide in the introduction a summary of the different syncing modes of Geth.

Extract from the article:

Blockchain sync mode [--syncmode]:

full sync: A full sync downloads all the data (block headers and block bodies), processes the entire blockchain one link at a time, and replays all transactions that ever happened in history (transaction processing and PoW verification). This method is the most traditional and stable but can take a very a long time (up to a few weeks) and would require a more powerful machine. At the end of the process, the node is a full node.

fast sync: A fast sync also downloads all the data (block headers and block bodies) but exchanges processing power for bandwidth usage. Instead of processing all the transactions that ever happened, fast sync downloads all the transaction receipts and the entire recent state database and perform a PoW verification. When the chain reaches a recent state (head - 1024 blocks), geth switches to full sync mode, import the remaining blocks and process them as in the classical sync (full) to obtain a full node.

light sync: Light mode syncs directly to the last few blocks, does not store the whole blockchain in database. Unlike full and fast, is not a full node as it doesn't store the entire blockchain but only the block headers, and it depends on full nodes. But this approach, less secure and more suitable for IOT/mobiles, only uses 100MB of space.

Blockchain garbage collection mode [--gcmode]: Garbage collection is used to discard old state tries and save some space.

--gcmode full enables the garbage collection to keep in memory only the latest 128 tries. This saves a lot of space and it takes less than 200 GB at this stage (Sept 2019) to run a full node in this setup.

--gcmode archive disables the garbage collection and keep all the historical state data blocks after blocks of Ethereum since the Genesis. (bear in mind, it takes more than 2.3 TB of space). But very few people (such as Block Explorers) need an archive node.


They are specified when you run geth --help from a command line.

When I run it locally on my PC (with Geth v1.5.7-stable-da2a22c3 installed), I get:

--fast     Enable fast syncing through state downloads
--light    Enable light client mode

Sorry, apparently this Geth version doesn't support full...

  • Geth still supports full sync "--syncmode full" (--fast is just an alias of --syncmode fast) – Greg Jeanmart Oct 19 '19 at 18:04
  • @GregJeanmart: Yup, guess you're right. I only copied the relevant part provided with geth --help (as this user has asked where is the documentation of these options). – goodvibration Oct 19 '19 at 18:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.