Coder Social home page Coder Social logo

jcstein / celestia-da Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rollkit/celestia-da

0.0 1.0 0.0 327 KB

Celestia Implementation of Modular Data Availability Interface

License: Apache License 2.0

Shell 2.11% Go 83.84% Makefile 9.33% Dockerfile 4.72%

celestia-da's Introduction

celestia-da

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.21 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 deafult

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.

celestia-da's People

Contributors

tuxcanfly avatar tzdybal avatar gupadhyaya avatar dependabot[bot] avatar manav-aggarwal avatar msevey avatar jcstein avatar nashqueue avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.