-
-
Notifications
You must be signed in to change notification settings - Fork 560
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
File Transfer over end-to-end encrypted secure channels #1624
Comments
I started working on this one. Based on the alice_and_bob example, the receiver opens a secure channel with a forwarder and the sender uses the forwarder remote address to send the file in chunks. This initial step works fine and I have some questions to make the example a little better:
Sending all chunks as fast as possible and exiting the sender seems to not complete the transfer correctly. That could be because of the size of the Forwarder queue or the different upload/download speeds or the disconnection or anything else but it shows a sync between sender and receiver must be done. Does ockam provides some sort of transactional messaging or is it left to the application to implement it in its protocol above ockam ? I'm adding some state machinery to the sender and receiver to make the transfer more reliable |
@dvermd awesome, thank you for working on this! There is lot work happening right now to make message delivery reliable.
Adding @thomcc, @spacekookie & @hairyhum so they can add more thoughts on your questions above and help as you work on file transfer. Excited about seeing where you take this. |
These threads have more information on @hairyhum's work with messaging delivery guarantees and building blocks I think reliable File Transfer would be a great test case for these upcoming features. In the meantime, my suggestion would be to do the bare minimum to make a transfer work. |
This will be simplified in a week or two, some of my current work (building on #2229) is around making ockam usable with different async runtimes, in which case there will be a way to access the configured async runtime (by default, tokio for std, ockam_executor for no_std). In the meantime, it's probably okay to have two tokio dependencies. |
There is a tool called Magic Wormhole. It's a great tool to transfer files between machines, via a rendezvous server.
A similar tool could be built easily with the building blocks in Ockam and would make for cool simple demo.
The End-to-End Encryption with Rust guide has all the code need to setup secure channels, we just need to modify it to read a file, break it into chunks and move it over the end-to-end encrypted channel.
If you would like someone to help / mentor / pair program with you as you work on your first Ockam issue, please leave a comment on this discussion.
The text was updated successfully, but these errors were encountered: