Where are Geth's "fast" and "light" syncing options officially documented?

by William Entriken   Last Updated October 19, 2019 18:28 PM

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?

Tags : go-ethereum


Answers 2


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.

Greg Jeanmart
Greg Jeanmart
October 19, 2019 17:59 PM

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

goodvibration
goodvibration
October 19, 2019 17:59 PM

Related Questions


Updated July 15, 2017 05:28 AM

Updated July 11, 2018 03:28 AM

Updated May 04, 2018 20:28 PM

Updated July 09, 2018 23:28 PM