Giter VIP home page Giter VIP logo

py-ipv8's Introduction

Clone this respository recursively! git clone --recursive

Otherwise, you can fix it later with git submodule update --init

Linux: Windows:

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:

  • Cryptographically signed messaging
  • Tor-like anonymous messaging
  • Public service discovery
  • Hidden service discovery
  • TrustChain self-sovereign blockchain
  • Peer discovery using random walks and (sybil resistant) edge walks
  • Peer keep-alive mechanisms
  • Hidden attribute attestation

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:

pip install -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:

bash 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:

python2 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 play around with it to get to know IPv8 better.

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

py-ipv8's People

Contributors

devos50 avatar qstokkink avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.