Private Decentralized Communication Network
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Kevin Froman 07d9207808 Fix regression when opening homepage 5 hours ago
.github Create stale.yml 11 months ago
.vscode added sneakernet auto importing 9 months ago
docs added security mechanisms doc 10 hours ago
install move centos install 4 days ago
scripts * revert pow to 5 3 weeks ago
src Fix regression when opening homepage 5 hours ago
static-data remove chat web files 2 weeks ago
tests update runtime-result 16 hours ago
.dockerignore Removed Windows specific code 5 months ago
.env don't use hard coded python version number in .env file 1 day ago
.gitignore add all venvs to gitignore and update changelog 3 weeks ago
.gitlab-ci.yml added helium test deps to ci 10 months ago
.onionr.yml Rename AUR package to onionr-git 1 year ago
AUTHORS.MD * started endpoint for non-app specific control of direct connections 1 year ago
CHANGELOG.md add all venvs to gitignore and update changelog 3 weeks ago
CODE_OF_CONDUCT.md refactored onionr commands and other small adjustments 1 year ago
CONTRIBUTING.md fixed some bugs 1 year ago
Dockerfile Docker improvements 1 month ago
ISSUE_TEMPLATE.md Use list for version infos in issue template 1 day ago
LICENSE.txt Update LICENSE.txt 1 year ago
Makefile moved to niceware from mnemonic 1 year ago
README.md improved readme layout 10 hours ago
SECURITY.md moved tests to parent directory 1 year ago
git-update.sh bug fixes in block creation and directory security 1 month ago
make-release.sh added site lister 11 months ago
onionr.sh Added custom port and bind address args 1 month ago
requirements-ARM.txt Added a new ARM64 (Raspberry Pi's for example) patch allowing for proper support now. 13 hours ago
requirements-dev.in Bump pip-tools from 5.3.1 to 5.4.0 1 month ago
requirements-dev.txt Bump pip-tools from 5.3.1 to 5.4.0 1 month ago
requirements-notifications.in added sound notification support and forward secery setting finished 11 months ago
requirements-notifications.txt boards now load async 1 year ago
requirements.in bump deps 3 weeks ago
requirements.txt bump deps 3 weeks ago
run-onionr-node.py Added custom port and bind address args 1 month ago
run_tests.sh finishd tests for multicast lan service discovery 10 months ago
sandboxed-onionr.py + added sandbox script 2 months ago
setprofile.sh Merge Tempblocks 2 years ago
start-daemon.sh added restart command 1 year ago
start-many-nodes.py added script to start many nodes 9 months ago
start-ram.sh improve start ram script to use quotes 9 months ago

README.md

Privacy Respecting Communication Network 📡

Anonymous social platform, mail, file sharing.

- Discord - Matrix: #onionr:amorgan.xyz

Install Features Screenshots
Docs/web copy Get involved Onionr.net/.onion

The main repository for this software is at https://git.VoidNet.tech/kev/onionr/

Mirrors: Github, Gitlab

Onionr ("Onion Relay") is a decentralized/distributed peer-to-peer communication network, designed to be anonymous and resistant to (meta)data analysis, spam, and corruption.

Onionr stores data in independent packages referred to as 'blocks'. The blocks are distributed to all interested nodes. Blocks and user IDs cannot be easily proven to have been created by a particular user. Even if there is enough evidence to believe that a specific user created a block, nodes still operate behind Tor and as such cannot be trivially unmasked. Anonymity is achieved by a stateless network, with no given indication of what node a block originates from. In fact, since one is not required to participate in routing or storage to insert a message, blocks often do not originate from any identifiable node.

Through message mixing and key privacy, it is intended to be nigh impossible to discover the identity of a message creator or recipient. Via long-term traffic analysis, a well funded adversary may discover the most probable node(s) to be creating a set of related blocks, however doing so would only lead them to a node behind Tor. As the first node that a block appears on is almost always not the creator of the block, there is plausible deniability regarding the true creator of the block.

Onionr gives the individual the ability to speak freely, without fear of surveillance and censorship.

Users are identified by ed25519/curve25519 public keys, which can be used to sign blocks or send encrypted data.

Onionr can be used for mail, as a social network, instant messenger, file sharing software, or for encrypted group discussion.

Due to the nature of anonymity, the graph as implemented in this reference network is dense, undirected, cyclic and can be disconnected. As a result, current scalability is poor but sufficient for high latency communications. As the need arises isolated stream solutions may be implemented (in a manner similar to described in the Bitmessage whitepaper). Since Onionr is technically just a data format, any routing scheme can be used to pass messages.

The whitepaper is available here.

Main Features

Onionr ships with various application plugins ready for use out of the box:

Currently usable:

  • Mail
  • Public anonymous chat/message board
  • Simple webpage hosting - Will be greatly extended
  • File sharing (Work in progress)

Not yet usable:

  • Instant messaging

Screenshots

Node statistics page screenshot

Home screen

Friend/contact manager screenshot

Friend/contact manager

Encrypted, metadata-masking mail application screenshot

Encrypted, metadata-masking mail application. One of the first distributed mail systems to have basic forward secrecy.

Documentation

More docs coming soon.

Install and Run on Linux

The following applies to Ubuntu Bionic. Other distributions may have different package or command names.

Master may be unstable, you should use the latest release tag. (checkout via git: $ git checkout release-latest)

$ sudo apt install python3-pip python3-dev tor

  • Have python3.7+, python3-pip, Tor (daemon, not browser) installed. python3-dev is recommended.
  • You may need build-essentials or the equivalent of your platform
  • Clone the git repo: $ git clone https://gitlab.com/beardog/onionr --tags
  • cd into install direction: $ cd onionr/
  • Install the Python dependencies (virtualenv strongly recommended): $ pip3 install --require-hashes -r requirements.txt (on ARM64 devices like Raspberry Pi 4's use requirements-ARM.txt instead.)
  • (Optional): Install desktop notification dependencies: $ pip3 install --require-hashes -r requirements-notifications.txt

(--require-hashes is intended to prevent exploitation via compromise of PyPi/CA certificates)

Run Onionr

  • Run Onionr normally: $ ./onionr.sh start
  • Run Onionr in background as daemon: $ ./start-daemon.sh
  • Open Onionr web interface $ ./onionr.sh openhome
  • Gracefully stop Onionr from CLI $ ./onionr.sh stop

Contact/Community

  • Email: beardog [ at ] mailbox.org
  • Twitter: @onionrnet
  • Onionr Mail: decentralized-fiery-freehearted-skimmer-yodling-topstitch-divorceable-ojibwa-resettlement-infracted-lessor-noninstinctual-leaseholder-counterpoised-couture-skinful
  • Matrix: #onionr:amorgan.xyz
  • Discord: https://discord.gg/DVF2bEAzrt (Discord is bad for freedom and privacy, this is only provided for convienience)

Help out

Everyone is welcome to contribute. Help is wanted for the following:

  • Development (Get in touch first)
    • Creation of a shared lib for use from other languages and faster proof-of-work
    • Android and IOS development
    • Mac support (already partially supported, testers needed)
    • Bug fixes and development of new features
  • Testing
  • Translations/localizations
  • UI/UX design
  • Running stable nodes
  • Security review/audit
  • I2P support

Watch the talk from BSidesPDX 2019

improving anonymous networking talk link

Contribute money:

Donating at least $3 gets you cool Onionr stickers. Get in touch if you want them.

sticker

  • Bitcoin: 1onion55FXzm6h8KQw3zFw2igpHcV7LPq (Contact us for a unique address or for other coins)

  • Monero: 4B5BA24d1P3R5aWEpkGY5TP7buJJcn2aSGBVRQCHhpiahxeB4aWsu15XwmuTjC6VF62NApZeJGTS248RMVECP8aW73Uj2ax

  • USD (Card/Paypal): Ko-Fi

  • Indiegogo

Note: probably not tax deductible

Security

Onionr is alpha software. This means it is unstable, probably insecure, and experimental.

No matter how good Onionr and other software gets, there will always be ways for clever or well-funded adversaries to break your security.

Onionr does not protect your identity if you associate your user ID with your name either on Onionr or elsewhere.

Do not rely on Onionr or any other software to hold up if your life or liberty are at stake.

Licenses and Branding

Onionr is published under the GNU GPL v3 license, except for the logo.

The Tor Project and I2P developers do not own, create, or endorse this project, and are not otherwise involved.

Tor is a trademark for the Tor Project. We do not own it.

The Onionr logo was created by Anhar Ismail under the Creative Commons Attribution 4.0 International License.

If you modify and redistribute our code ("forking"), please use a different logo and project name to avoid confusion. Please do not use the project name or logo in a way that makes it seem like we endorse you without our permission.