Tribler/py-ipv8

Name: py-ipv8

Owner: Tribler

Description: Python implementation of the IPv8 layer

Created: 2017-06-27 14:30:23.0

Updated: 2018-05-22 13:44:46.0

Pushed: 2018-05-22 13:44:44.0

Homepage:

Size: 488

Language: Python

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Linux: Windows: Mac:

What is IPv8 ?

IPv8 aims to provide authenticated communication with privacy.

IPv8 Objectives

This Python 2 package contains IPv8: an amalgamation of peer-to-peer communication functionality from Dispersy and Tribler, developed over the last 13 years by students and employees of the Delft University of Technology. The IPv8 library allows you to interface with the existing Dispersy network to build your own applications.

Functionality included by IPv8 at this point is:

Implementations on the horizon of this library are stream-based messaging (instead of packet-based), scalable TrustChain concensus and mixnet functionality.

Dependencies

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

install --upgrade -r requirements.txt

The libsodium library will have to be installed manually. Please follow the instructions for your platform below:

Debian/Ubuntu: sudo apt-get install libsodium18

Mac: sudo port -N install libsodium or brew install libsodium

Windows: Download an MSVC binary release from the libsodium website. Open the archive and browse to the version applicable to your OS (x32 or x64). Extract the files in the dynamic folder to a location on your PATH (the folder containing python.exe for example).

Tests

The test suite can run without any external packages, but the nosetests package is recommended (pip install nose). The test suite will automatically detect your back-end when running the tests. Running tests can be done (on UNIX) by running:

 run_all_tests_unix.sh

On Windows you can run run_all_tests_windows.bat from the Command Prompt (cmd.exe). Running code coverage requires the coverage package (pip install coverage). A coverage report can be generated by running:

on2 create_test_coverage_report.py
Getting started

IPv8 can be used as a library or as a service. It is easiest to start off with the service, which has been provided here (see the configuration file for invocation options). This file will load the IPv8 stack for signed messaging, anonymous messaging, attribute attestation, public service discovery, peer discovery and peer keep-alive. You can start creating your first network overlay by following the overlay creation tutorial.

Additional documentation is also available for the TrustChain and anonymization provided in IPv8.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.