Live data from Hacker News

Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search

bitmagnet.io

41–50 of 111 posts

Re: Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search

#41
post #36
post #32

Earlier quoted context omitted.

These things need uptime of hours and days to do it properly and also to stay up to date. There are millions of nodes and torrents and to be non-abusive you have to issue requests at a somewhat sedate pace. And activity kind of moves with the sun due to people who run torrent clients on their home machines. And there are lots of buggy or malicious implementations out there that you have to deal with. So you'd want to…

That's if you're imagining a single node to discover the whole DHT. What if you want to fire off a map-reduce of limited-run DHT explorations starting from different DHT ring positions, where each agent just crawls and emits what it finds on stdout as it finds it? (In a sense, I suppose this would still be a "daemon", but that daemon would be the map-reduce infrastructure.)

I don't quite understand what you're proposing here. Generally you only control and operate ~1 node per IPv4 address or per IPv6 /64.

All other nodes are operated by someone else, so they don't cooperate on anything beyond what the protocol specifies. Which means everyone is their own little silo. If you want a list of all currently active torrents (millions) then you have to do it with 1 or a handful of nodes, depending on how many IPs you have. DHTs are not arbitrary-distributed-compute frameworks, they're a quite restrictive get/put service.

BEP51[0] does let you query other nodes for a sample of their keys (infohashes) but what they can offer is limited by their vantage point of the network so you need to go around and ask all those millions of nodes. And since it's all random you can't really "search" for anything, you can only sample. And that just gives you 20-byte keys. Afterwards you need to do a lot of additional work to turn those into human-readable metadata.

[0] http://bittorrent.org/beps/bep_0051.html

Re: Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search

#43

Earlier quoted context omitted.

It works well in practice. The DHT protocol includes announce messages that broadcast when new files are shared on BitTorrent. It then includes a "geometric" way to find people who are sharing those files. It doesn't include the files themselves, just the torrents which include a file list and location hashes. If you listen to BitTorrent's DHT network, you'll build an index of everything shared on BitTorrent (over ti…

>It works well in practice. Hi, I worked on gnutella and lots of P2P systems in the early 00s. This will devolve into noise and spam as the number of users who adopt this feature pass a critical mass. With a fully decentralized system, there are no gatekeepers, and as such, there is no way to filter counterfiet items. While your client will present with you the data you are searching for, you will find out (usually h…

Once you've discovered a torrent being seeded, is there no way to interrogate the seeders and/or the DHT itself, to find out the oldest active seeder registration on that torrent hash; and then use the time-of-oldest-observed-registration to rank torrents that claim to be "the same thing" in their metadata, but which have different piece-trie-hash-root?

I ask, because a similar heuristic is used in crypto wallet software, visibility-weighting the various "versions" of a crypto token with the same metadata, by (in part) which were oldest-created. (The logic being: scam clones of a thing need to first observe the real thing, before they can clone it. So the real thing will always come first.)

Of course, I'm assuming here that you're searching for an "expected to exist" release of a thing by a specific distributor, where the distributor has a known-to-you structured naming scheme to the files in their releases, and so you'll only be trying to rank "versions" of the torrent that all have identical names under this naming scheme, save for e.g. the [hash] part of the file name being different to match the content. This won't help if you're trying to find e.g. "X song by Y artist, by any distributor."

Re: Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search

#44
post #25

It seems like every single of these things always cut corners and don't implement proper, spec-compliant nodes that provide the same services as they use. You know, the "peer" in p2p. BEP51 was designed to make it easier to not trample on the commons, and yet...

Author here. FWIW I wasn't intending this to make it onto HN, having posted about this on Lemmy looking for beta testers. The current version of the app is very much a preview. There's much further work to be done and this will include as far as possible ensuring Bitmagnet is a "good citizen". The suggestions made on the GH issue look largely feasible and I'll get round to looking at them as soon as I can.

The issue and my response on GH: https://github.com/bitmagnet-io/bitmagnet/issues/11

Re: Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search

#45
post #41
post #36

Earlier quoted context omitted.

That's if you're imagining a single node to discover the whole DHT. What if you want to fire off a map-reduce of limited-run DHT explorations starting from different DHT ring positions, where each agent just crawls and emits what it finds on stdout as it finds it? (In a sense, I suppose this would still be a "daemon", but that daemon would be the map-reduce infrastructure.)

I don't quite understand what you're proposing here. Generally you only control and operate ~1 node per IPv4 address or per IPv6 /64. All other nodes are operated by someone else, so they don't cooperate on anything beyond what the protocol specifies. Which means everyone is their own little silo. If you want a list of all currently active torrents (millions) then you have to do it with 1 or a handful of nodes, depen…

I mean, what I'm describing is the same thing that BEP51 mentions as a motivation:

> DHT indexing already is possible and done in practice by passively observing get_peers queries. But that approach is inefficient, favoring indexers with lots of unique IP addresses at their disposal. It also incentivizes bad behavior such as spoofing node IDs and attempting to pollute other nodes' routing tables.

If you have a lot of IP addresses (from e.g. AWS Lambda) then you can partition DHT keyspace across a large-N number of nodes and then very quickly discover everything in the keyspace.

The trick is that, since BEP51 exists, you don't need to have all these nodes register themselves into the hash-ring (at arbitrary spoofed positions) to listen. You can just have all these nodes independently probing the hash-ring "from the outside" — just making short-lived connections to registered nodes (without first registering themselves); handshaking that connection as a spoofed node ID; and then firing off one `sample_infohashes` request, getting a response, and disconnectting. The lack of registration shouldn't make any difference, as long as they don't want anyone to try connecting to them.

Which is why I say that these are just "crawler agents", not "nodes" per se. They don't start up P2P at all — to them, this is a one-shot client/server RPC conversation, like a regular web crawler making HTTP requests!

Re: Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search

#46
post #11

Earlier quoted context omitted.

How will governments police it when MaidSAFE and other systems distribute totally encrypted content?

BitTorrent already supports encrypted peer connections.

Doesn’t seem to work, our ISP has sent nastygrams despite this and site on https.

Re: Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search

#47
> Pipe dream features

> In-place seeding: identify files on your computer that are part of an indexed torrent, and allow them to be seeded in place after having moved, renamed or deleted parts of the torrent

Does anything do this already? It would be amazing to point a client at a folder of unstructured junk and have it magically find the right parts.

Re: Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search

#48

Earlier quoted context omitted.

BitTorrent already supports encrypted peer connections.

Doesn’t seem to work, our ISP has sent nastygrams despite this and site on https.

> How will governments police it when MaidSAFE and other systems distribute totally encrypted content?

so isn't the answer then "they'll continue to police it the way they already do"? i don't know what a MaidSAFE is, but the context of this discussion is the DHT, and so public (indexable) torrents, and so however you encrypt the content doesn't matter because you have to provide the decryption method to anyone who asks for any of the previous context (public torrents/indexes) to make any sense.

Re: Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search

#49

Please remove copyrighted movies from the screenshot on your website. It provides evidence that this program is designed for violating copyright, which makes DCMA takedown trivial.

I don’t see any screenshots on the website

Re: Bitmagnet: A self-hosted BitTorrent indexer, DHT crawler, and torrent search

#50

Earlier quoted context omitted.

Doesn’t seem to work, our ISP has sent nastygrams despite this and site on https.

> How will governments police it when MaidSAFE and other systems distribute totally encrypted content? so isn't the answer then "they'll continue to police it the way they already do"? i don't know what a MaidSAFE is, but the context of this discussion is the DHT, and so public (indexable) torrents, and so however you encrypt the content doesn't matter because you have to provide the decryption method to anyone who a…

Encrypted connections shouldn’t decrypt for anyone who asks, otherwise they have no reason to exist.

The weak point seems to be the tracker or filename, but been told https hides that so not sure.

Post reply on HN