{ "info": { "author": "Tribler", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Twisted", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Distributed Computing", "Topic :: System :: Networking" ], "description": "**Linux**: [![](http://jenkins-ci.tribler.org/job/ipv8/job/test_ipv8_linux/badge/icon)](http://jenkins-ci.tribler.org/job/ipv8/job/test_ipv8_linux/) **Windows**: [![](http://jenkins-ci.tribler.org/job/ipv8/job/test_ipv8_windows/badge/icon)](http://jenkins-ci.tribler.org/job/ipv8/job/test_ipv8_windows/) **Mac**: [![](http://jenkins-ci.tribler.org/job/ipv8/job/test_ipv8_mac/badge/icon)](http://jenkins-ci.tribler.org/job/ipv8/job/test_ipv8_mac/)\n\n## What is IPv8 ?\n\nIPv8 aims to provide authenticated communication with privacy.\nThe design principle is to enable communication between public key pairs: IP addresses and physical network attachment points are abstracted away.\nThis Python 2/3 package is an amalgamation of peer-to-peer communication functionality from [Dispersy](https://github.com/Tribler/dispersy) and [Tribler](https://github.com/Tribler/tribler), developed over the last 13 years by students and employees of the Delft University of Technology.\nThe IPv8 library allows you to easily create network overlays on which to build your own applications.\n\n### IPv8 Objectives\n\n- **Authentication**. We offer mutual authentication using strong cryptography. During an IPv8 communication session, both parties can be sure of the other party\u2019s 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.\n- **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).\n- **No infrastructure dependency**. Everybody is equal in the world of IPv8. No central web server, discovery server, or support foundation is needed.\n- **NAT traversal**. 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.\n- **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.\n\n### Dependencies\nThe dependencies for IPv8 are collected in the `requirements.txt` file and can be installed using `pip`:\n\n```\npip install --upgrade -r requirements.txt\n```\n\nOn Windows or MacOS you will need to install `Libsodium` separately, as explained [here](https://github.com/Tribler/py-ipv8/blob/master/doc/preliminaries/install_libsodium.md). \n\n### Tests\nThe test suite can run without any external packages, but the `nosetests` package is recommended (`pip install nose`).\nThe test suite will automatically detect your back-end when running the tests.\nRunning tests can be done (**on UNIX**) by running:\n\n```\nbash run_all_tests_unix.sh\n```\n\nOn Windows you can run `run_all_tests_windows.bat` from the Command Prompt (`cmd.exe`).\nRunning code coverage requires the `coverage` package (`pip install coverage`).\nA coverage report can be generated by running:\n\n```\npython create_test_coverage_report.py\n```\n\n### Getting started\nIPv8 can be used as a library or as a service. It is easiest to start off with the service, which has been provided [here](https://github.com/Tribler/py-ipv8/blob/master/ipv8_service.py) (see the [configuration file](https://github.com/Tribler/py-ipv8/blob/master/ipv8/configuration.py) for invocation options).\nThis file will load the IPv8 stack for *signed messaging*, *anonymous messaging*, *attribute attestation*, *public service discovery*, *peer discovery* and *peer keep-alive*.\nYou can start creating your first network overlay by following [the overlay creation tutorial](https://github.com/Tribler/py-ipv8/blob/master/doc/basics/overlay_tutorial.md).\n\nAdditional documentation is also available for the [TrustChain](https://github.com/Tribler/py-ipv8/blob/master/doc/further-reading/trustchain.md) and [anonymous overlay](https://github.com/Tribler/py-ipv8/blob/master/doc/further-reading/anonymization.md) provided in IPv8.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Tribler/py-ipv8", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyipv8", "package_url": "https://pypi.org/project/pyipv8/", "platform": "", "project_url": "https://pypi.org/project/pyipv8/", "project_urls": { "Homepage": "https://github.com/Tribler/py-ipv8" }, "release_url": "https://pypi.org/project/pyipv8/1.9.0/", "requires_dist": [ "cryptography", "libnacl", "netifaces", "Twisted", "pyOpenSSL", "six" ], "requires_python": "", "summary": "The Python implementation of the IPV8 library", "version": "1.9.0" }, "last_serial": 5983749, "releases": { "1.4": [ { "comment_text": "", "digests": { "md5": "b5d0e5532c4b1f1fe798666da819614f", "sha256": "5c2d5a9d986ebf9f6fa93b74a2538c6f0e4054e80e0c4732527eab295c2dc55f" }, "downloads": -1, "filename": "pyipv8-1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "b5d0e5532c4b1f1fe798666da819614f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 668362, "upload_time": "2019-01-08T10:43:59", "url": "https://files.pythonhosted.org/packages/ce/56/f292f79023f11234280469ead0e5eb37a7ddb1cd92fcd4ee5f305eda80a7/pyipv8-1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d6122e48ca1206ce9abeae515549feab", "sha256": "0b4949dc05ed8b75f61e43cdca2b7b2b2216e2b66d41f80f6ae4cdb28f6c45c4" }, "downloads": -1, "filename": "pyipv8-1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d6122e48ca1206ce9abeae515549feab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 668361, "upload_time": "2019-01-08T10:44:03", "url": "https://files.pythonhosted.org/packages/0a/0b/6afc35785f0f8342820cd1a4b5a4c6ee05dbb9c4e2bb87c06a261d1b2ba3/pyipv8-1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3283e8875a2a51bad7b8ce6071fc87e", "sha256": "8e374dc2601266d5b6e5f9c074c73e6d48899d20998fbc9dc1c40166be31b5c1" }, "downloads": -1, "filename": "pyipv8-1.4.tar.gz", "has_sig": false, "md5_digest": "a3283e8875a2a51bad7b8ce6071fc87e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 516966, "upload_time": "2019-01-08T10:44:05", "url": "https://files.pythonhosted.org/packages/bb/c6/f06ab051ff789fda28bd9c0dd9c3bd476c434779af0bd2da3f37a8e52a4b/pyipv8-1.4.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "dab2ca2b3a67b8935efc6e8bbfabc2b9", "sha256": "08ad2acc5b059f30d80c3ae4f5d7bc375365db663142b72f4120a838aeb9df32" }, "downloads": -1, "filename": "pyipv8-1.4.1-py2-none-any.whl", "has_sig": false, "md5_digest": "dab2ca2b3a67b8935efc6e8bbfabc2b9", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 670652, "upload_time": "2019-01-22T13:06:01", "url": "https://files.pythonhosted.org/packages/e1/93/19067111b97ba13990b0bd74ffcf9830cfdac6e46fb14264cf624fbc1bc0/pyipv8-1.4.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "255708f264719437dbc1bc615d75adea", "sha256": "66e0a7401a3a8582ae0cd87a724fcca25d2f4f8b5e33813a483d6c83b6526c4e" }, "downloads": -1, "filename": "pyipv8-1.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "255708f264719437dbc1bc615d75adea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 670651, "upload_time": "2019-01-22T13:06:03", "url": "https://files.pythonhosted.org/packages/16/42/d56326f7ee10770b5f58cc4d3964f999ea74a710d2c8a01981d72e2972d9/pyipv8-1.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "effae5c4627d8490391bfa50094f7280", "sha256": "cfbffea3377c59081d916b835f8e80aa9833eeb55d2a4c7cae9c1f539b1be8eb" }, "downloads": -1, "filename": "pyipv8-1.4.1.tar.gz", "has_sig": false, "md5_digest": "effae5c4627d8490391bfa50094f7280", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 519104, "upload_time": "2019-01-22T13:06:05", "url": "https://files.pythonhosted.org/packages/03/ba/f8374d8ca8bf55953f418218d18fe10ebe7680a45543c6b2c58f232e476b/pyipv8-1.4.1.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "a1fdd8e3ca2cb250deb7d5f200b22157", "sha256": "444890dd5e8fece1109c454c7b0c2e90dcafdea8a9e5853715d0f1ce8e93305d" }, "downloads": -1, "filename": "pyipv8-1.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a1fdd8e3ca2cb250deb7d5f200b22157", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 670824, "upload_time": "2019-01-29T16:19:28", "url": "https://files.pythonhosted.org/packages/d4/ca/9480763f222bc20e9d9e6c39b7b6b50bb838d9f1171424f56467d1c85561/pyipv8-1.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "26dee50a6a82280f9538c8407c9234bf", "sha256": "357538e4ae01b4847f2db95b28de6e27b46f097c16524737ba225e47936acbd6" }, "downloads": -1, "filename": "pyipv8-1.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "26dee50a6a82280f9538c8407c9234bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 670823, "upload_time": "2019-01-29T16:19:30", "url": "https://files.pythonhosted.org/packages/66/dd/f18c4620d1b5a1665cea832ee834fc8dc16288ecc1f19dd122729a0fc2d2/pyipv8-1.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35e5506e6d6f8d5f1c4a48f20c2e634a", "sha256": "7cf329f60308a8f9b2c09766b823d787adde8ffdaa90fe961db800f94e52b92e" }, "downloads": -1, "filename": "pyipv8-1.5.0.tar.gz", "has_sig": false, "md5_digest": "35e5506e6d6f8d5f1c4a48f20c2e634a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 519262, "upload_time": "2019-01-29T16:19:32", "url": "https://files.pythonhosted.org/packages/6d/68/fefbd903b83a8323cbfffcc6359563026f5952839d6dd0a3acc08abe23f2/pyipv8-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "17530ff5a5e47d9de86a1f4865e9f5e2", "sha256": "2749cf5b28494c11080d8bd27b865322af7b85a10dde01cd41202991ee8f2dfd" }, "downloads": -1, "filename": "pyipv8-1.6.0-py2-none-any.whl", "has_sig": false, "md5_digest": "17530ff5a5e47d9de86a1f4865e9f5e2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 626770, "upload_time": "2019-02-15T13:44:23", "url": "https://files.pythonhosted.org/packages/80/ba/5851df0c946a26ff43d41014990fb620c65f5ddc1637bf86f99c22945869/pyipv8-1.6.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5bb0260b9d7cfd79c723bf4a806255e5", "sha256": "30c782955ae6774f4b0aaaf1642b89002ca05ee10d10458cf82e12984f004056" }, "downloads": -1, "filename": "pyipv8-1.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5bb0260b9d7cfd79c723bf4a806255e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 626769, "upload_time": "2019-02-15T13:44:25", "url": "https://files.pythonhosted.org/packages/bf/5d/dc5e9a0480864c8fd17401a14e7a53c8e5b75b41b8e17877f52eac1743c0/pyipv8-1.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7003bd2c057951c21678b7a910c29804", "sha256": "539eef866df0917be657245ca8f2df514f6631a29a532056edc14313d9ba26e9" }, "downloads": -1, "filename": "pyipv8-1.6.0.tar.gz", "has_sig": false, "md5_digest": "7003bd2c057951c21678b7a910c29804", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 462763, "upload_time": "2019-02-15T13:44:27", "url": "https://files.pythonhosted.org/packages/df/e5/58315c371e113210b767f8a2e3965b089065d47658a816508378540d42e4/pyipv8-1.6.0.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "8b71326734d412995d6d5bae06f1f031", "sha256": "d558fe2d30edd45741d1ab205ff2d8c74cf2798ffc2793ae968086920dcbe483" }, "downloads": -1, "filename": "pyipv8-1.7.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8b71326734d412995d6d5bae06f1f031", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 627368, "upload_time": "2019-04-13T07:38:09", "url": "https://files.pythonhosted.org/packages/3b/5c/51ece27eb276d1a346fb7b3ec265a7e66ff349ecce1360aca0cdbe2aa3c5/pyipv8-1.7.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56cd458997001ddcaa83d324c156453c", "sha256": "2170be8939f3be5bb030d792eabf8a07aac5a6055e002ae40440949c94de595b" }, "downloads": -1, "filename": "pyipv8-1.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "56cd458997001ddcaa83d324c156453c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 627370, "upload_time": "2019-04-13T07:38:12", "url": "https://files.pythonhosted.org/packages/2a/c0/371aa14afcda9cd8391ea677d107a2b88b2867138e26e0bc34ba467619bc/pyipv8-1.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc845a1e78237a6237fc8ab0d72a75f3", "sha256": "cbda8bc98d6490afcd12ca02043daae9ec13633327e61d7311083561fe47178f" }, "downloads": -1, "filename": "pyipv8-1.7.0.tar.gz", "has_sig": false, "md5_digest": "fc845a1e78237a6237fc8ab0d72a75f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 463220, "upload_time": "2019-04-13T07:38:14", "url": "https://files.pythonhosted.org/packages/a7/5d/26f412f5cd05180649b3d932fddb4c3f3e598107b96b7e199c80cb4d0dfb/pyipv8-1.7.0.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "85dab09ba5c9bb82fefe6bec1d29626d", "sha256": "dcff2cb45406d4ecd9a4a45972dff694bb008a9588a1d873bbf533bc6e7545e6" }, "downloads": -1, "filename": "pyipv8-1.8.0-py2-none-any.whl", "has_sig": false, "md5_digest": "85dab09ba5c9bb82fefe6bec1d29626d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 286183, "upload_time": "2019-06-24T09:27:26", "url": "https://files.pythonhosted.org/packages/78/fc/b80d4e6595f2c896434be0a4956b81e6b44a38749fa31cbf04c8821382f8/pyipv8-1.8.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c76da56a2e860ce3df483e43b2431446", "sha256": "3e6662c3f9aafefa734130840747c99138dcde45e0b291bead6590fa9075601e" }, "downloads": -1, "filename": "pyipv8-1.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c76da56a2e860ce3df483e43b2431446", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 286243, "upload_time": "2019-06-24T09:27:28", "url": "https://files.pythonhosted.org/packages/92/49/28d185b8b9596b809eb2cb09e175774d0473367f09e0d6a17b0cd734daf2/pyipv8-1.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f97d9755092804dcf057cd911692e651", "sha256": "4f73e8b2be68ec53355f9664abdb0c8f1166d2b585a5aa8d3d9867df3ebf7174" }, "downloads": -1, "filename": "pyipv8-1.8.0.tar.gz", "has_sig": false, "md5_digest": "f97d9755092804dcf057cd911692e651", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 216233, "upload_time": "2019-06-24T09:27:30", "url": "https://files.pythonhosted.org/packages/2b/51/402cc8407f6086207421c227fa441faa1e08089a0c5f3e91475283fcb872/pyipv8-1.8.0.tar.gz" } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "bd51e2637879ae361c9b4953f2f121ca", "sha256": "1c7783d26740f2b1f715670532523dad5114bb8e1f6399e10f1c7f220bdbc604" }, "downloads": -1, "filename": "pyipv8-1.9.0-py2-none-any.whl", "has_sig": false, "md5_digest": "bd51e2637879ae361c9b4953f2f121ca", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 330586, "upload_time": "2019-10-16T14:29:32", "url": "https://files.pythonhosted.org/packages/4f/d3/7825ad79dbf337370a71d737cc83c575b04770afff1b6cb23550409fb31d/pyipv8-1.9.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c41e61203da011639e89e4d6a4724ea", "sha256": "6b4317cb2c9a244f3272205e283b8c78272287fe8d091cb2b5961860956404e2" }, "downloads": -1, "filename": "pyipv8-1.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3c41e61203da011639e89e4d6a4724ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 330665, "upload_time": "2019-10-16T14:29:35", "url": "https://files.pythonhosted.org/packages/09/2e/c05e666996bab88afd4cc29f4900db7b67156c1f7363b7ec026f10ba2492/pyipv8-1.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c89f321014904b57736b327691abc86", "sha256": "85426a63b588898acd8f49f5d78a6aa3cb79e62cc9b294bee36fdb744987cd81" }, "downloads": -1, "filename": "pyipv8-1.9.0.tar.gz", "has_sig": false, "md5_digest": "9c89f321014904b57736b327691abc86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 250231, "upload_time": "2019-10-16T14:29:38", "url": "https://files.pythonhosted.org/packages/ac/0b/61a8def0bd271908ca6a0dde305bda38d64f2e41b05ba90639b236f2eed8/pyipv8-1.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bd51e2637879ae361c9b4953f2f121ca", "sha256": "1c7783d26740f2b1f715670532523dad5114bb8e1f6399e10f1c7f220bdbc604" }, "downloads": -1, "filename": "pyipv8-1.9.0-py2-none-any.whl", "has_sig": false, "md5_digest": "bd51e2637879ae361c9b4953f2f121ca", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 330586, "upload_time": "2019-10-16T14:29:32", "url": "https://files.pythonhosted.org/packages/4f/d3/7825ad79dbf337370a71d737cc83c575b04770afff1b6cb23550409fb31d/pyipv8-1.9.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c41e61203da011639e89e4d6a4724ea", "sha256": "6b4317cb2c9a244f3272205e283b8c78272287fe8d091cb2b5961860956404e2" }, "downloads": -1, "filename": "pyipv8-1.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3c41e61203da011639e89e4d6a4724ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 330665, "upload_time": "2019-10-16T14:29:35", "url": "https://files.pythonhosted.org/packages/09/2e/c05e666996bab88afd4cc29f4900db7b67156c1f7363b7ec026f10ba2492/pyipv8-1.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c89f321014904b57736b327691abc86", "sha256": "85426a63b588898acd8f49f5d78a6aa3cb79e62cc9b294bee36fdb744987cd81" }, "downloads": -1, "filename": "pyipv8-1.9.0.tar.gz", "has_sig": false, "md5_digest": "9c89f321014904b57736b327691abc86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 250231, "upload_time": "2019-10-16T14:29:38", "url": "https://files.pythonhosted.org/packages/ac/0b/61a8def0bd271908ca6a0dde305bda38d64f2e41b05ba90639b236f2eed8/pyipv8-1.9.0.tar.gz" } ] }