ChainSafe / ChainSafe/lodestar

Request missing columns by root to serve blobs

Open
#9,404 0 comments 0 reactions 0 assignees View on GitHub
meta-feature-request
Dominant language
TypeScript
Stars
1.4k
Forks
483
Avg merge
1d 16h
Merged PRs (30d)
150

Description

In order to serve blobs via api, we need to at least run as a semi supernode (to custody 64 columns), to allow reconstruction of blobs. But this is really wasteful if a node just requires to serve blobs every few slots as practically we could just run as a full node (custodies 4 columns) and request the missing columns from the network via by root.

There are few trade-offs to consider
- the node will be slower to respond as it has to wait for peers to serve the data
- we might not have peers that serve the data, ideally we wanna request columns 0-63
- we add load to the network (other nodes), likely fine, but we might wanna put this behind a feature flag

The use case for this feature is a node that has to serve blobs to a L2 sidecar while still being low on resource usage to allow home nodes to participate long term with increased blob limits.

Also worth to consider how this would work with partial data columns, we might be able to more efficiently request partial columns (rows) for just the blob(s) we need to serve via api.

Something else to consider is that we can first try to get the blobs from the EL as it might still have them available at the time.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.