Local DA
Local DA is a development-only data availability layer for testing Evolve chains without connecting to a real DA network.
Overview
Local DA provides:
- Fast, local blob storage
- No authentication required
- No gas fees
- Instant "finality"
Warning: Local DA is for development only. It provides no actual data availability guarantees.
Installation
Install the local-da binary:
go install github.com/evstack/ev-node/tools/local-da@latestOr build from source:
cd ev-node/tools/local-da
go build -o local-da .Running Local DA
Start the local DA server:
local-daDefault output:
INF NewLocalDA: initialized LocalDA module=local-da
INF Listening on host=localhost maxBlobSize=1974272 module=da port=7980
INF server started listening on=localhost:7980 module=daConfiguration
| Flag | Default | Description |
|---|---|---|
--host | localhost | Listen address |
--port | 7980 | Listen port |
Example with custom port:
local-da --port 8080Connecting Your Chain
Start your Evolve chain with the local DA address:
evnode start \
--evnode.node.aggregator \
--evnode.da.address http://localhost:7980For Cosmos SDK chains:
appd start \
--evnode.node.aggregator \
--evnode.da.address http://localhost:7980Features
No Authentication
Unlike Celestia, local DA requires no auth token:
# Celestia requires
--evnode.da.auth_token <token>
# Local DA does not
--evnode.da.address http://localhost:7980No Namespace Required
Namespace is optional with local DA:
# Optional
--evnode.da.namespace my_namespaceInstant Submission
Blobs are stored immediately with no block time delay.
Use Cases
Local Development
Test your chain logic without DA layer complexity:
# Terminal 1: Start local DA
local-da
# Terminal 2: Start your chain
evnode start --evnode.da.address http://localhost:7980CI/CD Testing
Use local DA in automated tests:
# Start local DA in background
local-da &
LOCAL_DA_PID=$!
# Run tests
go test ./...
# Cleanup
kill $LOCAL_DA_PIDIntegration Testing
Test multi-node setups locally:
# Start local DA
local-da --port 7980
# Start sequencer
evnode start \
--evnode.node.aggregator \
--evnode.da.address http://localhost:7980 \
--evnode.p2p.listen /ip4/0.0.0.0/tcp/7676
# Start full node (separate terminal)
evnode start \
--evnode.da.address http://localhost:7980 \
--evnode.p2p.peers /ip4/127.0.0.1/tcp/7676/p2p/<sequencer-peer-id>Limitations
Local DA is not suitable for:
- Production deployments
- Security testing
- Performance benchmarking (no real network latency)
- Testing DA-specific features (proofs, commitments)
Transitioning to Celestia
When ready for production, switch to Celestia:
- Set up a Celestia light node
- Update your start command:
# From local DA
--evnode.da.address http://localhost:7980
# To Celestia
--evnode.da.address http://localhost:26658
--evnode.da.auth_token $AUTH_TOKEN
--evnode.da.header_namespace $HEADER_NAMESPACE
--evnode.da.data_namespace $DATA_NAMESPACESee Celestia Guide for full instructions.
See Also
- Celestia Guide - Production DA setup
- EVM Quickstart - Getting started with EVM
- Cosmos Quickstart - Getting started with Cosmos SDK