快速回顾
出席: ant, cervantes, Ch0Hag, duck, jrandom, keysersoze, MrEcho, mule, Nightblade, peer, polecat, postman, protokol, Ragnarok
会议记录
13:26 <jrandom> 0) 嗨 13:26 <cervantes> 让我们点菜前先看看菜单 :P 13:26 <jrandom> 1) 0.4.1.4 13:26 <jrandom> 2) 流式库 13:26 <jrandom> 3) BT 进展 13:26 <jrandom> 4) addressbook.py 13:26 <jrandom> 5) ??? 13:26 <jrandom> 0) 嗨 13:27 * jrandom 挥手 13:27 <Ragnarok> 嗨 13:27 * cervantes 挥手 13:27 <jrandom> 状态说明已发布 @ http://dev.i2p.net/pipermail/i2p/2004-November/000485.html 13:27 <keysersoze> 嗨 13:27 <+polecat> 5) 可以是 DHT(分布式哈希表)吗,比如那个 bamboo 的东西? 13:27 <jrandom> (是啊,我迟到了) 13:27 <jrandom> 酷,polecat 13:27 * polecat 又咬手指了! 13:27 <jrandom> 好,进入 1) 0.4.1.4 13:28 <+Ch0Hag> 0.4.1.4 死得比应该的还频繁 13:28 <+Ch0Hag> 比如——完全不该死 13:28 <jrandom> 崩溃? 13:28 <+Ch0Hag> 不过也可能是 kaffe 的锅。 13:28 <jrandom> 是掉了你的 IRC 连接,还是重启了 router? 13:28 <jrandom> 啊,你在用 kaffe? 13:29 <+Ch0Hag> router 13:29 <+Ch0Hag> 是的。 13:29 <+Ch0Hag> 总得有人用嘛 :) 13:29 <jrandom> 在 kaffe 上我得把默认内存用量翻倍(启动时给它加个 -mx128m) 13:29 <+polecat> 呃! 难怪! 我把 hawk 给屏蔽了。 13:29 <jrandom> 嗯,这阵子至少有 3 个人在用 kaffe 13:30 <jrandom> 除此之外,0.4.1.4 对你们来说运行得如何? 13:30 * polecat 在用 kaffe……目前不知道有更好的 JVM。 13:30 <jrandom> 早期反馈不错,不过最近没怎么听到消息 13:30 <+Ch0Hag> 我之前用 64,我试试 128 13:30 <Ragnarok> 看起来不错 13:30 <keysersoze> jrandom:我这边没什么大问题 13:30 <@duck> 最近一次大的 IRC 故障是我这边的 13:30 <+Ch0Hag> 对,而且很多是 OOM(内存耗尽) 13:31 <@duck> 另外我觉得它有点不稳定(自从我启用了带宽限制以来),不过我没有证据 13:31 <jrandom> 你机器上的限速有点成了瓶颈,比如你收到的每条消息都要触发发送 20 多条消息 13:32 <@duck> 啊 13:32 <jrandom> 不过我同意,IRC 最近有些颠簸 13:32 <cervantes> 在我的 IBM JVM 上,0.4.1.3 一直非常稳定,所以这阶段我没升级 13:32 <cervantes> (已运行 22 天) 13:32 <jrandom> 不错,cervantes 13:32 <jrandom> duck:[在此插入对新流式库的期待评论] 13:33 <cervantes> baffled 的 IRC 服务器要稍微没那么颠簸 13:33 <jrandom> 对,这是个不错的衡量指标 13:33 <keysersoze> cervantes: 他跑的是哪个版本?(你知道吗?) 13:33 <ant> <dm> 流式库会对 IRC 有影响吗,还是说消息太小了无所谓? 13:33 <@duck> 这周我是一只乖鸭,所以我会把限额调高一点 13:33 <jrandom> 我查查,keysersoze 13:33 <jrandom> :) 13:33 <+polecat> 我只有 11 小时的在线时间。 ;.; 13:34 <jrandom> keysersoze:0.4.1.4 13:34 <keysersoze> jrandom:;) 不过等他在的时候可以直接在这儿问他 13:34 <keysersoze> 好 13:34 <jrandom> dm:新的流式库会提升健壮性并处理失败,但显然不会提升 IRC 吞吐量 13:34 <jrandom> (router 版本会发布在 netDb 里,我知道哪些 router 是他的) 13:34 <ant> <dm> 那很好 13:35 <jrandom> 好,关于 0.4.1.4 我们还有别的吗? 13:35 <jrandom> 如果没有,简要转到 2)流式库进展 13:36 <keysersoze> 没有 13:36 <jrandom> 正如说明里提到的,有新消息时会公布 :) 13:36 <+polecat> 有了流式库,我们能做以前做不到的什么事? 13:36 <Ragnarok> 更快下载大文件 13:36 <Ragnarok> 以及把网络打到宕机的地步 :) 13:36 <jrandom> polecat:传输任意大的文件,传输速率> 4KBps 13:37 <+Ch0Hag> 以及/或者更可靠? 13:37 <jrandom> Ragnarok:我现在正在做的就是如何“不”对网络进行DoS ;) 13:37 <+protokol> 我注意到,长时间下来,如果我在 eepIRC 上丢了连接,重连总是失败,但如果我停几分钟再连就没问题 13:37 <+polecat> 它会提升传输速率? o.O 13:37 <jrandom> polecat:会的。当前的流式库使用固定的 1 个分组窗口——要等收到 ack 才会发送下一条消息 13:37 * polecat 朝 protokol 点头,看来是这样。 13:38 <ant> <dm> 流式库会让一类新的基于 TCP 的应用能够在 I2P 上可用。 13:38 <Ragnarok> jrandom:啊,太好了。我对那事有点担心 :) 13:38 <ant> <dm> 这是市场部的说法。 13:38 <jrandom> 我只能说新库的吞吐量很有希望。 13:39 <jrandom> 呵呵,dm 13:39 <keysersoze> jrandom:就像普通 TCP 的扩展那样,即使还没收到 ACK,发送端也会继续发,直到达到某个数量为止? 13:39 <+polecat> jrandom:啊,我明白那可能会带来问题…… 13:39 <jrandom> 对,keysersoze,直到(滑动)窗口大小的上限 13:39 <jrandom> (做那些拥塞控制/拥塞避免的东西) [/挥舞手臂] 13:40 <+polecat> 我也能看出这可能有拥塞问题。如果连接断了还发出很多分组的话。 13:40 <cervantes> 很期待看看基于新流式库和旧的“没那么流”的库在 I2P 上跑 BT 的基准对比 13:40 <jrandom> 嗯,cervantes 13:41 <jrandom> polecat:那是最大的风险——要防止网络泛洪,所以我们才谨慎部署 13:41 <ant> <dm> 我有个 bug 要报告。到 5)的时候提醒我。 13:41 <cervantes> jrandom:从应用的角度看,切换的透明度有多高? 13:42 <keysersoze> polecat:当前的计划会实现“慢启动”吗?也就是窗口先是 1,然后谨慎增到 2,只有在良好时再到 3,等等,直到某个最大值? 13:42 <+polecat> 0.4.1.4 使用流式库了吗,还是还没部署? 13:42 <jrandom> cervantes:到 0.4.2 发布时,不需要改代码。你现在就可以用流式库,只要在环境里指定一个神奇的标志位就行了 :) 13:42 <cervantes> polecat:那会在 0.4.2 上提供 13:42 <ant> * dm 大家一拥而上冲向 jrandom。 13:42 <jrandom> 它现在就已经在你那里了——看 streaming.jar 13:42 <jrandom> 但默认禁用 13:42 <ant> <dm> “flag!flag!flag!” 13:43 <keysersoze> jrandom:哎呀拜托,开开恩告诉我们是哪个环境变量吧 ;) 13:43 <jrandom> 不过,这个流式库是*不向后兼容*的 13:43 <jrandom> 也就是说你不能用它来跑 IRC 13:43 <cervantes> 我有个早期的 .1.3,记得吧 ;-) 13:43 <jrandom> 除非 duck 另外跑一个 newStreamingLib 的目标地址 13:43 <+polecat> 对……那最好就同步切换,而不是各自切换。 13:43 <jrandom> 嗯 13:43 <+Ch0Hag> 我觉得这个标志位属于那种“找不到就说明你不需要它”的类型。 13:43 <ant> <dm> duck:看在上帝的份上,照做吧!!! 13:43 <+Ch0Hag> 就像 GCC 里多数那种…… 13:43 <jrandom> 没错,Ch0Hag :) 13:44 <jrandom> dm:还有些别的东西要测试 13:44 <jrandom> 比如今天早上 mule 在帮忙用 FUQID 测试 13:44 <keysersoze> jrandom:那会影响现有 I2P 目标在 hosts.txt 里的键吗? 13:44 <mule> 错过会议了。夏令时结束了 :(. 13:44 <jrandom> (而且 FUQID 会做些邪恶的事儿 :) 13:45 <jrandom> 嘿,mule,我也一样 :) 你正好赶上 13:45 <ant> <dm> mule:你还没错过第 5)部分????? 13:45 <+Ch0Hag> 哦,说到 fuqid,stasher 有消息吗? 13:45 <ant> <dm> 鬼知道呢,???? 也许是:GOTO 1 13:45 <jrandom> keysersoze:不会,流式库不涉及那部分 13:45 <+Ch0Hag> 还是说那是个足够大的话题,等到 5 再谈? 13:45 <jrandom> Ch0Hag:自九月以来没人收到 aum 的消息,另外也没人再做 stasher 了。 13:46 <jrandom> (不过 5)??? 里还有别的 DHT 要讨论,我听说的) 13:46 <+Ch0Hag> 哦。 13:46 <+Ch0Hag> 扫兴。 13:46 <+Ch0Hag> Freenet 的开发者没有把他们的竞争对手……清除掉吧? 13:46 <+Ch0Hag> :) 13:46 <jrandom> 呵 13:47 <+polecat> 暗杀政治的首次应用。 x3 13:47 <+Ch0Hag> 总之我没别的了,在到 5 之前我就不插话了 13:47 <jrandom> 好,流式库这边有很多事情,但讨论得晚点儿 13:47 <jrandom> 除非还有别的,否则我们可以进入 3)BT 进展 13:47 <cervantes> </evasion> 13:48 <ant> <dm> 难道大家不都希望 jrandom 采用 toad 的部署流程吗? 13:48 <ant> <dm> 构建 3435:流式库尝试 13:48 <jrandom> duck:ping? 13:48 <ant> <dm> 构建 3436:流式库尝试 2 13:48 <@duck> pong 13:48 <ant> <dm> 构建 3436:流式库尝试 3 13:48 <jrandom> 客气点 13:48 * duck 拿起话筒 13:48 <Ragnarok> 不,不,我们不希望 13:48 <@duck> dinoman、Ragnarok 和我一直在做 BT 客户端。 13:48 <@duck> - BT 协议已分析,变更说明见 http://duck.i2p/i2p-bt/txt/i2p-bt_protocol.txt 13:48 <@duck> - dino 修改了 phpbt,信息在 http://duck.i2p/i2p-bt/txt/tracker.txt 13:48 <@duck> dino 让客户端能和 tracker 通话了,R 和我做了些改进。 13:48 <@duck> 整个 tracker <-> client 的东西都能跑了 13:48 <@duck> 但我们卡在了 Python 的 SAM 库上…… 13:49 <@duck> Connelly 一直在帮忙,但他也很忙 13:49 <@duck> 而且 aum 不见了 13:49 <+polecat> 我仍然震惊 BT 居然能在 i2p 上运行…… 13:49 <@duck> 所以我扔掉了 pysam,重写了 BT 的 RawServer.py,现在算是能跑了。 13:49 <jrandom> (w00t!) 13:49 <@duck> 最新消息:频道 #i2p-bt(尤其是主题里有最新发布信息) 13:49 <@duck> 现在我在加大量日志支持,好抓住一些小瑕疵 13:50 <Ragnarok> 这比原版 RawServer.py 好很多 13:50 <peer> duck:那现在可以开始公测了吗? 13:50 <@duck> (比如在 EndGame 阶段要超时重试才能拿到最后几块) 13:50 <@duck> peer:是的 13:50 <@duck> 有个小讨论点: 13:51 <@duck> 目前它兼容 Python 2.2(及以上) 13:51 <@duck> (BitTorrent 本身似乎也是如此) 13:51 <@duck> 不过日志那部分需要 2.3…… 13:51 <cervantes> 的确如此 13:51 <@duck> 你们觉得这有多糟? 13:51 <jrandom> 我的 FreeBSD 和 Linux 机器上都有 2.3 13:51 <ant> <dm> 糟吗? 13:52 <jrandom> (尽管它们都是去年内装的) 13:52 <Ragnarok> 还有主流发行版还带 2.2 吗? 13:52 <@duck> 我上次看,debian-stable 似乎还带 2.2 13:52 <jrandom> 啊,我用的是 debian unstable 13:52 <@duck> 不过这并不意外 13:52 <+Ch0Hag> Debian 同时带 2.3、2.2、2.1,甚至可能还有 2.0 13:52 <+Ch0Hag> 一起带。 13:52 <Ragnarok> 除了 Debian stable,我想…… 13:53 <+Ch0Hag> 这一点我不确定。 13:53 <jrandom> 能支持 2.2 会不错——难道没有适合它的好用日志库吗? 13:53 <Ragnarok> 蠢蠢的 debian 13:53 <@duck> jrandom:你可以把 2.3 的库打包进去 13:54 <Ragnarok> 日志能不能直接做成可选的? 13:54 <@duck> 我想可以 13:55 <jrandom> 嗯,这其实是提升开发效率的工具,所以以对开发者最方便为准 13:55 <ant> <dm> 等 I2P + BT 变得流行了再操心这个吧。 13:55 <keysersoze> 这个日志对谁是必须的?我猜对终端用户不是吧,所以部署时有些平台不能打日志也无所谓,对吗? 13:55 <ant> <dm> 到那时也许 2.3 已经是标准了 13:55 <jrandom> 支持 2.2 会比较好,但如果要求 2.3 也不算太糟 13:55 <cervantes> duck:所以 tracker 的 peer announce 列表可以输出 i2p 的 destination,而不是机器的 IP? 13:56 <@duck> 好,我们会尝试把日志库抽象出来,2.2 就用 stdout 13:56 <@duck> cervantes:http://duck.i2p/i2p-bt/diffs/phpbt-i2p.diff 13:56 <jrandom> keysersoze:你希望在客户端机器上部署日志,这样当出现 bug 时,开发者能拿到详细日志 13:56 <jrandom> 说得对,duck 13:56 <cervantes> 谢了 13:56 <+Ch0Hag> 嘿,如果有人还感兴趣,Woody 有 Python 1.5、2.0 和 2.1 13:56 <+Ch0Hag> :) 13:57 <@duck> 嘿 13:57 <@duck> 好,那我建议就要求 2.3 13:57 <@duck> 以及去他的 woody 13:57 <cervantes> 我想我这边卡在 1.5 和 2.2 13:57 <jrandom> 对,没必要理会 2.1 13:57 <cervantes> (该升级了) 13:57 <jrandom> 呵 13:57 <+Ch0Hag> 大多数 Debian 用户也是这么觉得的 13:58 <Ragnarok> addressbook.py 需要 2.3 13:58 <@duck> 有一些有趣的子项目: 13:58 <jrandom> 啊好,太棒了,Ragnarok 13:58 <@duck> 研究 i2p 的最佳设置 13:58 <+polecat> 那个小东西也需要 2.3? 13:58 <keysersoze> jrandom:我同意,不过像现在这样的小网络(大约 100 个节点),让一些测试者升级到 2.2 或 2.3 不是什么问题。而且一旦最明显的 bug 被踩平了,新的“真正的”终端用户其实不太需要日志。所以我的意思是:这个阶段日志不是问题,所以我们意见一致 ;) 13:58 <cervantes> 一年前我在拆 BT 的时候,这台机器通过 tracker 有时能跑到 6MB/秒…… 13:58 <+polecat> 奇怪……那 2.2 几乎是残废了吧。 13:58 <Ragnarok> 2.3 的 urllib 代理支持更好 13:58 <@duck> 也要移植标准的 BT tracker 13:58 <cervantes> 我是说种子 13:59 <Ragnarok> 在 2.2 上也许能跑,但代价太大了 :) 13:59 <+polecat> 啊,那很重要,对吧。 13:59 <jrandom> duck:在 0.4.2 出来之前,研究最佳设置会很难 13:59 <@duck> 对 14:00 <jrandom> 不过移植 tracker 会很棒。你们实现了生成 .torrent 的工具了吗,还是手动做的? 14:00 <@duck> 啥? 14:00 <cervantes> 客户端对 peer 接入速率、超时、最小/最大 peer 数等有一堆不错的调节项 14:01 <cervantes> jrandom:我觉得那不需要任何修改 14:01 <jrandom> duck:.torrent 会引用 tracker 的 i2p destination,对吧? 14:01 <@duck> 目前我们提供:btdownloadheadless.py + btmakemetafile.py + btshowmetainfo.py 14:01 <jrandom> 还是说它引用的是名字? 14:01 <cervantes> 它只是一个 URL 和一堆 SHA1 哈希 14:01 <@duck> 不过 btmakemetafile.py 和 btshowmetainfo.py 没有修改 14:01 <jrandom> “一个 URL”是难点 :) 14:02 <@duck> 所以你可以用别的工具 14:02 <@duck> 现在是 http://duck.i2p/phpbt/announce.php 14:02 <jrandom> 好,酷 14:02 <@duck> 我想你也可以用 http://i2p/bigbase64/announce.php 14:02 <+protokol> 有计划让其他客户端支持 eepTorrent 吗?我喜欢 azureus 14:02 <@duck> 很多 14:02 <cervantes> jrandom:我看过的早期版本对 announce 字符串的 URL 不做校验 14:03 <ant> <dm> eep 又是啥缩写来着? 14:03 <cervantes> 你可以往里塞任何东西 14:03 <jrandom> 嗯,值得检查一下那样是否可行,duck(以防 phpbt 做了蠢的 URL 重写之类) 14:03 <cervantes> dm:去论坛的术语表里找找 14:03 <@duck> 或许该开个 i2p-bt 论坛了? 14:03 <keysersoze> duck:特别是当新用户还没在 hosts.txt 里“登记”就想托管 tracker 的时候,必须 能在里面放 base64 14:03 <+Ch0Hag> Eye Eye Pee? 14:03 <jrandom> 那就很酷,duck 14:03 <@duck> (forum.i2p 上的论坛板块) 14:04 <ant> <dm> cervantes:真有帮助! 14:04 <cervantes> duck:好,没问题 14:04 <@duck> keysersoze:我们会研究 14:04 <jrandom> 不过,就现在这样已经相当牛了 14:05 <jrandom> 每个 peer 4KBps 也不是什么太大的问题 14:05 <ant> <dm> 现在几点了?“沿路走两个街区就有个钟” 14:05 <cervantes> 继续推进的话,也许我们该建个独立的论坛空间,让大家像 suprnova 那样发布文件 14:05 <@duck> eeprnova 14:05 <jrandom> cervantes:还有评论什么的 :) 14:05 <keysersoze> jrandom:切换到 streaminglib 会需要对当前的 Python I2P-BT 代码做大量修改吗? 14:05 <+polecat> 我在 IPv4 的 bittorrent 流上也从来拿不到超过 4KBps…… 14:05 <peer> 如果有个命令行参数用来设置 i2p 服务器地址就好了,这样你就能在网络里的其他机器上跑它 14:05 <jrandom> (不过我觉得最好把它放在 forum.i2p 之外,或许) 14:06 <jrandom> keysersoze:改动为零 14:06 <@duck> 请注意,i2p-bt 的 tracker 可扩展性会差很多 14:06 <@duck> 因为它们必须发送臃肿的大密钥 14:06 <Ragnarok> polecat:你肯定在 NAT 后面 14:06 <keysersoze> polecat:((OT)试试今天的 firefox 种子;)) 14:06 <cervantes> jrandom:对。 14:06 <@duck> 而普通的 tracker 最近改成了每个 peer 只发 6 个字节 14:06 <jrandom> peer:i2p 服务器地址? 14:07 <jrandom> peer:我用 i2p-bt 配合我的 SAM 桥,在本地访问一个远端的 router 14:07 <jrandom> 哦,不过如果 CLI 里有参数可以设置 SAM 桥的位置和 eep 代理的位置,那就不错了,嗯 14:07 <peer> jrandom:对 14:07 <keysersoze> duck:我们能压缩 host-key 吗?(随便问问……) 14:08 <peer> 用一个 CLI 参数 14:08 <jrandom> (而不是每次发布后都去改代码 :) 14:08 <@duck> keysersoze:用二进制替代 base64 会稍微缩小一点 14:08 <@duck> 大概 15% 14:08 <@duck> 不值得 14:08 <keysersoze> duck:我同意。 14:09 <ant> <dm> cervantes:论坛的术语表在哪?我在 http://forum.i2p.net/ 上什么都没看到 14:09 <Ragnarok> 能用主机名吗? 14:09 <jrandom> Ragnarok:主机名不是全局唯一的 14:09 <@duck> Ragnarok:不想走那条路 14:09 <cervantes> dm:只对已注册用户显示 14:10 <ant> <dm> cervantes:哦太好了!那我去谷歌上搜 eep! 14:10 <Ragnarok> 有道理 14:11 <cervantes> dm:它是 IIP 的一个读音片段 14:11 <cervantes> 据说是这样 14:11 <jrandom> 好的,你们在 BT 这块儿做得非常棒,期待听到(也能用到)更多成果 :) 14:11 <ant> <dm> cervantes:不是个缩写吗? 14:12 * cervantes 有半个 TB 的电影和电视节目要分享 14:12 <jrandom> 关于 i2p-bt 我们还有别的要讨论的吗? 14:12 <cervantes> dm:据我所知不是 14:12 <@duck> (别忘了 #i2p-bt) 14:12 <jrandom> 对,#i2p-bt,终于有动力让大家从 freenode 搬过来了 :) 14:12 <ant> <dm> 好的。谢谢您。 14:13 <+Ch0Hag> 好像这个伟大的网络还不够成为动力似的…… 14:13 <jrandom> 好,如果没有的话,我们继续到 4)addressbook.py 14:13 <jrandom> Ragnarok:给我们介绍一下? 14:13 <Ragnarok> 耶 14:14 <Ragnarok> 嗯,好。 addressbook.py 是一个可订阅通讯录系统的初次尝试。 14:14 <Ragnarok> 目前它相当丑,但能用 14:14 <Ragnarok> 你可以在 ragnarok.i2p 上获取 14:14 <peer> 我能就命名提个建议吗?我觉得最好的方法是:eepsite 之间的链接用 base64,但让用户给站点自定义书签名称,而不是搞任何中心化的命名系统 14:14 <Ragnarok> 嗯…… 14:14 <Ragnarok> 有问题吗? 14:15 <+postman> Ragnarok:说说“丑”的定义吧 :) 14:15 <jrandom> Ragnarok:太赞了 14:15 <ant> <dm> jrandom:不是个问题 14:15 <+polecat> 我们刚才在说啥来着? @.@ 14:15 <peer> 有点像 freenet 网页前端上的书签,但这里用的是 URL 14:15 <cervantes> Ragnarok:它是全命令行的,还是有 GUI? 14:15 <Ragnarok> 看看就知道了,很丑的 :) 14:15 <jrandom> peer:同意,不过我们需要作者工具 14:15 <cervantes> 没有截图,所以我就没兴趣走了 ;-) 14:15 <jrandom> peer:不过 ?i2paddresshelper 有帮助 14:15 <+postman> Ragnarok:好,谢谢——我会去看看 14:16 <+polecat> 切,GUI 是给足球妈妈用的! 14:16 <Ragnarok> 全是命令行。 它被设计成以守护进程运行。 它在 Windows 上还不能作为守护进程跑,但那是我下一个任务。 14:16 <Ragnarok> 除了 CLI 工具之外,所有交互都通过配置文件完成。 14:17 <jrandom> 或许命名领域的下一步,是做个 Web 界面来管理条目和订阅? 14:17 <cervantes> 那你基本上是在聚合你的 hosts 文件吗? 14:17 <Ragnarok> 是的 14:17 <cervantes> 好的……酷 14:17 <Ragnarok> Web 界面会很棒。不过不会是我来写 :) 14:17 <jrandom> 还要有合并和冲突管理 14:18 <+polecat> 除了在日志里嚷嚷之外,冲突管理还能做什么? 14:18 <jrandom> 是啊,引擎本身很棒,也许我们能找别人来做它的 Web 端 :) 14:19 <Ragnarok> 没有。如果你想解决冲突,得手工来 :)。不过现在稍微容易一些了。 14:19 <jrandom> polecat:据我所知,就是报警,并且永远不覆盖已有条目 14:19 <jrandom> (呃,他说的就是) 14:19 <cervantes> 要是做成 Firefox 的侧边栏插件就好了…… 14:19 <+polecat> 是的,我也是这么想的。 14:19 <cervantes> 这个我可以放进我的 i2p 工具栏里 14:20 <Ragnarok> 用户的改动永远不会被覆盖,所以对攻击有一定的防护 14:20 <jrandom> 而且你应该只订阅相对可信的 peer 14:20 <Ragnarok> 的确 14:20 <cervantes> 也许可以加个“锁定条目”的功能? 14:20 <cervantes> (也就是把它们移到 userhosts) 14:21 <Ragnarok> 条目永远不会被修改 14:21 <+polecat> 我喜欢 myhosts.txt 这种概念,用来放你自己认可的条目。 14:21 <cervantes> Ragnarok:啊抱歉,你刚才说过了 14:22 <Ragnarok> myhosts.txt 是个肮脏的 hack,用来绕过一个竞态条件,但不知为何大家都喜欢把它当成一种界面上的东西 :) 14:22 <jrandom> 如果大家有兴趣,有办法让 i2ptunnel / sam / 等等不止读取 hosts.txt 和 userhosts.txt 14:22 <jrandom> (不过前提是有充分的理由这么做) 14:22 <cervantes> Ragnarok:你应该假装那是有意为之 ;-) 14:23 * duck 建议把 hosts.txt / userhosts.txt 抽象出来 14:23 <+polecat> 我用 Perl 写的 addressbook.pl 版本支持 myhosts.txt 这个东西。 14:23 <Ragnarok> 是的,那会是大改写的一部分 :) 14:23 * polecat 提醒 duck,你得修改 i2ptunnel 和 sam 才能做到。 14:23 <Ragnarok> 不过首先,我想让 Windows 上的功能对齐。 14:24 <jrandom> 对的,duck。比如要是能把不同的 destination 标成“oldLib”和“newLib”(等等),那对 0.4.2 会很有用 14:24 <@duck> polecat:你可以把最终结果写到一个叫‘hosts.txt’的东西里 14:24 <cervantes> 理想情况下你想要一个层级化的小型本地地址数据库,方便分类 14:24 <@duck> 但在用户层面使用别的结构 14:24 <+polecat> 最终结果写到 userhosts.txt 14:24 <+polecat> 还有 eepsite 上一个叫“hosts.txt”的文件,它不是系统的 hosts.txt。 14:24 <@duck> 这就让人困惑了 :) 14:25 <Ragnarok> 我就喜欢尽可能让人困惑 :) 14:25 <MrEcho> 希望在月底把 DNS 做完 14:25 <@duck> 好,那就让名字依赖于内容的校验和 14:25 <cervantes> addressbook.txt? :) 14:25 <Ragnarok> 发布出去的通讯录就叫 hosts.txt,因为在 dev.i2p 上它就是这个名字 14:25 <+polecat> 可以把 Ragnarok 的 hosts.txt 文件叫别的名字。 大家只需订阅那个别的文件名就行。 14:26 <Ragnarok> 的确,这个是个配置项 14:26 <+polecat> 也就是说,比如访问 http://polecat.i2p/addressbook 而不是 http://polecat.i2p/hosts.txt 14:26 <MrEcho> 告知一下,我的 DNS 不碰 hosts 文件……就像真正的 DNS 一样 14:27 <+polecat> 哦对,还有那个。>.< 14:27 <@duck> 我的 DNS 能带来世界和平 14:27 <jrandom> MrEcho:值得探索一下互操作性 14:27 <+polecat> 有 /etc/hosts,有 i2ptunnel 和 sam 使用的、jrandom 的 hosts.txt,还有现在由 Ragnarok 发布的 hosts.txt。 14:28 <Ragnarok> 我觉得凡是不在本地解析名字的,在 i2p 上都不会有可接受的性能,不过也欢迎你证明我错了 :) 14:28 <mule> 恶劣的环境 :) 14:28 <MrEcho> 我可以让它去更新 hosts 文本,但我希望把东西加在其他代码里 14:28 <jrandom> CVS 里有一些代码(在 apps/myi2p 下),用来按二月那封邮件里发布的数据加载/存储通讯录条目,如果有人感兴趣的话 ;) 14:29 <+polecat> ? 14:29 <MrEcho> 我已经看过了,jr 14:30 <jrandom> polecat:http://forum.i2p.net/viewtopic.php?t=141#419 14:30 <+polecat> 你是说在 apps/myi2p/java/src/net/i2p/myi2p 下? 14:30 <jrandom> 嗯,是的,如果你想具体点儿的话 ;) 14:30 <+polecat> 更像是可怕的冗余。 ;3 14:31 <jrandom> 不错,MrEcho,不过我建议其他命名系统也用那种文件格式,如果大家要考虑替换 hosts.txt 的话 14:31 <jrandom> polecat:这是有充分理由的(而且依我拙见,那路径名里可没有冗余 ;) 14:31 <Ragnarok> 很好。我会看看的 14:32 <ant> <dm> 至少它不再在里面把 internet 说三遍了 14:33 <jrandom> 它也得实现成一个 net.i2p.client.naming.NamingService——从那个本地 DB 里加载的东西,但这不该太难 14:33 <+polecat> 哎呀! 不不不要 MX 记录……不要 CNAME…… 14:33 <jrandom> 不过一个名字有多个 destination 是个好主意 14:33 <ant> <janonymous2> 我偏好通讯录/DNS 的混合体 14:34 <jrandom> 通讯录本来就是一种域名系统 :) 14:34 <+polecat> jrandom:你得叫它 myi2p 几次才行? 既然已经叫 myi2p 了,再叫 i2p 有多必要? 还有,那一团糟是不是 Java 的锅,有什么疑问吗? 14:34 <jrandom> polecat:并不是所有 myi2p 代码都会用 Java 写。 14:34 <@duck> 回你的山洞去吧,你这 Perl 巨魔 :) 14:34 <+polecat> 我同意这些都是必要的,不怪你 jrandom,是怪 Java 和 Ant。 14:35 <jrandom> polecat:而且 i2p 的代码库在 net.i2p 命名空间下是唯一的,因为我们并不控制 net.myi2p 命名空间 :) 14:35 * polecat 哼了一声,蹲到了桥下。 14:35 <ant> <dm> polecat:这叫强迫症 14:35 <jrandom> 呵 14:35 <jrandom> 这叫软件工程 ;) 14:36 <+polecat> 没错,但为什么要把一切都放在一个模仿命名空间的目录结构里? 14:36 <+polecat> 只要在文件里声明……“这个文件属于 net.i2p 命名空间”不就行了 14:36 <jrandom> 不过总之,关于 Ragnarok 那个超赞的命名系统还有别的吗? :) 14:36 <@duck> 很给力 14:36 <Ragnarok> 谢谢你们 :) 14:36 <+polecat> Asseth Kickius. 14:36 <jrandom> polecat:i2p 里有 1340 个 Java 文件 14:37 <@duck> 当我想访问一个 eepsite,发现主机名已经传播开了,我非常“震惊” 14:37 <Ragnarok> 呵呵 14:37 <jrandom> :) 14:37 <+polecat> 好吧,我不是说要把它们都挤在一个地方。 只是 1340 个文件看起来实在太多了,里面就没有冗余代码吗? o.O 14:38 <Ragnarok> 有人知道在 Windows 下通过 PID 杀进程的命令吗? 14:38 <@duck> 比如 TCP 栈的重实现? :) 14:38 <+polecat> 更别提功能完备的 Web 服务器了。 c.c 14:38 <jrandom> 呵 14:38 <jrandom> 哦,让我跳过 Jetty 的代码…… 14:39 <keysersoze> (现在网络上有 91 个节点!) 14:39 <ant> <dm> ragnarok:kill 14:39 <jrandom> 好,router/ 和 core/ 里有 389 个 14:39 <Ragnarok> 那个命令在哪些版本上存在? 14:39 <+polecat> 对一个寒酸的 router 来说还是太多了……不过综合考虑也还不算差。 14:39 <ant> <dm> 不确定……我这儿跑的是 XP。 14:39 <cervantes> Ragnarook:只有你装了支持工具光盘里的文件才行 14:40 <Ragnarok> 啊 14:40 * duck 重新聚精会神 14:40 <cervantes> Ragnarok:否则去下 sysinternals 的 pskill 14:40 <jrandom> 好,关于 4)addressbook.py 还有别的吗,还是我们进入 5)??? 14:41 <cervantes> Ragnarok:http://www.sysinternals.com/ntw2k/freeware/pstools.shtml 14:41 <jrandom> 好,那就是 5) 14:41 <Ragnarok> 不错,谢谢 :) 14:41 <jrandom> polecat:如果我没记错,你想提一下 bamboo-dht? 14:41 <MrEcho> ?现在在开会 14:41 <+polecat> :高喊:DHT DHT USA USA~/o 14:42 <+polecat> 的确。我正查点东西…… 14:42 <jrandom> 是的,MrEcho 14:43 <+Ch0Hag> 5? 14:43 <jrandom> 5)??? 14:43 <MrEcho> 呵 14:43 <+Ch0Hag> 哦对,我发现了个无关紧要的语义 bug 14:43 <jrandom> 怎么了,Ch0Hag? 14:43 <+polecat> bamboo 源码里有 79 个 Java 文件。 总共有 253 个文件。 14:44 <+polecat> 整个项目在构建前,源码和支持文件占 4.6 兆字节。 14:44 <jrandom> 天哪 14:44 <+Ch0Hag> 在 /netdb.jsp 上,“我们”的信息是端口在前,而其他 peer 是主机在前 14:44 <+Ch0Hag> 在 Addresses 那一行 14:44 <jrandom> 你玩过它了吗,polecat? 14:44 <jrandom> Ch0Hag:顺序是随意的 14:45 <+Ch0Hag> 还有,0.4.1.4 在 Kaffe 下用了 128MB,已经跑了一个小时 14:45 <+polecat> 我还没太多机会。 我玩了 circle,得到一个挺漂亮的 PGP 公钥图形表示,但 bamboo 还没玩。 14:45 <ant> <dm> 啊对,ch0hag 那个不重要的 bug 报告提醒了我! 14:45 <ant> <dm> 在配置页面上写着“你应该使用 dyndns 之类的服务,或者把主机名留空。如果你留空,你的 router 会通过询问一个 peer 来自动检测‘正确的’IP 地址” 14:45 <+Ch0Hag> 看起来它们都是主机/端口 14:45 <MrEcho> 正常运行时间:54 小时 内存:23,506KB 14:45 <+Ch0Hag> 但嘿 14:45 <+Ch0Hag> 好像也不是什么大事。 14:46 <ant> <dm> 这对我很棒,因为我用的是动态 IP,等这个功能等了一阵子了,但当我清空后点保存,它会自动再把框填上一个(不正确的)IP 14:46 <cervantes> polecat:你有个 URL 吗? 14:46 <ant> <dm> 多谢! 14:47 <jrandom> 嗯,dm,它不接受你把它设为空? 14:47 <jrandom> 那肯定是个实质性 bug 14:47 <+polecat> 有的,请稍等。 14:47 <Ragnarok> 如果它只在你有真正的静态主机名时才建议你填,那就好了。 或者干脆没有这个框…… 14:47 <jrandom> Ch0Hag:kaffe 通常保持稳定的大小 14:47 <+polecat> http://bamboo-dht.org/ 14:48 <jrandom> Ragnarok:我在考虑彻底去掉那个框,留给黑客们自己在 /configadvanced.jsp 上添加 14:48 <ant> <dm> 我在意只是因为当我无法让它留空时,说明文字让我觉得自己像个笨蛋 ;) 14:48 <cervantes> polecat:谢了 14:48 <+Ch0Hag> dm:这明显是个智力测试。 14:48 <+Ch0Hag> 你能让它保持空白,就算通过。 14:48 <+polecat> 我还注意到,bamboo 用 jikes 和 kaffe 的 jar 编译,大概 30 秒就好了。 14:48 <+polecat> 不过它用了一些怪变量,JAVAC 和 JAVAHOME,而不是 JAVA_HOME 14:49 <Ragnarok> jr:我觉得这是个好主意。 现在它有点像是新手陷阱。 14:50 <cervantes> dm:你是点保存按钮,还是按回车? 14:50 <ant> <dm> 点保存 14:50 <ant> <dm> * 已更新带宽限制 14:50 <ant> <dm> * 配置保存成功 14:50 <@duck> polecat:你打算更深入地看看吗? 14:51 <+polecat> 当然。 bamboo 似乎是移植到 i2p 的最佳候选,也是我见过最“成体系”的 DHT 项目。 14:52 <+polecat> 当然,重要的是它是否“能跑”。 14:52 <jrandom> 切,谁需要功能啊,关键是和流行词“兼容”! 14:53 <jrandom> 请随时更新进展 14:53 <jrandom> (我同意,这个项目看起来很有前景) 14:53 <@duck> 可能最重要的是它对传输层修改提供了什么 14:54 <ant> <janonymous2> bamboo 有什么门道? 14:54 <jrandom> 嗯,看它是需要 NIO(Java 新I/O)通道还是使用普通套接字 14:54 <cervantes> 呵……bamboo 新闻:“5 Aug Bamboo 现为 100% 纯 Java……使用 Berkeley DB Java 版” “4 Nov Bamboo 不再是 100% 纯 Java……BDB Java 太糟……回到 C” 14:54 <jrandom> (虽然我们可以为 i2psocket 写 NIO 通道,但要花些功夫) 14:54 <+polecat> jrandom:回你的大教堂去吧,Java 石像鬼! X3 14:54 <+polecat> 的确。 如果它需要 TCP 或 UDP,或者更糟…… DNS,那我们可能就麻烦了。 14:54 <+polecat> NIO/ 14:54 <+polecat> NIO? 14:55 <+polecat> 我只知道在 lojban 里 ni'o 是“换个话题”的意思。 14:55 <jrandom> NIO 是 Java 里的 New I/O 库,在 1.4 里加入的 14:55 <+polecat> 我懂了。 即便是普通套接字,SAM 不也有对应的 socket 对象,以及对应的 read() 和 write() 函数吗? 14:55 <jrandom> 是的 14:56 <jrandom> 如果他们用的是普通套接字,那就简单得要死 14:56 <jrandom> (……不管这是什么意思) 14:56 <ant> <janonymous2> bamboo 是啥? 14:56 <jrandom> bamboo-dht.org 14:57 <cervantes> 顺便问一下,pysam 有什么问题? 14:57 * polecat 点头。 14:58 <@duck> cervantes:收发数据 14:58 <cervantes> duck:哦就这些? :) 14:58 <ant> * janonymous2 /me 在他不给力的手机上瑟缩 14:58 <@duck> 以及建立/检测连接 14:58 <+Nightblade> 它没发出去? 14:59 <Ragnarok> 哎 14:59 <@duck> Nightblade:它大概做了点什么 14:59 <+Nightblade> 它到底能用吗? 15:00 <cervantes> duck:对 i2p-bt 论坛板块的命名有什么想法吗? 15:00 <cervantes> 你想要一个自己的顶级板块,下面再分几个子板块吗? 15:01 <Ragnarok> 嗯,我得上路了。 祝会议剩下的时间愉快 :) 15:01 <jrandom> Nightblade:aum 在用它,所以我确定它能用 15:01 <jrandom> 回头见,Ragnarok 15:01 <cervantes> you're = your 15:01 <cervantes> ragnarok 再见 15:02 <ant> <janonymous2> BT 的状态如何? 15:02 <jrandom> janonymous:看会议记录(等发布出来) 15:03 <jrandom> 说到这儿,大家还有别的想在会上提的吗? 15:03 <ant> <janonymous2> 哦,是我不对 15:04 * cervantes 把镀金的 baffer 递给 jr 15:04 * jrandom 蓄力 15:04 <jrandom> ... 15:04 <jrandom> ... 15:04 * jrandom 用*baf*把会议结束了