github.com/okex/exchain@v1.8.0/libs/tendermint/docs/tendermint-core/fast-sync.md (about) 1 --- 2 order: 6 3 --- 4 5 # Fast Sync 6 7 In a proof of work blockchain, syncing with the chain is the same 8 process as staying up-to-date with the consensus: download blocks, and 9 look for the one with the most total work. In proof-of-stake, the 10 consensus process is more complex, as it involves rounds of 11 communication between the nodes to determine what block should be 12 committed next. Using this process to sync up with the blockchain from 13 scratch can take a very long time. It's much faster to just download 14 blocks and check the merkle tree of validators than to run the real-time 15 consensus gossip protocol. 16 17 ## Using Fast Sync 18 19 To support faster syncing, tendermint offers a `fast-sync` mode, which 20 is enabled by default, and can be toggled in the `config.toml` or via 21 `--fast_sync=false`. 22 23 In this mode, the tendermint daemon will sync hundreds of times faster 24 than if it used the real-time consensus process. Once caught up, the 25 daemon will switch out of fast sync and into the normal consensus mode. 26 After running for some time, the node is considered `caught up` if it 27 has at least one peer and it's height is at least as high as the max 28 reported peer height. See [the IsCaughtUp 29 method](https://github.com/tendermint/tendermint/blob/b467515719e686e4678e6da4e102f32a491b85a0/blockchain/pool.go#L128). 30 31 If we're lagging sufficiently, we should go back to fast syncing, but 32 this is an [open issue](https://github.com/tendermint/tendermint/issues/129).