This MR adds the code @DavidVorick and I have been working on at ETHBerlin. It enables file sharing by exporting an archive of the files which should be shared. This archive can be imported by another renter. It's similar to backups but the difference is that individual files and folders can be exported and that the renter knows to form contracts with the hosts contained within the siafile's hostpubkeytable.
Changes to Work Flow
2 new endpoints:
renter/share/send-> export file/folder
renter/share/receive-> import file/folder
The public key table of the
Siafile which stores the host keys now contains a
Shared field. That way we can differentiate between two pieces which were uploaded to the same host but to different contracts. Pieces uploaded to shared hosts will not count towards redundancy, therefore the repair code will start to copy a shared file into our own contracts as soon as it is imported.
README was updated
API docs were updated
Modules and Packages Impacted
Example for Visual changes (ie Screenshot)
Review and complete the checklist to ensure that the MR is complete before assigned to an approver.
- Pipeline Passing (this is for NDFs where tests were run in a loop)
- All new methods, or updating methods have clear docstrings
- Testing added or updated for new methods
- API documentation updated for API updates
- Module README.md updated for changes to work flow
Issue added to Sia-UI repo for new supporting features