From 9f4024104abed48ce1b64a42b8ece271d643380b Mon Sep 17 00:00:00 2001 From: Kevin Froman Date: Tue, 14 Aug 2018 00:02:34 -0500 Subject: [PATCH] work on peer blacklisting/profiling\nupdated readme --- onionr/onionrblacklist.py | 17 ++++++++++++++--- onionr/onionrutils.py | 3 ++- readme.md | 34 +++++++++++++++++++++------------- 3 files changed, 37 insertions(+), 17 deletions(-) diff --git a/onionr/onionrblacklist.py b/onionr/onionrblacklist.py index 056aafb6..9affb377 100644 --- a/onionr/onionrblacklist.py +++ b/onionr/onionrblacklist.py @@ -52,7 +52,9 @@ class OnionrBlackList: def generateDB(self): self._dbExecute('''CREATE TABLE blacklist( hash text primary key not null, - type text + dataType text, + blacklistDate int, + expire int ); ''') return @@ -67,11 +69,20 @@ class OnionrBlackList: myList.append(i[0]) return myList - def addToDB(self, data): + def addToDB(self, data, dataType=0, expire=0): '''Add to the blacklist. Intended to be block hash, block data, peers, or transport addresses''' # we hash the data so we can remove data entirely from our node's disk hashed = self._core._utils.bytesToStr(self._core._crypto.sha3Hash(data)) if not hashed.isalnum(): raise Exception("Hashed data is not alpha numeric") + try: + int(dataType) + except ValueError: + raise Exception("dataType is not int") + try: + int(expire) + except ValueError: + raise Exception("expire is not int") + #TODO check for length sanity insert = (hashed,) - self._dbExecute("insert into blacklist (hash) VALUES('%s');" % (hashed,)) + self._dbExecute("insert into blacklist (hash, dataType, expire) VALUES('%s', %s, %s);" % (hashed, dataType, expire)) diff --git a/onionr/onionrutils.py b/onionr/onionrutils.py index e25e692c..1f2111a6 100644 --- a/onionr/onionrutils.py +++ b/onionr/onionrutils.py @@ -126,7 +126,8 @@ class OnionrUtils: retVal = False if newAdderList != False: for adder in newAdderList.split(','): - if not adder in self._core.listAdders(randomOrder = False) and adder.strip() != self.getMyAddress(): + adder = adder.strip() + if not adder in self._core.listAdders(randomOrder = False) and adder != self.getMyAddress() and not self._core._blacklist.inBlacklist(adder): if self._core.addAddress(adder): logger.info('Added %s to db.' % adder, timestamp = True) retVal = True diff --git a/readme.md b/readme.md index 926d3276..7486bcac 100644 --- a/readme.md +++ b/readme.md @@ -5,29 +5,39 @@ Anonymous P2P platform, using Tor & I2P. -Major work in progress. +***Experimental, not safe or easy to use yet*** -***THIS SOFTWARE IS NOT USABLE OR SECURE YET.*** +
**The main repo for this software is at https://gitlab.com/beardog/Onionr/** -**Roadmap/features:** + +# Summary + +Onionr is a decentralized, peer-to-peer data storage network, designed to be anonymous and resistant to (meta)data analysis and spam. + +Onionr can be used for mail, as a social network, instant messenger, file sharing software, or for encrypted group discussion. + +# Roadmap/features Check the [Gitlab Project](https://gitlab.com/beardog/Onionr/milestones/1) to see progress towards the alpha release. +## Core internal features + * [X] Fully p2p/decentralized, no trackers or other single points of failure -* [X] High level of anonymity -* [ ] End to end encryption where applicable +* [X] End to end encryption of user data * [X] Optional non-encrypted blocks, useful for blog posts or public file sharing -* [ ] Easy API system for integration to websites +* [X] Easy API system for integration to websites +* [ ] Metadata analysis resistance (being improved) -# Development -This software is in heavy development. If for some reason you want to get involved, get in touch first. +## Other features -**Onionr API and functionality is subject to non-backwards compatible change during development** +**Onionr API and functionality is subject to non-backwards compatible change during pre-alpha development** -# Donate +## Help out + +Everyone is welcome to help out. Please get in touch first if you are making non-trivial changes. If you can't help with programming, you can write documentation or guides. Bitcoin/Bitcoin Cash: 1onion55FXzm6h8KQw3zFw2igpHcV7LPq @@ -35,6 +45,4 @@ Bitcoin/Bitcoin Cash: 1onion55FXzm6h8KQw3zFw2igpHcV7LPq The Tor Project, I2P developers, and anyone else do not own, create, or endorse this project, and are not otherwise involved. -The badges (besides travis-ci build) are by Maik Ellerbrock is licensed under a Creative Commons Attribution 4.0 International License. - -The onion in the Onionr logo is adapted from [this](https://commons.wikimedia.org/wiki/File:Red_Onion_on_White.JPG) image by Colin on Wikimedia under a Creative Commons Attribution-Share Alike 3.0 Unported license. The Onionr logo is under the same license. +The badges (besides travis-ci build) are by Maik Ellerbrock is licensed under a Creative Commons Attribution 4.0 International License. \ No newline at end of file