Browse by type
celestia-core is a fork of cometbft/cometbft, an implementation of the Tendermint protocol, with the following changes:
PrepareProposal and ProcessProposal because they haven't yet landed in a CometBFT release.DataHash in the block header is determined. In CometBFT, DataHash is based on the transactions included in a block. In Celestia, block data (including transactions) are erasure coded into a data square to enable data availability sampling. In order for the header to contain a commitment to this data square, DataHash was modified to be the Merkle root of the row and column roots of the erasure coded data square. See ADR 008 for the motivation or celestia-app/pkg/da/data_availability_header.go for the implementation. Note on the implementation: celestia-app computes the hash in prepare_proposal and returns it to CometBFT via blockData.Hash so a modification to celestia-core isn't strictly necessary but comments were added.BlockAPIBlobstreamAPISee ./docs/celestia-architecture for architecture decision records (ADRs) on Celestia modifications.
^ +-------------------------------+ ^
| | | |
| | 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
See https://github.com/celestiaorg/celestia-app#install
See https://github.com/celestiaorg/celestia-app#usage
This repo intends on preserving the minimal possible diff with cometbft/cometbft to make fetching upstream changes easy. If the proposed contribution is
not specific to Celestia: consider making the contribution upstream in CometBFT
Install Go 1.23.6+
# Build a new CometBFT binary and output to build/comet
make build
# Install CometBFT binary
make install
# Run tests
make test
# If you modified any protobuf definitions in a `*.proto` file then
# you may need to lint, format, and generate updated `*.pb.go` files
make proto-lint
make proto-format
make proto-gen
main is the canonical branch for development. Most PRs should target this branch and optionally be backported to a release branch.v0.38.x-celestia was based on CometBFT v0.38.x. Releases from this branch look like v1.54.1-tm-v0.38.17 and are used by celestia-app v4.x.v0.34.x-celestia was based on CometBFT v0.34.x. Releases from this branch look like v1.52.1-tm-v0.34.35 and are used by celestia-app v3.x.Previous releases are formatted: v<CELESTIA_CORE_VERSION>-tm-v<COMETBFT_VERSION>.
For example: v1.4.0-tm-v0.34.20 is celestia-core version 1.4.0 based on CometBFT 0.34.20. CELESTIA_CORE_VERSION strives to adhere to Semantic Versioning.
Note: future releases from the main branch may be released as v0.39.x without the TENDERMINT_CORE_VERSION suffix because CometBFT v0.39.x was not released.
$ claude mcp add celestia-core \
-- python -m otcore.mcp_server <graph>