• Stars
    star
    226
  • Rank 175,506 (Top 4 %)
  • Language
    Python
  • License
    GNU Lesser Genera...
  • Created about 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Python implementation of Tribler's IPv8 p2p-networking layer

FAQ:

  • Q: Is this the new official Layer 3 solution for the Internet?
  • A: No, the naming is a 10-years-old mockery of the deployment failure of IPv6 (which we sincerely hope will be deployed properly at some point in time).

Linux: Windows: Mac:

Mutation Tests:

Read the Docs:

What is IPv8 ?

IPv8 aims to provide authenticated communication with privacy. The design principle is to enable communication between public key pairs: IP addresses and physical network attachment points are abstracted away. This Python 3 package is an amalgamation of peer-to-peer communication functionality from Dispersy and Tribler, developed over the last 18 years by students and employees of the Delft University of Technology. The IPv8 library allows you to easily create network overlays on which to build your own applications.

IPv8 Objectives

  • Authentication. We offer mutual authentication using strong cryptography. During an IPv8 communication session, both parties can be sure of the other party’s identity. IPv8 users are identified by their public key. The initial key exchange is designed so that secrets are never transmitted across the Internet, not even in encrypted form. We use a standard challenge/response protocol with protection against spoofing, man-in-the-middle, and replay attacks.
  • Privacy. IPv8 is specifically designed for strong privacy protection and end-to-end encryption with perfect forward secrecy. We enhanced the industry standard onion routing protocol, Tor, for usage in a trustless environment (e.g. no trusted central directory servers).
  • No infrastructure dependency. Everybody is equal in the world of IPv8. No central web server, discovery server, or support foundation is needed.
  • Universal connectivity. IPv8 can establish direct communication in difficult network situations. This includes connecting people behind a NAT or firewall. IPv8 includes a single simple and effective NAT traversal technique: UDP hole-punching. This is essential when offering privacy without infrastructure and consumer-grade donated resources.
  • Trust. You can enhance your security if you tell IPv8 which people you know and trust. It tries to build a web-of-trust automatically.

Dependencies

The dependencies for IPv8 are collected in the requirements.txt file and can be installed using pip:

python3 -m pip install --upgrade -r requirements.txt

On Windows or MacOS you will need to install Libsodium separately, as explained here.

Tests

Running the test suite requires the installation of asynctest (python3 -m pip install asynctest). Running tests can be done by running:

python3 run_all_tests.py

Running code coverage requires the coverage package (python3 -m pip install coverage). A coverage report can be generated by running:

python3 create_test_coverage_report.py

Getting started

You can start creating your first network overlay by following the overlay creation tutorial.

We provide additional documentation on configuration, key generation and message serialization formats on our ReadTheDocs page.

More Repositories

1

tribler

Privacy enhanced BitTorrent client with P2P content discovery
Python
4,727
star
2

self-compile-Android

Autonomous smartphone app. Capable of self-compilation, mutation, and viral spreading. World-first proof-of-principle to bypass Internet kill switches.
C
505
star
3

dispersy

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

software-based-PUF

The first open source software-based Physically Unclonable Function (PUF) using off-the-shelf SRAM
C
83
star
5

trustchain-superapp

Kotlin implementation of Trustchain and IPv8 with rich networking: multihoming of local Bluetooth+4G, decentral social networking, UDP hole punching, etc.
Kotlin
80
star
6

kotlin-ipv8

P2P communication library for Android
Kotlin
58
star
7

app-to-app-communicator

Create an attack-resilient network out of smartphones, no-PC-needed (proof of concept)
Java
33
star
8

Dollynator

Autonomous self-replicating code
Python
22
star
9

trustchain-simulator

This repository contains Trustchain (Blockchain) simulations built with OMNeT++
C++
19
star
10

cloudomate

Unpermissioned Open Computer API
Python
15
star
11

gumby

Experiment runner framework for IPv8 and Tribler
Python
11
star
12

decentral-market

Fully operational proof-of-principle of a electronic market place that is immune to shutdown by governments, immune to lawyer-based attacks or other real-world threats. A marketplace with no central server bottleneck, no central point of trust, full self-organization and unbounded scalability.
Python
10
star
13

De-DSI

Jupyter Notebook
10
star
14

tribler-android

Java
9
star
15

bami

BAMI 🍜 protocol prototype: Ultimate Toolbox for Collaboration
Python
9
star
16

utp4j

Micro Transport Protocoll 4 Java
Java
9
star
17

anydex-core

The Universal Decentralized Exchange
Python
8
star
18

tribler.github.com

The Tribler.org website
HTML
6
star
19

distributed-ai-kernel

Distributed AI Kernel
Java
4
star
20

incremental-pagerank

An implementation of the Incremental PageRank algorithm
Jupyter Notebook
4
star
21

docker-tribler-prod

Docker image for running Tribler in production.
Dockerfile
4
star
22

decentralized-mortgage-market

Python
2
star
23

real_time_random_walk

Real time visualization of trust levels determined by random walk
Python
2
star
24

document-attestation-service

TypeScript
2
star
25

covid-19-recovery-identification

TypeScript
2
star
26

docker-tribler-dev

Docker image for a local development environment for Tribler.
Dockerfile
2
star
27

trustchain-explorer

A TrustChain explorer, written in AngularJS
TypeScript
1
star
28

trustchain_etl

Database migration tools for Trustchain records
Python
1
star
29

trustchain-simulator-pysim

A basic simulator for TrustChain, to explore the effect of different parameters on fraud detection times and bandwidth overhead.
Python
1
star
30

docker-tribler-build-linux

Docker image for building deb files for Tribler.
Shell
1
star