redk4n / Jupiter

A research-only integration of Sovereign with Celestia

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Jupiter

Jupiter is a research-only adapter making Celestia compatible with the Sovereign SDK. None of its code is suitable for production use. It contains known security flaws and numerous inefficiencies.

Celestia Integration

The current version of Jupiter runs against Celestia-node version v0.5.0-rc5. This is the version used on the arabica testnet as of Dec 1, 2022.

Getting Started

Compile Jupiter and its Protobuf Dependencies

  1. Clone this repository. cd jupiter
  2. Clone the celestia-app, celestia-core, and cosmos-sdk repositories (git clone --depth 100 {repo_name})
  3. Install the buf Protobuf management tool (brew install bufbuild/buf/buf)
  4. Install the prost plugin for the Protobuf compiler (which generates Rust code from .proto files): cargo install protoc-gen-prost
  5. Build the Celestia-app protobuf definitions: cd celestia-app, cp ../example.buf.gen.prost.yaml buf.gen.prost.yaml, and buf generate --template buf.gen.prost.yaml
  6. Follow the same steps to generate protobufs in the cosmos-sdk/proto and celestia-core repos.

The repository should now compile with cargo build!

Set up Celestia

Set up a Celestia light node running on the Arabica testnet, and patch it to add the shares endpoint required by Jupiter.

  1. Clone the repository: git clone https://github.com/celestiaorg/celestia-node.git.
  2. cd celestia-node
  3. Checkout the code at v0.6.1: git reset --hard 3a58679ed84da966d01173f32780134c7b830594
  4. Apply the patch file provided by jupiter to celestia-node: git apply ../jupiter/0001-Add-shares-endpoint.patch
  5. Build and install the celestia binary: make go-install
  6. Build celestia's key management tool make cel-key
  7. Initialize the node: celestia light init
  8. Start the node: celestia light start --core.ip https://rpc-mocha.pops.one:9090 --gateway

Once your Celestia node is up and running, simply cargo run to test out the prototype.

License

Licensed under the Apache License, Version 2.0.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this repository by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.

About

A research-only integration of Sovereign with Celestia

License:Apache License 2.0


Languages

Language:Rust 100.0%