Unified interaction API for Data Availability chains initially designed to work with Vulcan (Stackr's Verification Layer)
This unified API for data availability services provides a scalable, secure, and efficient way for Vulcan to interact with different DA networks. It aims to standardize data access patterns, reduce complexity, and enhance the overall experience of using data availability services.
Checkout go-daash in action -> BlobDaddy ๐จ๐ป
As an un-opinionated/agnostic framework Stackr should support all different kind of DA layers and provide a smooth abstracted experience across the different DA layers.
Each DA layer has a different RPC, a different API and different Data formats. Each service also requires holding their native tokens and there are many other nuances to these as well including security models etc.
Every micro-rollup should be easily able to switch between different DA networks with minimal changes to their codebase.
- Avail
- EigenDA
- Celestia
- (planned) NearDA
- (planned) EIP-4844
- Runs with Vulcan but can be run as a standalone service
- Separate endpoints for each DA network
- Can post blobs to the respected DA network
- Blob archival management
- Backup DA posting if posting fails on one DA
- Blob chunking if max blob size is reached
- Payment abstraction: Pay conveniently in ETH or USD and let DaasH take care of token management
git clone https://github.com/stackrlabs/go-daash # clone the repository
cd go-daash/cmd/blob-server
go run . # run the server
curl --location 'localhost:8080/eigen' \
--header 'Content-Type: application/json' \
--data 'gm' # DAash away!
Avail and EigenDA run via external RPC providers while Celestia requires a running light node to be able to post blobs through go-daash
.
For Avail, you need to provide the path to a JSON config file with the following structure:
{
"seed": "<your seed phrases>",
"api_url": "wss://goldberg.avail.tools:443/ws",
"app_id": 1,
"timeout": 600
}
For Celestia, you can find the instructions to run the light node here.
You need an auth token for your Celestia light node. Copy the .env.example
file to .env
and set the CELESTIA_AUTH_TOKEN
environment variable to the auth token.
cp .env.example .env
go-da
andcelestia-da
libraries from Rollkitblobstreamx-example
repo from CryptoKass