-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
Reserved nodes aren't added as explicit peers in gossipsub #1384
Comments
This was referenced Sep 27, 2023
Voxelot
pushed a commit
that referenced
this issue
Oct 16, 2023
…reasing (#1423) Closes #1384 After debugging the issue with transaction broadcasting in the Beta 4 network, I can confirm that it is related to the gossipsub reputation. At some point, no one sends transactions to the authority node. When I manually restart one sentry node, this node starts to send transactions to the authority node. It sends transactions via gossiping and publishing: - Publishing: I send a transaction to sentry 1, which sends it to authority. - Gossiping: I send the transaction to sentry 0, it sends the transaction to sentry 1, and it sends the transaction to authority. But at some point, gossiping doesn't work while publishing still works(Sentry 0 gossips transaction to Sentry 1, and Sentry 1 doesn't gossip it to authority). After some time, the publishing doesn't work either. The gossipsub has two thresholds, one for gossiping and one for publishing. We use these values: <img width="652" alt="image" src="https://github.com/FuelLabs/fuel-core/assets/18346821/bcb1585c-239b-4cf9-9fae-c9376b958201"> So, the described behavior aligns with authority reputation decreasing. I don't know the reason why it happens(maybe decay), but adding all reserved peers to explicit peers should solve the problem.
xgreenx
added a commit
that referenced
this issue
Oct 20, 2023
…reasing (#1423) Closes #1384 After debugging the issue with transaction broadcasting in the Beta 4 network, I can confirm that it is related to the gossipsub reputation. At some point, no one sends transactions to the authority node. When I manually restart one sentry node, this node starts to send transactions to the authority node. It sends transactions via gossiping and publishing: - Publishing: I send a transaction to sentry 1, which sends it to authority. - Gossiping: I send the transaction to sentry 0, it sends the transaction to sentry 1, and it sends the transaction to authority. But at some point, gossiping doesn't work while publishing still works(Sentry 0 gossips transaction to Sentry 1, and Sentry 1 doesn't gossip it to authority). After some time, the publishing doesn't work either. The gossipsub has two thresholds, one for gossiping and one for publishing. We use these values: <img width="652" alt="image" src="https://github.com/FuelLabs/fuel-core/assets/18346821/bcb1585c-239b-4cf9-9fae-c9376b958201"> So, the described behavior aligns with authority reputation decreasing. I don't know the reason why it happens(maybe decay), but adding all reserved peers to explicit peers should solve the problem.
xgreenx
added a commit
that referenced
this issue
Oct 20, 2023
…reasing (#1423) (#1434) Applying the bugfix #1423 to `master`. Closes #1384 After debugging the issue with transaction broadcasting in the Beta 4 network, I can confirm that it is related to the gossipsub reputation. At some point, no one sends transactions to the authority node. When I manually restart one sentry node, this node starts to send transactions to the authority node. It sends transactions via gossiping and publishing: - Publishing: I send a transaction to sentry 1, which sends it to authority. - Gossiping: I send the transaction to sentry 0, it sends the transaction to sentry 1, and it sends the transaction to authority. But at some point, gossiping doesn't work while publishing still works(Sentry 0 gossips transaction to Sentry 1, and Sentry 1 doesn't gossip it to authority). After some time, the publishing doesn't work either. The gossipsub has two thresholds, one for gossiping and one for publishing. We use these values: <img width="652" alt="image" src="https://github.com/FuelLabs/fuel-core/assets/18346821/bcb1585c-239b-4cf9-9fae-c9376b958201"> So, the described behavior aligns with authority reputation decreasing. I don't know the reason why it happens(maybe decay), but adding all reserved peers to explicit peers should solve the problem.
crypto523
pushed a commit
to crypto523/fuel-core
that referenced
this issue
Oct 7, 2024
…reasing (#1423) (#1434) Applying the bugfix #1423 to `master`. Closes FuelLabs/fuel-core#1384 After debugging the issue with transaction broadcasting in the Beta 4 network, I can confirm that it is related to the gossipsub reputation. At some point, no one sends transactions to the authority node. When I manually restart one sentry node, this node starts to send transactions to the authority node. It sends transactions via gossiping and publishing: - Publishing: I send a transaction to sentry 1, which sends it to authority. - Gossiping: I send the transaction to sentry 0, it sends the transaction to sentry 1, and it sends the transaction to authority. But at some point, gossiping doesn't work while publishing still works(Sentry 0 gossips transaction to Sentry 1, and Sentry 1 doesn't gossip it to authority). After some time, the publishing doesn't work either. The gossipsub has two thresholds, one for gossiping and one for publishing. We use these values: <img width="652" alt="image" src="https://github.com/FuelLabs/fuel-core/assets/18346821/bcb1585c-239b-4cf9-9fae-c9376b958201"> So, the described behavior aligns with authority reputation decreasing. I don't know the reason why it happens(maybe decay), but adding all reserved peers to explicit peers should solve the problem.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
While reserved nodes are always connected to, but they are not marked as explicit peers in the gossipsub behavior. This means they may lose reputation and gossip broadcasts may not go through.
In practice, reserved nodes should always have a good reputation. But there may be some cases where we punish more severely than needed, (i.e. a gossiped tx gets delivered too late and is no longer valid according to txpool rules). All reserved peers should get a free pass on reputation while the reputation system gets improved.
Docs:
https://docs.rs/libp2p-gossipsub/0.43.0/libp2p_gossipsub/struct.Gossipsub.html#method.add_explicit_peer
https://docs.rs/libp2p-gossipsub/0.43.0/libp2p_gossipsub/struct.Gossipsub.html#method.publish
The text was updated successfully, but these errors were encountered: