【问题标题】:Torrent padding filesTorrent 填充文件
【发布时间】:2015-11-02 17:14:54
【问题描述】:

有人为 torrent 创建填充文件吗? 现在有多少客户使用这些东西? “填充文件”是否全面?

我在ctorrent、ttorent、trasmission等新客户端中没有发现这个功能。

您是否有此功能的实现或关于此的一些理论或历史?

我将不胜感激!

【问题讨论】:

    标签: libtorrent transmission torrent


    【解决方案1】:

    这个功能最初是由 BitComet 实现的(在我看来,实现质量相当差),以便更简单地取消选择某些文件从下载。由于 bittorrent 下载片段,片段可能跨越多个文件。否则,当您取消选择某些文件时,您可能仍然会得到它的第一个和最后一个位(因为它与其他文件所需的部分重叠)。

    引入 pad-files 可确保文件对齐并消除此问题。

    值得注意的是,uTorrent 会将这些剩余部分粘贴在一个单独的文件中,称为部分文件。

    在更现代的时代,几年后,libtorrent 和 uTorrent 出于不同的原因获得了对 pad 文件的一些支持。主要是这两个:

    1. uTorrent 实现了对“可变种子”的支持,能够用新版本替换种子并有效地将所有常见内容转换/复制到新种子。为了有效地大规模使用此功能,您必须将大文件对齐,以避免重新散列所有内容(即,您只想散列新内容,而不是保持不变的内容)。因此,pad 文件很有用。

    2. 在文件中以集群对齐的偏移量访问文件系统可能比未对齐的访问便宜很多。它还允许使用一些更复杂的 API,这些 API 可能会限制文件偏移(异步 I/O)。这也适用于内存映射文件。

    对 pad 文件的主要批评(据我所知)来自 BitComet 的实现,这对未实现它的客户来说是相当侵入性的。它将创建具有长文件名的突出文件,建议下载较新版本的 BitComet。至少在 uTorrent 阵营中,这让很多用户感到不安,以至于创建了一些 .torrent 文件以故意在 bitcomet 中使用此功能(其中 pad 文件并非全为零,bitcomet 会假设,所以它失败了哈希)。

    有更优雅的方式来实现 pad 文件,我相信 libtorrent 和 uTorrent 做得更好。例如,您可以在创建 torrent 时将所有 pad 文件合并到(隐藏)目录中。 uTorrent 也会将部分 pad 文件放在它的 partfile 中。

    至于支持 pad 文件的客户,以下是我能想到的一些(考虑到足够新的版本):

    1. uTorrent
    2. BitTorrent
    3. 洪水
    4. qBitTorrent
    5. BitComet(我认为它仍然支持它)
    6. 任何其他使用 libtorrent (rasterbar) 的客户端

    【讨论】:

      猜你喜欢
      • 2015-02-16
      • 1970-01-01
      • 2019-02-10
      • 2020-05-15
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多