celestia-app
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
-
Install Go 1.21.1
-
Clone this repo
-
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.
-
Navigate to the latest release on https://github.com/celestiaorg/celestia-app/releases.
-
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
).
-
Extract the archive
tar -xvf celestia-app_Linux_x86_64.tar.gz
-
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.
-
Navigate to the latest release on https://github.com/celestiaorg/celestia-app/releases.
-
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
).
-
Verify the checksums
sha256sum --ignore-missing --check checksums.txt
You should see output like this:
celestia-app_Linux_x86_64.tar.gz: OK
-
Download the verify-signature.sh script.
-
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.
- Install golangci-lint
- Install markdownlint
- Install hadolint
- Install yamllint
- Install markdown-link-check
- 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
Careers
We are hiring Go engineers! Join us in building the future of blockchain scaling and interoperability. Apply here.