Sunshare: Share your files seamlessly

Project Name: :sun_with_face:share (sunshare)

Project Track: Integration

Team Name: mehdidotcafe

Team Member(s): 1, mehdidotcafe

DevPost Project Link: sunshare | Devpost

Project Goal: :sun_with_face:share (sunshare) aims to provide individuals with a transparent and secure way to share files

Project Value: sunshare offers a pragmatic approach to secure time limited file sharing with transparent, user-friendly pricing. While traditional platforms often leave users uncertain about how their data is being used and analyzed, sunshare provides a clearer alternative. Built on BTFS decentralized storage and featuring client-side encryption, the platform ensures your files remain private and distributed. The straightforward pay-as-you-go model means you only pay for what you upload – smaller files cost less, putting you in control. All pricing calculations are handled through a public smart contract, making the whole process transparent and verifiable. This combination of technologies and fair pricing allows you to share files while maintaining control over both your data and costs, without the opacity of traditional centralized storage solutions.

Project Website:

Project Test Instructions:

  • The current version uses BTTC mainnet because it integrates the BTFS Price Oracle hence users need to use real BTT to upload a Share. If you are one of the judges, please contact me to get a “Magic Voucher” allowing you to upload files for free.

Project Details:
https://player.vimeo.com/video/1017221912

Smart Contract links:

Project Milestones:

Milestone 1 (Until 10/8/2024)

:white_check_mark: Single file upload
:white_check_mark: Multi file upload
:white_check_mark: Single file download
:white_check_mark: Multi file download as ZIP
:white_check_mark: Client side encryption
:white_check_mark: Email notification
:white_check_mark: Share expiration
:white_check_mark: Sunbytes Voucher Smart Contract integrated with BTFS Price oracle
:white_check_mark: Alpha release

Milestone 2
:white_check_mark: Multi wallet support (EIP 6963)
:white_check_mark: File Storage Up to a month
:white_check_mark: Uploaded image display
:white_check_mark: BTFS Files hash display

Milestone 3 (Depending on prize or funding)
:arrow_right: Production release
:arrow_right: Resumable uploads
:arrow_right: SMS Notification
:arrow_right: No Limit upload size
:arrow_right: Sunbytes Voucher Smart Contract refinement
:arrow_right: Support download on non-chromium browsers
:arrow_right: Web2 Payment
:arrow_right: Much more exciting stuff :slightly_smiling_face:

Feel free to ask some questions, I will gladly answer to some of them.

30 Likes

Hello Sunshare, welcome to the session. All the best.
Quick one observation.

  1. Your website doesn’t open for me without connecting to VPN.

  2. Your project so similar to RentHub check it out.

4 Likes

Thanks for the feedback. I am currently working on the DNS issue. I will update the project URL once it’s ready.

EDIT: Should be fixed now

2 Likes

Awesome idea storage on blockchain can you share with comparison of your pricing and trandition storage offering price ?

Welcome to session 7
I tried logging into your website but am ask to install metamask

That’s an interesting question. Currently, I don’t have any accurate comparisons to provide with web2 file share / transfer providers.
For the sake of example, let’s say a user wants to upload 50gb per month:

  • On WeTransfer he will have to subscribe to the “Pro Plan” which costs 10 euros per month in my country
  • On mega.nz he will have to subscribe to the “Pro I” plan, which costs 99 euros per month in my country

Most web2 storage providers offer plans based on a subscription model, whereas sunshare is a pay-as-you-go model. With the current (still in alpha and subject to change) price formula, for 50 GB of uploaded data, you will pay between approximately 0.51 cents and 1 dollar.

The comparison doesn’t take into account the time duration of the uploaded data.

3 Likes

Hello, yes, currently sunshare is only compatible with MetaMask and other EIP1193-compatible wallets.
You need a wallet to pay with BTT for the files you will be uploading to sunshare.
Support for other wallets, such as TronLink will definitely come in the future :slight_smile:

Thanks for your response and update

The concept of sunshare is incredibly promising, particularly in today’s data-driven world where privacy concerns are paramount.
The combination of BTFS decentralized storage, client-side encryption, and transparent pricing offers a compelling solution to the challenges of traditional file-sharing platforms.
I have few question regarding your project goal, value and instructions that needs your clarity.

  • How does sunshare plan to handle a significant increase in file uploads and downloads, especially during peak times.

  • Can the decentralized storage infrastructure cope with the demand.

  • What steps have you put in place to ensure the integrity of files stored on the decentralized network.

2 Likes

Welcome to Hackathon of season 7, I read everything you write but when I try to click your website it’s not working, thank you

Welcome to Hackathon Season 7, it’s amazing to read this is a decentralized file-sharing platform built on the BTFS.
So what happens to the files after they expire? Are they automatically deleted from BTFS, or is there an option for the user to extend the expiration time?

These are very interesting questions:

  • The sunshare backend is made of 2 pieces:
    A sunshare BTFS node to interact with the BTFS Network and upload files to the network
    A sunshare API is used by the frontend, acting as a middleware between the frontend and the sunshare BTFS node.
    Once the project is production-ready, I am planning to spawn 3 sunshare BTFS Nodes and 3 sunshare APIs for high availability.
    If this is still not enough to handle the traffic, I am planning to use sunshare demand as a parameter for the Share price cost computation, the same way a blockchain calculates gas fees. The busier sunshare is, the higher the price will be.

  • BTFS will be able to handle a large demand. There is currently 607.10 PiB of free
    space on the network and more than 1500000 “super” miners (nodes with a good reputation used by sunshare to store files’ copies)

  • Sunshare uses file CIDs generated by BTFS to fetch files, these CIDs are a hash of the file content. If a file is corrupted, the CID will not match anymore. Moreover, sunshare uploads 3 copies of the same file into the BTFS network, meaning that if one copy gets courrupted, sunshare can still have access to 2 other copies.

Hello, thanks for trying the access sunshare.

Can you provide a little more details? Does the website https://sunshare.vercel.app load? Or is it blocked?
I feel like the hosting provider I am using to host the sunshare frontend may be IP Restricted in some areas of the world.

1 Like

Thanks!

When a user uploads a Share through sunshare, 2 kinds of data are stored:

  • Share metadata (such as share size, a list of the file hashes composing the Share, etc.) are stored in a web2 database. This content is used to access a Share on sunshare. It expires after the storage duration provided by the user. Once it has expired, no one will be able to access it on sunshare anymore.
  • Share’s file contents are stored into the BTFS Network (On Sunshare BTFS Node + 2 Other nodes). They are stored for a given duration. Once the duration is over, the files will be removed from the Sunshare BTFS Node automatically, and they will be garbage collected at some point on the 2 other nodes as the storage duration is over.

There is currently no option to extend the storage duration.

2 Likes

Welcome to hackaTron S7! It seems like data storage and sharing is the new catch because we have had a couple of it in both previous and current seasons :grinning: Please tell me if there will be any limitations on the types of files that can be shared or the duration for which they are available.

Hi, data hosting raises several concerns, it’s no surprise that many projects are trying to solve them :slight_smile:
Currently, there is no limitation on the types of files you can upload with sunshare.
There is, however, a file size limit of 4GB because of some limitations with the BTFS S3 API I faced when trying to upload large files. Moreover, Shares are only available for at most 5 days with the current Alpha infrastructure.
I am confident in increasing the Share duration (e.g., 1 month, maybe even a year) for the production release, and regarding the no-limitation on file size upload, I am investigating to see whether it’s doable with the BTFS API.

1 Like

welcome team, from your submission it means there is nothing free here

Hello,
Yes, once in production, you will not be able to create a Share for free.
As the saying goes, if it’s free, you’re the product.
The cost to create a Share is quite low, though.

1 Like

alright thanks for your response

1 Like

Welcome to the hackathon session 7
It’s impressive to see another file sharing project on BTTC network.
Since sunshare approach is offering a time limit file sharing, my question is;

  1. What method is in place to guarantee that files are deleted or made inaccessible after the user defined time limit?
3 Likes