0.0.1 • Published 4 years ago

biton v0.0.1

Weekly downloads
-
License
BSD-3-Clause
Repository
-
Last release
4 years ago

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.

A demo of the Web interface is live at https://demo.bitonproject.org.

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

Integrate biton into your Node.js project

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

NamePurpose
DEBUGEnables/disables specific debugging namespaces (e.g. biton*)
NETMAGICJoin independent biton networks (e.g. test)
SWARMSEEDJoin a biton community (e.g. orbit#biton)
PORTThe Web interface listening port (default 5000)
HOSTThe Web interface host address (default 127.0.0.1)
NODE_ENV=productionServe requests from others (bind host to 0.0.0.0)

Accessing the local Web interface

You can run biton client in the test demo network visiting http://localhost:5000. Each tab is an independent biton client, so you can simulate a swarm of peers by opening multiple tabs.

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