Giter Site home page Giter Site logo

wdshin / celestia-core Goto Github PK

View Code? Open in Web Editor NEW

This project forked from celestiaorg/celestia-core

0.0 0.0 0.0 81.97 MB

Celestia node software based on Tendermint.

Home Page: https://celestia.org/

License: Other

Shell 0.63% Python 0.48% Go 97.96% Makefile 0.40% HTML 0.02% HCL 0.05% Dockerfile 0.13% Jinja 0.33%

celestia-core's Introduction

celestia-core

Go Reference GitHub Release Go Report Card Build Lint Tests

celestia-core is a fork of tendermint/tendermint with the following changes:

  1. Early adoption of the ABCI++ methods: PrepareProposal and ProcessProposal because they haven't yet landed in a Tendermint release.
  2. Modifications to how DataHash in the block header is determined. In Tendermint, DataHash is based on the transactions included in a block. In celestia-core, DataHash was modified to include the Merkle root of the row and column roots of the erasure coded data square. See ADR 008 for the motivation or ./pkg/da/data_availability_header.go for the implementation.

See ./docs/celestia-architecture for architecture decision records (ADRs) on Celestia modifications.

Diagram

                ^  +-------------------------------+  ^
                |  |                               |  |
                |  |  State-machine = Application  |  |
                |  |                               |  |   celestia-app (built with Cosmos SDK)
                |  |            ^      +           |  |
                |  +----------- | ABCI | ----------+  v
Celestia        |  |            +      v           |  ^
validator or    |  |                               |  |
full consensus  |  |           Consensus           |  |
node            |  |                               |  |
                |  +-------------------------------+  |   celestia-core (fork of Tendermint Core)
                |  |                               |  |
                |  |           Networking          |  |
                |  |                               |  |
                v  +-------------------------------+  v

Install

See https://github.com/celestiaorg/celestia-app#install

Usage

See https://github.com/celestiaorg/celestia-app#usage

Contributing

This repo intends on preserving the minimal possible diff with tendermint/tendermint to make fetching upstream changes easy. If the proposed contribution is

  • specific to Celestia: consider if celestia-app is a better target
  • not specific to Celestia: consider making the contribution upstream in Tendermint
  1. Install Go 1.17+
  2. Fork this repo
  3. Clone your fork
  4. Find an issue to work on (see good first issues)
  5. Work on a change in a branch on your fork
  6. When your change is ready, push your branch and create a PR that targets this repo

Helpful Commands

# Build a new tendermint binary and output to build/tendermint
make build

# Install tendermint 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

Branches

The canonical branches in this repo are based on Tendermint releases. For example: v0.34.x-celestia is based on the Tendermint v0.34.x release branch and contains Celestia-specific changes.

Versioning

Releases are formatted: v<CELESTIA_CORE_VERSION>-tm-v<TENDERMINT_CORE_VERSION> For example: v1.4.0-tm-v0.34.20 is celestia-core version 1.4.0 based on Tendermint 0.34.20. CELESTIA_CORE_VERSION strives to adhere to Semantic Versioning.

Careers

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

celestia-core's People

Contributors

ebuchman avatar melekes avatar jaekwon avatar tac0turtle avatar zramsay avatar liamsi avatar ethanfrey avatar greg-szabo avatar erikgrinaker avatar dependabot[bot] avatar cmwaters avatar evan-forbes avatar valardragon avatar wondertan avatar xla avatar tessr avatar odeke-em avatar mergify[bot] avatar dependabot-preview[bot] avatar rootulp avatar brapse avatar cwgoes avatar rigelrozanski avatar thanethomson avatar zmanian avatar alexanderbez avatar adlerjohn avatar caffix avatar mappum avatar petabytestorage 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.