p2p - Torrent 客户端如何确保对文件所做的更改不会影响文件传输?
问题描述
假设有两个对等点 A 和 B。简单来说,当 A 向 B 请求文件时,B 上的 torrent 客户端如何确保用户对文件所做的更改不会影响文件传输?它是在开始向接收方发送块之前将文件复制到临时文件夹,还是需要某种操作系统级别的写锁定并保留它直到传输完成?
解决方案
文件在创建时进行哈希处理,哈希存储在 torrent 文件中。在下载时检查哈希值。
您可以在核心bittorrent 协议规范中找到更多详细信息。
当检测到哈希不匹配时会发生什么取决于实现。常见的方法是尝试从不同的对等点下载失败的片段并向用户报告散列失败统计信息。发送方也可以选择检查自己的数据并将其报告给用户,但规范的主要目的是让接收方验证数据,因为它无论如何都不能信任发送方。
推荐阅读
- excel - 将 Excel 连接到 Power BI 数据模型
- java - TWS Java API 编辑AddJobStreamInstanceWithVariableSubstitution
- autohotkey - AHK 脚本在每次连续按下时发送不同的按钮
- ajax - 使用ajax从json读取和显示值
- angular - 如何覆盖 ngrx 商店中的某些操作?
- sql - sql group 通过忽略大小写和后缀或最后一个字母
- r - 使用组变量创建新列
- unity3d - 从一个对象到另一个对象的光线投射
- c# - 从 C# 程序访问 C++ DLL 中的多个函数
- python - 在 Windows 上使用 Python 运行可执行文件并提供文本文件作为输入