---
# System prepended metadata

title: PeerDAS Sync
tags: [DAS, Sigma Prime]

---

# PeerDAS Sync

### Assumptions

The following notes assume that:

1. Column index custody requirements for a node will only change at epoch boundries
2. A syncing node must fetch the columns its required to custody from the past 4096 epochs (i.e. the data availability window)
3. A syncing node must validate columns via sampling as its syncing



## Non Finalized Sync

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`. 