Skip to content

Latest commit

 

History

History

celestia-architecture

order parent
1
order

Tendermint and Celestia

celestia-core is not meant to be used as a general purpose framework. Instead, its main purpose is to provide certain components (mainly consensus but also a p2p layer for Tx gossiping) for the Celestia main chain. Hence, we do not provide any extensive documentation here.

Instead of keeping a copy of the Tendermint documentation, we refer to the existing extensive and maintained documentation and specification:

Reading these will give you a lot of background and context on Tendermint which will also help you understand how celestia-core and celestia-app interact with each other.

Celestia

As mentioned above, celestia-core aims to be more focused on the Celestia use-case than vanilla Tendermint. Moving forward we might provide a clear overview on the changes we incorporated. For now, we refer to the Celestia specific ADRs in this repository as well as to the Celestia specification:

Architecture Decision Records (ADR)

This is a location to record all high-level architecture decisions in this repository.

You can read more about the ADR concept in this blog post.

An ADR should provide:

  • Context on the relevant goals and the current state
  • Proposed changes to achieve the goals
  • Summary of pros and cons
  • References
  • Changelog

Note the distinction between an ADR and a spec. The ADR provides the context, intuition, reasoning, and justification for a change in architecture, or for the architecture of something new. The spec is much more compressed and streamlined summary of everything as it stands today.

If recorded decisions turned out to be lacking, convene a discussion, record the new decisions here, and then modify the code to match.

Note the context/background should be written in the present tense.

To start a new ADR, you can use this template: adr-template.md

Table of Contents