Syncing an Ethereum full node has become painfully slow as the size of a full node folder has increased to over 130 GB and is continually increasing. Optimizing your configuration can save you hours or even days of sync times. I had to sync a few nodes a couple of weeks back, so I started tuning my parity configuration. I am sharing my final config here so that you can quickly sync your Ethereum full node and save time!
The config for quickly syncing your node is:
parity --allow-ips=public --max-peers=256 --max-pending-peers=256 --cache-size=30720 --no-serve-light --no-periodic-snapshot --no-secretstore --no-ipc --no-hardware-wallets --no-jsonrpc --no-ws --scale-verifiers
The description of these parameters can be found on https://wiki.parity.io/Configuring-Parity-Ethereum
One parameter that you should change according to your system is
--cache-size. It is MegaBytes of RAM the node is allowed to use for cache. Set it slightly below your available RAM.
The reasoning behind this configuration is that it:
- Increases the number of peers your node connects to so that you are not limited (or less limited) by lack of nodes sending you data.
- Increases cache size to reduce the load on your hard disk.
- Disable unneeded features to reduce the load on your disk and CPU.
Once the sync is complete, you may edit the config and restart parity to enable the features like JSON-RPC that you want to use.
Your node’s hardware is also critical when syncing a full node. I used two different configurations in my test:
- Intel i7 6700 / 32GB RAM / SSD RAID 1 / 1 gbps bandwidth.
- Intel Xeon E3-1246v3 / 32GB RAM / HDD RAID 1 / 1 gbps bandwidth.
The SSD machine took about 16 hours to complete the full sync from scratch while the HDD machine took about 54 hours to complete the full sync. Sync times may vary for you depending on the network conditions and your node hardware. For what it’s worth, both of my machines are from Hetzner and cost 40 euro and 28 euro per month respectively. I am now running full Kovan and Mainnet nodes on them simultaneously, and my load average hovers around 1. These nodes are overkill for running a basic ethereum full node, but I have other stuff planned for them :).
I hope you guys will be able to quickly sync up your ethereum nodes with the help of the above config. Feel free to drop a comment if you have any questions or suggestions.