ChainSafe / ChainSafe/lodestar
Request missing columns by root to serve blobs
- 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
Assessment
This issue has not been assessed yet.