大家好,又到了每周吐槽时间。
索引:
仅提供翻译,勿添加任何其他内容:
- 0.3.3 & current updates
- NativeBigInteger
- ???
1) 0.3.3
我们在上周五发布了 0.3.3 版本,经过一两天相当不稳定的状况后,现在看起来还可以。虽然不如 0.3.2.3,但我通常能在 irc.duck.i2p 上一次待上 2–7 小时。不过,鉴于我看到很多人遇到问题,我启动了日志记录器并详细监控了情况。简而言之,我们只是使用了超过所需的带宽,导致拥塞和 tunnel 失败(由于测试消息超时等)。
过去几天我又回到仿真器里,在网络中运行了一系列心跳包,看看我们能改进什么,并且基于此,我们将迎来一大批更新:
netDb update to operate more efficiently
现有的 netDb 查询消息最大可达 10+KB,虽说成功的回复更为常见,但失败的回复可能高达 30+KB(因为两者都包含完整的 RouterInfo 结构)。新的 netDb 将这些完整的 RouterInfo 结构替换为 router 的哈希 - 将 10KB 和 30KB 的消息变成 ~100 字节的消息。
throw out the SourceRouteBlock and SourceRouteReplyMessage
这些结构是旧想法的遗留,但并未为系统的匿名性或安全性带来任何价值。通过弃用它们、改用更简单的一组回复数据点,我们大幅缩减了 tunnel 管理消息的大小,并将 garlic encryption 的时间减半。
netDb 更新以更高效地运行
在创建 tunnel 的过程中,代码有点“啰嗦”,因此不必要的消息已被删去。
移除 SourceRouteBlock 和 SourceRouteReplyMessage
用于 garlic routing(大蒜路由)的一些加密代码使用了固定填充,这些固定填充是基于一些我们并未采用的 garlic routing 技术(我在九月和十月编写它时,以为我们会采用多跳的 garlic routing,而不是使用 tunnels)。
我也在尝试看看能否对 tunnel 路由进行一次全面更新,以添加每跳的 tunnel ID。
正如你从路线图中所见,这涵盖了 0.4.1 版本的很大一部分内容,但由于 netDb(网络数据库)的变更意味着会失去向后兼容性,我们不如趁机把一批不向后兼容的事项一次性完成。
我还在模拟环境中运行测试,还得看看能否把每跳(per-hop)的 tunnel ID 那部分收尾,不过我希望在一两天内发布一个新的补丁版本。它将不向后兼容,所以升级过程可能会有些波折,但应该是值得的。
2) NativeBigInteger
Iakin 一直在为 Freenet 团队更新 NativeBigInteger 代码,优化了一些我们并不使用的部分,同时还编写了一些 CPU 检测代码,我们可以用它来自动选择合适的本地库。这意味着我们将能够在默认安装中以单个库的形式部署 jbigi,程序会在无需向用户询问任何信息的情况下自动选择合适的本地库。他还同意发布他的修改以及新的 CPU 检测代码,这样我们就可以把这些内容捆绑进我们的源代码中(太棒了,Iakin!)。我不确定这会在何时部署,但一旦部署我会通知大家,因为已经有 jbigi 库的用户很可能需要一个新的。
3) ???
嗯,过去这一周基本都埋头在写代码,所以没有太多更新。还有其他要提的吗?如果有的话,今晚 GMT 时间晚上9点来 #i2p 参加会议吧。
=jr