Skip to main content

The Python implementation of the IPV8 library

Project description

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

Unit tests:

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyipv8-3.1.0.tar.gz (297.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyipv8-3.1.0-py3-none-any.whl (380.2 kB view details)

Uploaded Python 3

File details

Details for the file pyipv8-3.1.0.tar.gz.

File metadata

  • Download URL: pyipv8-3.1.0.tar.gz
  • Upload date:
  • Size: 297.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pyipv8-3.1.0.tar.gz
Algorithm Hash digest
SHA256 a67e444ab5d19a31352b22c155881b7a3df936600a79e538fdfa1410e452df16
MD5 84c1710b7826bf8fb27d652cf8094c68
BLAKE2b-256 973acdf914d6a32ad85136dc47859cb8652dab3c8d1fef0fbcb219d1237d7872

See more details on using hashes here.

File details

Details for the file pyipv8-3.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyipv8-3.1.0-py3-none-any.whl
  • Upload date:
  • Size: 380.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pyipv8-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d87240d3ee06fb4713f85e9191fe18ae8df203aa4b911ab81bbc01a84d5d76f
MD5 a69de2e26a4b09e0ea5836b9348a7f64
BLAKE2b-256 18886c1376216c642cdb1fd41f90a8a83cdd90c1c7d0da0583486feca73c9229

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page