MCPcopy Index your code
hub / github.com/celestiaorg/celestia-node

github.com/celestiaorg/celestia-node @v0.31.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.31.3 ↗ · + Follow
3,314 symbols 15,049 edges 475 files 1,543 documented · 47%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Celestia Node

Go Reference GitHub release (latest by date including pre-releases) Go CI Go Report Card codecov Ask DeepWiki

Golang implementation of Celestia's data availability node types (light | bridge).

The celestia-node types described above comprise the celestia data availability (DA) network.

The DA network wraps the celestia-core consensus network by listening for blocks from the consensus network and making them digestible for data availability sampling (DAS).

Continue reading here if you want to learn more about DAS and how it enables secure and scalable access to Celestia chain data.

Table of Contents

Minimum requirements

Requirement Notes
Go version 1.25 or higher

System requirements

See the official docs page for system requirements for each node type.

Supported architectures

Celestia-node officially supports the following architectures:

  • linux/amd64
  • linux/arm64
  • darwin/amd64 (macOS Intel)
  • darwin/arm64 (macOS Apple Silicon)

Only these four architectures are officially tested and supported.

Installation

git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node
make build
sudo make install

For more information on setting up a node and the hardware requirements needed, go visit our docs at https://docs.celestia.org.

API docs

The celestia-node public API is documented here.

Node types

  • Bridge nodes - relay blocks from the celestia consensus network to the celestia data availability (DA) network
  • Light nodes - verify the availability of block data by sampling the DA network for shares

More information can be found here.

Run a node

<node_type> can be: bridge or light.

celestia <node_type> init
celestia <node_type> start

Please refer to this guide for more information on running a node.

Quick Start with Light Node on arabica

View available commands and their usage:

make node-help

Install celestia node and cel-key binaries:

make node-install

Start a light node with automated setup:

make light-arabica-up

This command:

  • Automatically checks wallet balance
  • Requests funds from faucet if needed
  • Sets node height to latest-1 for quick startup
  • Initializes the node if running for the first time

Options:

make light-arabica-up COMMAND=again    # Reset node state to latest height
make light-arabica-up CORE_IP=<ip>     # Use custom core IP

Environment variables

Variable Explanation Default value Required
CELESTIA_BOOTSTRAPPER Start the node in bootstrapper mode false Optional

Package-specific documentation

Code of Conduct

See our Code of Conduct here.

Extension points exported contracts — how you extend this code

Submitter (Interface)
Submitter is an interface that allows submitting blobs to the celestia-core. It is used to avoid a circular dependency b [6 …
blob/service.go
Availability (Interface)
Availability defines interface for validation of Shares' availability. go:generate mockgen -destination=availability/mo [8 …
share/availability.go
Accessor (Interface)
Accessor is used to access the data from the shwap containers. [8 implementers]
share/shwap/accessor.go
Accessor (Interface)
Accessor is an interface for accessing extended data square data. [8 implementers]
share/eds/accessor.go
AccessorGetter (Interface)
AccessorGetter abstracts storage system that indexes and manages multiple eds.AccessorGetter by network height. [4 implementers]
store/store.go
Fetcher (Interface)
Fetcher abstracts the core block source consumed by the Listener. It is satisfied both by a single *BlockFetcher and by [3 …
core/listener.go
Cache (Interface)
Cache is an interface that defines the basic Cache operations. [3 implementers]
store/cache/cache.go
Pruner (Interface)
Pruner contains methods necessary to prune data from the node's datastore. [3 implementers]
pruner/pruner.go

Core symbols most depended-on inside this repo

Equal
called by 435
blob/commitment_proof.go
Run
called by 253
nodebuilder/node.go
Cleanup
called by 233
nodebuilder/tests/tastora/framework.go
New
called by 191
header/header.go
Height
called by 187
share/shwap/p2p/bitswap/block.go
Add
called by 176
share/shwap/p2p/discovery/set.go
Error
called by 153
share/eds/byzantine/byzantine.go
Close
called by 152
nodebuilder/store.go

Shape

Method 1,667
Function 1,221
Struct 327
TypeAlias 39
Interface 31
FuncType 29

Languages

Go100%

Modules by API surface

share/shwap/pb/shwap.pb.go129 symbols
nodebuilder/p2p/p2p.go73 symbols
nodebuilder/p2p/mocks/api.go48 symbols
store/store.go41 symbols
nodebuilder/state/mocks/api.go36 symbols
share/availability/light/availability_test.go35 symbols
nodebuilder/state/state.go34 symbols
state/core_access.go30 symbols
header/headertest/testing.go28 symbols
nodebuilder/store.go27 symbols
das/coordinator_test.go27 symbols
store/file/ods.go25 symbols

For agents

$ claude mcp add celestia-node \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact