No estoy seguro de si esto responde a su pregunta directamente o no, pero me parece que cualquier tipo de aplicación que almacena los datos localmente y ofrece a sincronizar o compartirla con otras instancias de sí mismo (o aplicaciones compatibles) es , de facto, algún tipo de base de datos peer to peer.
Tomar una aplicación de motor de búsqueda distribuido por ejemplo. Hay algunos experimentos en esa área (por ejemplo, http://yacy.net). Utilizándolos, tienes un índice local que puedes compartir con tus compañeros, etc.
O, mejor dicho, un cliente Bit Torrent ...
Ninguno de estos se comunican a través de SQL adecuada, ni tampoco hay necesariamente un servidor de base de datos que almacena la información de la cuenta de usuario. Cada una a su manera es, de hecho, en el ámbito de los almacenes de datos distribuidos.
En cada caso, el propósito de tener un "servidor" (o lo que se denomina), es mantener las instancias de la aplicación de la conformación de redes discontinuas que no saben el uno del otro. Lo mejor que sé es que no hay medios confiables para lograr esto de manera confiable sin algún tipo de puntos de referencia "siempre encendidos".
El giro, en el caso de Skype, es que además de querer formar una red única, desea a) autenticar a los usuarios que se unen a la red, y b) almacenar una cierta cantidad de (pero no todos) historia (por ejemplo, recibe una notificación de llamadas perdidas y solicitudes de contacto, pero los mensajes de chat perdidos solo aparecerán cuando ambos clientes de Skype estén conectados).
no sé a ciencia cierta, pero creo que es * muy * difícil de implementar una base de datos de punto a punto. ¿Quién autentica los datos? ¿Cómo sabes que la información es realmente confiable? Mire OpenPGP: es una forma de base de datos de igual a igual, excepto que toda la información que almacena es "Soy lo que digo que soy". –
¿Qué tal un almacén de valores-clave [namecoin] (http://namecoin.info/)? Es una base de datos de solo escritura. – Jus12
Esta pregunta se mantiene actualizada en absoluto –