in sampler we should try to query samples from different peers, see the spec:
A node SHOULD maintain a diverse set of peers for each column and each slot by verifying responsiveness to sample queries.
If more than one candidate peer is found for a given column, a node SHOULD randomize its peer selection to distribute sample query load in the network. Nodes MAY use peer scoring to tune this selection (for example, by using weighted selection or by using a cut-off threshold). If possible, it is also recommended to avoid requesting many columns from the same peer in order to avoid relying on and exposing the sample selection to a single peer.
Possible idea for implementation: https://gist.github.com/Nashatyrev/46b0dae19a7a2e3371573ac7e2773f32, StateDB should be persisted Good to cover with some tests. Notice some distinction between custody and sampler: