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 [
fullsync: 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.
fastsync: 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.
lightsync: 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 fullenables 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 archivedisables 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