发布 libtorrent 2.0,支持 BitTorrent 2 协议

由...所提交 重要的库发布 Libtorrent 2.0 (也称为 libtorrent-rasterbar),它提供了 BitTorrent 协议的实现,该协议在内存消耗和 CPU 负载方面非常高效。 图书馆 涉及 在 torrent 客户端中,例如 洪水, qBittorrent, Folx, 山猫, 米罗 и 红晕 (不要与另一个库混淆 libtorrent,用于 rTorrent)。 libtorrent 代码是用 C++ 编写的 分发者 在 BSD 许可下。

这次的发布是引人注目的 通过添加 协议支持 比特流 v2,它避免使用 SHA-1 算法,该算法具有 问题 碰撞选择有利于 SHA2-256。 SHA2-256 用于控制数据块的完整性和索引(信息字典)中的条目,这违反了 DHT 和跟踪器的兼容性。 对于具有 SHA2-256 哈希值的 torrent 的磁力链接,建议使用新的前缀“urn:btmh:”(对于 SHA-1 和混合 torrent,使用“urn:btih:”)。

由于替换哈希函数破坏了协议兼容性(哈希字段是 32 字节而不是 20 字节),BitTorrent v2 规范最初开发时没有考虑向后兼容性,并采用了其他重大更改,例如在索引中使用 Merkle 哈希树减少 torrent 文件的大小并在块级别检查下载的数据。

BitTorrent v2 的变化还包括向每个文件分配单独的哈希树的转变,以及部分使用文件对齐(无需在每个文件后添加额外的填充),这可以消除存在相同文件时的数据重复,并使其更容易识别文件来源不同。 提高了 torrent 目录结构编码的效率,并添加了处理大量小文件的优化。

为了平滑 BitTorrent v1 和 BitTorrent v2 的共存,已实现创建混合 torrent 文件的功能,其中除了具有 SHA-1 哈希值的结构外,还包括具有 SHA2-256 的索引。
这些混合 torrent 可以与仅支持 BitTorrent v1 协议的客户端一起使用。 由于稳定性问题尚未解决,libtorrent 2.0 预计支持 WebTorrent 协议 推迟 直到下一个主要版本发布,该版本要到今年年底才会发布。

来源: opennet.ru

添加评论