celestia-node

module
v0.12.5-beta.2 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2024 License: Apache-2.0

README

Celestia Node

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

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.21 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.
rpc
cmd
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.
pb
libs
blob/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
das
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
p2p/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
rpc
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.
eds
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
p2p
Package p2p provides p2p functionality that powers the share exchange protocols used by celestia-node.
Package p2p provides p2p functionality that powers the share exchange protocols used by celestia-node.
p2p/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.
p2p/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.
p2p/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.
p2p/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.

Jump to

Keyboard shortcuts

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