Skip to content
This repository has been archived by the owner on Apr 29, 2024. It is now read-only.
/ celestia-da Public archive

Celestia Implementation of Modular Data Availability Interface

License

Notifications You must be signed in to change notification settings

rollkit/celestia-da

Repository files navigation

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.

build-and-test golangci-lint Go Report Card codecov GoDoc

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.

Tools

  1. Install golangci-lint
  2. Install markdownlint
  3. Install hadolint
  4. 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.