Light Clients and Ethereum Networks
The latest Parity release has led to a renewed debate about the role of various client types in the overall health of the Ethereum network.
Parity is a next generation Ethereum browser developed by the Ethcore team, led by Dr. Gavin Wood. The group contains many of the original members who built and launched the Ethereum network. Their goal is to develop a fast, reliable client to interact with the Ethereum network that can be integrated directly into the browser. Performance, reliability, compatibility and ease of use are the key objectives.
The latest release of parity has ‘state-snapshotting’, which allows for much faster network sync times. The concern is that it will have a negative impact on the health of the Ethereum network. If use of the parity client grows rapidly, it would become increasingly difficult to sync with the network; as parity does not provide all necessary data for full client peers to sync. Reliable peers with the data they require become difficult to find.
Through state snapshotting with Parity, we have what seems to be a full client running on the ‘eth’ protocol. With this, it appears that the client is unable to provide all the data that another full-client peer on the network expects to receive.
As parity will be running on the ‘eth’ protocol, other nodes will expect it to make certain data available. The data includes headers, blocks, transactions and receipts. However, a parity client does not have that information available. It is deleted. Tied up with this issue is the overall effect of light clients on the network. Too many light clients could also affect the health and stability of the network.
Light clients can be seen as leeching off the network when they take data from other peers without the provision of data in kind. While they may be leechers in a technical sense, their assistance to the network does not go unnoticed. As a network grows in popularity its user base broadens and its blockchain bloats. New, less technical, users are going to be less willing and able to deal with a full client. Therefore, light clients contribute to the growth of the network through ease of use.
In a sense, these arguments are recycled from earlier debates concerning the bitcoin network. Ethereum, however, has a specific approach which is not widely known. Specifically, light clients run on their own separate ‘les’ network protocol and do not directly affect the ‘eth’ protocol. This makes Ethereum different to Bitcoin in a key way.
The ‘eth’ and ‘les’ separation of network protocols is an approach that is working well so far. Snapshotting is also an important tool, implemented by a client like parity. While it can be problematic at times, it serves as an important function.
There is a delicate balance to achieve here. While technically leeching, light clients are important for the long-term viability, popularity and utility of a network like Ethereum. As the user base broadens there will be increasing numbers of people unwilling and unable to use full clients.
There will be demand for full nodes that don’t require all the data baggage accumulated since genesis. Going forward, it is likely the ‘eth’ and ‘les’ distinction will be insufficient on its own. Clients and their interactions are the health of the network. How they continue to develop will have a direct effect on the Ethereum network’s long term viability.