Decentralized Social Networks: System architecture, Protocol Design and Implementation
Due to the privacy concerns of existing centralized Online Social Networks (OSN), researchers and developers have tried to design, implement and deploy decentralized social networks (DSN) in recent years. Despite numerous attempts and efforts, only a small portion of those projects have managed to achieve actual deployment status and none but one of them have more than one million users. We argue that the major hurdle for the widespread adoption of DSN is the lack of a smooth transition path which would allow users to gradually migrate away from the existing Social Networking Services (SNS) without cutting ties with their friends who would remain on the centralized OSNs. Towards this end, we have built a lightweight Python-based middleware, SNSAPI, to unify the interfaces and data structures of heterogeneous SNS. Unlike most prior works, this middleware is user-oriented and requires no infrastructure support. OSN users can readily manipulate their social channels in a programmable and cross-platform fashion. This gives an effective way to gradually detach users from centralized OSN service providers. In this talk, we will first present the design and implementation of the open-source SNSAPI project. By taking advantage of the multi-interfacing nature of SNSAPI, users can connect with each other via all kinds of channels, including traditional Online Social Network (OSN) and other means of communications like Email and RSS. In this way, a Decentralized Social Network (DSN) can be constructed in an ad hoc manner. We have emulated a 6000-node SNSAPI-based DSN on PlanetLab and evaluated its performance by replaying real-world OSN activity traces collected from a mainstream OSN. Our experience with SNSAPI has also helped us to identify new challenges in the realization of DSN services. In the 2nd part of the talk, we will describe our recent work in tackling two of such challenges. Firstly, we will present a distributed control protocol which coordinates the information dissemination in DSN while avoiding congestion. Secondly, we will discuss how to enable distributed, privacy-preserving community detection in DSNs.