Plug WeaveVM DA into any Reth network: the DA ExEx

Plug WeaveVM DA into any Reth network: the DA ExEx

September 16, 2024

Adding a DA layer usually needs custom implementation or requires that a chain has been architected from the start with one DA solution in mind. We’re on a mission to make it simple for any chain to plug in WeaveVM as frictionlessly as possible, so we’re excited to roll out an integration any Reth network can use to tap into WeaveVM’s high-throughput DA and permanent storage without any changes to the sequencer code.

In this article, we’ll touch on the basics of DA and Execution Extensions, and provide a quick guide on how to add WeaveVM DA to your Reth-powered network.

DA in simple terms

In simple terms, Data Availability (DA) refers to the process where the block producer publishes all transaction data of a block to the network, allowing validators to download it.

When a block producer publishes the complete data and validators can access it, the data is considered available. However, if the block producer withholds any data, preventing validators from downloading it in full, the data is considered as unavailable.

L2s posting to WeaveVM have an immutable, persistently available record of truth, secured by the world’s most robust storage chain – Arweave. Even with the overheads of Arweave considered, WeaveVM is able to provide a permanent DA layer that’s faster and cheaper than temporary alternatives.

What are Reth Execution Extensions?

From the Reth ExEx docs:

Execution Extensions (or ExExes, for short) allow developers to build their own infrastructure that relies on Reth as a base for driving the chain (be it Ethereum or OP Stack) forward.

An Execution Extension is a task that derives its state from changes in Reth’s state. Some examples of such state derivations are rollups, bridges, and indexers. They are called Execution Extensions because the main trigger for them is the execution of new blocks (or reorgs of old blocks) initiated by Reth.

Plug WeaveVM DA into any Reth client

Adding a DA layer usually requires base-level changes to a network’s architecture. Typically, DA data is posted either by sending calldata to the L1 or through blobs, with the posting done at the sequencer level or by modifying the rollup node’s code.

This ExEx introduces an emerging, non-traditional DA interface for EVM rollups. No changes are required at the sequencer level, and it’s all handled via the ExEx, which is easy to add to any Reth client in just 80 lines of code

Integration tutorial

First, you’ll need to add the following environment variables to your Reth instance:

da exex env

The archiver_pk refers to the private key of the WeaveVM wallet, which is used to pay gas fees on the WeaveVM network for data posting. The network variable points to the path of your network configuration file used for the ExEx. A typical network configuration file looks like this:

da exex network

For a more detailed setup guide for your network, check out this guide.

Finally, to implement the WeaveVM DA ExEx in your Reth client, simply import the DA ExEx code into your ExExes directory and it will work off the shelf with your Reth setup. Get the code here.

Conclusion

We want to make permanent data the standard for blockchains, and know that ease of integration is a big factor to consider for DA. We think Arweave is the ultimate solution and are proud to be the first EVM interface for chains to leverage its power.

With the WeaveVM ExEx DA, EVM rollups running Reth clients can now easily integrate with WeaveVM’s high-throughput DA and permanent data storage using fewer than 80 lines of code.

This DA interface operates without touching the rollup’s core codebase or requiring significant changes at the sequencer level. Moreover, thanks to the architecture of ExExes, WeaveVM can be dropped into any Reth client either as the sole DA layer or alongside existing DA solutions.