geoah / biton

The biton overlay network

Home Page:https://bitonproject.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The biton overlay network

travis javascript style guide

Bypassing information controls with biton

https://bitonproject.org

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 repository hosts the implementation of biton0_BitTorrent as an extension to WebTorrent hybrid.

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). 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* NETMAGIC=test npm start

The Web interface is listening at http://localhost:5000. biton-hybrid clients are extending webtorrent-hybrid and can connect to both TCP/uTP and WebRTC nodes.

Environment variables

Name Purpose
SWARMSEED Join a biton swarm (e.g. orbit#biton)
NETMAGIC Join demo biton networks (e.g. test)
DEBUG Enables/disables specific debugging namespaces (e.g. biton*)
PORT The Web interface listening port (default 5000)
HOST The Web interface host address (default 127.0.0.1)
NODE_ENV=production Serve requests from others (bind host to 0.0.0.0)

Running biton on the browser

You can run biton client in the test demo network visiting http://localhost:5000. 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 temporarily whitelist localhost via the shield in the URL address bar (instructions here).

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

About

The biton overlay network

https://bitonproject.org

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:JavaScript 84.9%Language:HTML 7.7%Language:Dockerfile 2.9%Language:Shell 2.3%Language:CSS 2.2%