I'm a cofounder at AeroFS. The main advantage of AeroFS is P2P file syncing without using servers. S3 support is a nice addition to the basic functionality, allowing users to use S3 as a "super" peer.
To echo your update on the original question: while AeroFS is a distributed filesystem with quite complicated mechanisms underneath, we work very hard to make AeroFS dead simple to use. Following this philosophy, we've implemented the features that you mentioned but they're currently disabled/hidden for the sake of simplicity.
Regarding offline computers: if the only computers that host a file are offline, the file data will be unavailable. Currently, offline files are invisible in Finder/Explorer/etc. Because the current system only supports full replication, having offline files should be a rare case.
Regarding performance: it's crucial to us. Lots of efforts has been made (and even more to be made) to ensure the filesystem has comparable performance to local storage; sync performance is another area that we invest a lot of time in.
We have implemented full-fledge access control including file ownership, read/write permissions on data/metadata, list/add/remove permissions on directories, etc. But we disabled it from the interface to keep user experience as simple as possible.
Later on we may enable them based on use cases and user feedback. Our API will include ACL management as well. Currently files are read/write accessible once shared.
I see. There are two categories of conflicts to resolve: meta conflicts (like when you rename a file to "foo" on device A and meanwhile rename it to "bar" on B) and data conflicts (i.e. the example you gave).
We will formally describe meta conflict resolution in a separate post. Because resolution for data conflicts is very application specific, we will publish an API to allow application developers to write their own conflict resolvers. Meanwhile, we will try to provide resolvers for popular file types by default.
From the end user's view, in most cases conflicts are automatically resolved without being noticed. User intervention is required if automatic resolution fails or the user wants to manually merge.
In short, AeroFS is a decentralized data management system running on top of p2p overlay networking.
The overlay network layer presents to the data management layer a transport-agnostic view of the Internet, and addresses peers using network-independent identifiers. In this way, data management can talk to any peer regardless of network topologies and firewall restrictions, as if the world is flat :)
The data management layer controls data versioning and update propagation in a fully decentralized way. As I described in another comment, we use version-vector-like data structures to track versions and mange conflicts. We use modified epidemic algorithms (http://portal.acm.org/citation.cfm?id=41841) for fast update propagation. AeroFS distinguish between peers and super peers. Super peers can help update propagation and peer communication in many ways.
1) we ICE/STUN as well as relay for firewall penetration. 2) we use a modified version of version vectors (http://en.wikipedia.org/wiki/Version_vector) and accompanying algorithms to detect and resolve conflicts. In a decentralized system, conflict management boils down to managing causal relationship between distributed updates, and version vector was invented just for that :)
We developed a lot of the protocols and technologies ourselves, and could talk about them for hours :) Let me know if you have a specific area you want me to discuss.
We generate a temporary password for the user being invited and encode it in the invitation code sent to the user's email address. We use this temp pass to verify the user when he/she signs up and destroy the pass immediately after. During initial setup, the user's device generates its own public key pair and sends a CSR (certify signing request) to us for certification.