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

Simulations to improve gossipsub performances & reliability #828

Open
Menduist opened this issue Dec 21, 2022 · 1 comment
Open

Simulations to improve gossipsub performances & reliability #828

Menduist opened this issue Dec 21, 2022 · 1 comment

Comments

@Menduist
Copy link
Contributor

Menduist commented Dec 21, 2022

Use testground to:

  1. Fix bugs in our gossipsub implementation [in progress]
  2. Experiment with scoring & attacks [in progress]
  3. Compare it to other implementations, improve it if required

I'll use this issue to track my progress on the matter.
Here is my working branch: vacp2p/libp2p-test-plans@46e2269...status-im:libp2p-test-plans:pubsub2

To be able to use wireshark, I've started to implement #821

I've quickly noticed that Naggle was causing issues, opened #822 which is waiting on chronos to be merged.

Also found a bug in yamux #823

And obviously a few bugs in gossipsub #827

I can simulate ~200 nodes on my laptop, or rent beefy AWS servers for more when required.

test

This is an example of a run with 100 nodes, 30 publishers, 22 connections per nodes, and a fixed 100ms of RTT.
After 20 seconds, a massive blackhole attack start, where the 70 remaining nodes are swallowing every messages silently.

With a pretty simple scoring setup (only relying on firstMessageDeliveries & opportunisticGraft), the effect on latency is quite minimal, and we don't get any message losses, which is very good. I'm hoping to generalize to scoring setup, and test it in a wide variety of scenarios to make sure it holds.

@Menduist Menduist mentioned this issue Dec 21, 2022
21 tasks
@Menduist Menduist changed the title Simulations & tests to improve gossipsub performances & reliability (via testground) Simulations to improve gossipsub performances & reliability Dec 21, 2022
@Menduist
Copy link
Contributor Author

Today, I did a simulation to understand the impact of the amount of "outbound only" nodes in a network.
This is critical to waku, since it's going to be a network with a majority of nodes "in the wild" (compared to "in a DC"), with a good chunk of nodes relying on hole-punching, that can sometimes fail.

Here are some results:
image

I'm a bit surprised to already see an effect above 70%, something to investigate to figure if it's a bug or an emerging behavior

@kaiserd kaiserd moved this from new to Experimental in nim-libp2p May 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Experimental
Development

No branches or pull requests

1 participant