Silkworm Ethereum Implementation

Erigon Client has two implementations: Akula and Silkworm. Akula is the Rust implementation of the Erigon client while Silkworm is the C++ implementation. It aims to be the fastest Ethereum client while simultaneously maintaining high quality and readability of its code.

Silkworm Ethereum Implementation

To know more about the Akula ethereum Implementation, read our article here.
Both Akula and Silkworm are not as mature as the Erigon client. They are suitable for commercial applications.
Silkworm maintains database-level compatibility with Erigon beta (the version which will only work on Ethereum main net until Ethereum POS transition, and then superseded by Erigon alpha).
In this post we are gonna talk about:

What is Silkworm?

Silkworm was started as an evolution of the Erigon project which is under active development. Silkworm aims to be more efficient than Go due to the programming language itself producing more efficient binaries. As a matter of fact, Silkworm individual components are almost as twice as fast as their Go counterparts.

The development of silkworm was focused on creating and testing individual stages in separation. To prepare the database state for these stages Erigon was used. Later, the work started on implementing two stages that depend on interaction with peers (via Sentry component provided by Erigon), as well as on assembly of the Silkworm StageLoop and converting disparate binaries (one per stage) into a useable product with all stages integrated into one binary.

Architecture of Silkworm

Initially, the development of Silkworm was focused on creating and testing individual stages in separation. Erigon was used to prepare the database state for these stages. Later, the work started on implementing two stages that depend on interaction with peers (via Sentry component provided by Erigon), as well as on assembly of the Silkworm StageLoop and converting disparate binaries (one per stage) into a useable product with all stages integrated into one binary.

As shown in the given figure, work is currently being done on the stages responsible for downloading block bodies and maintaining the state root hash.

Execution time of Erigon vs Execution time of Silkworm

In hours

Key Features of Silkworm

Here are some of the key features of the Silkworm Implementation:

  • Silkworm has a low active ecosystem, i.e, compared to Akula it has less users.
  • Silkworm is easier to understand as the code base is new and doesn't contain any major legacy features.
  • It has a neutral sentiment in the developer community.
  • Silkworm is licensed under the Apache-2.0 License. This license is Permissive.
    Permissive licenses have the least restrictions, and you can use them in most proj0ects.
  • Silkworm releases are not available. You will need to build from source code and install.
  • Both Akula and Silkworm are made to be faster than Erigon as unlike Erigon there is no garbage collector, therefore there is no overhead.

Silkworm's EVM

Silkworm uses evmone as its EVM interpreter, which is already known to be the fastest fully compatible EVM implementation. In addition to that, Silkworm uses MDBX, which is the fastest embedded key-value store with fully ACID transactions. Silkworm has been written with performance being one of the highest priorities. In all stages it currently implements, silkworm beats Erigon in processing speed.

Evmone is a C++ implementation of the Ethereum Virtual Machine (EVM) that aims for clean, standalone EVM implementation that can be imported as an execution module by Ethereum Client projects and that is optimized to provide fast and efficient execution of EVM smart contracts.

SilkRPC

RPC stands for remote procedure calls. RPC's are used by programs to request a service from a program that is located on another computer.

Silkworm is also developing an API service named SilkRPC, also written in C++. This API service aims to achieve better performance than the current Erigon RPC Daemon. SilkRPC has a lot of functionality that Erigon’s RPC daemon has, but in comparison has many more tests, including performance benchmarks.

SilkRPC is a license under Apache 2.0

As of now Erigon supports click minig and ethash minig. With the transition to PoS, Erigon will support block building.

There is no mining support in Silkworm as of now. It will be added at some point in the future.

Want to learn more, check out the Erigon blogs
https://erigon.substack.com/p/current-status-of-silkworm-and-silkrpc
https://erigon.substack.com/p/staged-sync-and-short-history-of?s=w

Silkworm Github.

Similar Reads

Ethereum Videos


Disclaimer: The information contained on this web page is for education purposes only. Readers are suggested to conduct their own research, review, analyze and verify the content before relying on them.

To publish press releases, project updates and guest posts with us, please email at contact@etherworld.co.

Subscribe to EtherWorld YouTube channel for ELI5 content.

Support us at Gitcoin

You've something to share with the blockchain community, join us on Discord!

Follow us at Twitter, Facebook, LinkedIn, and Instagram.


Share Tweet Send
0 Comments
Loading...
You've successfully subscribed to EtherWorld.co
Great! Next, complete checkout for full access to EtherWorld.co
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.