Opened 8 years ago

Last modified 8 years ago

#5855 new Enhancement

Support reading DHT nodes from metainfo files (BEP-0005)

Reported by: Copied Owned by: jordan
Priority: Normal Milestone: None Set
Component: libtransmission Version: 2.84
Severity: Normal Keywords: dht, metainfo


Please add support for bootstrapping DHT nodes from .torrent files. A .torrent can contain a 'nodes' key with a list of lists with hosts and ports to UDP nodes who know of clients interested in the file. This should help with speeding up decentralized torrents who are entirely trackerless.

Secondary, Transmission should support creating torrents with nodes lists as alternatives or supplementary to announce-lists.

From the relevant specification BEP-0005:

“A trackerless torrent dictionary does not have an "announce" key. Instead, a trackerless torrent has a "nodes" key. This key should be set to the K closest nodes in the torrent generating client's routing table. Alternatively, the key could be set to a known good node such as one operated by the person generating the torrent. Please do not automatically add "" to torrent files or automatically add this node to clients routing tables.”

nodes = [[<host>, <int-port>], ["<host>", <int-port>], ...]
nodes = [["", 6881], ["", 4804], ["::1", 51413]]

I’m not aware of anyone distributing metainfo files with nodes. As the legal war on trackers continues, this feature is something that should be ready to use. As an independent content producer, I also find it appealing to use DHT to distribute my own content. However, I would want to provide one good known node to ensure availability and fast first-piece-downloaded speeds.

Change History (2)

comment:1 Changed 8 years ago by cfpp2p

This can already be done in a different way if you want.

Just add a file ~/.config/transmission/dht.bootstrap that says something like 6881 6881

and Transmission will bootstrap from those nodes if normal bootstrap fails.



comment:2 Changed 8 years ago by Copied

This is on a per-torrent basis. A distributor could include nodes to their own servers that would act as DHT bootstrap or could report themselves as peers.

Deluge and uTorrent support this feature, although they have no UI for including the nodes data in torrents.

Note: See TracTickets for help on using tickets.