I’ve been avidly watching the iFolder project for a while now. I’m currently using iFolder 2.0 at work and love it, I was thrilled to hear that iFolder went open source and have high hopes for the project. Progress on the peer to peer part has been dissapointingly slow, but understandable. The only real quibble I have is that the developers seem to be unecessarily complicating certain areas that should be simple.
Specifically , if I want to share a folder I should be able to designate an iFolder and create invitations that give the bearer the rights to access the share. Letting the user figure out how to get the invite to people, reduces complexity. Most people know how to send a attachment in email. Consider the invite a key, although an optional additional level of authentication, say a password, would be nice.
Embed a user name inside the invitation.
If I send an invite to Fred and I suddenly see 300 simultaneous connections from computers using Fred’s invite, then I can disable that invite and possibly issue Fred a new one. If I want to issue seperate invites to 30 different friends, all to the same iFolder share, I can assign rights and even revoke the invites individually. If I want to issue a single invite to all my friends then I can. I can name the invites user as an individual “Bill”, or as a group “Website design team”. Individual machines IP addresses may change, and users may use same invite on more than one machine, but the name tells me who is connected. Allow the host to see who (based on name I assigned in invite) is accessing a share and on how many simultaneous connections.
File name only sync.
Create all the files and subdirectories but don’t sync any of the data (0 byte files). This allows for a quick sync, I can decide if I really want to subscribe to this iFolder, and lets me pick individual files to sync fully.
Secure / blind sync
Client computer gets only encryped copies of the files, allows users to let friends or family to host blind backups. Make sure to encrypt the file names too.
Moves files from host/server to client. Once the sync is complete, the file is deleted from the host but remains on the client. This allows me to easily move files from one machine to another.
Multiple levels of access on the same share.
Bill has read and write, but Ted only gets read access.
Revision control system built in.
Track versions of files and show who and when made what changes.
Scheduled / throttled sync
Allow the host to limit number of files to sync to others per day.
Don’t sync file until specific day and time.
P2P with Authoritative host
A central host has the Official versions of all files, all peers sync their changes with that host.
But when host is down, peers sync their files with each other until Authoritative host comes back online and straigtens things out.
Force Peer sharing.
Once server knows that there is a full copy of a file out on the peers, point all other peers to the peer copy of the file. Saves host bandwith.
Peers keep record of all other peers (and hosts) latest IP, peers only need to find one other peer still connected with the share to get reconnected to the host. Works even if host is not on stable ip. Have the host go out and try to find peers when the host restarts iFolder.