https://github.com/Tribler/py-ipv8 Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Project management - + Integrations - + GitHub Sponsors - + Customer stories- + Security - * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Nonprofit - + Education - [ ] [search-key] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} Tribler / py-ipv8 * Watch 22 * Star 126 * Fork 32 Python implementation of the IPv8 layer LGPL-3.0 License 126 stars 32 forks Star Watch * Code * Issues 3 * Pull requests 2 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights master Switch branches/tags [ ] Branches Tags Nothing to show {{ refName }} default View all branches Nothing to show {{ refName }} default View all tags 5 branches 17 tags Go to file Code Clone HTTPS GitHub CLI [https://github.com/T] Use Git or checkout with SVN using the web URL. [gh repo clone Trible] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio If nothing happens, download the GitHub extension for Visual Studio and try again. Go back Latest commit @qstokkink qstokkink Merge pull request #965 from kozlovsky/feature/ settings-from-dict ... 76da077 Feb 10, 2021 Merge pull request #965 from kozlovsky/feature/settings-from-dict Add TunnelSettings.from_dict classmethod 76da077 Git stats * 1,697 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github Added PyPi release GitHub action Jul 15, 2020 doc Added request cache documentation to TOC Jan 29, 2021 ipv8 Handle settings passed as dict Feb 10, 2021 scripts Added basic HTTP API to tracker Jan 27, 2021 stresstest Fix broken image in the peer discovery docs Jan 28, 2021 systemd Moved Trustchain to AnyDex Dec 7, 2020 .gitignore Add trial temp files/dirs to .gitignore Sep 16, 2018 .gitmodules Moved libnacl from submodule to requirements.txt Jan 18, 2018 .pylintrc Fixed pylintrc regular expression Sep 30, 2020 CODE_OF_CONDUCT.md Added a code of conduct Jul 16, 2020 CONTRIBUTING.md Update release instructions for contributors Sep 17, 2020 LICENSE Initial commit Jun 27, 2017 README.md Simplified Getting Started in README.md Jul 30, 2020 __init__.py Initialized project structure Jun 27, 2017 create_test_coverage_report.py Added coverage barplot script generation Oct 13, 2020 github_increment_version.py Alphabetically sort change commits in release script Sep 17, 2020 ipv8_service.py Modularized Community bootstrapping Jan 27, 2021 mypy.ini Added and placated MyPy Oct 20, 2020 requirements.txt Added marshmallow to requirements.txt Jul 1, 2020 run_all_tests.py Use multiprocessing context + no animation flag Jun 28, 2020 setup.py Automated version increment Dec 11, 2020 View code README.md 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: [687474703a] Windows: [687474703a] Mac: [687474703a] Mutation Tests: [6874747073] Read the Docs: [6874747073] 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 13 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. About Python implementation of the IPv8 layer Topics python identity framework networking overlay p2p anonymity distributed-ledger Resources Readme License LGPL-3.0 License Releases 17 IPv8 v2.5.1654 release Latest Dec 14, 2020 + 16 releases Packages 0 No packages published Used by 7 * @TimSpeelman * @Tribler * @rwblokzijl * @TimSpeelman * @Tribler * @mitchellolsthoorn Contributors 17 * @qstokkink * @devos50 * @egbertbouman * @xoriole * @ichorid * @MattSkala * @mitchellolsthoorn * @synctext * @kozlovsky * @cclauss * @Solomon1732 + 6 contributors Languages * Python 99.9% * R 0.1% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.