Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
1 task
carver opened this issue Jun 6, 2024 · 3 comments
Open
1 task

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

carver opened this issue Jun 6, 2024 · 3 comments

Comments

@carver
Copy link
Contributor

carver commented Jun 6, 2024

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:

  • Describe idea on ethresear.ch
@pipermerriam
Copy link
Member

Just wrote #313 which would fix this for state.

@pipermerriam
Copy link
Member

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
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants