celestia-app

module
v1.22.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 26, 2024 License: Apache-2.0

README

celestia-app

Go Reference mdBook Specs GitHub Release Go Report Card Lint Tests / Code Coverage codecov GitPOAP Badge

celestia-app is a blockchain application built using parts of the Cosmos stack. celestia-app uses

Diagram

                ^  +-------------------------------+  ^
                |  |                               |  |
                |  |  State-machine = Application  |  |
                |  |                               |  |   celestia-app (built with Cosmos SDK)
                |  |            ^      +           |  |
                |  +----------- | ABCI | ----------+  v
Celestia        |  |            +      v           |  ^
validator or    |  |                               |  |
full consensus  |  |           Consensus           |  |
node            |  |                               |  |
                |  +-------------------------------+  |   celestia-core (fork of CometBFT)
                |  |                               |  |
                |  |           Networking          |  |
                |  |                               |  |
                v  +-------------------------------+  v

Install

Source
  1. Install Go 1.22.4

  2. Clone this repo

  3. Install the celestia-app CLI

    make install
    
Prebuilt binary

If you'd rather not install from source, you can download a prebuilt binary from the releases page.

  1. Navigate to the latest release on https://github.com/celestiaorg/celestia-app/releases.

  2. Download the binary for your platform (e.g. celestia-app_Linux_x86_64.tar.gz) from the Assets section. Tip: if you're not sure what platform you're on, you can run uname -a and look for the operating system (e.g. Linux, Darwin) and architecture (e.g. x86_64, arm64).

  3. Extract the archive

    tar -xvf celestia-app_Linux_x86_64.tar.gz
    
  4. Verify the extracted binary works

    ./celestia-appd --help
    
  5. [Optional] verify the prebuilt binary checksum. Download checksums.txt and then verify the checksum:

    sha256sum --ignore-missing --check checksums.txt
    

    You should see output like this:

    celestia-app_Linux_x86_64.tar.gz: OK
    
Ledger Support

Ledger is not supported on Windows and OpenBSD.

Usage

# Print help
celestia-appd --help
Environment variables
Variable Explanation Default value Required
CELESITA_HOME Home directory for the application User home dir. Ref. Optional
Create your own single node devnet

# Start a single node devnet using the pre-installed celestia app
./scripts/single-node.sh

# Build and start a single node devnet
./scripts/build-run-single-node.sh

# Post data to the local devnet
celestia-appd tx blob PayForBlobs [hexNamespace] [hexBlob] [flags]

Note: please note that the ./scripts/ commands above, created a random tmp directory and keeps all data/configs there.

See https://docs.celestia.org/category/celestia-app for more information

Contributing

Tools
  1. Install golangci-lint
  2. Install markdownlint
  3. Install hadolint
  4. Install yamllint
  5. Install markdown-link-check
  6. Install goreleaser
Helpful Commands
# Build a new celestia-app binary and output to build/celestia-appd
make build

# Run tests
make test

# Format code with linters (this assumes golangci-lint and markdownlint are installed)
make fmt

# Regenerate Protobuf files (this assumes Docker is running)
make proto-gen

# Build binaries with goreleaser
make goreleaser-build
Docs

Package-specific READMEs aim to explain implementation details for developers that are contributing to these packages. The specs aim to explain the protocol as a whole for developers building on top of Celestia.

Audits

Informal Systems audited celestia-app v1.0.0-rc6 in Q3 of 2023. See docs/audit/informal-systems.pdf for the full report.

Careers

We are hiring Go engineers! Join us in building the future of blockchain scaling and interoperability. Apply here.

Directories

Path Synopsis
app
cmd
celestia-appd command
multiplexer module
pkg
da
proto
test
cmd/txsim command
e2e/cmd/e2e command
interchain module
testground module
x
blob
blob is a Cosmos SDK module that enables users to pay for data to be published to the Celestia blockchain.
blob is a Cosmos SDK module that enables users to pay for data to be published to the Celestia blockchain.
blob/types
Package types is a reverse proxy.
Package types is a reverse proxy.
mint/types
Package types is a reverse proxy.
Package types is a reverse proxy.
qgb
qgb/types
Package types is a reverse proxy.
Package types is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL