Fucking about with AeroFS

Aug 19, 2011 15:49

I'm currently fucking about with AeroFS - the P2P version of DropBox.

Seems to work nicely through firewalls (80 and 443 outbound), communicates over SSL and uses a 2048-bits RSA key for data encryption. I have to wonder why they don't use DSA, but hey.

There is no initscript (and from the feature requests I gather it also does not register as a service on Windows), so you need to start it manually or roll your own initscript.

File changes get noticed pretty much immediately, so I suspect they plug in to the VFS layer to get notified of any activity. Whenever files change you get a nice popup (or a message on the terminal for the CLI jockeys among us), which can be disabled in the preferences. I'm very tempted, because there's a lot of distracting popping up while syncing large directories.

It's not particularly fast, but then again that's not the major point I'd say. Currently transferring a 1G file from Hetzner.de to here.be (both decent pipes) without bandwith limits set, and I seem to be pulling well under 100KiB average.

The FAQ does mention that opening up in- and outbound UDP makes for a major speed boost, so I presume the data is now bounced off a server of theirs. I opened up all incoming UPD on the remote server as per recommendation (apparently, a single host with all UDP open should suffice) to no avail. Highest peak I've seen is ~150KiB. Still, as said, speed is not the major issue.

Update: I now set up a second client in my home network, where I'm sure there's no restriction whatsoever. I now get a sustained 2.2 MB/s while transferring a 2G file over the wireless - nice. I was a bit suspicious about the "only one machine must have free UDP traffic" - no, you need open incoming on one side and open outgoing on the other.

Deleting a file while another client is downloading it is handled properly: the transfer gets interrupted and the intermediates get deleted.

It supports multiple "Libraries", which are simply toplevel directories in the AeroFS folder. Each library has a hidden .aerofs file which contains an empty file that looks named like some form of UID. Subdirectories do not have that, unlike with CVS or SVN.
Normally, you create and delete libraries through the application, but a quick test confirmed that you can create a library by simply creating a toplevel directory: the hidden directory gets added magically and the whole thing gets synced to your other devices. Deleting a library can be done by deleting it's directory, too.

You are restricted to the application's directory for sharing files, though. An obvious security feature, but kind of annoying that you'd have to copy all the files you want to share in there. Symbolic links do not work and are not replicated.
On *nix, if your files are on the same disk you could cp -rl to save space and time; on Windows it seems junctions do work, but afaik there's no native GUI way to do them.

Libraries, by default, get automatically pulled in on all devices. You can tell a device to not do that and wait for you to tell it which ones you want. Unfortunately, there's currently no way of setting a library no-broadcast by default on the machine you create it on - you have to do it on every host individually.

You can, of course, share files with other users by simply sending them an invitation code. The application mails that for you, with a convenient link in the mail. Here's a hint: share a library with someone and they get an invite. When you delete a user's permissions from your library, the files also get automatically deleted from their computers - although, obviously, not any copies they made.

I'm missing something a bit obvious, though: you can set users either as editor (read, write) or as administrator of a library; but not as read-only users. While I see that this is mostly meant for active collaboration or simply keeping stuff in sync, it might be useful to allow someone to keep an automatically updated copy of, say, documentation, without them being able to accidentally delete stuff.

Files only show up after the sync is completed, so I was wondering where the in-flight data is kept. There turns out to be a ~/.aerofs directory as well. There's an SQLite DB in there - at least, that's what file claims, but sqlite3 claims it isn't a database. The daemon.log confirms that it plugs in to iNotify. SSL certificate, device configuration file, unique device key, PID file, the usual. The cache directory contains both the in-flight data and a lot of metadata. Host names of people you share libraries with are also in the message queue, apparently - reporting that one as a potential security issue.

The absolute best bit compared to Dropbox, for me, is that your files never go to their servers, apparently not even the metadata - they claim to only keep your username, password hash and list of "libraries" on their side. The blurb indicates that computers on a network without internet connectivity will still sync, which is very good indeed; although it does not say wether or not you need the internet to authenticate at application startup. Maybe not, as devices exchange their keys when they register the first time; and for registering a device you do need internet as that happens through their servers - which enables you to register a new device even when all of your other devices are offline. As soon as one wakes up, the new device will start syncing.

All of this is (currently) free, too. So, where do they plan on getting money from? Well, even if the default configuration is to keep all data only on your devices, there is a backup option available. You get 1G free, and there are 10G and 100G options which are currently still greyed out - I presume those will be paying. It's not clear what "backup" entails - when you enable it, an "AeroFS" users appears in the userlist; but I can't find anywhere wether it just keeps another copy available at all times, or wether they version your files and you can get old versions or deleted files back somehow. All of that is probably still under development. The AeroFS users doesn't disappear when you disable backup again, though :-)

All in all, this looks like being a nice tool and a good replacement for Dropbox for those of us who care less about sharing individual files and more about strangers not reading their mail.

computers, review

Previous post
Up