diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -1,11 +1,20 @@ # external libraries * https://github.com/kokke/tiny-AES-c +* libmd-dev for sha1.h and sha2.h # todo * use ppoll * implement BEP-0042 DHT security extension, requires crc32c library * metadata receiving from uTorrent does not work for some unknown reason -* uses A LOT of bandwidth, implement packet deduplication +* uses A LOT of bandwidth, implement packet deduplication (fixed?) + +# anti sybil measures: +* detecting sybil with buckets > 32 (done) +* disallowing IP addresses to be added into our own bucket that already exist in the routing table (done) + - currently only if IP address is the one that causes the split, this may be suboptimal +* TODO: accept every replied node into the routing table only after pinging it with a random ID, storing in t encrypted first MAXT-1 bytes of the id that it sent with packet that generated a replied(). upon receiving the reply, if the r/id and decrypted t don't match in MAXT-1 bytes, ignore the node (it's a sybil attacker). + - MAXT-1 instead of MAXT because MAXT sized ts are sent in get_peers queries + - only consider possible nodes when reading "nodes" and "nodes6" in responses when responses are verified with this strategy, I think this prevents massive data sendings because of poorly programmed sybil nodes and poorly programed travnik. # known non-posix * `MSG_DONTWAIT`, `SOCK_NONBLOCK`: replace with `fcntl` `O_NONBLOCK` |