Xe Iaso

10 篇内容

工程实践Xe Iaso

Extending immutability: deletion without losing data

本文深入探讨了在全球分布式、主动-主动复制对象存储系统中实现软删除的挑战与方案。作者分析了传统墓碑标记在跨区域删除-更新时序冲突时导致数据复活的问题,并设计了将对象元数据移至独立命名空间(类似回收站)的软删除机制,保留垃圾回收根以避免误删后数据丢失。文中详细描述了反复活策略:任何写入必须证明时间戳严格晚于删除记录,否则被丢弃,以此保证分布式一致性。文章还对比了S3的删除标记实现,展示了Tigris的API用法,并指出该方案适用于需要抗误删、防勒索和代理安全场景,但反复活逻辑增加了写入验证开销,且恢复操作需客户端显式调用。适用边界在于依赖底层不可变追加存储,且需预先启用软删除特性。

推荐收录。本文不是简单的API介绍,而是从分布式系统时序冲突的根本难题出发,完整展示了软删除与反复活机制的设计逻辑、实现细节和工程取舍。对构建跨区域数据持久化、设计类似回收站功能或处理最终一致性问题的工程师有直接参考价值,其中的元数据分离和写前检查模式可迁移至其他键值存储或数据库系统。

工程实践Xe Iaso

SigV4 authentication is surprisingly complicated

文章以 Tigris 对象存储实现 AWS SigV4 鉴权协议的过程为线索,详细拆解了签名机制表面简单实则复杂的本质。核心方法包括请求规范化、基于 HMAC-SHA256 的四层密钥派生链,以及利用 X-Amz-Date 和时钟偏差窗口抵御重放攻击。重点介绍了 TAG 本地加速网关如何通过派生签名密钥的代理机制,在不持有完整客户秘钥的情况下完成鉴权,从而避免每次请求都回源云服务。文章还讨论了 SigV4a 不对称加密方案与时钟同步、TLS 依赖性等边界条件,揭示了协议设计中被忽视的中间值作用域和工程权衡。

本文不是简单的协议教程,而是基于真实工程案例的深度技术挖掘。它从规范文档到代码实现,再到生产级缓存网关的密钥代理设计,完整展示了面对对称密钥鉴权时的复杂性思考和折中方案。适合从事 API 设计、安全鉴权、云存储或本地加速网关开发的后端工程师与系统设计者,文中关于派生密钥作用域限制和协议弹性的设计思想可直接迁移到类似分布式鉴权场景。

工程实践Xe Iaso

You should probably check on your smart appliances

文章基于 Anubis 蜜罐功能收集的真实数据,分析 Web 爬虫流量的全球分布与来源特征。数据表明 80–90% 的蜜罐命中来自未列入已知威胁列表的 IP,且主要集中于住宅 ISP 或消费级网络。作者通过国家、ASN、网络提供商的分类统计,发现大量流量可能源自受入侵的智能家电设备,它们被用作代理网络的一部分。该分析揭示了当前威胁情报库在抵御大规模爬虫攻击方面的不足,并强调了部署 Web 应用防火墙的必要性。

推荐收录,因为它基于真实蜜罐数据提供了关于爬虫流量来源的量化洞察,挑战了仅依赖公开威胁列表的防御假设。适合 Web 安全、反滥用及基础设施工程师参考,文中数据清洗、分类统计方法和来源推论可迁移到类似流量分析任务中,有助于设计更合理的防御策略。

技术文章Xe Iaso

Presigned URLs are technically a security vuln

文章深入分析了预签名URL的安全设计,揭示其本质是将SigV4签名协议原有的重放攻击防御机制转化为一种可控的功能。作者从SigV4的签名过程讲起,说明通过将当前时间戳纳入签名来限制请求有效期为约15分钟,从而避免全局nonce管理的复杂性。接着详细解剖了预签名URL的各个组成部分,展示其如何将认证信息平铺为URL参数,使任何HTTP客户端都能在指定有效期内无限次重放该请求。文章将预签名URL视为基于时间的权限凭证,并讨论了其实际代价:无法单独撤销、URL容易泄漏、每次调用都计费等。结论指出,预签名URL将签名时间限制反转成了可定时的访问功能,是构建临时分享链接的基础构件,但使用者需理解其适用边界和风险。

本文值得收录,因为它不是浅层的功能介绍,而是从安全协议的底层原理出发,清晰阐释了预签名URL的设计思路和权衡。文章适合后端开发、安全工程师和架构师阅读,帮助理解云存储临时访问机制的实现与局限,其分析的签名时间窗口、能力凭证模型和不可撤销特性可直接迁移到任何使用S3兼容存储的系统设计中。

技术文章Xe Iaso

Agents are monads (but not that kind)

文章借用“单子”这一哲学隐喻来重新定义 AI agent:agent 的个体性不在模型权重,而在其持续累积的状态、记忆、系统提示和派生事实。作者先区分了函数式编程里的 monad 与莱布尼茨式 monad,强调前者是计算结构,后者才适合描述“由内在状态唯一化的实体”。文中通过“保留状态、替换模型”的思想实验说明,换底座模型后 agent 仍可保持目标与记忆连续,因此权重更像承载能力的 substrate,而非决定身份的本体。作者进一步指出,prompt 中的各种约束与咒语更像试图约束一个不可完全解释的系统,而不是揭示其“为什么”有效。结论是:agent 的“灵魂”是上下文窗口及其状态折叠,权重只是肉身;这一判断是强概念框架,适合理解 agent 设计,但并非实验性证明。

收录理由在于它直接提出了“agent 身份由状态而非权重决定”的可迁移心智模型,并用模型替换实验解释了跨模型迁移时为何行为连续。适合做 LLM agent 设计、提示词工程和状态管理讨论的概念参考,但需注意其论证以哲学类比为主,缺少实证验证。

工程实践Xe Iaso

I taught a bucket to speak git

这篇文章讲的是作者如何把一个对象存储 bucket 改造成能直接承载 Git 仓库的后端,并基于 go-git 与 billy 这些抽象实现了一个纯 Go 的 git server。正文不只是展示“能跑”,还系统复盘了 rename 原语、packfile 写入与读取、stat/list 级联、clone 过程中的随机读放大,以及用本地缓存缓解对象存储高延迟等关键问题,并明确指出哪些地方只是实验性权衡、并不适合直接用于生产。

推荐收录,因为它把“把 Git 放到对象存储上”这个看似奇技淫巧的问题,拆解成了可验证的系统设计与性能问题,具有很强的迁移价值。读者可以从中学习如何用抽象层适配存储语义、如何识别网络存储与本地文件系统的性能鸿沟,以及如何用指标驱动优化。

工具笔记Xe Iaso

I hate compilers

这篇文章围绕“把 wasm2js 重新编译成 WebAssembly 以便在项目中做可复现发布”展开,重点不是功能本身,而是作者在构建可复现工具链时遇到的一系列真实问题:__DATE__/__TIME__ 造成非确定性、clang 偷偷调用 PATH 里的旧版 wasm-opt、以及不同架构和 ASLR 导致的指针相关输出差异。作者最终通过禁用自动随机化、关闭链接阶段的 wasm-opt、以及按架构维护校验和与 CI 检查,达成了“同架构内可复现”的目标,但也明确说明跨架构完全一致仍受 LLVM 上游缺陷限制。

推荐收录,因为它提供的是一套可迁移的构建排障思路,而不是单纯的工具报错记录:从非确定性来源识别、工具链污染排查到 CI 里的复现校验,都是长期有用的方法。对做编译器、WASM、打包发布或需要保证产物一致性的工程团队尤其有参考价值。

技术文章Xe Iaso

Why are cached input tokens cheaper with AI services?

这篇文章解释了为什么大模型 API 里的 cached input tokens 通常比未命中的输入 tokens 便宜,核心原因是服务方可以复用前缀计算结果,避免对相同上下文重复做推理。作者用聊天消息不断累积的调用方式说明了 KV cache / prefix cache 的工作思路,并把它和延迟、算力成本以及用户侧费用直接联系起来。文章也给出一个实用建议:尽量保持推理设置和前置消息稳定,以提高缓存命中率、降低成本并改善响应速度。

推荐收录,因为它用通俗但正确的方式解释了大模型服务定价背后的系统原因,帮助读者把“缓存更便宜”从现象理解到机制层面。内容对做 AI 应用、推理优化或成本控制的人都很有参考价值,且经验可以迁移到其他依赖前缀复用的系统设计中。

技术文章Xe Iaso

IPv6 zones in URLs are a mistake

这篇文章围绕 IPv6 zone/scope 在 URL 中的表示问题展开,先解释了链路本地地址在不同网卡上会冲突,因此需要用 zone 来消歧义,再说明在 Go 的 net/url 中直接写入 `%eth0` 会被当作非法转义。作者进一步给出正确写法:需要把 `%` 编码成 `%25`,并结合 RFC 6874、浏览器同源策略和其他框架的类似边界案例,说明这是一个跨协议栈、跨实现的长期边缘问题。

推荐收录,因为它不是泛泛讲 IPv6,而是把网络地址语义、URL 语法、Go 标准库行为和相关 RFC 的边界完整串起来,能帮助读者避免真实系统中的解析错误。虽然主题很边缘,但这类协议细节具有很强的可迁移价值,尤其适合做网络编程、URL 处理和标准兼容性排障参考。

工程实践Xe Iaso

Dancing mad with sandboxing

文章围绕作者在 Go 里构建“用户态沙箱 shell”Kefka 的实践展开,核心目标是给 AI agent 和其他程序提供一个可控的执行环境:命令通过统一的 ExecContext 接口运行,文件系统可替换为本地磁盘或对象存储,Python、jq、ripgrep 等程序则通过 WebAssembly/WASI 被迁移进沙箱中。作者进一步把这套能力接到 SSH 会话上,让每个用户获得独立的 bucket fork 和隔离环境,并详细讨论了 POSIX 兼容性、错误码映射、io/fs 与 billy 的取舍、WASI 对网络与 cwd 的限制等边界问题。

推荐收录,因为它不是简单的“做了个工具”展示,而是完整讲清了沙箱、shell、文件系统抽象、WASM 迁移和 SSH 交互如何组合成一套可落地的系统。文章对想在 Go 里做受限执行环境、AI agent 工具链或可替换后端文件系统的读者都有较强的迁移价值。