README
¶
Celestia Node
Golang implementation of Celestia's data availability node types (light
| full
| 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.23 or higher |
System Requirements
See the official docs page for system requirements per node type:
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
- Full nodes - fully reconstruct and store blocks by sampling the DA network for shares
- 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
, full
or light
.
celestia <node_type> init
celestia <node_type> start
Please refer to this guide for more information on running a node.
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.
Directories
¶
Path | Synopsis |
---|---|
api
|
|
docgen
Package docgen generates an OpenRPC spec for the Celestia Node.
|
Package docgen generates an OpenRPC spec for the Celestia Node. |
Package das contains the most important functionality provided by celestia-node.
|
Package das contains the most important functionality provided by celestia-node. |
Package header contains all services related to generating, requesting, syncing and storing ExtendedHeaders.
|
Package header contains all services related to generating, requesting, syncing and storing ExtendedHeaders. |
libs
|
|
blob/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
blobstream/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
da/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
das/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
fraud/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
header/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
node/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
p2p/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
share/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
state/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
Package share contains logic related to the retrieval and random sampling of shares of block data.
|
Package share contains logic related to the retrieval and random sampling of shares of block data. |
availability/light
TODO(@Wondertan): Instead of doing sampling over the coordinates do a random walk over NMT trees.
|
TODO(@Wondertan): Instead of doing sampling over the coordinates do a random walk over NMT trees. |
availability/mocks
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |
shwap/getters/mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
shwap/p2p/shrex
Package shrex provides functionality that powers the share exchange protocols used by celestia-node.
|
Package shrex provides functionality that powers the share exchange protocols used by celestia-node. |
shwap/p2p/shrex/peers
Package peers provides a peer manager that handles peer discovery and peer selection for the shrex getter.
|
Package peers provides a peer manager that handles peer discovery and peer selection for the shrex getter. |
shwap/p2p/shrex/shrexeds
This package defines a protocol that is used to request extended data squares from peers in the network.
|
This package defines a protocol that is used to request extended data squares from peers in the network. |
shwap/p2p/shrex/shrexnd
This package defines a protocol that is used to request namespaced data from peers in the network.
|
This package defines a protocol that is used to request namespaced data from peers in the network. |
shwap/p2p/shrex/shrexsub
This package defines a protocol that is used to broadcast shares to peers over a pubsub network.
|
This package defines a protocol that is used to broadcast shares to peers over a pubsub network. |
Package state provides a structure for celestia-node's ability to access state-relevant information from as well as submit transactions/messages to the celestia network.
|
Package state provides a structure for celestia-node's ability to access state-relevant information from as well as submit transactions/messages to the celestia network. |