The biton overlay network
Bypassing information controls with biton
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.
lib/biton-ext.jsthe biton extension
biton-hybrid.jsbiton hybrid client integrating the biton extension
bin/biton-hybrid-app.jscommand line and Web interface for the biton hybrid client
bin/views/entangled.jsentangled Web demo
This proof of concept implementation is under development and must not be used besides for simulations.
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 firstname.lastname@example.org: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
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
DEBUG=biton* NETMAGIC=test npm start
The Web interface is listening at http://localhost:5000.
clients are extending
webtorrent-hybrid and can connect to both TCP/uTP and
||Join a biton swarm (e.g.
||Join demo biton networks (e.g.
||Enables/disables specific debugging namespaces (e.g.
||The Web interface listening port (default
||The Web interface host address (default 127.0.0.1)|
||Serve requests from others (bind host to
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
Running in Docker
Build the Docker image and start a container with the name
docker-compose up --build
The respective files are:
Dockerfilean image for the biton hybrid client
docker-compose.ymla provisioning script for the above image