celestia-da
⚠ celestia-da is deprecated. See the migration guide for details.
celestia-da is an implementation of the Generic DA interface
for modular blockchains. It extends celestia-node and runs a gRPC service,
which can be used by rollup clients to read and write blob data to a specific
namespace on celestia.
Minimum requirements
Requirement |
Notes |
Go version |
1.22 or higher |
Installation
git clone https://github.com/rollkit/celestia-da.git
cd celestia-da
make build
sudo make install
Usage
celestia-da is a wrapper around celestia-node, so see
celestia node documentation for
details on configuring and running celestia-node.
celestia-da connects to celestia-node using JSON-RPC using the node rpc
endpoint. See node rpc docs for details.
celestia-da exposes a gRPC service that can be used with any gRPC client to
submit and retrieve blobs from a specific
namespace on the celestia network.
Note that celestia-da version may differ from the bundled celestia-node
version. Use the celestia-da version
command to print the build information
including the bundled celestia-node version.
To start a celestia-da instance, use the preferred node type with start
command along with the gRPC specific flags as documented below.
Example
Run celestia-da light mainnet node with a default DA interface server
accepting blobs on a randomly chosen namespace:
celestia-da light start
--core.ip <public ip>
--da.grpc.namespace $(openssl rand -hex 10)
Note that the celestia-node RPC auth token is auto generated using the default
celestia-node store. If passed, the da.grpc.token
flag
will override the default auth token.
Flags
Flag |
Usage |
Default |
da.grpc.namespace |
celestia namespace to use (hex encoded) |
none; required |
da.grpc.address |
celestia-node RPC endpoint address |
http://127.0.0.1:26658 |
da.grpc.listen |
gRPC service listen address |
127.0.0.1:0 |
da.grpc.network |
gRPC service listen network type |
tcp |
da.grpc.token |
celestia-node RPC auth token |
--node.store auto generated |
da.grpc.gasprice |
gas price for estimating fee (utia/gas ) |
-1 celestia-node default |
See celestia-da light/full/bridge start --help
for details.
- Install golangci-lint
- Install markdownlint
- Install hadolint
- Install yamllint
Helpful commands
# Print celestia-da version build information, including bundled celestia-node version
celestia-da version
# Run unit tests
make test-unit
# Run all tests including integration tests
make test
# Run linters (requires golangci-lint, markdownlint, hadolint, and yamllint)
make lint
Contributing
We welcome your contributions! Everyone is welcome to contribute, whether it's
in the form of code, documentation, bug reports, feature
requests, or anything else.
If you're looking for issues to work on, try looking at the
good first issue list.
Issues with this tag are suitable for a new external contributor and is a great
way to find something you can help with!
Please join our
Community Discord
to ask questions, discuss your ideas, and connect with other contributors.
Code of Conduct
See our Code of Conduct here.