Giter Club home page Giter Club logo

tribler's Introduction

Tribler Build Status

Towards making Bittorrent anonymous and impossible to shut down.

We use our own dedicated Tor-like network for anonymous torrent downloading. We implemented and enhanced the Tor protocol specifications plus merged them with Bittorrent streaming. More info: https://github.com/Tribler/tribler/wiki Tribler includes our own Tor-like onion routing network with hidden services based seeding and end-to-end encryption, detailed specs: https://github.com/Tribler/tribler/wiki/Anonymous-Downloading-and-Streaming-specifications

The aim of Tribler is giving anonymous access to online (streaming) videos. We are trying to make privacy, strong cryptography and authentication the Internet norm.

Tribler currently offers a Youtube-style service. For instance, Bittorrent-compatible streaming, fast search, thumbnail previews and comments. For the past 9 years we have been building a very robust Peer-to-Peer system. Today Tribler is robust: "the only way to take Tribler down is to take The Internet down" (but a single software bug could end everything).

We make use of submodules, so remember using the --recursive argument when cloning this repo.

Obtaining the latest release of Tribler

Just click here and download the latest package for your OS.

Obtaining support

If you have issues, please [open an issue] (https://github.com/Tribler/tribler/issues/new) and we will have a look at it ASAP.

Getting your development environment up and running

Runtime dependencies

Debian/Ubuntu/Mint

sudo apt-get install libav-tools libjs-excanvas libjs-mootools libsodium13 libx11-6 python-apsw python-cherrypy3 python-crypto python-cryptography python-feedparser python-gmpy python-leveldb python-libtorrent python-m2crypto python-netifaces python-pil python-pyasn1 python-requests python-twisted python-wxgtk2.8 python2.7 vlc python-pip
pip install decorator
Installing libsodium13 and python-cryptography on Ubuntu 14.04

While installing libsodium13 and python-cryptography on a clean Ubuntu 14.04 install (possibly other versions as well), the situation can occur where the Ubuntu terminal throws the following error when trying to install the dependencies mentioned earlier in the README.md:

E: Unable to locate package libsodium13
E: Unable to locate package python-cryptography

This means that the required packages are not directly in the available package list of Ubuntu 14.04.

To install the packages, the required files have to be downloaded from their respecive websites.

For libsodium13, download libsodium13_1.0.1-1_<ProcessorType>.deb from http://packages.ubuntu.com/vivid/libsodium13

For python-cryptography, download python-cryptography_0.5.2-1_<ProcessorType>.deb from http://packages.ubuntu.com/utopic/python-cryptography

Installing the files

Through terminal

After downloading files go to the download folder and install the files through terminal:

For amd64:

cd ./Downloads
dpkg -i libsodium13_1.0.1-1_amd64.deb
dpkg -i python-cryptography_0.5.2-1_amd64.deb

For i386:

cd ./Downloads
dpkg -i libsodium13_1.0.1-1_i386.deb
dpkg -i python-cryptography_0.5.2-1_i386.deb

Through file navigator:

Using the file navigator to go to the download folder and by clicking on the .deb files to have the software installer install the packages.

Now installing the list of dependencies should no longer throw an error.

Windows and OSX

Tribler runs on Windows and OSX, but development is only supported on Linux.

Running Tribler from this repository

Unix

First clone the repository:

git clone --recursive  [email protected]:Tribler/tribler.git

or, if you haven't added your ssh key to your github account:

git clone --recursive  https://github.com/Tribler/tribler.git

Done! Now you can run tribler by executing the tribler.sh script on the root of the repository:

cd tribler
./tribler.sh

Windows

Tribler runs on Windows and OSX, but development is only supported on Linux.

Packaging Tribler

Debian and derivatives

sudo apt-get install devscripts
cd tribler
Tribler/Main/Build/update_version_from_git.py
debuild -i -us -uc -b

OSX

cd tribler
mkdir vlc
# Copy the ffmpeg binary from its build directory
cp $HOME/Workspace/install/ffmpeg-2.2.4 vlc/ffmpeg
Tribler/Main/Build/update_version_from_git.py
./mac/makedistmac.sh

TODO: Add detailed build dependencies.

Windows

setlocal enabledelayedexpansion
call "c:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.Cmd" /Release /x86
SET PATH=%PATH%;c:\windows\system32;c:\Program Files\Microsoft Visual Studio 9.0\VC\bin
cd tribler
python Tribler/Main/Build/update_version_from_git.py
xcopy c:\build\vlc vlc /E /I
win\makedist.bat

TODO: Add detailed build dependencies.

Other Unixes

We don't have a generic setup.py yet.

So for the time being, the easiest way to package Tribler is to put Tribler/ in /usr/share/tribler/ and debian/bin/tribler in /usr/bin/

A good reference for the dependency list is debian/control

Submodule notes

  • As updated submodules are in detached head state, remember to check out a branch before commiting changes on them.
  • If you forgot to check out a branch before doing a commit, you should get a warning telling you about it. To get the commit to a branch just check out the branch and do a git cherry-pick of the commit.
  • Take care of not accidentally commiting a submodule revision change with git commit -a
  • Do not commit a submodule update without running all the tests first and making sure the new code is not breaking Tribler.

tribler's People

Contributors

badrock avatar boudewijn-tribler avatar cheecheeo avatar chrisarena avatar darnould avatar devos50 avatar devristo avatar edwinhollen avatar egbertbouman avatar geranon4113 avatar gjedeer avatar grandpaul avatar jeffgoderie avatar lipufei avatar locutusofborg avatar louisvh avatar mathewvermeer avatar mparramont avatar nielszeilemaker avatar pathemeous avatar patrickjs avatar petervb avatar rjruigrok avatar rsplak avatar runningdroid avatar snorberhuis avatar synctext avatar wedge-jarrad avatar whirm avatar wtud avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

tribler's Issues

Implement logger

  • Make the logger work
  • Replace current print statements
  • Strategize loggers.

Switch distribution method

Currently FullSyncDistribution is used, this is sufficient for debugging purposes, but for production should be switched.

Verify numerical examples of messages using cmdline

numerical example of signature for thesis, manual validation of encryption code; cmd line tools:
echo "JyO7wNzc8xht47QKWohfDVj6Sc2qH+X5tBCT+uetocIJcjQnp/2f1ViEBR+ty0Cz" | openssl aes-128-cbc -K $(printf wearetpb | sha256sum | head -c 32 | tr '[:lower:]' '[:upper:]') -nosalt -nopad -iv 0 -base64 -d -p

Implement payload

Implement payload:

  • sequence number
  • up MiB
  • down MiB
  • Total up MiB
  • Total down MiB
  • public key requester
    .....

Create unique genesis id

The genesis id should be unique for every node. This will allow the graphdrawer to define a single endpoint for every chain and has probably additional benefits and no real drawback.

Improve comments

Particularly abstract, high level comments should be improved.

Node Identifier

Response and request needs a node identifier. This way it can be determined from whom requests are and who responded. Finally a chain can be constructed.

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.