Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It is 2019, and it is quite surprising - and disappointing - that we STILL haven't universally solved the means to easily, securely, and (yes, I'll use this term again) universally share files. I wish we could share files in a peer-to-peer fashion securely without hindrance of mobile platform, nor blockage of network MiTM, etc. </sigh>


Have you taken a look at magic-wormhole[1]? I've started using it recently and it's insanely easy to use.

It does have a centralised signalling server for key exchange between peers, but it does attempt to do peer-to-peer data transfer (only falling back to a TURN-style relay if both clients are behind NATs and aren't on the same local network). An explanation of the cryptography and design was given at PyCon 2016[2]. It also has built-in optional Tor support (though I'm not sure if it attempts to use an onion service for data transfer).

[1]: https://github.com/warner/magic-wormhole [2]: https://youtu.be/oFrTqQw0_3c


I think this project demonstrates quite handily that the problem scope of a seemingly simple task can be quite large. ~1,500 commits in that repo.


Magic wormhole is good, and I've used it before, but it's never as fast as it could be. Something like piping to netcat is always faster. I know it's possible (albeit with a lot of work) to do this over HTTP, but google drive is probably the only site that can mostly saturate a connection. Can any one link more info on how exactly they achieve this? The only trick I know of is a better TCP congestion control algorithm.


I did not know magic wormhole existed. I made a simple nodejs implementation of a very similar app. It used WebRTC so maybe it could be faster. Let me know if you want to try it out!


I'd love to give it a spin; do you have a repo link? Also out of curiosity, how does it compare in terms of crypto?


I’m a happy user of magic-wormhole myself. It doesn’t solve the problem of sending files to phones, though.


This is one of many reasons why I have a terminal on my phone, I can just apt install magic-wormhole and use it like on any other system.

(The technical reader will note that a terminal does not give you apt, but mentioning that I have Debian running on the phone is more confusing, as it sounds like I replaced Android (which I did not) or maybe that it costs a lot of battery (the tools are idle when not in use, unlike many apps unfortunately...).)


Sure, I can use wormhole on iSH on my iPhone/iPad if there are no alternatives. But there are alternatives, so I’ll definitely stay the hell away from it given the terrible ergonomics.


Maybe someone should write a magic-wormhole mobile client. It wouldn't need a complicated UI at all, and you could (try) to use Kivy[1] to avoid having to rewrite all of the Python bits. I might even try to do it as a weekend project, actually (though I suck at mobile development -- anyone else would probably be a better choice ;]).

[1]: https://kivy.org/


Rather than the google solution suggested by a sibling comment, I’d suggest a look at send.firefox.com.


They don't offer the same solution; Google's works on a peer to peer manner, no internet needed. Firefox's is more like Wetransfer.


Send.firefox.com sends files over the internet, not peer-to-peer.

If you're somewhere with poor (or no) network connectivity you can still use Google Files or AirDrop (I believe, not 100% sure on AirDrop).


I used AirDrop on an airplane at cruising altitude over the ocean, with no onboard wifi available. It worked just as perfectly as it did at home.

The pilot had taken a video of the Falcon 9 second stage separating from the first on its first launch that docked with the ISS. He then walked through the cabin sharing with anyone that was interested.


That's awesome!


That is correct, AirDrop works without Internet. It's unfortunate that Google and Apple have created these respective systems with no cross-compatibility. There's really no technological reason for it, but an obvious business reason.


And if it was purely peer-to-peer people would complain that it doesn't work in their particular use case. Personally, it's rather nice sometimes to 'fire and forget' a file transfer with a tool like this. All I need to worry about is if I successfully uploaded the file. I don't need to worry about their internet connection, keeping some daemon running on my side, keeping power on my side, remembering to delete that file that I only kept around so somebody could download it from my computer, etc.

The point is, options are good. Most of us subscribe to the Unix philosophy of "Write programs that do one thing and do it well" so why are so many advocating for a pancea solution that does everything for every use case?


I just wish they'd hurry up and make the android app useable. I signed up for the beta and was pretty disappointed as my uploads were cancelled if my screen locked or, horribly enough, rotated ...


I never understood coders who don't separate UI threads and network calls - which is exactly what it sounds like is happening, here.


Android is Linux, you can always just install it the normal way and use it from a terminal. Maybe that's what you mean by unusable (a terminal isn't very user-friendly, but it solves the file transfer / app availability problem).

If I remember correctly, you can configure (I don't know what the default is) to power save or even turn off WiFi on Android when you turn off the screen. Are you sure that's not interfering with this beta app?


Willing to bet their devs came from iOS. That would explain the android-specific quirks.


Or magic-wormhole [1]. FOSS, x-platform, Python.

[1] https://github.com/warner/magic-wormhole


Isn't that what Bump was all about until Google killed it?

http://techland.time.com/2014/01/01/sadly-but-inevitably-goo...


Opera Unite did it (and that's about the fifth time this year I've mentioned Opera Unite in response to a comment bemoaning a lack in currently embedded internet systems/apps).


Personally I've been using Nitroshare for years in my home network and it works like a charm (between Windows, Linux, and macOS). Android is also supported, but not iOS (I saw someone created an iOS app, but I doubt it works still).


file.pizza has mostly solved this for me. Not ideal UX, but it gets the job done.


For those who don't know it, I'm not sure if it's clear that this is a link: yes, it really is just file.pizza (https://file.pizza).


the safe network is making good progress lately.you might be waiting another year or two though


[flagged]


Bluetooth file sharing works fine on just about every phone I've used. Bluetooth just isn't built for high-bandwidth applications like this, meaning while it's fine for a photograph, you will have issues with larger transfers. That's not a flaw in the implementation, bluetooth just isn't built for high transfer speeds. It is built to transfer enough data and operate at low power, not to be just another wireless NIC.


Its maybe slow. But still perfectly work for cross platform sharing file, from old symbian, different computer, printer, speakers...


https://files.google.com/ is a standard and it works on the vast majority of phone sold this year, by every manufacturer except Apple. Checks all 3 of peer-to-peer, secure, no MiTM network blockage. It's only 11MB.

Many popular file manager apps on android have peer-to-peer xfers as well, via WiFi direct, etc.

EDIT - As people are pointing out this isn't universal because it doesn't work on Apple devices or desktops / laptops, but it's as close as I can think of currently.


There are numerous problems with this suggestion.

- "is a standard"? What does this mean? Google Files is not a standard of any kind.

- others have mentioned that this is very far from universal. Whatever about Apple devices, you're also discounting all non-mobile devices. Transferring files easily from computer to phone is probably the most common use-case. Yes, you can use Google Drive for that, but that's neither p2p nor seamless.

- the above commenter mentioned wanting a "secure" solution. That's a bit of a subjective term, but I would guess, at least on HN, the typical one would be e2e encrypted, and private. Google Files is neither of these things.

- the p2p function is severely limited in that it requires both a Google account, and location services to be enabled. Neither of which are necessary to initiate a p2p file transfer.

(as another commenter has mentioned), if we're just looking for "the closest thing", I would suggest https://send.firefox.com/ It isn't p2p, but it is secure and universal, so it ticks a lot more boxes overall.


Almost. People need to install the app to use its transfer functionality, and it does not work with computers. We're still far from the universal, no-install solution that should've existed for so many years now.


Well, no install basically means every OS vendor needs to ship a proper and compatible implementation (hah yes that'll surely happen) or you basically need something web based which means it needs an internet connection for bootstrapping.


> except Apple

I wouldn't exactly call that universal...


Yep, Apple's market share is around 11%, so only 89%(ish) of smartphones. Not 100%, and doesn't include desktops / laptops / etc.

Still, about 8x better than AirDrop!


It doesn't matter to me how many Android users there are globally when we're talking about short range file transfers. I'm not bluetoothing files to somebody in India.

The US's market share split is more like 55% Android and 45% iOS, so anything that doesn't support both platforms is going to fail half the time here.


Anything that excludes 11% of the market isn't universal at all though, which was the OP's original request.


Especially when that 11% is a particularly vocal and active part of the market.


The situation isn't being helped by another proprietary solution that won't be cross-platform. (I'm an iOS dev, and I don't see integration of this possible without using private API's, and this would also fall under the 'Duplicate existing service' issue.)


It’s just as “standard” as AirDrop on iOS/MacOS which means it isn’t a standard at all.


What's the standard this implements?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: