ethereum / portal-network-specs

Official repository for specifications for the Portal Network
313 stars 85 forks source link

"Pick 'n Push" gossip strategy for cold data #312

Open carver opened 5 months ago

carver commented 5 months ago

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:

pipermerriam commented 5 months ago

Just wrote #313 which would fix this for state.

pipermerriam commented 5 months ago

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.

SvobodenAlways commented 5 months ago

hi brotha, can u contact me on tg ? @svobodenalways