2009-07-25 13 views
63

İçinde herhangi bir izleyici olmayan bir torrent varsa ve bir bittorent istemcisini başlattım, bu yüzden henüz hiç arkadaşım yok ... DHT ile ilk kimin bağlanacağını nasıl bilebilirim? Başlamak için DHT en az BİR düğüm bilmek zorunda değil gibiBittorent istemcisindeki DHT nasıl "bootstrapped" olur?

+3

Buradaki tüm cevaplar sadece kısmen, soruya cevap verir. 8472'nin iyi ve eksiksiz bir yanıtı şu adreste bulabilirsiniz: http://stackoverflow.com/questions/10999786/how-pex-protocol-magnetic-links-finds-it-first-ip/11089702#11089702 – Encombe

cevap

34

gitmek pek yok, bu eş bulmaya gider bir başlangıç ​​yeri vardır. Orijinal BitTorrent istemcisiyle, bitorrent.com'un işleri başlatmaya yardımcı olacak bir url vardı. Referansı aramayı denedim ama bulamadım. Diğer istemcilerle bağlantı kurduktan sonra, aradığınız torrent için eşler bulmak üzere DHT ağında bir announce yapabilirsiniz.

İşte DHT tartışmak BitTorrent specs için bir bağlantı var.

İzleyicisiz bir torrent sözlüğü, "announce" anahtarına sahip değildir. Bunun yerine, bir izcersiz torrent bir "düğüm" anahtarına sahiptir. Bu anahtar, üreten istemcinin yönlendirme tablosundaki K en yakın düğümlere ayarlanmalıdır. Alternatif olarak, anahtar, torrent üreten kişi tarafından çalıştırılan gibi bilinen iyi bir düğüme olarak ayarlanabilir. otomatik "router.bittorrent.com" dosyaları torrent veya otomatik yönlendirme tablolarını müşterilerine bu düğüm eklemek için kullanıcılar etmeyin.

+4

Siz 'anons' DHT ağında? Akranları bulmak için bir "get_peers()", hatta soyut "get()" yaptığını sanıyordum? – gsk

0

Sen konuşmak, diğer bazı sel gelen eş ihtiyacımız .... görünüyor. Eğer bunlar yoksa belirttiğimiz gibi bir BitTorrent istemcisi DHT bağlandığında ile ....

35

ana hat DHT önyükleme düğümleri router.utorrent.com ve buna bir CNAME, router.bittorrent.com. Bağlantı noktası 6881.

+8

Teşekkürler! Bu, web'de tam metinlerin düz metinde verildiği tek yer olabilir. –

+2

Eğer DNS'e bakarsanız bunlar aynı konuma gider: router.utortor.com, router.utorrent.com adresinden bir CNAME'dir. Aynı düğümler. – anthonyryan1

3

Bir müşteri onlarla o kişinin etkileşimi aracılığıyla diğer DHT özellikli yaşıtları hakkında bilgi edinebilir. DHT'ye bir akran desteği, Handshake'de tanıtıldı. Bir müşteri en az bir iyi, iyi bağlantılı DHT eşini keşfettikten sonra, daha fazla ve daha yakın DHT akranlarını bulmak için DHT'ye gidebilir. Yazılımın yeniden başlatılması arasında, DHT-konuşmasında düğümler olarak adlandırılan bu akranları hatırlar ve çalıştığı sırada sürekli olarak listeyi korur/günceller. Bir istemcinin iyi DHT yetenekli akranları bilmediği en kötü durumda, izleyici tabanlı bir torrent indirmenizi gerektirecektir, böylece izleyici aracılığıyla öğrendiği birkaç iyi DHT yeteneğine sahip akranıyla bağlantı kurabilir.

Güncelleme: bunun için DHT akranlarının ilk liste @Seppo işaret ettiği gibi, bir torrent istemcisi tanınmış yaşıtları için adresleri bulmak için bir veya birden fazla kodlanmış DNS adları kullanabilirsiniz,, ve o da olabilir Son bir geri dönüş olarak akranların kodlanmış listesini de içerir. DNS'in bir sınırlaması, ancak, hiçbir port bilgisi sağlanmadığı için 6881 varsayılan portu genellikle kabul edilirken, diğer araçlar farklı portlarda çalışan akranları desteklemektedir.

21

bu DHT monitoring project sitesi alt kısmında grafik

  • dht.transmissionbt.com
  • router.utorrent.com
  • router.bittorrent gösterir.com
  • ön yükleme olarak

BitTorrent yılında
+3

BitTorrent, kaynak kodunu yayınladı. Artık kendi DHT önyükleme makinenizi çalıştırabilirsiniz: https://github.com/bittorrent/bootstrap-dht – Encombe

14

, üç ana seçenek vardır bakıp:

  • Torrent Dosya: İçinde (DHT içine bağlamak için nodes gömebilirsiniz bazı torrent dosyalarını Aslında, bir torrent dosyası oluştururken önerilir)
  • Hardcoding: Bazı torrent istemcileri sabit kod birkaç önyükleme düğümleri (stk tarafından tioned. Bunlar genellikle uzun süredir çalışan sunuculara sahip şirketler ve kuruluşlar tarafından yürütülür.
  • PEX/Peer Konuşmaları: Genellikle, diğer torrentleri indirdiğiniz kişilerden DHT düğümleri isteyebilirsiniz (müşterileriniz eachothers dilini anlarsa, yani bazı sürümler uyumsuzdur).
    bootstrap_from_name("dht.transmissionbt.com", 6881, bootstrap_af(session)); 
    

    Her sel müşteri kendi önyükleme düğümünü kullanır tahmin: eş almak için başka bir yol yoksa
3

, Deluge da hardcoded boostrap nodes kullanır:

 self.session.add_dht_router("router.bittorrent.com", 6881) 
     self.session.add_dht_router("router.utorrent.com", 6881) 
     self.session.add_dht_router("router.bitcomet.com", 6881) 
İlgili konular