← 文章 / 未分类
desdelinux 5小时前 · 2026-09-01 00:33:17 · 1 阅读

libtorrent 2.1:混合 WebTorrent 网络和新的磁盘引擎

流行的P2P 文件共享生态系统 libtorrent最近宣布发布 2.1 版本,该更新整合了过去几个月数千次代码提交的工作成果,通过默认集成 WebTorrent 协议,从根本上改变了内容分发的方式,并引入了完全重新设计的磁盘读写引擎,以最大限度地提高性能。

此版本最大的亮点在于其原生支持 WebTorrent。这项技术扩展了传统的 BitTorrent 协议,使其能够直接通过用户的 Web 浏览器创建去中心化的内容分发网络,并使用 WebRTC 进行数据交换。这意味着网站开发者只需插入一小段 JavaScript 代码,即可让访问者无缝地相互分享内容。

这种整合最引人入胜之处在于创建了无边界的混合网络,因为基于 libtorrent 的传统桌面客户端现在可以与在 Web 浏览器中打开一个标签页的用户连接并交换文件片段。

反过来,Web客户端可以利用大量桌面用户通过传统TCP和UDP连接所产生的巨大带宽。值得注意的是,默认启用WebRTC支持会扩大库的攻击面,因此,如果最终应用程序不会使用此功能,强烈建议开发人员在编译期间将其禁用。

采用新型输入/输出电机,性能得到优化

通过引入名为 pread_disk_io 的全新底层引擎,存储的物理性能得到了显著提升。该系统利用 pwritev 和 preadv 系统函数,可同时对多个缓冲区执行原子读写操作。开发团队已将此新引擎设置为默认引擎,因为它在处理机械硬盘、网络存储以及使用 FUSE 挂载的文件系统时,效率显著更高。

对于配备超高速 NVMe 固态硬盘的用户和服务器,基于内存文件分配 (mmap)的旧引擎仍然保留在代码中。这种传统架构仍然是现代高性能存储硬件最快、最优化的选择,并且可以根据需要启用。

在结构和依赖层面,libtorrent 2.1 实现了飞跃,它要求使用 C++17 进行编译,摒弃了旧代码,并采用了更加安全、现代的语法。此外,它现在至少需要支持服务器名称指示 (SNI) 的 OpenSSL 1.1.0 版本。

此外,最值得注意的优化包括改进简历数据的格式以占用更少的磁盘空间,原生支持匿名 I2P 网络中的对等交换,以及彻底取消对过时的 BEP 17 标准下的旧 web seed 的支持,优先采用更强大的 BEP 19。

如何在 Linux 上安装和编译 libtorrent 2.1

对于想要在系统上部署此新版本的用户来说,最直接、最新的方法是从源代码编译库。由于这是一个 C++ 核心库,您需要先准备好开发环境。

在基于 Debian 或 Ubuntu 的发行版上,您必须打开终端,并通过运行以下命令确保已安装构建工具、CMake 以及 Boost 和 OpenSSL 依赖项。

sudo apt install build-essential cmake libssl-dev libboost-all-dev

准备好依赖项后,必须从 GitHub 克隆官方仓库,并确保同时下载 WebTorrent 所需的子模块,这可以通过以下命令完成。

git clone --recurse-submodules https://github.com/arvidn/libtorrent.git

接下来,使用 `cd libtorrent` 进入下载的文件夹,然后运行以下命令创建一个用于构建二进制文件的特定目录:

mkdir build && cd build

并通过编写以下代码来准备构建环境

cmake

如果您出于安全考虑或为了减轻库的重量而希望禁用 WebTorrent 支持,可以使用该标志修改上述命令。

cmake -Dwebtorrent=OFF

最后,运行 `make` 命令编译代码(可以通过添加 `-j4` 或处理器核心数来加快编译速度),编译完成后,使用管理员权限通过以下命令将其安装到系统中。

sudo make install

此后,您在计算机上编译的种子客户端将使用这个强大而改进的基础。


原始来源: desdelinux

评论 (0)