Celestia Hackathon Ideas

Original Data Square (ODS) visualizer

Currently, there isn't an easy way to visualize the original data square of a Celestia block.
This idea entails building a visualization tool (either CLI or web app) that visualizes shares in the original data square. The end result should show something like this:

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

with unique colors per namespace. We could special-case the reserved namespaces so they always use the same color. The tool could accept chain-id and block height as parameters.

The long-term goal of this project could be to get it upstreamed into an explorer. See celenium-interface#35.

Rust Consensus Node

Currently, the only Celestia consensus full node implementation is written in Go. We could write an experimental consensus full node implementation in Rust.

The short-term goal of this project could be something minimal. Rough steps:

  1. Start a Rust project that builds a binary with one command line argument for chain-id
  2. Connect to the p2p network for that chain-id
  3. Fetch a block height from an existing Go consensus full node for that chain-id. Log the block height and hash.

The medium-term goal of this project could be to implement ProcessProposal in Rust so that it could be fed into SP1. Out of scope: p2p, networking, mempool.

The long-term goal of this project would be to have a totally functional consensus full node implementation in Rust. Notable features include: can follow the tip of the chain, propose blocks, and sync from genesis.

Name ideas for the binary: rtia, relestia, cars (inspired by Celestia-App RuSt).

Rust CreateCommitment

A subset of the previous idea that implemenets CreateCommitment in Rust. This is important for roll-ups that want to generate the share commitment for some blob in Rust instead of Golang.

Kurtosis package

Currently, there isn't a Kurtosis package for Celestia. Kurtosis is a tool that enables developers to spin up local (or remote) test environments with containers. We could build a Kurtosis package for Celestia that includes a container for a consensus validator, a DA bridge node, and a DA light node. We could define a variant of the package with a faucet and local block explorer. This is kind of like celestia-stack-internal.

Address watcher

Etherscan offers a service called "Watch list" that enables users to set up email alerts for Ethereum addresses. The user can choose to be notified when an address sends or receives some ETH. A similar service would be beneficial for Celestia users. Ideally a user could elect to monitor multiple Celestia addresses for operations like:

  • Address received TIA
  • Address sent TIA
  • Address delegated TIA
  • Address claimed TIA rewards from delegation
  • Address submitted a blob

File uploader

Create a front-end that makes it easy to upload files to Celestia.

  • Advanced option: explicitly set namespace (by default use hard-coded namespace or deterministic namespace based on file contents)
  • Advanced option: custom memo field. Can default to something like "submitted by blob.tools"

Potential domain names:

  • blob.tools $23 or $3 on Namecheap
  • blob.engineer $25