主要观点:介绍了在 Nix 的 /nix/store 路径中注入“虚荣”(vanity)字符串的方法及相关原理,通过 nix-vanity 工具可实现,利用环境变量 VANITY_SEED 尝试不同的存储路径,同时提到了选择前缀长度时要注意搜索空间的指数增长以及代码实现的相关情况等。
关键信息:
- Nix 本身很棒,但 /nix/store 路径单调,可注入虚荣字符串使其更有趣。
- 虚荣地址就是在 /nix/store 路径中放入期望字符串,如 /nix/store/farid8x0yrdpavxxki9vg9spx2xbjb1d-nix-vanity-d915ed2 。
- 示例中通过 nix-vanity 工具对 /nix/store/cdqs8ir4pzwpl512dp86nk9xhq9bfmcv-vanity-path.drv 进行处理,找到带有虚荣字符串的路径。
- 原理是 /nix/store 路径由推导的哈希计算得出,通过注入 VANITY_SEED 环境变量可尝试不同路径。
- 给出了不同前缀长度的预期尝试次数和时间,且代码用 golang 编写并考虑了并发,在 128 核机器上最高可达 300904 drv/s 。
重要细节: - 示例中展示了运行 nix-vanity 工具的过程及输出结果,包括找到前缀后的相关信息。
- 提到下一篇文章可能会详细介绍存储路径是如何从推导文件计算得出的。
- 强调要注意选择的虚荣前缀长度,因为搜索空间会呈指数增长。
- 还提到可以构建整个 /nix/store 都带有期望虚荣字符串的情况。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。