Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discuss removing the blobstream endpoints from node #3594

Open
rach-id opened this issue Jul 25, 2024 · 0 comments
Open

Discuss removing the blobstream endpoints from node #3594

rach-id opened this issue Jul 25, 2024 · 0 comments
Labels
external Issues created by non node team members needs:triage

Comments

@rach-id
Copy link
Member

rach-id commented Jul 25, 2024

After merging the #3470, we now have all the endpoints needed in blobstream in Celestia-node:

  • ProveShares: which proves that a set of shares, defined by a range, are included in a Celestia block
  • ProveCommitment: which proves that a share commitment was included in a Celestia block
  • DataRootTupleRoot: which generates the Blobstream data root tuple root from a set of data root tuples
  • DataRootTupleInclusionProof: which generates an inclusion proof of a data root tuple to the data root

The first two endpoints belong in node. However, the last two can be built outside Celestia-node as they just need access to the block headers.

In fact, the current implementations of Blobstream, BlobstreamX and Blobstream0 both rewrite that logic, and they're not using these endpoints. So the main usage of those two endpoints would be when generating an inclusion proof to verify the inclusion of a blob to the data root tuple root.

So, we have two alternatives for them:

Provide this API with the proof and users can just use it:

Pros:

  • it's self-contained a can be removed from node anytime in the future
  • ready to be used by clients without needing them to re-implement the code and worry about its validity etc.

Cons:

  • An extra module in Celestia-node

delete it and write some specs for the endpoints:

Pros:

  • Less code in Celestia-node to be maintained

Cons:

  • Having to write specs for those two endpoints.
  • Increasing the work for teams to onboard with Blobstream. Instead of asking them just to send a request, they will need to implement some specs.

Decision

Short term: we keep these endpoints in Node.

Long term: left for future us to decide.

@github-actions github-actions bot added needs:triage external Issues created by non node team members labels Jul 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
external Issues created by non node team members needs:triage
Projects
None yet
Development

No branches or pull requests

1 participant