Skip to content

µChat: We don’t need servers, we just need each other.

July 2, 2011

this is a repost of http://blog.bittorrent.com/2011/06/30/uchat-we-just-need-each-other/…that version got editor treatment and has some nice screenshots and such.

uChat always seemed like such a simple idea. We have the world’s most passionate users, and a bunch of them were filling our forums with requests for chat functionality. Some wanted to talk to fellow downloaders to get ideas for other content, some just wanted to thank the seeders. And so when I decided I wanted to do a little side project, the need dictated the project. Except I didn’t think the world needed another server.

And we torrenters already had such awesome building blocks in the form of torrents and magnet links. So that’s what you’re using when you use uChat. Every piece of functionality probably uses magnet links in one way or another. Every room you join is a magnet link, and the peers you see in the rooms are fellow swarm peers. Except I pulled a fast one on uTorrent…so you’re not actually downloading anything (and the peers don’t disconnect because we’ve coded them to be very optimistic about their future chances of getting the torrent file. Silly peers). So that all seemed pretty good, except we still didn’t have a way to find rooms, and we still didn’t have a buddy list. Two deal breakers left.

It occured to me pretty early that we were going to need a central swarm to advertise other rooms on. So every uChat client joins a giant predetermined swarm. We’ve seen swarms in the wild that are absolutely massive, so it seemed like a safe way to get all the peers together to exchange rooms that they knew about. Great, so now uChat clients can tell each other about rooms. One deal breaker left.

The buddy list is my favorite. In the real world no one knows all your friends. Just you. And when you introduce yourself, you can say whatever you want. And I think that’s a pretty good setup. So your buddy list is known only to you, and you can call yourself whatever you’d like. When you become friends, you both add the same unique magnet link link so that you can find each other later simply by joining that swarm. We also do a bunch of crypto to verify the friend because frankly, the world’s a scary place. So instead of both your information sitting on a server, a friendship on uChat is simply a common swarm, your friend’s public key, and their original name (because sometimes friends change their name…though admittedly less often in the real world).

So there you have it. A way to make and keep relationships with people around the world with no central server. And I think that’s pretty cool. Another chat client is probably not going to rev the tech world’s engines, but the possibilities created by the underlying technology are pretty exciting. And that underlying tech that makes this all work is already finding it’s way into my next side project…

Advertisements
No comments yet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: