Mantis must be fully synchronized to be useful, and this applies to both the wallet and the client. So, each node has to download blockchain data from other nodes using a peer-to-peer mechanism, and then the data on the chain must be verified.
Once this process finishes, the machine is fully synced and considered a full node. It may then interact with the network.
pruning which help synchronize the data faster and reduce disk space on your node.
While the syncing process is done using the blockchain, data is stored in a rocksdb database.
The following is a brief description of the syncing process:
- Discovery: The process starts by checking pre-defined bootstrap node addresses for nodes that are always connected. Mantis then tries to find and build a list of peers (other nodes and clients already connected to the network).
- RPLx Connections are made to these peers using the
- Some blacklisting is done on nodes that aren't ideal candidates for synchronization.
- Download: There are 2 main states while syncing; an initial syncing for downloading and verifying all the existing blockchain data, and ongoing syncing while on top of the chain.
- In its initial state, Mantis downloads chain data from other clients.
- Verification: As Mantis downloads each block header and body, these blocks are verified by replaying the transactions in them.
- When the block number that is canonically referred to as the top of the chain is downloaded and verified, the client is fully synced.
- Mantis then continues to fetch and sync new blocks produced since the initial sync.
To read more about the synchronization process in Ethereum, refer to the Ethereum documentation.
Time to Synchronize
The time to synchronize the mainnet can vary widely from case to case. Machine specs, and conditions mean a mainnet sync can take anywhere from 6 hours to 3 days.
Synchronization: SYNCING BLOCKS 99.81%
Both the wallet and the client show syncing process "stuck" at 99% for quite a while. This is completely normal and is a result of the blockchain architecture.
The only solution to this is to wait and let the client sync. The Mantis team is working on performance optimizations and UI improvements to better deal with this situation.
Syncing is constantly being worked on and in-progress for Mantis. Some of the current issues and improvements we are working on include block fetcher, fast-sync, concurrency, and latency issues.