我们对过去两周 HyperBEAM 代码仓库的 edge 分支作了跟踪,为什么要选择 edge 分支呢?那是因为这个分支应该是下个 Beta2 版本推出之前的合并分支。故对该分支的跟踪能够让我们窥探 HyperBEAM 的最新成果。
截至目前,该分支在过去的两周内,总提交约 100+ commits,涉及 84 个文件,新增 7881 行代码,删除 1236 行代码。
一、主要功能更新
1. 认证和安全功能增强 🔐
新增设备模块
dev_auth_hook.erl
(703 行): 新的认证钩子设备,支持请求级别的认证处理
dev_codec_cookie.erl
(473 行): Cookie 认证编解码器
dev_codec_cookie_auth.erl
(252 行): Cookie 认证辅助模块
dev_codec_http_auth.erl
(175 行): HTTP 认证设备
dev_secret.erl
(1147 行): 密钥管理设备,支持安全存储和访问控制
关键更新
- 支持 HMAC-SHA256 签名验证
- 实现了基于 Cookie 的会话管理
- 增强了 HTTP 签名验证机制
- 添加了请求级别的认证钩子
2. 存储系统改进 💾
存储访问控制
- 新增
hb_store_opts.erl
(262 行): 存储选项管理模块
- 实现了存储级别的访问控制机制
- 支持隔离的调度器存储
- 增加了存储压力测试
关键变更
- 消息存储策略调整(从 signed ID 改回 unsigned ID)
- LMDB 存储优化和重构
- 改进了存储缓存机制
3. 进程和计算优化 ⚡
快照功能增强
- 支持进程计算完成后自动创建快照
- 新增委托计算的快照支持
- 支持基于时间和 slot 的快照策略
计算模式改进
- 新增
compute=100
内联参数支持
- 优化了进程执行流程
- 改进了调度器缓存机制
4. 配置系统增强 ⚙️
配置文件支持
- 支持通过文件扩展名自动识别配置格式(JSON、YAML 等)
- 新增
test/config.json
测试配置文件
- 标准化了配置键名(如
router_opts
)
5. 路由和路径处理改进 🛣️
路径语法增强
- 支持双引号路径:
"/path with spaces/"
- 支持默认键语法:
/part=val/
解析为{path: part, part: val}
- 修复了以
^
开头的正则表达式匹配
二、Bug 修复
关键修复
- 认证转发修复: 修复了
auth-hook@1.0
请求执行时的消息转发问题
- 路由选项修复: 修复了路由特定选项的类型模拟问题
- 正则匹配修复: 修复了以
^
符号开头的路径正则表达式支持
- ELMDB 修复: 防止在未找到时的 panic
- 调度器缓存修复: 确保消息首先使用标准存储加载
- 单例构建修复: 修复了
hb_singleton
的do_build
函数
三、性能优化
- 存储性能
- LMDB 存储实现简化和优化
- 同步 API 改进
- 缓存机制优化
- 日志优化
- 清理了过长的日志输出
- 改进了错误日志格式
- 增强了调试信息的可读性
- 进程管理
- 每次计算请求完成后强制快照
- 支持周期性检查点
- 优化了进程缓存策略
四、新增测试
- Cookie 认证测试向量(764 行)
- 存储访问控制测试
- 调度器存储压力测试
- Lua 测试改进
五、开发者体验改进
- 调试功能
- 增强的事件分析器
- 改进的追踪日志
- 更好的错误信息展示
- UI 改进
- HyperBuddy 仪表板增强
- 新增控制台控制功能
- 样式更新(42 行 CSS)
六、重要回滚
- 消息存储策略回滚: 撤销了"主要通过签名 ID 存储消息"的临时更改(PR #412)
七、贡献者
主要贡献者:
- Sam Williams(大部分提交)
- Ayush Agrawal(测试和配置改进)
- Tom Wilson(ELMDB 修复)
- Dhia Gharsallaoui(边缘案例修复)
八、部署建议
低风险更新 ✅
- 配置文件格式支持
- 路径处理改进
- Bug 修复
中等风险更新 ⚠️
- 存储访问控制(需要测试权限配置)
- 快照策略变更(可能影响性能)
需要关注的更新 ⚡
- 认证系统变更(新的认证机制需要配置)
- 消息存储策略调整(虽然已回滚,但需要验证)