WeaveVM x EigenDA: Permanent Storage for Temporary Data Availability

WeaveVM x EigenDA: Permanent Storage for Temporary Data Availability

December 18, 2024

We are excited to announce the introduction of WeaveVM compatibility for the EigenDA stack – a new integration that empowers developers using EigenDA for data availability to extend blob data lifespan into WeaveVM’s permanent storage, with minimal overhead and using the same API interface.

Publishing blob data to a dedicated permanent storage layer increases transparency and redundancy for EigenDA and the rollups that use it for data availability.

Get started on GitHub.

What is WeaveVM?

WeaveVM is a sovereign EVM network built towards the goal of solving the EVM storage dilemma with Arweave. It gives the coming generation of high-performance chains a place to settle and store onchain data, without worrying about cost, availability, or permanence.

WeaveVM offers scalable and cost-effective storage by using Arweave as a decentralized hard drive, both at the node and smart contract layer. This makes it possible to store large data sets and run web2-like applications without incurring EVM storage fees.

What is EigenDA?

EigenDA, created by Eigen Labs, is a secure, high-throughput decentralized data availability (DA) service built on Ethereum, leveraging EigenLayer’s restaking framework. As the first actively validated service (AVS) in the EigenLayer ecosystem, it provides scalable DA for Ethereum L2s.

With EigenDA, restakers can delegate their stake to node operators, who are responsible for validating and storing data requests and serving the data for 14 days. In return, these operators earn compensation from service fees.

Integrated with OP Stack, Arbitrum, and major RaaS providers, EigenDA plays a crucial role in Layer 2 scaling solutions by ensuring that transaction data is accessible for a specific period, typically up to 14 days.

The Need for Permanent Data Storage

As the blockchain ecosystem matures, the need for permanent data storage becomes increasingly apparent. Many chains and dApps face challenges as the growing volume of data makes it harder for archive nodes to maintain accessible and verifiable records over the long term.

The temporary nature of EigenDA’s data availability window means that after 14 days, there are no economic incentives that can guarantee the data is available and accessible, which can hinder applications that rely on historical data or require long term data access for their own applications.

Introducing the WeaveVM EigenDA Integration

To address this challenge, we have developed an EigenDA integration that allows developers to extend the lifespan of their data from EigenDA’s temporary window into WeaveVM’s permanent storage and Arweave proxy using the same API interface used by EigenDA Sidecar Proxy Server.

About the integration

The integration is a variant of EigenDA’s sidecar proxy, modified to integrate WeaveVM as a permanent archive layer for EigenDA blobs dispersed from this customized proxy server. It wraps the high-level EigenDA client, exposing endpoints for interacting with the EigenDA disperser in conformance with the OP Alt-DA server specification, and adds disperser verification logic. This simplifies integrating EigenDA into various rollup frameworks by minimizing the changes needed within their respective services.

How it works

On each PUT request, the proxy stores the dispersed EigenDA blob on WeaveVM as transaction type 2 calldata. The proxy exposes endpoints that can get transaction hashes for a provided EigenDA commitment, and retrieve encoded blobs directly from WeaveVM.

This integration is in the experimental proof of concept stage.

Data pipelines

PUT Blob Workflow

put workflow

  1. Client Sends PUT Request: The client (EVM rollup, EigenDA user) sends a PUT request with the data blob to the WeaveVM-EigenDA proxy server. The data get dispersed by the EigenDA target network disperser (Ethereum mainnet, Holesky testnet)
  2. Proxy Compresses and Stores Blob: The proxy server retrieves the blob, and stores the blob on the WeaveVM network as calldata.
  3. Store in WeaveVM and Arweave: The WeaveVM network archives the data, and the ExEx protocol pushes the blocks to Arweave for permanent storage.
  4. Proxy Returns Commitment: The proxy server returns the commitment (hash) of the stored blob to the client.

GET Blob Workflow

get workflow

  1. Client Sends GET Request: The client requests the data from the proxy server using the previously received commitment.
  2. Proxy Retrieves WeaveVM TXID: The proxy server retrieves the blob’s WeaveVM TXID from the WeaveVM network.
  3. Retrieve Data from Arweave: Using the WeaveVM TXID, the proxy fetches the archived blob from Arweave via the wvm:// protocol.
  4. Return Blob: The proxy deserializes the blob from the EigenDA encoding format, and returns the decoded blob data to the client.

How to Get Started

To start using the WeaveVM EigenDA Sidecar Proxy Server and integrate permanent storage into your stack that uses EigenDA blobs, all the necessary code, documentation, API interfaces, code examples and resources are available here.

Join Us

For ongoing support and updates, or if you’d like to contribute, be sure to join the WeaveVM community or follow us on social media for the latest developments.