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

Investigate the cause for the max round increase during testing #196

Closed
Tracked by #226
masih opened this issue May 7, 2024 · 0 comments · Fixed by #212
Closed
Tracked by #226

Investigate the cause for the max round increase during testing #196

masih opened this issue May 7, 2024 · 0 comments · Fixed by #212
Assignees

Comments

@masih
Copy link
Member

masih commented May 7, 2024

The expectation is that the tests should converge in smaller number of rounds than the current max. It was increased from 10 to 18, and again from 18 to 30 (though only needing 21) .

Ideally, it should take fewer rounds for the consensus to occur. Currently it is unclear if this is a side effect of the gPBFT algorithm changes or some unintended behaviour in simulations.

@masih masih self-assigned this May 9, 2024
masih added a commit that referenced this issue May 10, 2024
Use `heap.Interface` to simplify the implementation of message passing
during simulation by implementing a priority queue. The messages
in-flight are priorities in ascending order of their `deliverAt` time,
i.e. messages with earlier delivery time have higher priority.

Additionally, explicitly introduce an option to set Global Stabilization
Time (GST). GST duration is one of the fundamental assumptions made by
gPBFT, beyond which message delivery is assumed to be guaranteed.
Enhance Withold adversary tests with varying GST time.

Relates to #196
masih added a commit that referenced this issue May 10, 2024
When the sender and receiver of a message is the same, always return
zero as the latency sample.

Relates to #196
github-merge-queue bot pushed a commit that referenced this issue May 10, 2024
When the sender and receiver of a message is the same, always return
zero as the latency sample.

Relates to #196
masih added a commit that referenced this issue May 10, 2024
Set the default simulation latency to `None` when unset to avoid
surprising the user. The default was arbitrarily chosen from the
simulation CLI and has no significance.

Change the way max round is calculated, where all participants are
checked. Fail if simulation go beyond max.

Relates to #196
masih added a commit that referenced this issue May 13, 2024
Use `heap.Interface` to simplify the implementation of message passing
during simulation by implementing a priority queue. The messages
in-flight are priorities in ascending order of their `deliverAt` time,
i.e. messages with earlier delivery time have higher priority.

Additionally, explicitly introduce an option to set Global Stabilization
Time (GST). GST duration is one of the fundamental assumptions made by
gPBFT, beyond which message delivery is assumed to be guaranteed.
Enhance Withold adversary tests with varying GST time.

Relates to #196
masih added a commit that referenced this issue May 13, 2024
Use `heap.Interface` to simplify the implementation of message passing
during simulation by implementing a priority queue. The messages
in-flight are priorities in ascending order of their `deliverAt` time,
i.e. messages with earlier delivery time have higher priority.

Additionally, explicitly introduce an option to set Global Stabilization
Time (GST). GST duration is one of the fundamental assumptions made by
gPBFT, beyond which message delivery is assumed to be guaranteed.
Enhance Withold adversary tests with varying GST time.

Relates to #196
masih added a commit that referenced this issue May 13, 2024
The latency model in simulations is generated using a Log Normal
distribution with some configured mean. The latency generation occurs
every time a message is sent from any one participant to another
participant. This effectively simulates an adhoc network with volatile
latency which is typically observed in mobile networks.

Compared to Filecoin network, this approach is unrealistic and too
volatile. Because, in Filecoin SPs are typically well-connected servers
with high bandwidth low latency connection to their peers. As a result,
tests regularly exceed the maximum number of rounds where, so far, they
require at least 21 rounds to succeed.

A more realistic latency model is one that uses some randomly generated
but fixed point-to-point latency that remains constant or varies very
slightly over the lifetime of a participant. The changes here introduce
consistent P2P modeling of latency for Log Normal latency model, where
the latency from one participant to another is generated once and
remains constant for the lifetime of a simulation. The latency model
uses an asymmetric model where, latency from one node to another is not
necessarily the same other way around.

This change reduces the maximum number of rounds required
for tests from 30 to 10.

Fixes #196
github-merge-queue bot pushed a commit that referenced this issue May 13, 2024
Set the default simulation latency to `None` when unset to avoid
surprising the user. The default was arbitrarily chosen from the
simulation CLI and has no significance.

Change the way max round is calculated, where all participants are
checked. Fail if simulation go beyond max.

Relates to #196
masih added a commit that referenced this issue May 13, 2024
Use `heap.Interface` to simplify the implementation of message passing
during simulation by implementing a priority queue. The messages
in-flight are priorities in ascending order of their `deliverAt` time,
i.e. messages with earlier delivery time have higher priority.

Additionally, explicitly introduce an option to set Global Stabilization
Time (GST). GST duration is one of the fundamental assumptions made by
gPBFT, beyond which message delivery is assumed to be guaranteed.
Enhance Withold adversary tests with varying GST time.

Relates to #196
masih added a commit that referenced this issue May 13, 2024
The latency model in simulations is generated using a Log Normal
distribution with some configured mean. The latency generation occurs
every time a message is sent from any one participant to another
participant. This effectively simulates an adhoc network with volatile
latency which is typically observed in mobile networks.

Compared to Filecoin network, this approach is unrealistic and too
volatile. Because, in Filecoin SPs are typically well-connected servers
with high bandwidth low latency connection to their peers. As a result,
tests regularly exceed the maximum number of rounds where, so far, they
require at least 21 rounds to succeed.

A more realistic latency model is one that uses some randomly generated
but fixed point-to-point latency that remains constant or varies very
slightly over the lifetime of a participant. The changes here introduce
consistent P2P modeling of latency for Log Normal latency model, where
the latency from one participant to another is generated once and
remains constant for the lifetime of a simulation. The latency model
uses an asymmetric model where, latency from one node to another is not
necessarily the same other way around.

This change reduces the maximum number of rounds required
for tests from 30 to 10.

Fixes #196
masih added a commit that referenced this issue May 14, 2024
Use `heap.Interface` to simplify the implementation of message passing
during simulation by implementing a priority queue. The messages
in-flight are priorities in ascending order of their `deliverAt` time,
i.e. messages with earlier delivery time have higher priority.

Additionally, explicitly introduce an option to set Global Stabilization
Time (GST). GST duration is one of the fundamental assumptions made by
gPBFT, beyond which message delivery is assumed to be guaranteed.
Enhance Withold adversary tests with varying GST time.

Relates to #196
github-merge-queue bot pushed a commit that referenced this issue May 14, 2024
The latency model in simulations is generated using a Log Normal
distribution with some configured mean. The latency generation occurs
every time a message is sent from any one participant to another
participant. This effectively simulates an adhoc network with volatile
latency which is typically observed in mobile networks.

Compared to Filecoin network, this approach is unrealistic and too
volatile. Because, in Filecoin SPs are typically well-connected servers
with high bandwidth low latency connection to their peers. As a result,
tests regularly exceed the maximum number of rounds where, so far, they
require at least 21 rounds to succeed.

A more realistic latency model is one that uses some randomly generated
but fixed point-to-point latency that remains constant or varies very
slightly over the lifetime of a participant. The changes here introduce
consistent P2P modeling of latency for Log Normal latency model, where
the latency from one participant to another is generated once and
remains constant for the lifetime of a simulation. The latency model
uses an asymmetric model where, latency from one node to another is not
necessarily the same other way around.

This change reduces the maximum number of rounds required
for tests from 30 to 10.

Fixes #196
github-merge-queue bot pushed a commit that referenced this issue May 14, 2024
#209)

Use `heap.Interface` to simplify the implementation of message passing
during simulation by implementing a priority queue. The messages
in-flight are priorities in ascending order of their `deliverAt` time,
i.e. messages with earlier delivery time have higher priority.

Additionally, explicitly introduce an option to set Global Stabilization
Time (GST). GST duration is one of the fundamental assumptions made by
gPBFT, beyond which message delivery is assumed to be guaranteed.
Enhance Withold adversary tests with varying GST time.

Relates to #196
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

Successfully merging a pull request may close this issue.

1 participant