Coder Social home page Coder Social logo

ryz0nd / celestia-app Goto Github PK

View Code? Open in Web Editor NEW

This project forked from celestiaorg/celestia-app

0.0 1.0 0.0 29.48 MB

PoS application for the consensus portion of the Celestia network. Built using celestia-core (fork of CometBFT) and the cosmos-sdk

Home Page: https://celestia.org

License: Apache License 2.0

Shell 0.91% JavaScript 11.57% Go 86.40% Makefile 0.68% Dockerfile 0.45%

celestia-app's Introduction

celestia-app

Go Reference mdBook Specs GitHub Release Go Report Card GitPOAP Badge

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

  1. Install Go 1.22.1

  2. Clone this repo

  3. Install the celestia-app CLI

    make install

Prebuilt binary

If you'd rather not install from source, you can download a prebuilt binary from the releases page.

  1. Navigate to the latest release on https://github.com/celestiaorg/celestia-app/releases.

  2. 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).

  3. Extract the archive

    tar -xvf celestia-app_Linux_x86_64.tar.gz
  4. Verify the extracted binary works

    ./celestia-appd --help
  5. [Optional] verify the prebuilt binary checksum. Download checksums.txt and then verify the checksum:

    sha256sum --ignore-missing --check checksums.txt

    You should see output like this:

    celestia-app_Linux_x86_64.tar.gz: OK

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.

This repo contains multiple go modules. When using it, rename go.work.example to go.work and run go work sync.

Tools

  1. Install golangci-lint 1.57.0
  2. Install markdownlint 0.39.0
  3. Install hadolint
  4. Install yamllint
  5. Install markdown-link-check
  6. 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

Date Auditor Version Report
2023/9/15 Informal Systems v1.0.0-rc6 informal-systems.pdf
2023/10/17 Binary Builders v1.0.0-rc10 binary-builders.pdf

Careers

We are hiring Go engineers! Join us in building the future of blockchain scaling and interoperability. Apply here.

celestia-app's People

Contributors

rootulp avatar dependabot[bot] avatar rach-id avatar evan-forbes avatar cmwaters avatar staheri14 avatar adlerjohn avatar msevey avatar rahulghangas avatar jbowen93 avatar liamsi avatar bidon15 avatar jrmanes avatar ninabarbakadze avatar renaynay avatar mojtaba-esk avatar chirag018 avatar amityadav0 avatar smuu avatar vidhanarya avatar nashqueue avatar tac0turtle avatar tungbq avatar hoangdv2429 avatar vgonkivs avatar toanngosy avatar phamminh0811 avatar manav-aggarwal avatar gaurav-11018 avatar bao1029p avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.