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

Feature/packet retransmission #263

Merged
merged 68 commits into from
Jun 16, 2020
Merged

Conversation

jstuczyn
Copy link
Contributor

Closes #164
Initial take on #84 (is not fully implemented as described below)
With the limited testing this seems to work as we wanted. However, there's one limitation of the current approach. If you happen to send a mix message of length 21 bytes, it will not go through - it will be interpreted as an ACK instead.
Do not worry though, this will be resolved with further enhancements we have discussed one of which includes gateway being unable to read plaintext message and padding on them (meaning "real" messages will always have one constant size and it will not be possible to confuse them with acks regardless of their content)

In this branch I've also slightly attacked #256 by telling the client to panic if it detects the gateway went down.

@jstuczyn jstuczyn added this to the 0.8.0 milestone Jun 12, 2020
use rand_distr::{Distribution, Exp};
use std::time;

// TODO: ask @AP why we are actually using Distribution::Exp(1/L) rather than just
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aniampio I'm almost certain I've already asked this when we were initially working on Sphinx, but could you explain it again?

.ok_or_else(|| MixProcessingError::InvalidPayload)?;
let (payload_destination, message) =
payload.try_recover_destination_and_plaintext()?;
// TODO: @AP, does that check still make sense?
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@futurechimp futurechimp merged commit b57a548 into develop Jun 16, 2020
@futurechimp futurechimp added this to Done in Core systems via automation Jun 16, 2020
@futurechimp futurechimp deleted the feature/packet_retransmission branch June 16, 2020 10:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Core systems
  
Done
Development

Successfully merging this pull request may close these issues.

Fragment retransmission for split messages
2 participants