The following notes assume that:
Theres some incompatabilities with the current sync infra. Currently there is an implicit assumption that at each "batch" (i.e. epoch), we will request both blobs and blocks from a single, randomly selected, peer. However with data columns, this assumption is no longer valid.
For each network request we make, we create a RequestId
. For example, in a blobs by range request we create a single shared RequestId
for both the block by range and blob by range request. Since these requests happen on different substreams, the rpc is able to differentiate between the shared RequestId
's
We then store the request in a hashmap, where the key is the RequestId
and the value is the RequestInfo
.