Coder Social home page Coder Social logo

ran3d / tman-wrtc Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 1.0 12.11 MB

Peer-sampling protocol running on top of WebRTC that builds network topologies using ranking functions.

Home Page: https://ran3d.github.io/tman-wrtc/

License: MIT License

JavaScript 99.96% Shell 0.04%

tman-wrtc's Introduction

tman-wrtc Build Status

Keywords: T-Man, configurable network topology, WebRTC

This project aims to provide an implementation of the T-Man [1] using WebRTC. T-Man is a protocol that builds an overlay network based on descriptors. Created by the developer, and exploiting the descriptors, a fitness function allows choosing the right neighborhood. For instance, implementing the distributed hash table Chord on top of T-Man is possible [2].

Principle

As the screenshot shows, each peer maintains a random peer-sampling protocol (on the left) which allows clustering protocols to avoid local minima, and a clustering protocol (on the right) that collects, sorts, and keeps descriptors along with sockets. On this example, descriptors are numbers and each peer keeps 4 neighbors: its closest in terms of euclidean distance. After a few shufflings, this overlay network remains stable, for peers do not leave nor join the network, and descriptors are not updated. Peers iterate over closer-and-closer neighbors until they reach their optimal position. On the opposite, the random peer-sampling protocol stays dynamic over time.

Installation

$ npm install tman-wrtc

References

[1] M. Jelasity, A. Montresor, and O. Babaoglu. T-man: Gossip-based fast overlay topology construction Comput. Netw., vol. 53, no. 13, pp. 2321-2339, 2009.

[2] A. Montresor, M. Jelasity, O. Babaoglu, Chord on Demand Fifth IEEE International Conference on Peer-to-Peer Computing (P2P'05), pp. 87-94, 2005.

tman-wrtc's People

Contributors

chat-wane avatar folkvir avatar

Stargazers

Damian Łukawski avatar Tony Riemer avatar

Watchers

James Cloos avatar  avatar

Forkers

nachmo5

tman-wrtc's Issues

update descriptor

Descriptor should be easily updatable. Maybe set a getter for this.

extract unicast from this module

registering/unregistering to send messages is not part of the peer-sampling protocol and should be removed from this. spray-wrtc module already got rid of this.

  • adjust to a parent that do not already have this unicast
  • remove registering of protocols

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.