celestia-app

module
v1.0.0-rc59 Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2023 License: Apache-2.0

README

celestia-app

Go Reference mdBook Specs GitHub Release Go Report Card 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.21.1

  2. Clone this repo

  3. Install the celestia-app CLI

    make install
    
Pre-built binary

If you'd rather not install from source, you can download a pre-built 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
    
Optional: Verify the pre-built binary checksums and signatures

If you use a pre-built binary, you may also want to verify the checksums and signatures.

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

  2. Download checksums.txt, checksums.txt.sig, and 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. Verify the checksums

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

    You should see output like this:

    celestia-app_Linux_x86_64.tar.gz: OK
    
  4. Download the verify-signature.sh script.

  5. Verify the signature via the verify-signature.sh script

    ./verify-signature.sh checksums.txt.sig checksums.txt
    

    You should see output like this:

    gpg: Signature made Tue Oct 10 13:25:06 2023 UTC
    gpg:                using EDDSA key BF02F32CC36864560B90B764D469F859693DC3FA
    gpg: Good signature from "celestia-app-maintainers <celestia-app-maintainers@celestia.org>" [unknown]
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg:          There is no indication that the signature belongs to the owner.
    Primary key fingerprint: BF02 F32C C368 6456 0B90  B764 D469 F859 693D C3FA
    
Ledger Support

Ledger is not supported on Windows and OpenBSD.

Usage

# Print help
celestia-appd --help
Environment variables
Variable Explanation Default value Required
CELESTIA_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

This repo attempts to conform to conventional commits so PR titles should ideally start with fix:, feat:, build:, chore:, ci:, docs:, style:, refactor:, perf:, or test: because this helps with semantic versioning and changelog generation. It is especially important to include an ! (e.g. feat!:) if the PR includes a breaking change.

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

Date Auditor Version Report
2023/9/15 Informal Systems v1.0.0-rc6 informal-systems.pdf
2023/10/17 Binary Builders v1.0.0-rc10 binary-builders.pdf

Careers

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

Directories

Path Synopsis
app
cmd
pkg
da
proto
test
e2e
interchain Module
testground Module
tools
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.
blobstream/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.

Jump to

Keyboard shortcuts

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