Assorted Notes on Bittorrent.
BEP 0 / Index
BEP 0 is an index of all other BEPs.
BEP 4 / Reserved References
BEP 4 is a quick-reference of all reserved bits / message IDs.
BEP 52 / Protocol V2
BEP 52 / BitTorrent v2 does some cool stuff with Merkle Trees
BEP55 / NAT Traversal
My VPN of Choice, Mullvad, recently disabled port-forwarding. Therefore, to accept incoming connections, we need to figure out UDP hole-punching.
BEP55 is NAT hole-punch via STUN.
Aka, if both peers connect to a coordinator, and the coordinator says so, they start throwing udp at each other until the nat layers let things through :)
Cubit
The full paper: Approximate Matching for Peer-to-Peer Overlays with Cubit
An easier to digest version: Cubit Approach
The strategy here makes a lot of sense, but the “embedding space” is over single keywords, and the distance function is edit-distance. This is fine for single-word searches, but I’d love if it went into detail on multi-keyword search - I suppose you could search for all keywords, and then see what results overlap between searches? But that seems inefficient.
This should probably split into its own note: I am perfectly content with a crawl-style system; where nodes present what they have and indexers do the job of crawling.