# The biton overlay network

travis (opens new window) javascript style guide (opens new window)

# Bypassing information controls with biton

https://bitonproject.org (opens new window)

biton is a decentralized network for bypassing online censorship and surveillance. It works by relaying requests through other biton users in order to provide anonymous routing and file sharing. Moreover, it can be deployed over mesh topologies and community networks, and in that way function during Internet shutdowns. biton aims to defend against various tactics used by modern censors, such as protocol fingerprinting, traffic analysis, and bridge enumeration.

# Project structure

This monorepo hosts the implementation of biton as an extension to WebTorrent (opens new window), divided into the following modules:

# Disclaimer

This proof of concept implementation is under development and must not be used besides for simulations.

# Install

# Setup the development environment

Install node.js and npm through the package manager of your operating system (instructions here (opens new window)). Then,

# Clone git repository
git clone git@github.com:bitonproject/biton
cd biton

# Install node modules
npm install

# Compile browser client resources


npm run-script build

This will compile views/index.js and its dependencies into bin/public/bundle.js.

# biton command (optional)

npm link

# Now you can start a biton hybrid client by executing
biton

This has to be executed once and will keep track of your local modifications (creates a symlink for node bin/biton-hybrid-app.js).

# Usage

# Running biton-hybrid-app

DEBUG=biton* INFOHASHPREFIX=test node bin/biton-hybrid-app.js

The Web interface is listening at http://localhost:5000 (opens new window).

# Environment variables

Name Purpose
INFOHASHPREFIX Join demo biton networks.
HOST The Web interface host address.
PORT The Web interface listening port.
DEBUG Enables/disables specific debugging namespaces.

# Running biton-browser

You can spawn a biton browser client in the network with the infoHash prefix test by visiting http://localhost:5000/biton-browser (opens new window). Each tab is an independent biton client, so you can open multiple tabs for simulating a swarm of peers.

If you are visiting a local biton-hybrid-app with Firefox, make sure that you are not blocking all third-party cookies (custom enhanced tracking protection), as this prevents connections to BitTorrent trackers. You can whitelist localhost via the shield in the URL address bar (instructions here (opens new window)).

# Running in Docker

Build the Docker image and start a container with the name biton-hybrid-client by executing:

docker-compose up --build

The respective files are:

# License

BSD 3-Clause

Last Updated: 6/11/2020, 12:10:42 AM