Tent, un protocolo para construir una web social descentralizada

La web social es un fenómeno bastante curioso en Internet, principalmente por su estructura. Desde el principio, Internet ha sido una red descentralizada. Páginas web, correo electrónico, grupos de noticias (Usenet)… Todo se basaba en protocolos abiertos y múltiples servidores que se comunicaban entre ellos. Sin embargo, la web social está completamente centralizada: un único servidor sin protocolos abiertos y que no se comunica con nadie más. Es, por así decirlo, algo extraño. Tent es el intento de un grupo de desarrolladores independientes por cambiar esto.


Tent no es una red social, sino un protocolo para redes sociales. Tent sirve para crear aplicaciones sociales, igual que SMTP sirve para crear aplicaciones de correo. Imaginaos un Twitter donde no sólo podáis leer y responder a los usuarios de Twitter, sino también a los que usen Identi.ca o cualquier servicio similar, exactamente de la misma forma que te puedes comunicar con usuarios de Outlook o Yahoo! Mail si usas Gmail. Esto es lo que pretende Tent.

Funcionamiento: Un protocolo con lo básico, relaciones y contenido

Tent pretende ser un protocolo muy básico, con dos partes principales. Por un lado estarán las relaciones, a qué usuarios sigues y qué usuarios te siguen a ti. Por otro, el contenido, que puede ser cualquier cosa: una imagen, un post de un blog, un texto corto…

La estructura de Tent es totalmente descentralizada: múltiples servidores que se comunican entre sí. ¿Cómo? A través de esas relaciones. Cuando un usuario (Juan, por ejemplo) actualiza algo en un servidor, ese servidor notificará a todos los servidores en los que haya usuarios que sigan a Juan.

Tent usaría un sistema distribuido como este: los clientes se comunican con los servidores y éstos intercambian datos entre sí.

En cuanto al contenido, aunque la idea es que cualquier desarrollador pueda crear sus propios tipos de contenido, los desarrolladores de Tent pretenden establecer algunos tipos base para facilitar la comunicación entre aplicaciones distintas. Por ejemplo, un tipo “tweet” para que todas las aplicaciones de estilo Twitter puedan comunicarse entre sí.

Intentemos entender mejor el funcionamiento de Tent con un ejemplo. Tenemos por un lado a Ana, que usa la aplicación Foo en el servidor A, y por otro a Juan, que sigue a Ana y usa la aplicación Bar en el servidor B. Tanto Foo como Bar son dos aplicaciones que sirven para compartir fotos con amigos.

Ana coge su móvil, toma una foto y la comparte con sus amigos. La aplicación envía la foto al servidor A y éste notifica a todos los servidores de los usuarios que sigan a Ana, entre los que está el servidor B. Cuando Juan abra su aplicación Bar, ésta se conectará al servidor B y verá la foto que ha subido Ana. Como veis, el funcionamiento es prácticamente igual al del correo electrónico.

¿Para qué sirve Tent?

¿Para qué sirve esto? Fácil: para construir aplicaciones sociales. Podría crear una red estilo Instagram con sólo construir las aplicaciones para web, móvil o lo que sea, sin preocuparme por crear mi propio servidor (con instalar Tent valdría) ni especificar una API. Y cualquier otro desarrollador podría crear aplicaciones que interactuasen con la mía sin que yo tuviese que darle una API: para eso ya está el propio protocolo, sólo necesita compartir el mismo tipo de contenido.

Además, Tent sería totalmente transparente para el usuario. Por ejemplo, podría implementarse Twitter, Facebook o Tumblr usando este protocolo y los usuarios no nos daríamos cuenta. Para nosotros, todo seguiría siendo lo mismo a pesar del cambio radical que significaría.

Un sistema con muchas ventajas… pero también fallos

Tent tiene muchas ventajas frente a las redes sociales tradicionales. Al estar descentralizada, no hay posibilidad de censura. Incluso se puede implementar junto con Tor para conseguir la máxima privacidad posible. Además, en el caso de que un servidor cierre podrías coger tu información (perfil y contenido de todas las aplicaciones) y mudarte a otro sin ningún problema y sin perder ningún dato. Y, por supuesto, también está la ventaja de un desarrollo mucho más rápido para crear cualquier tipo de servicio social.

Pero, como todo, también tiene sus desventajas, la mayoría derivadas de la propia estructura descentralizada. Por ejemplo, sería extremadamente difícil buscar usuarios (tendrías que ir preguntando a todos los servidores existentes), o ver todas las actualizaciones de un determinado tipo que se han publicado. Ciertas características que son fáciles de implementar en servicios centralizados, como por ejemplo el autocompletado de usuarios, o las etiquetas automáticas en fotos; en Tent serían muy complejas.

Por lo que hemos podido ver, Tent tiene muy buena pinta, y cada vez que pienso la idea me parece mejor. Por supuesto, todo es código abierto y cualquiera puede contribuir. En poco tiempo tendrán algunos prototipos que se podrán probar, y que permitirán ver la acogida que tiene el protocolo.

En cuanto a su futuro, se me viene a la cabeza el caso de Diaspora. Aunque son bastante diferentes (Diaspora es una red social, mientras que Tent es un protocolo para crear redes sociales) la intención es similar, y no es descabellado pensar que Tent acabe en unos meses como Diaspora ahora mismo: medio olvidado y sin muchas vistas de futuro.

Por suerte, Tent cuenta con la ventaja de que, al ser un protocolo, no tiene los problemas que tendría una red social nueva para atraer usuarios. No tiene que sustituir a ninguna otra red y, por lo tanto, el efecto red no resultaría un inconveniente tan grande para no usar aplicaciones basadas en Tent.

Estaremos atentos a este proyecto. Como os digo, me parece una idea realmente buena y con mucho futuro, si la comunidad de desarrolladores lo adopta. A vosotros, ¿qué os parece?

Vía | Hacker News
Sitio oficial | Tent
Más información | Github
Imagen | Wikimedia

Portada de Genbeta