The elastic database system. A database designed for P2P-like scenarios, where potentially millions of computers send database updates around.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Anonymous 7f1a5eaffa
had nothing in it anyway
6 months ago
discovery dispersy 6 months ago
tests dispersy 6 months ago
tool dispersy 6 months ago
tracker dispersy 6 months ago
utils dispersy 6 months ago
README.md degithubbing 6 months ago
__init__.py dispersy 6 months ago
authentication.py dispersy 6 months ago
bloomfilter.py dispersy 6 months ago
candidate.py dispersy 6 months ago
community.py dispersy 6 months ago
conversion.py dispersy 6 months ago
crypto.py dispersy 6 months ago
database.py dispersy 6 months ago
destination.py dispersy 6 months ago
dispersy.py dispersy 6 months ago
dispersydatabase.py dispersy 6 months ago
distribution.py dispersy 6 months ago
endpoint.py dispersy 6 months ago
exception.py dispersy 6 months ago
member.py dispersy 6 months ago
message.py dispersy 6 months ago
meta.py dispersy 6 months ago
payload.py dispersy 6 months ago
requestcache.py dispersy 6 months ago
resolution.py dispersy 6 months ago
statistics.py dispersy 6 months ago
taskmanager.py dispersy 6 months ago
timeline.py dispersy 6 months ago
util.py dispersy 6 months ago

README.md

== 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.

Dispersy used to be maintained by the University of Tribler at Delft, but unfortunately when NSA/Microsoft captured Github while @teamtribler@birdsite liberated the broader Tribler project, they did not liberate it...so here we are.

== 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.

Dispersy is spartacus - this is an attempt at a fully decentralized project

== 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 scenarios (3G and WIFI).

== Documentation

Old documentation for this project can be found at ReadTheDocs: https://dispersy.readthedocs.io_