简要回顾

出席: ant, bla\_, cervantes, cneal92\_, jrandom, polecat, postman, smeghead, ugha2p

会议记录

13:07 <jrandom> 0) 嗨 13:07 <jrandom> 1) 网络状态 13:07 <jrandom> 2) 0.5 状态 13:07 <jrandom> 3) i2p-bt 0.1.7 13:07 <jrandom> 4) ??? 13:07 <jrandom> 0) 嗨 13:07 * jrandom 挥手 13:07 <+ugha2p> jrandom: irc.duck.i2p 在测试网里也可用并且与这个网络相连吗? 13:07 <+ugha2p> 指这个 IRC 网络 13:07 <jrandom> 每周状态说明已发布 @ http://dev.i2p.net/pipermail/i2p/2005-February/000575.html 13:07 <ant> <Sonium_> Bonjour, sa cette fois de la semaine encore, 13:07 <jrandom> 不,ugha2p 13:08 <ant> <Sonium_> 你在说法语吗,jrandom? 13:08 <jrandom> 呵,是啊,足以证明 babelfish 的能力是有极限的 ;) 13:08 <jrandom> 哈哈,是的,之前有人说 babelfish 翻出的法语还行,但显然这次不行 ;) 13:09 <+ugha2p> 各位 I2P 同好大家好。 13:09 <ant> <fedo2p> 嗨 13:09 <jrandom> 总之,在我们再次 netsplit 之前开始吧 13:09 <jrandom> 1) 网络状态 13:09 <jrandom> 更新请看那封邮件 13:10 <jrandom> 看起来 IRC 一直相当不稳,部分 outproxy 活动也是如此,不过 BT 表现得相当不错 13:11 <jrandom> 除此之外我没什么可补充的了——有人有评论/问题/顾虑吗? 13:12 <ant> <Sonium_> 0.5 会在本周五发布吗? 13:12 <jrandom> 呵,好问题,这就把我们带到 2) 0.5 状态 13:12 <jrandom> 是的,0.5 将在本周五发布 13:13 <jrandom> 测试网络在最新更新下运行得相当好,但还剩下一些文档和小的清理工作要做。我也会尝试把最新的 Jetty 放进去,不过看看情况吧 13:14 <ant> <Sonium_> 问一位英语母语者一个问题:“it will be released”和“it is going to be released”在语义上有什么区别? 13:14 <bla_> 有时候路由似乎有点问题;比如说在 5-10% 的情况下,我得重新加载页面,因为 tunnel 运行不太好 13:14 <smeghead> 我想请求所有参与 BitTorrent 活动的人在周五 0.5 发布前自愿暂停,因为 BT 流量的激增正在拖垮网络的其他流量,尤其是 IRC 13:15 <jrandom> Sonium:后者更为肯定,但大体意思相同 13:15 <bla_> smeghead:我同意,但 0.5 不会解决负载问题,对吧? 13:15 <smeghead> 受影响的不只是 IRC,eepsites 也受到影响 13:16 <ant> <Sonium_> 好的,那我之前一直误解了它们的用法 13:16 <+ugha2p> jrandom:它在交互式流量方面会做得更好吗? 13:16 <jrandom> 0.5 会改变很多动态,并且应该能更干净地处理负载均衡,因为我们现在可以区分不同的 tunnel 拒绝原因 13:16 <ant> <Sonium_> 早该在学校好好听课的 13:16 <jrandom> ugha2p:会,幅度很大 13:17 <+ugha2p> 啊,太好了。 13:17 <jrandom> 另一方面,在很多情况下总体带宽使用会增加,不过随着推进我们会在之后改进这一点 13:18 <smeghead> 还有,请告知我们新来的法语用户这件事,并请他们在周五之前暂缓进行 BT 相关的东西 13:18 <ant> <BS314159> smeghead:就三天。我相信你这三天可以找点别的事做 13:19 * jrandom 可以戳开一个到 spaetz 的 0.5 ircd 的 inproxy :) 13:20 <jrandom> 或许更简单的办法是建议 BT 用户利用这个能力,通过降低他们的 tunnel 长度来减少网络负载 13:21 <jrandom> (包括入站 tunnels,可通过 BT 的命令行配置,以及出站 tunnels,可在 http://localhost:7657/configclients.jsp 上配置) 13:21 <polecat> 是啊,他们更需要的是模糊性而不是那么强的匿名性。 需要 2 hop 那个玩意儿的是我们这些“非法外来雪貂”。 13:21 <bla_> jrandom:一个可能的解决方案是 bt-0.1.8,默认 tunnels 长度为 1,之前在频道里提到过。Duck,你在吗? 13:22 <polecat> i2p-bt 用的是 SAM,还是用 i2ptunnel 会话? 13:23 <jrandom> 嗯,另一方面,我们有一整套新的 i2cp 会话选项想在 i2p-bt 里暴露出来,所以无论如何我都需要联系 duck 讨论一个更新的发行版 13:23 <jrandom> polecat:SAM 13:23 <smeghead> BS314159:我不仅为 I2P 代码库做贡献,也为 i2p-bt 做贡献,这些 BT 流量让我无法和其他开发者沟通,阻碍了我们改善大家体验的努力,请体谅一下 13:23 <smeghead> BS314159:对你来说做种/下载比我们开发更重要吗 13:23 <smeghead> ? 13:23 <smeghead> polecat:sam 13:23 <cervantes> 让 0.1.8 把所有用户出卖给 MPAA,我们就都会死守 0.1.7 13:23 <smeghead> bla_:可能不会有 0.1.8 了,我们现在在 CVS 里已经有 0.2.0,是基于 BT 3.9.1 的新代码库 13:23 <jrandom> 呵呵,cervantes 13:23 <jrandom> ooOOo 不错 13:24 <jrandom> 也许这是个不错的过渡,从 2) 0.5 状态 到 3) i2p-bt :) 13:24 <jrandom> smeghead/duck,进展如何? 13:25 <ant> <Sonium_> Google 知道有 167 个指向 www.i2p.org 的链接 13:25 <bla_> jrandom:也许应该重申一下升级时间表:在周四晚上(UTC)把你的 eepsite 下线,周五升级,当有足够多的用户升级后再把 eepsite 打开 13:26 <ant> <Sonium_> 呃,是 .net 13:26 <smeghead> 0.1.7 里的所有 BT 修改都已整合进新的 0.2.0 代码库 13:26 <smeghead> 但我们得写一个全新的 sam 接口,不能用 0.1.7 里的那个 13:27 <jrandom> 啊,好的 13:27 <smeghead> 如果有人有 Python socket 经验愿意帮忙的话,*咳*connelly 13:28 <polecat> SAM 中发生的只是增加了流级别的 choking,对吧? 13:28 <jrandom> polecat:据我所知,还没有协议上的变更,只是移植 13:28 <smeghead> 请联系 duck 13:28 <ant> <MANCOM> azneti2p 有新进展吗? 13:28 <smeghead> 0.2.0 客户端将在一个实例中处理多个 torrent,你不必再打开多个会话了 13:29 <jrandom> (耶!) 13:29 <polecat> 真——的? 13:29 <smeghead> 并且希望我们能让它都在单个 sam 会话上工作,以进一步减少网络杂乱度 13:29 <bla_> smeghead:不错!你也会移植那个纯文本的 bttrackmany 吗? 13:29 <polecat> 它能在后台运行吗? 13:29 <jrandom> MANCOM:我没听到什么消息,而且不幸的是没时间审查那些更新 13:29 <polecat> 它占用多少内存? 13:29 <smeghead> bla_:是的,我想会的 13:30 <smeghead> polecat:用 btdownloadheadless.py 的话,它就是一个后台进程 13:31 <polecat> 单个 SAM 会话是可行的:peerwire 和 tracker 协议可以由客户端和服务器双方推断出来。 13:31 <polecat> smeghead:是的,但如果我想向那个进程添加一个 torrent 呢? 13:32 <smeghead> polecat:并且它的内存占用不应该显著高于等量的 0.1.7 实例 13:34 <jrandom> polecat:它是对主线 BT 的移植,工作方式就像主线 BT。 有人当然可以添加更新更好的特性,但我们先从一个直接的移植开始 ;) 13:36 <bla_> (连接又像过山车一样起伏了……) 13:36 <jrandom> (这就是我会轻微编辑会议记录的原因 ;)) 13:37 <bla_> jrandom::) 13:37 <jrandom> 欢迎回来 13:37 <polecat> smeghead:是的,但如果我想向那个进程添加一个 torrent 呢? 13:38 <+ugha2p> jrandom:不,这肯定是因为你在审查 netsplits。 13:38 <jrandom> polecat:它是对主线 BT 的移植,工作方式就像主线 BT。 有人当然可以添加更新更好的特性,但我们先从一个直接的移植开始 ;) 13:38 <jrandom> 嘿,要是我把 netsplits 删了,它们就不会发生! 13:38 * jrandom 把头埋进沙子里 13:40 <smeghead> 不过我借这个机会再请 BT 用户暂停到周五吧 13:41 <bla_> 对了,如果这里有人会说法语,现在不必发言,但请在 forum.i2p 的法语板块添加一条与 smeghead 请求同样意思的消息…… 13:42 <+polecat> 总之,我刚才没来得及说:我在想,与其做一个用 C++ 写的 BT 客户端,不如去修一下 mldonkey 的 BitTorrent 插件,然后用它。 13:42 <ant> <dm> 我会说法语。 13:43 <ant> <dm> 哎呀糟糕,我本来应该什么都不说的。 13:43 * jrandom 向 dm 扔泥巴 13:43 <bla_> dm:你能把那些消息加上吗? 13:43 <smeghead> 做种下载本身没错,但 I2P 用户数量突然增长是意料之外的,而且显然 0.4.x 的网络应对得并不好 13:43 <+polecat> 除非有人有更好的主意让我去浪费时间。 :/ 13:44 <ant> <dm> 我这边没有 I2P,恐怕不行。如果你把要说的内容发消息给我,我可以英->法翻译。 13:44 <jrandom> polecat:或许可以帮忙把即将到来的 i2p-bt 做成你想要的样子? 13:44 <jrandom> dm:forum.i2p.net/ 13:44 <+polecat> jrandom:我个人觉得主线 BT 不太好用,而且注定会成为多 torrent 系统的绊脚石,除非他们转向客户端/服务器式的 UI。 13:44 <+polecat> 我还想补充,mldonkey/mlnet 已经做到了这一点。 13:44 <smeghead> polecat:mldonkey 是个糟糕透顶的烂摊子,请来帮 i2p-bt 项目或者 azureus-i2p 项目吧,它们都需要人手 13:44 <ant> <BS314159> polecat:考虑到 I2P 的开销,用更快的语言重写 i2p-bt 是浪费时间 13:45 <+polecat> 而我正打算去折腾我那愚蠢的 C++ 客户端玩意儿。 13:45 <jrandom> polecat:那就加个 GUI,这样还能受益于底层的 i2p-bt 代码 13:45 <ant> <BS314159> 不过用上 MLDonkey 的界面可能会是件好事 13:46 <+polecat> 我觉得 Azareus 并没有把 UI 和文件传输分离。 :/ 13:46 <smeghead> polecat:你需要试试 BT 3.9.1,它现在是个多 torrent 客户端了 13:48 <+polecat> 它允许你退出 UI 而不中止文件的 swarm 吗? 13:48 <jrandom> 有些特性它做得不太好,而 azureus 做得不错,不过也有一些环境里 azureus 不是合适的解决方案 13:48 <ant> <jnymo> azureus 已经为这个插件发布兼容的二进制了吗? 13:48 <jrandom> polecat:没有。 但跟写一个新的 BT 客户端相比,加上这个是小菜一碟 13:48 <jrandom> jnymo:有的,他们有一个 beta 版的 azneti2p 13:49 <smeghead> polecat:要实现这一点很容易,事实上非常容易 13:49 <jrandom> polecat:只需修改现有的 BT 守护进程,让其他进程(也就是你的新 GUI)能告诉它去做事 13:49 <+polecat> 嗯,也许吧…… 13:49 <+polecat> 你真这么想? 13:49 <+polecat> 也许如果我写一个只是 RPC socket 协议的 UI,然后……我还得写一个完整的客户端去理解那个协议…… 13:50 <smeghead> polecat:你不必写新的 UI,改一下现有的 i2p-bt 0.2.0 的 UI 就行,很简单 13:50 <+polecat> 也许我们可以把 BT 的 UI 部分和守护进程部分分离,把它们作为独立进程运行,而不用重写太多代码! 13:50 <+polecat> 好的。 13:50 <+polecat> 不过我还有一个问题…… 13:51 <smeghead> polecat:别因为缺了些小功能就去造轮子 13:51 <smeghead> polecat:你根本没看过 i2p-bt 的代码库吧?UI 是完全分离的 13:51 <+polecat> 如果 BitTorrent 3.9.1 已经出来了,为什么我们在 I2P 里用的是 0.2.0 版本? o.o 13:51 <jrandom> 呵 13:51 <jrandom> i2p-bt 0.2.0 == BT 3.9.1 :) 13:51 <+polecat> 我前阵子看过代码库。 它相当绕、相当难懂。 13:51 <jrandom> (我记得 i2p-bt 0.1.* == BT 3.4.某个版本) 13:51 <+polecat> 哦,你们的版本号不一样。 13:52 <+polecat> i2p-bt 在 CVS 上吗? 13:52 <smeghead> polecat:0.2.0 是我昨天在 CVS 里创建的新分支,它是 i2p-bt,所基于的官方 BT 版本是 3.9.1,出 beta 后将会是 BitTorrent 4.0 13:52 <jrandom> http://dev.i2p.net/cgi-bin/cvsweb.cgi/i2p-bt/ 13:52 <smeghead> i2p-bt 0.1.7 是基于 BT 3.4.2 的 13:52 <+polecat> 谢谢。 13:52 <+polecat> 等等。 13:53 <cervantes> 到那时候我们就把它叫 0.3.0 版 :P 13:53 <+polecat> 我指的是 CVS,不是“哇看看这个花哨网站的 CVS” 13:53 <jrandom> cvs -d :pserver:anoncvs@cvs.i2p.net/cvsroot co i2p-bt 13:53 <+polecat> 我注意到那些 cvs-cgi 东西上明显缺少 CVSROOT=。 13:53 <jrandom> 或者,如果你本地有 CVS 代理, cvs -d :pserver:anoncvs@localhost/cvsroot co i2p-bt 13:54 <smeghead> polecat:晦涩?btdownloadgui.py 里就是全部 GUI 代码,这还能比这分离得更干净吗? 13:54 * polecat 呼了口气,现在不再强烈想吐槽 CVS 了。 13:54 <ant> <dm> 呃,那真是折磨,我好多年没用法语写东西了! http://forum.i2p.net/viewtopic.php?p=1238#1238 13:55 <jrandom> 谢谢 dm 13:56 <ant> <dm> 不客气 13:57 <smeghead> 它大概写了点少儿不宜的东西 13:58 <ant> <dm> 呵呵呵 13:58 <+polecat> 好吧,那我得写 btdaemon.py,它是 GUI——所有 GUI 的东西。 还有 btdaemongui.py,它是 GUI——所有守护进程的东西。 13:58 <ant> <BS314159> 如果够少儿不宜,它也许就能很好地达到我们的目的 13:58 <ant> <fedo2p> 干得好,dm ;) 13:58 <jrandom> 呵 13:58 <jrandom> r0x0r polecat 13:59 <+polecat> 唉,我真不想 emerge wxwindows,它是个我平时用不到的大型库。 算了。 13:59 <smeghead> polecat:0.2.0 是基于 GTK 的,不再用 wxwidgets 了 13:59 <jrandom> 好吧,还有很多 BT 相关工作要做,必要的话我们可以在邮件列表/论坛/wiki/#i2p-bt 继续讨论? 14:00 <+polecat> 如果我要开干,最好先把工具备齐 14:00 <+polecat> 哦我把那个频道忘了。 :) 14:00 <smeghead> polecat:拿到 BitTorrent 3.9.1 beta 然后读文档 14:01 <smeghead> #i2p-bt,没错 14:01 <smeghead> 那里甚至有人 14:02 <jrandom> 呵,好的,很多令人兴奋的 BT 话题。 3) i2p-bt 还有别的吗,还是我们转到 4) ??? 14:03 <jrandom> 好,那转到 4) ??? 14:03 <jrandom> 还有谁有要在会上提的事吗? 14:03 <ant> <jnymo> 门限密码学太棒了 14:04 <cervantes> ??? = http://forum.i2p/viewtopic.php?p=1237 14:04 <ant> <BS314159> 到 Web 的代理不太妙。那把代理指向新的 I2P 版本,或者其他匿名网络,怎么样? 14:04 <ant> <BS314159> 而我说不太妙,是指运行不安全 14:04 <ant> <jnymo> BS,不是每个人都会运行它们的 14:05 <ant> <BS314159> 我知道 14:05 <cervantes> 本周论坛会员是 <tadaa!> jrandom 14:05 <ant> <BS314159> 我在想升级的问题 14:05 <jrandom> 哈哈,谢谢你,cervantes 14:06 <ant> <BS314159> 不是现在,但以后,能否让大量 router 充当跨版本代理? 14:06 <ant> <BS314159> 而且那样能在不宕机的情况下消除时序攻击吗? 14:06 <ant> <jnymo> 强制升级是必要的 14:07 <ant> <BS314159> 我不同意 14:07 <jrandom> BS314159:I2NP over i2ptunnel over I2P 会很痛苦。 不过也许可以让某个“outproxy”指向某个 inproxy 14:07 <jrandom> BS314159:虽然通常不需要强制升级,但这次需要。 就这样。 我们需要这么做,因为我没预见到 0.5 所需的全部变更 14:08 <ant> <BS314159> 我并不是说新版本应该向后兼容 14:08 <cervantes> jrandom:说实话吧……98% 的工作都是你做的 ;-) 14:09 <ant> <BS314159> 我只是想出个办法,让不够灵活的 I2P 用户也能在没有时序攻击或停机的情况下完成升级 14:10 <jrandom> BS314159:对于 0.5 这个版本做不到。 后续版本我们可以谨慎处理。 但这次是硬性截止。 14:10 <ant> <jnymo> 将来也许自动更新会更好 14:10 <ant> <BS314159> 我说的是很远的将来。 14:10 <ant> <jnymo> 自动更新是不是太不安全了? 14:10 <jrandom> cervantes:不啦,只是 95% 的基础设施罢了,但发生的事可不止 i2p/{core,router}/ :) 14:11 <jrandom> jnymo:0 次点击更新 == 不安全。 1 次点击 == 安全。 14:11 <cervantes> jrandom:是啊,幸好过去几个月已经开始好转 ;-) 14:11 <ant> <jnymo> 再加上一行“you need to update.. countdown in * days”(你需要更新……倒计时 * 天) 14:12 <jrandom> 是啊,很多人 [http://www.i2p.net/team] 一直在干很牛的活儿 14:13 <jrandom> BS314159:后续更新确实有很多可以做的事,等临近时我们可以讨论具体的实现 :) 14:13 <jrandom> 好,还有谁有要在会上提的事吗? 14:13 <ant> <MANCOM> 我们能否在 I2P 里做某种自动测速的功能(比如 azureus 插件那种测量 ping 时间的),来调整最大(上传)带宽? 14:14 <ant> <MANCOM> 这会有助于保持带宽、降低时延 14:14 <jrandom> 哦,有意思 14:14 * cervantes 正在为 I2P 工具栏开发一个 1-2 次点击的更新功能 14:14 <cervantes> 不过我现在在哈希这块遇到问题……所以可能还要几周。 14:15 <ant> <jnymo> cervantes++ 14:15 <jrandom> MANCOM:如果你能把它如何工作、如何呈现写成文档,并发到论坛上,那就太好了。 如果足够简单,甚至可能能进 0.5 14:15 <cervantes> 到那时会有十几个人拿出一堆更好的方案 14:16 <jrandom> 呵 14:16 <cneal92_> :D 14:17 <ant> <MANCOM> 好吧,我试试 14:17 <ant> <cervantes> 不过它已经能检测到有新版本发布,并能指给你相应的下载链接…… 14:17 <ant> <cervantes> 这可能是我最初要实现的 14:18 <jrandom> 不错,cervantes 14:18 <jrandom> 谢谢,MANCOM 14:18 <ant> <jnymo> 你可以在更新包已经在目录里的情况下,直接用“graceful restart”按钮来升级 14:19 <ant> <jnymo> 或者叫它“upgrade” 14:19 <ant> <jnymo> 并把重启功能放进去 14:19 <ant> <jnymo> 不过我大概是在说些显而易见的话 14:19 <jrandom> 对,可能只需要十来行代码去抓取 http://dev.i2p/i2p/i2pupdate.zip,验证它,然后重启 14:20 <jrandom> 好,还有谁有要在会上提的事吗? 14:20 <ant> <cervantes> 嗯,我已经能让工具栏把更新下载到 i2p 文件夹里并触发一次优雅重启……但到目前为止我还没能让它验证下载的完整性 14:21 <jrandom> cervantes:啊,那部分应该很容易——后面我们会让更新包自身可验证 14:21 <jrandom> (也就是签名,在安装前由 router 验证) 14:21 <ant> <cervantes> jrandom:那就太棒了。 14:21 <ant> <jnymo> 哦哦 14:22 <ant> <cervantes> 那或许我只要触发下载,然后弹出一个“是否要重启”的是/否对话框就足够了 14:22 <ant> <cervantes> 这样有人需要的话可以手工验证 14:23 <ant> <cervantes> (它已经会显示 SHA1 应该是什么) 14:23 <jrandom> 呵呵 14:23 <ant> <jnymo> 比如,“click here to autodownload on availability”(有新版本时在此点击自动下载) 14:25 <cervantes> 我宁愿避免自动下载 14:25 <ant> <jnymo> 哼……Microsoft 都这么干的 ;) 14:26 <cervantes> 但无论如何要提醒用户有下载可用,并提供一个“download now”按钮 14:26 <jrandom> 对,至少要 1 次点击。 我们可以在有更新时自动/通知/,但自动安装不行 14:26 <jrandom> (呃,也就是 cervantes 说的) 14:27 <ant> <jnymo> 那么,1 万人怎么更新?要不哪天把 i2p-bt 集成进来? 14:27 <jrandom> 对呀,还有会飞的小马呢 14:28 <ant> <jnymo> 对我来说已经够好了 14:29 <jrandom> 好,太好了……如果没别的…… 14:29 <+postman> 该死,错过会议了 :/ 14:29 * cervantes 回去继续写他的 vapourware(“蒸汽软件”) 14:29 <jrandom> 呵,你在压哨进来,如果有想提的事就说吧,postman :) 14:30 <+postman> 不用了,谢谢 14:30 <+polecat> Microsoft? =) 我用 Gentoo 来做这件事。 14:30 * jrandom 蓄势待发 14:30 <+postman> 哎呀 14:30 * jrandom *baf* 地宣布会议结束