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

Restore unstable_tests #5164

Open
mversic opened this issue Oct 18, 2024 · 1 comment
Open

Restore unstable_tests #5164

mversic opened this issue Oct 18, 2024 · 1 comment
Assignees
Labels

Comments

@mversic
Copy link
Contributor

mversic commented Oct 18, 2024

These are some of the most important tests. They were removed in #5124

@0x009922
Copy link
Contributor

0x009922 commented Oct 22, 2024

It's rather that this issue is a duplicate of #5153, which pointed out to specific tests to re-implement. Namely, unstable_network.

To give more context: those tests were creating a network of many peers and submitting many transactions. During each round they "froze" some amount of random peers in the network, making them "faulty". The mechanism of "freezing" was working via a direct violation of black-boxing (using an internal flag to stop networking temporarily), thus I removed it.

As an alternative idea of how to re-implement these tests without breaking black-boxing: we can set up a network of peers in which they communicate with each other not directly, but via a relay (which we control). That relay would listen to $N * N$ ports (where $N$ is the number of peers in the network), so that each peer will have its own subset of ports in the relay for all other peers. When we want to make some peers faulty, we temporarily suspend their incoming/outgoing TCP packages in the proxy.

@0x009922 0x009922 self-assigned this Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Work in Progress
Development

No branches or pull requests

2 participants