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

Gossip block parts in order instead of randomly #1332

Open
evan-forbes opened this issue May 3, 2024 · 1 comment
Open

Gossip block parts in order instead of randomly #1332

evan-forbes opened this issue May 3, 2024 · 1 comment
Labels
experiment proposal ideas that are not planned WS: Big Blonks 🔭 Improving consensus critical gossiping protocols

Comments

@evan-forbes
Copy link
Member

evan-forbes commented May 3, 2024

The reasoning afaiu behind gossiping block parts randomly is to attempt to distribute block data in parallel. This works by the proposer's peer's flood subbing the block parts that they receive. In theory, this results in significant efficiency and speed gains, but as we can see in our experiments, each peer is effectively uploading and downloading the entire block.

The proposer is also sending all block parts to all peers anyway, so the proposer gains nothing from an efficiency point of view. If we run simple simulations, we see that block parts distributed to all of the proposer's peers around the same time results in half of the hops normally required to distribute block parts, and that the added delay from the proposer contributes more to duplication than it does to increasing throughput.

Since comet is gossiping block data during the proposal period and not before hand, and bandwidth is not being fully utilized, it must optimize for speed over efficiency to maximize throughput.

@evan-forbes evan-forbes added proposal ideas that are not planned WS: Big Blonks 🔭 Improving consensus critical gossiping protocols experiment needs:discussion labels May 3, 2024
@evan-forbes evan-forbes self-assigned this May 6, 2024
@cmwaters
Copy link
Contributor

I don't understand fully why gossiping in order as opposed to randomly would change things.

I understand that if we were to give block part 1 to peer 1 and block part 2 to peer 2 and so forth in that order that might make things faster because we can get out block part 2 much earlier to the network

@evan-forbes evan-forbes removed their assignment May 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
experiment proposal ideas that are not planned WS: Big Blonks 🔭 Improving consensus critical gossiping protocols
Projects
None yet
Development

No branches or pull requests

2 participants