Each node can join and sync with the network in two ways:
Sync from snapshot: Sync from snapshot file - need minutes for the validator to become synced
Sync from genesis: Syncing from block 0 and validating every block from genesis time until now - need hours for the validator to become synced
Sync from Genesis :
You need tobefore syncing from genesis
You must assign to 1 second in ./.SLC/config/config.toml
# .SLC/config/config.toml
timeout_commit = "1s"
Run SLCd Core for begging syncing and verifying from genesis block until most recent block:
SLCd start
When a node is syncing it won't participate in consensus and after syncing is completed, the node will become a validator node after successfully synced with the network.
Sync from snapshot :
With state sync your node will download data related to the head or near the head of the chain and verify the data. This leads to drastically shorter times for joining a network.
For starting StateSync you need to remove node data, you can test if .SLC/data is empty or not. Node can clear it's history using following command:
SLCd tendermint unsafe_reset_all
Careful: get a copy from /config folder to save additional files like private_validator_key.json
After state is cleared node must enable state sync in ./SLC/config.toml .
#######################################################
### State Sync Configuration Options ###
#######################################################
[statesync]
# State sync rapidly bootstraps a new node by discovering, fetching, and restoring a state machine
# snapshot from peers instead of fetching and replaying historical blocks. Requires some peers in
# the network to take and serve state machine snapshots. State sync is not attempted if the node
# has any local state (LastBlockHeight > 0). The node will have a truncated block history,
# starting from the height of the snapshot.
enable = false
# RPC servers (comma-separated) for light client verification of the synced state machine and
# retrieval of state data for node bootstrapping. Also needs a trusted height and corresponding
# header hash obtained from a trusted source, and a period during which validators can be trusted.
#
# For Cosmos SDK-based chains, trust_period should usually be about 2/3 of the unbonding time (~2
# weeks) during which they can be financially punished (slashed) for misbehavior.
rpc_servers = ""
trust_height = 0
trust_hash = ""
trust_period = "168h0m0s"
# Time to spend discovering snapshots before initiating a restore.
discovery_time = "15s"
# Temporary directory for state sync snapshot chunks, defaults to the OS tempdir (typically /tmp).
# Will create a new, randomly named directory within, and remove it when done.
temp_dir = ""
# The timeout duration before re-requesting a chunk, possibly from a different
# peer (default: 1 minute).
chunk_request_timeout = "10s"
# The number of concurrent chunk fetchers to run (default: 1).
chunk_fetchers = "4"
For Alpha0 TestNet a node can get trust_hash from SwapLand Explorer in each 100 blocks. Node can asign rpc_servers to default SwapLand Foundation Node Address:
http://135.181.245.48:26657/
You can get state sync info from SwapLand Side Explorer: