# rtc-SCAMP Keywords: SCAMP, scalable membership, gossip, epidemic dissemination, WebRTC This project is an attempt to provide a full browser gossip protocol with random peer sampling. More specifically, it implements the Scalable Membership Protocol (SCAMP) [1] which is a gossip that automatically resizes its neighbourhood tables in order to fit with the size of the network using local knowledge only. The Project rtc-SCAMP uses [WebRTC](http://www.webrtc.org) which allows creating peer-to-peer connections within the browser. To our knowledge, there do not exist any implementations which do not rely on a central server to ease the initialisation phase of the membership. Thus, this project aims to fill this gap. Such implementation would allow building distributed network by only manually sharing a piece of data (e.g. by mail). ## Installation You can get the module using the node packet manager: ``` $ npm install rtc-scamp``` Or using bower: ```$ bower install rtc-scamp``` ## Usage This module creates a network which implements the [p2pnetwork API](https://github.com/justayak/network). It uses [rtc-scamp-mbr](http://github.com/chat-wane/rtc-scamp-mbr) for the membership part, i.e., how a peer can join the network. It uses [simple-broadcast-definition](https://github.com/Chat-Wane/PrimitiveBroadcastDefinition.git) for the epidemic dissemination of messages which collects the unique identifier of each message so they are broadcast only once. ## Example The example is hosted [here](http://chat-wane.github.io/rtc-SCAMP/). The code can be found on the [gh-branch](https://github.com/Chat-Wane/rtc-SCAMP/tree/gh-pages) of this project. To use it, follow the steps: