Open carver opened 5 months ago
Just wrote #313 which would fix this for state.
This would also introduce an implicit design constraint that we should probably make explicit which is that data stored in a node's database must be able to be re-gossip'd and thus it must be provable or at minimum able to be re-anchored in the stored format.
hi brotha, can u contact me on tg ? @svobodenalways
Problem: over time, nodes leave the network, and new nodes join. For data that was bridged in some time ago, and then never updated, the new nodes do not ever discover the cold data that their peers hold. After a sufficient amount of turnover, that cold data will disappear entirely.
Proposed Solution: Pick 'n Push
On a low priority background thread, each node randomly samples its own database from time to time, and checks if its neighbors have the data. If they don't, it offers that data to them.
In the node-hash-based state network, this has the extra complication that nodes tend not to store enough information locally to gossip it. (Specifically, a proof back to a header). So if they run into a peer that "should" store the data and doesn't, then the offering node has to go build a proof from the block header.
TODO: