标签: bittorrent

C#有任何libtorrent吗?

C#是否有任何bittorrent协议实现?

c# bittorrent

8
推荐指数
1
解决办法
3657
查看次数

Bittorrent跟踪器请求,info_hash的格式

当我想向跟踪器发送初始请求时,我所看到的所有引用都说它需要进行URL编码.如果我将信息密钥的SHA-1哈希转换为十六进制字符串,为什么我需要对哈希进行url-encode?它只包含允许的字符.

bittorrent

8
推荐指数
1
解决办法
1803
查看次数

python http/udp bittorrent tracker scrape library

我有一个torrent info_hashes的列表.对于每个info_hash,我有一个与该info_hash对应的跟踪器列表.

我想做的是刮掉列表中的每个跟踪器以获得播种机/ leecher /完成计数.但是,我宁愿不自己写这个,因为我确信这个代码已经在别处实现了

有谁知道一个可以刮取http://和udp:// trackers的python库?

我一直在为这个项目的其他部分使用libtorrent,但它只能从有效的torrent_handle中抓取一个跟踪器(我不想将这些info_hashes添加到libtorrent会话中以便刮掉跟踪器,因为它将开始下载我不想要的文件)

python bittorrent tracker libtorrent

8
推荐指数
1
解决办法
3033
查看次数

如何在Java中生成.torrent?

我想用Java生成一个.torrent文件,但是我不想要一个像抓取跟踪器,播种等任何东西的大API.这只适用于生成元数据的客户端.有哪些轻量级解决方案 我只生成一个.zip文件的.torrent.

谢谢!

java api bittorrent

7
推荐指数
2
解决办法
6704
查看次数

PHP简单的torrent系统?

我需要能够使用一些好的旧php在我的服务器上管理一些torrent下载,基本上我会上传.torrent文件,并希望php脚本在torrent中下载torrent文件,然后压缩它们.虽然它这样做,有一个页面,可以输出进度和统计...我甚至不知道从哪里开始!

摘要

  1. 上传.torrent文件
  2. 有php下载torrent中的文件
  3. 有一种方法来跟踪进度

任何帮助将非常appriciated :)谢谢

php bittorrent download

7
推荐指数
1
解决办法
7599
查看次数

使用BitTorrent在多个站点之间进行文件复制/同步

我需要构建一个依赖于在站点之间复制大文件的分布式系统.

我想过使用像bittorrent这样的p2p技术来节省带宽,提高可靠性.

我非常错吗?

有没有人构建过这样的解决方案?

你推荐哪些图书馆?

replication distributed synchronization p2p bittorrent

7
推荐指数
1
解决办法
5336
查看次数

BitTorrent群中的最佳节点数是多少?

BitTorrent群中的最佳节点数是多少?我认为有一种表达最有效节点数的数学方法.说实话,我有一个问题,只需要一个经验数量的X,没有一点严谨来支持它.

根据该规范,数量为30.

" 实施者注:即使有30个同行也很多,官方客户端版本3实际上只有少于30个对等体才会主动形成新连接,如果有55个,则拒绝连接.这个值对于性能很重要.完成下载后,需要向大多数活跃的对等体发送HAVE消息(见下文).因此,广播流量的成本与对等体的数量成正比.25岁以上的新同伴极不可能提高下载速度.强烈建议UI设计师使这个模糊不清,难以改变,因为这样做很少有用."

引用引用的开销是HAVE消息.

math bittorrent protocols

7
推荐指数
1
解决办法
1797
查看次数

DHT:BitTorrent vs kademlia vs clones(python)

我正在为内部集群实现自己的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位整数值"?

python bittorrent dht xor kademlia

7
推荐指数
1
解决办法
3124
查看次数

为什么跟踪服务器不理解我的请求?(Bittorrent协议)

我正在尝试在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)

为什么跟踪服务器不理解我的需求?互联网的任何规格都无济于事.
任何帮助都是极好的.先感谢您.

c bittorrent

7
推荐指数
1
解决办法
1517
查看次数

使用Python libtorrent创建守护进程以获取100k +种子的元数据

我试图使用python libtorrent每天获取大约10k +种子的元数据.

这是当前的代码流

  1. 启动libtorrent会话.
  2. 获取我们需要在过去1天内上传的元数据的总数.
  3. 从块中获取来自DB的洪流哈希值
  4. 使用这些哈希创建磁链接,并通过为每个磁体URI创建句柄,在会话中添加这些磁体URI.
  5. 在获取元数据的同时休眠一秒,并继续检查是否找到元数据.
  6. 如果收到元数据,请将其添加到DB中,否则检查我们是否一直在寻找大约10分钟的元数据,如果是,则删除句柄,即不再查找元数据.
  7. 无限期地完成上述工作.并保存会话状态以备将来使用.

到目前为止我试过这个.

#!/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

7
推荐指数
1
解决办法
1080
查看次数