If you have ever tried to get the Ethereum Blockchain synchronised on you local machine it can be slow and frustrating.
You start googling and all the information is either old and/or fragmented. You may eventually piece it all to together but it is harder than it should be. Even the official documentation is often out-of-date.
I realise this technology is moving fast but I believe it is essential to make it as simple as possible to get interested parties up and running. The barrier to entry should be as low as possible, people want to play with Ethereum not wade through endless old forum posts.
Working with the Ethereum Wallet in “light” mode
As of October 2017, the Ethereum Wallet (used to send ether about and deploy smart contracts) and geth (the official Ethereum client written in the Go programming language) have matured to a level that you should be able to get up and running a few hours (or even quicker) if you are happy to run in “light” mode.
The Light Ethereum Subprotocol (LES) is the protocol used by “light” clients, which only download block headers as they appear and fetch other parts of the blockchain on-demand.
The good news is Light Client integration (from v0.9.1 onwards) is now built into the Ethereum Wallet.
“Light” syncing time decreased by an order of magnitude, compared to running a full node. Same as for storage requirements.
Some users may still want to sync the “full” chain if they require all the chain’s data locally. Also, remember “light” mode is relatively new so may have a few kinks to be ironed out. In summary,
- “Full” Sync: Gets the block headers, the block bodies, and validates every element from genesis block.
- Fast Sync: Gets the block headers, the block bodies, it processes no transactions until
current block - 1024. Then it gets a snapshot state and proceeds like a full sync.
- “Light” Sync: Gets only the current state. To verify elements, it needs to ask to full (archive) nodes for the corresponding tree leaves.
So what you waiting for?
Fire up geth (in a terminal window):
geth --syncmode "light" --cache 1024
Open Ethereum Wallet and wait for the “light” chain to sync. You won’t be waiting days like a “full” sync and before you know it you will be happily synced and able to interact with the Ethereum ecosystem.
I will endeavour to keep this little article up to date as new releases and fixes are made available…honest.