惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
Spread Privacy
Spread Privacy
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
云风的 BLOG
云风的 BLOG
U
Unit 42
B
Blog
P
Privacy International News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
NISL@THU
NISL@THU
Recent Announcements
Recent Announcements
The Hacker News
The Hacker News
Engineering at Meta
Engineering at Meta
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Docker
Schneier on Security
Schneier on Security
Security Archives - TechRepublic
Security Archives - TechRepublic
M
MIT News - Artificial intelligence
Webroot Blog
Webroot Blog
Y
Y Combinator Blog
博客园 - 【当耐特】
Google Online Security Blog
Google Online Security Blog
C
Cisco Blogs
L
Lohrmann on Cybersecurity
Cisco Talos Blog
Cisco Talos Blog
N
News | PayPal Newsroom
Forbes - Security
Forbes - Security
人人都是产品经理
人人都是产品经理
Hacker News: Ask HN
Hacker News: Ask HN
美团技术团队
博客园 - 聂微东
Help Net Security
Help Net Security
A
Arctic Wolf
V
V2EX
The Register - Security
The Register - Security
C
Check Point Blog
S
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Help Net Security
Google DeepMind News
Google DeepMind News
AI
AI
www.infosecurity-magazine.com
www.infosecurity-magazine.com
量子位
T
Threat Research - Cisco Blogs

博客园 - papering

This module supports asynchronous I/O on multiple file descriptors. 设置其优先级值的线程的句柄 QT 主线程 优化 卡顿 主线程上的同步重活 防重入:进行中直接 return,避免连点双开。 把「一次性任务」收到 ThreadPoolExecutor(max_workers=2~3),限制峰值线程数 统一 Activity 浮层 去掉连环成功弹窗 为 with语句上下文提供的工具 懒加载 IDE发现 import Canvas 指纹 魔改chromium源码——CDP(Chrome DevTools Protocol)检测01 whether the browser environment is controlled by a robot. chromium指纹魔改 对拷线 rpa 任务编排 a JSON formatted stream to ``fp`` “幽灵字符”问题 浏览器背后的黑科技 多进程 多线程 callback technique: signals and slots chrome 浏览器 调试 数据采集 Chrome DevTools ProtocolCDP PyInstaller 实现延迟导入 Storage mount options 汽车 OTA 技术体系 使用 grep 的扩展正则表达式功能 Python 中双下划线会触发名称修饰(mangling),通常用于避免子类覆盖, 容器内没有安装curl 验证web服务存在 在容器内执命令 连接数据库 http响应的 headers中拿到文件名 复制python项目文件,包含 包依赖 物理机 虚拟机 云厂商 裸金属服务器 CPU 透传 CPU Passthrough Docker 环境权限与资源限制 can't start new thread Seccomp security profiles Don't let containers reboot the host. Registry Pattern search_after 深度分页 Scrolling is not intended for real time user requests no longer recommend using the scroll API for deep pagination point in time PIT preserve the current index state kafka 大消 小消 使用 DHT (Distributed Hash Table,分布式哈希表) 替代 Tracker,标志着 P2P 系统从“有中心”进化到了“完全去中心化”。 STUN 负责“问路”(发现 IP),Tracker 负责“找人”(发现节点),而打洞失败时则靠 TURN “代跑”(转发数据) p2p 视频传输方案 UDP 打洞 attached detached shared memory 共享内存 shm ipcs folders of instructions, scripts, and resources that Claude loads dynamically to improve performance on specialized tasks complete specific tasks in a repeatable way 词元 指令 分词器 向量化 计算关系 输出回答 QQ 25 年进化史:从UDP到NT架构,支撑亿级在线的技术之路 如何设计一个IM单聊架构 长链接业务层 短链接业务层 go java python dart 内存模型区别 go java python 面向对象区别 常规价将被永久拉低,难以重建价格锚点 AI对比功能强调的是产品的真实价值 LLM provider configuration luckclaw AI 智能体 Gateway 网关 技术架构的每一次重大更新,都被称作一次“脱壳” 具备“手脚”去在真实操作系统中“执行”任务的数字实体 供应链攻击从“欺骗人类”向“操纵AI逻辑”的演进 字符串相等 地址比较 内容比较 ‌ 零宽不连字, 不可见字符 ch.isprintable() purge会移除配置文件,而remove仅删除程序文件。 c# 异步 同步 请求 生成式引擎优化 Generative Engine Optimization GEO 内容优化策略 python lua 传值 传址 用AI原生的思维重新构建产品
依赖于中央数据库来协调网络中的查询 使用泛滥式查询(query flooding)来查询文件,搜索网络中的所有节点 使用分布式散列表来查询网络中的文件
papering · 2026-04-16 · via 博客园 - papering

https://zh.wikipedia.org/zh-cn/Kademlia

第一代P2P文件分享网络,像Napster,依赖于中央数据库来协调网络中的查询,第二代P2P网络,像Gnutella,使用泛滥式查询(query flooding)来查询文件,它会搜索网络中的所有节点,第三代p2p网络使用分布式散列表来查询网络中的文件,分布式散列表在整个网络中储存资源的位置,这些协议追求的主要目标就是快速定位期望的节点。Kademlia基于两个节点之间的距离计算,该距离是两个网络节点ID号的异或( XOR distance ),计算的结果最终作为整型数值返回。关键字和节点ID有同样的格式和长度,因此,可以使用同样的方法计算关键字和节点ID之间的距离。节点ID一般是一个大的随机数,选择该数的时候所追求的一个目标就是它的唯一性(希望在整个网络中该节点ID是唯一的)。异或距离跟实际上的地理位置没有任何关系,只与ID相关。因此很可能来自德国澳大利亚的节点由于选择了相似的随机ID而成为邻居。选择异或是因为通过它计算的距离享有几何距离公式的一些特征,尤其体现在以下几点:节点和它本身之间的异或距离是0;异或距离是对称的:即从A到B的异或距离与从B到A的异或距离是等同的;异或距离符合三角不等式:三个顶点A B C,AC异或距离小于或等于AB异或距离和BC异或距离之和。由于以上的这些属性,在实际的节点距离的度量过程中计算量将大大降低。Kademlia搜索的每一次迭代将距目标至少更近1 bit。一个基本的具有2的n次方个节点的Kademlia网络在最坏的情况下只需花n步就可找到被搜索的节点或值。

Kademlia协议共有四种消息。

  • PING消息—用来测试节点是否仍然在线。
  • STORE消息—在某个节点中存储一个键值对
  • FIND_NODE消息—消息请求的接收者将返回自己桶中离请求键值最近的K个节点。
  • FIND_VALUE消息,与FIND_NODE一样,不过当请求的接收者存有请求者所请求的键的时候,它将返回相应键的值。每一个RPC消息中都包含一个发起者加入的随机值,这一点确保响应消息在收到的时候能够与前面发送的请求消息匹配。

在文件分享网络中的应用

Kademlia可在文件分享网络中使用,通过制作Kademlia关键字搜索,我们能够在文件分享网络中找到我们需要的文件以供我们下载。由于没有中央服务器存储文件的索引,这部分工作就被平均地分配到所有的客户端中去:假如一个节点希望分享某个文件,它先根据文件的内容来处理该文件,通过运算,把文件的内容散列成一组数字,该数字在文件分享网络中可被用来标识文件。这组散列数字必须和节点ID有同样的长度,然后,该节点便在网络中搜索ID值与文件的散列值相近的节点,并把它自己的IP地址存储在那些搜索到的节点上,也就是说,它把自己作为文件的源进行了发布。正在进行文件搜索的客户端将使用Kademlia协议来寻找网络上ID值与希望寻找的文件的散列值最近的那个节点,然后获取存储在那个节点上的文件源列表。

由于一个键可以对应很多值,即同一个文件可以有多个源,每一个存储源列表的节点可能有不同的文件的源的信息,这样的话,源列表可以从与键值相近的K个节点获得。 文件的散列值通常可以从其他的一些特别的Internet链接的地方获得,或者被包含在从其他某处获得的索引文件中。

文件名的搜索可以使用关键词来实现,文件名可以分割成连续的几个关键词,这些关键词都可以散列并且可以和相应的文件名和文件散列储存在网络中。搜索者可以使用其中的某个关键词,联系ID值与关键词散列最近的那个节点,获取包含该关键词的文件列表。由于在文件列表中的文件都有相关的散列值,通过该散列值就可利用上述通常取文件的方法获得要搜索的文件。