Introduction
Project Name: SiaShare
Name of the organization or individual submitting the proposal: mjmay08
Purpose:
This proposal is based on the idea from @parox for an end-to-end encrypted file sharing site that is very simple to set up and use: E2EE file sharing app
The plan is to create something very similar to https://wormhole.app/ but with data stored on Sia using renterd. A user can visit the site, drop some files on the page, and then get a link to share those files. Files will expire after a certain time period or a specific number of downloads.
The goal is to create a lightweight web service that anyone can run alongside renterd with minimal setup and configuration. The client application will use Uppy (https://uppy.io/) for the file upload experience, wormhole-crypto (GitHub - SocketDev/wormhole-crypto: Streaming encryption for Wormhole.app, based on Encrypted Content-Encoding for HTTP (RFC 8188)) for the file and metadata encryption, and the Uppy Tus integration to provide resumable file upload to the backend. The backend will be a simple webservice with a sqlite database and files will be temporarily cached on disk while they are being uploaded to the Sia network using renterd.
Grant Specifics
Project Timeline
In total I expect this proposal to only take a few months at most. The scope is limited but as I am only working on this part time I don’t want to promise anything shorter than that.
I have been working on a proof of concept already so that I could be certain this proposal would be a success. I hope to have a basic working version for the community to start testing a few weeks after the grant is approved.
After that I will work on customization(expiration, file size/count limitations, etc), UI improvements, documentation, and testing the scale of the service.
In addition there are many other enhancements that could be made as time allows such as:
- Packing files that are uploaded together into one to minimize the impact of Sia’s minimum sector size
- File preview in the browser without downloading
- Enabling Uppy integrations for services like Dropbox, Google Drive, and OneDrive so that user’s can import and share a file directly from one of those services.
Budget
I am requesting $5000 for the duration of the proposal to cover the part-time salary of myself as well as infrastructure costs to host an instance of this service for the next few months for the community to use while it is in development.
Potential risks that will affect the outcome of the project:
As mentioned above I have already been working on this project for a little while so that I could be confident in my ability to deliver it. The only risk I can see right now is that since I am building on top of renterd which is still beta, any issues with that integration could push back the timeline (however so far I have had no issues with the integration).
Development Information
Open-Source Commitment
The project source code shall be maintained in a public repository located at: GitHub - mjmay08/SiaShare
All code will be MIT licensed.
Progress reports
Yes, I agree to submit monthly progress reports. In addition I plan to provide more freqent updates on the Sia discord as this proposal is only expected to take a few months at most.
Contact info
Email: Will provide in DM on approval
Any other preferred contact methods: Sia Discord @mjmay08
Conclusion
I’m excited to contribute to the Sia ecosystem and hope that the grant committee will approve my proposal. I welcome any questions on details I may have missed above.