Holger, a Core Developer at the Ethereum Foundation, spoke about the characteristics of the current clients of Ethereum, during a talk at the Ethereum Meetup in Vienna. He also discussed the characteristics of upcoming sharding clients and how they are different from the existing ones.
The developer began by speaking about the characteristics of existing clients of Ethereum. Elucidating the characters of the Ethereum Virtual machine 1.0 execution engine, he stated that the EVM is slow.
Moving forward in the discussion, he stated that the current clients of the Ethereum blockchain need to store their state. The drawback of this feature, he stated, was long download times and large disc space usage on the hard drive.
On the positive side, he stated that the communication flow is easy because the communication happens only inside the blockchain and in between accounts. Moreover, the developer stated that the fact was well proven and that the Ethereum blockchain has been functioning on the same lines for a few years. However, he stated that the communication was going to get complex.
Currently, the networking communication is performed via the DevP2P protocol, he added. The DevP2P protocol is a protocol implementation toolset that allows users to build software for different P2P networks and scenarios.
Next, the developer went on to discuss the characteristics or requirements for upcoming sharding clients. The concept of sharding popularly used in databases has been adapted by blockchains as a solution to scalability, latency and transaction throughput issues. With the implementation of sharding on the blockchain, each node will contain only a part of the data and not the entire information.
Holger explained that the sharding clients are a work in progress and there are “very many to be determined”. According to him, it is open to research.
On the contrary to the existing clients, the sharding clients are stateless, he said. He also mentioned that a lot of research was going on in the area. Holger said that the clients will be much simpler to use because it is as easy as starting the client and getting connected to the network.
Furthermore, he stated that the sharding clients will be using a new execution engine called that eWASM that stands for Ethereum flavored WebAssembly.
As opposed to normal communication, the clients will communicate through a concept of cross sharding, he stated. The concept of sharding brings the need for cross sharding communication because the sharding clients do not store their state fully, in a single node. This makes it necessary during communication for a specific node to acquire information that is not stored within its own shard. This communication is referred to as cross-shard communication.
The cross sharding communication is a big topic of research where developers are coming up with ideas of how to bring communication between one shard to the other, Holger said.
He continued to say:
“The main question here is are we doing this [cross sharding communication] synchronously or asynchronously. By synchronously we mean, are we doing this within one transaction and to get the result within this one transaction. Which is what you would expect and would be much more convenient for users.”
He concluded by stating that sharding clients will be using the standard library called libp2p for network communication.