GithubHelp home page GithubHelp logo

kustomzone / dispersy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tribler/dispersy

0.0 2.0 0.0 7.38 MB

The elastic database system. A database designed for P2P-like scenarios, where potentially millions of computers send database updates around.

Home Page: http://www.tribler.org

Python 99.84% Shell 0.16%

dispersy's Introduction

Dispersy

The Distributed Permission System, or Dispersy, is a platform to simplify the design of distributed communities. At the heart of Dispersy lies a simple identity and message handling system where each community and each user is uniquely and securely identified using elliptic curve cryptography.

Integrated NAT Puncturing

Nowadays almost all devices have a network connection, with a lot of them running in challenged network environments. Challenging conditions can be found in a wide range of networks, i.e. Peer-to-Peer networks (P2P), and delay tolerant networks (DTNs). These networks have several limitations, like having long communication delays, very low data rates, and unstable links.

P2P networks are particularly challenging due to nodes not always being online, NAT-firewall constrained Internet connections, and frequent interaction with potentially malicious nodes. Smartphones pose another challenge due to their limited processing capability and battery lifetime.

Dispersy was designed to be capable of running in challenged network environments. It does this by minimizing the needed resources by using optimized algorithms and protocols.

Decentralized

Dispersy is fully decentralized. It does not require any server infrastructure and can run on systems consisting of a large number of nodes. Each node runs the same algorithm and performs the same tasks. All nodes are equally important, resulting in increased robustness. Dispersy offers distributed system developers both one-to-many and many-to-many data dissemination capabilities. Data is forwarded between nodes. All injected data will eventually reach all nodes, overcoming challenging network conditions.

Dispersy uses elliptic curve cryptography to identify the different nodes in a secure and anonymous way.

Goal

Dispersy is designed as a building block for implementing fully decentralized versions of, for instance Facebook, Wikipedia, Twitter, or Youtube. These Web 2.0 applications often require on a direct Internet connection to their central servers, but can now be implemented in a distributed way

Key Features

Key features of Dispersy are:

  • stateless synchronization using Bloomfilters
  • decentralized NAT traversal
  • performance that can scale to over 100,000 bundles

Dispersy is intergated in the BitTorrent client Tribler and show that it is performing very well in various real-time challenged network scenario’s (3G and WIFI).

Documentation

The documentation for this project can be found at ReadTheDocs

dispersy's People

Contributors

nielszeilemaker avatar boudewijn-tribler avatar lipufei avatar whirm avatar egbertbouman avatar devos50 avatar mitchellolsthoorn avatar qstokkink avatar snorberhuis avatar pimveldhuisen avatar rjruigrok avatar joswinter avatar lfdversluis avatar captain-coder avatar synctext avatar brussee avatar badrock avatar

Watchers

Andrew Kidoo avatar  avatar

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.