当我想向跟踪器发送初始请求时,我所看到的所有引用都说它需要进行URL编码.如果我将信息密钥的SHA-1哈希转换为十六进制字符串,为什么我需要对哈希进行url-encode?它只包含允许的字符.
我有一个torrent info_hashes的列表.对于每个info_hash,我有一个与该info_hash对应的跟踪器列表.
我想做的是刮掉列表中的每个跟踪器以获得播种机/ leecher /完成计数.但是,我宁愿不自己写这个,因为我确信这个代码已经在别处实现了
有谁知道一个可以刮取http://和udp:// trackers的python库?
我一直在为这个项目的其他部分使用libtorrent,但它只能从有效的torrent_handle中抓取一个跟踪器(我不想将这些info_hashes添加到libtorrent会话中以便刮掉跟踪器,因为它将开始下载我不想要的文件)
我想用Java生成一个.torrent文件,但是我不想要一个像抓取跟踪器,播种等任何东西的大API.这只适用于生成元数据的客户端.有哪些轻量级解决方案 我只生成一个.zip文件的.torrent.
谢谢!
我需要能够使用一些好的旧php在我的服务器上管理一些torrent下载,基本上我会上传.torrent文件,并希望php脚本在torrent中下载torrent文件,然后压缩它们.虽然它这样做,有一个页面,可以输出进度和统计...我甚至不知道从哪里开始!
摘要
任何帮助将非常appriciated :)谢谢
我需要构建一个依赖于在站点之间复制大文件的分布式系统.
我想过使用像bittorrent这样的p2p技术来节省带宽,提高可靠性.
我非常错吗?
有没有人构建过这样的解决方案?
你推荐哪些图书馆?
我正在为内部集群实现自己的dht.由于它将用于像bittorrent这样的文件共享程序,"Mainline DHT"是我第一眼看到的.之后我发现"纠结"(python,dht使用扭曲矩阵),国会(python,dht使用pyev + libev),当然还有原始的"kademlia".
他们在组织k-buckets时有不同的方法:
1)congress,kademlia使用固定的160个桶,范围为2*i <=(每个id与我们的差值)<2*(i + 1),0 <= i <160.
2)主线DHT和纠缠使用动态桶.一开始他们只有一个铲斗覆盖整个空间.在它将填充8个活动节点后,桶将被拆分为2个新节点.但只有我们自己的id在那个桶里面.如果不是 - 桶将永远不会分裂.所以,很快我们将有160个最接近我们的桶和其他一些.
两种变体都足够好.但是我发现逻辑上存在巨大差异,它检测到属于某个桶的某个ID.这是我的问题.
国会和kademlia将桶子对待为"离我们最近的距离"和"离我们最远的距离".因此,我们自己的ID将始终在bucket0中.bucket1中最多2个其他ID(因为它覆盖2*1 <= x <2*2距离)将始终最接近我们.所以我的大脑没有休息,因为一切都好.
但是,如果您查看Mainline DHT或纠缠,您将看到哪些存储桶包被视为绝对节点ID包,而不是xor距离!所以在理论上全表id 0,1,2,3,4,5,6,7将在1个桶中.
所以.为什么有些实现将桶边界视为"与我们的最大/最小距离",而其他实现则将"最大/最小160位整数值"?
我正在尝试在C中实现Bittorent.首先,在编写代码片段之前,我尝试使用Web浏览器将以下消息(URL)发送到跟踪器服务器.
你可以尝试这个URL.
http://torrent.ubuntu.com:6969/announce?
info_hash=%9b%db%bbI%f0%85%a2%d1%5d%96%ac%fa%bf%f81%06%001O%e0
&peer_id=ABCDABCDABCDABCDABCD&port=6882&downloaded=0
&uploaded=0
&left=0
&event=started
Run Code Online (Sandbox Code Playgroud)
我已经从这个链接下载了torrent文件,该文件名为dapper-dvd-i386.iso,并且具有9bdbbb49f085a2d15d96acfabff8310600314fe0SHA-1值.
但是,在发送上述请求后,我得到了
your client is outdated, please upgrade
(HTTP 400 bad request)
Run Code Online (Sandbox Code Playgroud)
为什么跟踪服务器不理解我的需求?互联网的任何规格都无济于事.
任何帮助都是极好的.先感谢您.
我试图使用python libtorrent每天获取大约10k +种子的元数据.
这是当前的代码流
到目前为止我试过这个.
#!/usr/bin/env python
# this file will run as client or daemon and fetch torrent meta data i.e. torrent files from magnet uri
import libtorrent as lt # libtorrent library
import tempfile # for settings parameters while fetching metadata as temp dir
import sys #getting arguiments from shell or exit script
from time import sleep #sleep
import shutil # removing directory tree from temp directory
import os.path # for …Run Code Online (Sandbox Code Playgroud) python bittorrent magnet-uri libtorrent libtorrent-rasterbar
bittorrent ×10
python ×3
libtorrent ×2
api ×1
c ×1
c# ×1
dht ×1
distributed ×1
download ×1
java ×1
kademlia ×1
magnet-uri ×1
math ×1
p2p ×1
php ×1
protocols ×1
replication ×1
tracker ×1
xor ×1