Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
watchtower/wtclient: reliable, asynchronous pipeline for revoked state backups #2618
This PR presents the bulk of the
Great care is taken to ensure that the
Additional considerations are also given to mobile, which is intended to be the predominant platform in which the client is run and where it adds the most benefit. Since transient factors such as network connectivity may impede a successful upload during shutdown, the entire pipline can be
The initial rollout will only be targeted at supporting a single, private tower. However, much of the logic in this package is included for more advanced features such as rotating between several target towers during session negotiation, or allowing more asynchrony between session negotiation which can be useful for added privacy. These can be enabled down the road once more testing is in place as we continue to improve on minor reliability edge cases in the single tower case.
The unit tests in this area in the process of being refactored, to enable them to be more generalized and table-driven. These will be posted later this week.
There's a lot more detail I can go into about the design, but it's getting late here in SF so I'll pick this up tomorrow
Roasbeef left a comment
Things are really starting to come together now! I found it very illuminating to see all the components wired up together in this PR end to end. At times, it was a bit hard to see the bigger picture when reviewing an isolated package or interface outside of the main server/client loops. As there's a lot contained in this PR (draw the rest of the fkn owl), I'll be making a few more passes, paying particular attention to the tests, and also the interaction (edge cases, persistence, etc) in the main