4 ms·
Show HN: FileNation – A simple way to send files using IPFS
- alexsicart 9y agoHi! My name is Alex Sicart and I have been working on a new way to send files using IPFS, so that everyone can benefit from this technology. With FileNation you can already send files in a more secure and efficient way using IPFS, a P2P hypermedia protocol. IPFS can save millions in bandwidth, right now FileNation pins files for free. 1 - Go to https://filenation.io/ https://filenation.io/ 2 - Click on Upload Files button. Locate the file that you want to upload and click open. 3 - Click on “Send Files to” and add the recpient email address. 4 - Click on “Your Email” and add your email address. 5 - Click on “Send”. 6 - The file will be added to IPFS and sent to the sender's email, keep page still open until Eternum has finished pinning :) Try it out and tell me how I can improve it to empower more people with this amazing P2P technology :)
- StavrosK 9y agoThis is pretty cool, good job! I have a few questions: * How long are you pinning files for? * Is there a maximum size up to which you'll pin files? Also, a tip: You can speed up your service by exposing the bridge on your pinning node. That way, your files don't have to go from node to node, the end user can just fetch them from your node's local pin store. EDIT: Quickly skimming your code, it seems like you aren't uploading the files anywhere or pinning at all? Unless I'm mistaken, you're running ipfs-js and instantiating a node in the user's browser, which means that the user will have to keep the browser open for the file to be available, no?
- prophesi 9y agoI believe they're using Eternum's API to pin the content. I didn't look at the code, but the download link I got in the email is from https://eternum.io https://eternum.io
- StavrosK 9y agoAh yes, true. I missed that in the code, my TypeScript isn't great. Doesn't the page still have to stay open until Eternum has finished pinning, though?
- alexsicart 9y agoYes, it should take some minutes! I'll add this to new features. Thanks! :)
- alexsicart 9y agoYes right now we are using Eternum API for the MVP to pin the content, but the next feature will be pinning in our server. Uploading the file to IPFS (front-end), then from the emai-server, downloading the file from hash to our own server and then connecting it to gateway https://filenation/ipfs/{hash} https://filenation/ipfs/{hash} (everything in the same server to save a lot in bandwidth)
- deleted 9y ago[deleted]
- dmix 9y agoWhen I upload files do I have to assist in the P2P transfer of other files or is this supported by your servers? Is there any client side encryption planned ala Mega?
- godot 9y agoIn your experience, how's the speed with sending and receiving files this way? I have relatively little knowledge about IPFS right now, but the last time I tried to access a site that claimed to be hosted in IPFS (accessing it through a gateway), it was so slow that it failed to load.
- StavrosK 9y agoThat is a constant source of frustration for us as well. We've been having problems where nodes intermittently couldn't discover other nodes, so content that was in one IPFS node would be unavailable on another. I've spoken to a few people from the IPFS team, but they couldn't figure out the cause. Hopefully the next version makes discovery more reliable and fixes this (the files are quite quick to download once peers discover each other).
- prophesi 9y agoYeah, I have two IPFS nodes, and had to make sure their swarm was bootstrapped with the IP address of each other. And even then, I still sometimes have to `ipfs swarm connect [ip_address]` after a reboot to be able to discover the content they have pinned. Once they're connected, however, I haven't had any performance issues unless I was using IPNS. Though I only use IPFS to host static sites ( https://ipfs.poeti.codes/ipns/dreams.poeti.codes/ https://ipfs.poeti.codes/ipns/dreams.poeti.codes/ )
- alexsicart 9y agoSo, in a private ipfs network (connect to other peers who have a shared secret key) https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#private-networks https://github.com/ipfs/go-ipfs/blob/master/docs/experimenta.... All the IPFS nodes are connected by default? Each peer pin files from other peers?
- StavrosK 9y agoNo, if I understand correctly, he just bootstraps the nodes from each other, making sure they are initially strongly connected. I tried that too, but it didn't reliably help the problem.
- aendruk 9y agoHow private are files "sent" using this method? Doesn't the pinning node broadcast its hashes to the network?
- e12e 9y agoI suppose a quick lookup to keybase for a gpg key (as it already asks for email), and then encryption with: https://github.com/openpgpjs/openpgpjs https://github.com/openpgpjs/openpgpjs Would be one approach. Or, as a link is sent "out of band", I suppose one could simply provide a symmetric key in the email. Not as secure - but might be sufficient.
- dmix 9y agoTheir blog has more information about how it works: https://medium.com/filenation https://medium.com/filenation Currently the "About" link goes to Github, which I found odd...
- fiatjaf 9y agoShameless plug: this is pretty similar to my https://filemap.xyz/ https://filemap.xyz/ in its purposes and in the usage of IPFS and eternum.io, but Filemap kinda uses geographical locations instead of emails to "send" the files.