diff options
author | Anton Luka Šijanec <anton@sijanec.eu> | 2023-01-10 23:49:18 +0100 |
---|---|---|
committer | Anton Luka Šijanec <anton@sijanec.eu> | 2023-01-10 23:49:18 +0100 |
commit | 6be4125be5c6883504836a7fbc151730bdc38280 (patch) | |
tree | 394dec26f4f6d2df4d296a485b8584c9cc39fcfc /README.md | |
parent | metadl works, but wastes bandwidth (diff) | |
download | travnik-6be4125be5c6883504836a7fbc151730bdc38280.tar travnik-6be4125be5c6883504836a7fbc151730bdc38280.tar.gz travnik-6be4125be5c6883504836a7fbc151730bdc38280.tar.bz2 travnik-6be4125be5c6883504836a7fbc151730bdc38280.tar.lz travnik-6be4125be5c6883504836a7fbc151730bdc38280.tar.xz travnik-6be4125be5c6883504836a7fbc151730bdc38280.tar.zst travnik-6be4125be5c6883504836a7fbc151730bdc38280.zip |
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` |