(由 Wayback Machine 提供 http://www.archive.org/

快速回顾

出席: duck, dup, enduser, FillaMent, human, jrand0m, kaji, lucky, mihi, MrEcho, mrflibble, Nightblade, wiht

会议日志

[22:02] <jrand0m> 议程: [22:02] <jrand0m> 0) 嗨 [22:02] <jrand0m> 1) http://i2p.dnsalias.net/pipermail/i2p/2004-January/000069.html [22:02] <jrand0m> 2) [讨论] [22:02] <wiht> 我能把安装程序加到议程里吗? [22:02] <jrand0m> 0) 嗨 [22:02] <jrand0m> 哦可以,当然! [22:02] <jrand0m> 我们这周打算尝试点新东西 [22:03] <wiht> 你可以把它放在议程的最后。 [22:03] <jrand0m> 不像以前那种你说我说他回我再说,那篇 http://i2p.dnsalias.net/pipermail/i2p/2004-January/000069.html 帖子基本涵盖了我本来想说的大部分内容 [22:03] * mihi_ 加入了 #i2p [22:04] <jrand0m> 取而代之,我们这周试着让会议更偏讨论型——大家从那篇帖子、后续帖子里挑想谈的,或者任何别的想讨论的 [22:04] <jrand0m> 比如一个新的安装程序 [22:05] <jrand0m> 所以,话说回来,大家先去看看那封邮件/帖子,然后我们再继续 :) [22:05] * mihi_away 现在叫做 mihi [22:05] * kaji 正在读帖子 [22:05] * mihi_ 现在叫做 mihi_backup [22:06] <jrand0m> 27 个用户,只有一个重复!w0w [22:07] * dm 现在叫做 dup [22:07] <jrand0m> 好,大家看完之后,也许我们可以先过一下大纲,看看有没有人想要补充 / 评论 / 讨论的? [22:07] <mihi> jrand0m:你怎么知道没有更多重复的? [22:07] <jrand0m> 呵,谢谢 dm [22:07] <jrand0m> mihi> 我在每个人的电脑上都装了键盘记录器(bwhahahaha) [22:07] <wiht> 我想把安装程序作为议题 10,命名服务可能作为议题 11。 [22:07] * mihi 把跟进发错地址了 :(,重发中... [22:08] <jrand0m> 好建议 wiht [22:09] <MrEcho> mrecho 的新 DNS 正在做 [22:09] <jrand0m> 不错 mihi,是啊我还在想呢 ;) [22:09] <kaji> DNS 进展如何?- 啊 [22:09] <jrand0m> MrEcho> 你的帖子,对吧? [22:09] <MrEcho> 帖子写着呢 [22:10] <jrand0m> 好的,同时,关于 1) streaming? 有人要说吗?还是我们跳到 2) I2PTunnel、TunnelManager 和 i2pmgr? [22:10] <lucky> 天啊……我大概余生都要用来理这些依赖关系了。 [22:10] <wiht> 那就把 DNS/NS 定为议题 11。 [22:10] <jrand0m> 听起来不错 wiht [22:10] * duck 走了进来 [22:11] <jrand0m> 晚上好,duck [22:11] <mihi> 关于第 1 点,我提交了使用 streaming api 的 i2ptunnel 代码 [22:11] <jrand0m> 啊对,太棒了 mihi :) [22:11] <lucky> 嗨 duck [22:11] * twosandals 退出了 IRC (Leaving) [22:11] <kaji> jrand0m 如果端口不同,几个服务能用同一个密钥吗? [22:11] <jrand0m> 不行,kaji [22:11] <mihi> 顺便问下:为什么你的 ant 脚本在重建之前总要先删掉 jar? [22:11] <jrand0m> mihi> 偏执 [22:12] <mihi> 我会说这是在偷我的调试时间 ;) [22:12] <jrand0m> kaji> 在 i2p 中,本质上一个密钥 /就是/ 一个端口 [22:12] <jrand0m> 呵 [22:12] <kaji> 啊 [22:13] <jrand0m> mihi> 如果你想改一下,只要在 class 文件改变时会重新构建 jar 就行 [22:13] <mihi> 如果该文件比其中所有文件都新,否则就可以跳过。 [22:13] <jrand0m> 对 [22:13] <mihi> 如果是偏执,最好加一个 <depends> 任务 [22:13] <jrand0m> 同意 [22:13] <FillaMent> yo yo [22:13] <jrand0m> 嗨 FillaMent [22:14] <jrand0m> 好,2) i2ptunnel / tunnelmanager / i2pmgr [22:14] * TC 加入了 #i2p [22:15] <human> 我做了点小 hack,让 TunnelManager 在调用 "openclient" 或 "openserver" 命令时返回作业 ID [22:16] <jrand0m> 很赞 :) [22:16] <human> 这样,使用 TunnelManager 的应用就能知道之后该关闭哪个作业,而无需解析 "list" 的输出 [22:16] <jrand0m> 是啊,我一直不太舒服用 tunnelmanager 的 list 和 close,因为多个客户端那样会互相搞崩 [22:17] <jrand0m> 我们会在会后把那个补丁合进去。gracias human :) [22:17] <human> 这涉及让 I2PTunnel.runCommand 返回一些东西(当前是 Property) [22:17] <human> s/Property/Properties/ [22:17] <jrand0m> 哦对,合入代码之前里面还有些东西要改 [22:18] <human> 但据我理解,mihi 更希望往 Logging 类里加一些异步回调…… [22:19] <jrand0m> 对——这样各方就能立即从任务获取信息,而不用等它结束 [22:20] * mihi 退出了 IRC (EOF From client) [22:20] <human> jrand0m:想法是:让 I2PTunnel.runCommand() 立即返回,后续通过回调获取更多信息,对吧? [22:21] <jrand0m> 对 [22:21] <jrand0m> 这样这些任务有数据要分发时就会触发回调 [22:21] * mihi 加入了 #i2p [22:21] <human> 嗯,恕我直言,还有一个问题:「会有多少 Java 应用(会)异步地使用 I2PTunnel.runCommand()?」当前所有使用 I2PTunnel 的应用(哪怕是通过 TunnelManager)都能很好地用同步(哪怕很久)的 .runCommand() 调用,把一切都做成异步只会更复杂(IMHO) [22:22] * mihi 通过 GUI 使用它 [22:22] <human> (嗯,“所有”指的是 TunnelManager 和解析 TunnelManager 输出的应用) [22:22] <jrand0m> 对,GUI 在执行命令时会卡住 [22:22] <mihi> 而且在第一个命令运行时,后面要开的 3 个 tunnel 的命令都会被阻塞 [22:23] <human> mihi:好吧,我不知道你的应用……那我们得想个办法 :-) [22:24] <human> mihi:异步的 .runCommand() 行为会要求重做 TunnelManager [22:24] <mihi> human:你觉得 runCommand 何时应该结束?tunnel 建好时,还是连接打通时? [22:25] <mihi> “destination unreachable” 会在第一次连接尝试之后才知道。 [22:25] <jrand0m> 命令模式是 execute() 完成后才返回。 [22:26] <mihi> 什么叫做“完成”? [22:26] <jrand0m> (所以如果我们遵循命令模式,runCommand 会阻塞,直到完成执行该命令所需的一切) [22:26] <human> mihi:呵,这就是问题 :-) [22:26] <jrand0m> 对于 "server 1234 privkeys",完成就是服务器能在 1234 端口接受连接 [22:26] <human> mihi:对于 TunnelServer,我觉得应该在 tunnel 创建后返回 [22:27] <jrand0m> 对于 "client 234 peer",完成就是到 234 端口的连接能成功抵达 peer [22:27] <jrand0m> 至少我是这么想的 [22:27] <mihi> 你怎么判定后者? [22:27] <jrand0m> 我其实也不太执着 [22:27] <jrand0m> 或许 ping 一下? [22:27] * Sciatica 加入了 #i2p [22:28] <mihi> 要是 ping 之后对端刚好就下线了呢? [22:28] <mihi> 我觉得不带回调根本做不了网络应用 [22:28] <jrand0m> 对 [22:28] <mihi> 否则就得开一堆线程,而我宁愿回调也不想被线程搞到死锁 [22:29] <jrand0m> 或许它只在“能够/尝试/连接”后才返回? [22:29] <jrand0m> 或者命令模式根本就不是我们想要的模式 [22:29] <mihi> 现在就是这么做的。那它应该返回什么结果呢? [22:30] <mihi> 关键是你需要一个结果(不仅仅是连接 id 这样的 int) [22:30] <jrand0m> 对,client 命令要返回 job(以便之后能关闭),而 genkey 命令要返回公钥和私钥 [22:30] * mihi 想不到此时还能知道其他什么信息。 [22:30] <jrand0m> 同感,我也想不到。 [22:31] <dup> 0! [22:31] <mihi> 那 genkey 需要等待?好吧,如果你觉得应该。 [22:31] <human> mihi:嗯,像状态(“ok” 或 “error”)以及错误信息…… [22:31] <mihi> human:错误信息在我看来会“太晚” [22:31] <mihi> 不过随你们…… [22:32] <mihi> 只要之后也能和 streaming api 一起工作…… [22:32] <jrand0m> human 要解决的是 TunnelManager 通过解析日志消息的那些土法子。但我同意,只要我们能通过 logging 接口暴露那些信息就行 [22:32] <dup> mihi 很睿智。 [22:32] <human> human:有些可以立刻通知(比如 tunnel 端口还在被占用) [22:32] <mihi> human 在自言自语 ;) [22:32] <human> 哎呀! :-) [22:35] <human> 也许我们该看看有哪些应用在 I2PTunnel 之上构建 [22:35] <human> 异步接口是正确的做法(TM),但用起来更复杂 [22:35] <jrand0m> 我觉得最好能保持对当前软件的同样支持——包括 GUI。 [22:35] <FillaMent> 也许我有点不懂就乱插话,不过或许像许多处理 HTTP 的那种方法:getHeader(String headerName) [22:35] <FillaMent> 需要的话可以揍我 [22:35] <FillaMent> smack [22:36] * jrand0m smake 了 FillaMent 一下 [22:36] <human> 而 TunnelManager 并不需要它(因为从它的本质上看,它*永远*无法正确支持异步事件) [22:36] * kaji 有个完全离题的想法 [22:36] * FillaMent 接受当说客 =) [22:37] <human> 但如果 mihi 的应用需要监控 tunnel 的状态,那异步接口就是必需品(TM) [22:37] <jrand0m> human> java -jar lib/I2PTunnel.jar\n. 我们需要支持异步。 [22:37] <kaji> 把 i2p 做成 Java applet,这样到某个网站就能在陌生电脑上快速运行 [22:37] * Sciatica 退出了 IRC (EOF From client) [22:37] <human> jrand0m:是的,那我们必须重做 TunnelManager :-) [22:37] <jrand0m> kaji> i2p 3.0 :) [22:38] <jrand0m> 同意 human,tunnelmanager 的实现只是个又快又脏的实现 [22:38] <jrand0m> 你觉得你能看看需要怎么推进吗? [22:38] * human 可以在异步接口准备好后,自告奋勇把 TunnelManager 适配到异步接口 [22:38] <jrand0m> w00t :) [22:40] <jrand0m> 好,我们进入议程第 3 项)I2COCP [22:40] <human> 否则,也可以为 I2PTunnel 同时提供同步和异步方法 [22:40] <jrand0m> 的确 [22:40] <jrand0m> 但如果稍微重构就能达到目的,重复一套可能有点过度 [22:41] * baffled 退出了 IRC (Leaving) [22:41] <duck> 我对 tunnel 有个个人担忧:应用不关闭它们,于是整个 tunnelmanager 会被淹没 [22:41] <human> jrand0m:是的,我们应该在重做 TunnelManager 和给 I2PTunnel 加新 API 之间选更简单的方案 :-) [22:42] <jrand0m> 这个提醒好,duck。当前没有超时/过期,它是假设使用 tunnelManager 的应用都很守规矩(而且 tunnelManager 自己也没有 bug【哈!】) [22:43] <mihi> 说到新 API:Streaming api 的类应该“替换”旧的,还是应该两者都能用(用不同命令)? [22:43] <jrand0m> mihi> 我觉得 streaming 的会想替换掉旧的,因为一旦 streaming api 稳定了,mode=GUARANTEED 会移除 [22:43] <jrand0m> (因此老的就不好使了) [22:44] * MrEcho 的邮件已发送 [22:46] <jrand0m> tunnel 的讨论还有别的吗?(显然这不是 tunnel 讨论的终点 ;) [22:47] * dup 现在叫做 dm [22:47] <jrand0m> 好,I2COCP [22:47] <jrand0m> 这是 human 前两天提的一个东西,看起来能填补当前的空白。但我觉得我们应该等等,等有东西真的要用它了再实现 :) [22:48] <wiht> 这个名字就算缩写了也有点长。 [22:48] * jrand0m 现在把 I2COCP 称为 “Wilma” [22:48] <human> jrand0m:嗯,我正要写一模一样的话 :-) [22:48] <jrand0m> 呵,酷 [22:49] <jrand0m> 好,跳到 4)路线图 [22:49] <human> jrand0m:我觉得,总的来说,应该有一种方式让非 Java 应用也能较完整地访问 I2P 网络 [22:49] <jrand0m> 同意 [22:49] <jrand0m> 设想是它们使用 I2CP [22:50] <jrand0m> (所有 Java 应用,包括 i2ptunnel 和 streaming 库,都是用它) [22:50] <human> jrand0m:对 [22:50] <MrEcho> I2PDNS “Janessa” [22:50] <jrand0m> 不过你说得对,它们也需要 streaming,所以要么是 tunnelmanager->i2ptunnel,要么是 i2cocp->streaming lib [22:50] * jrand0m 从未见过 Janessa [22:51] * Sciatica 加入了 #i2p [22:51] <jrand0m> 好,所以,嗯,路线图已经更新了。除了把 0.3 和 0.3.1 往后推两周之外没啥大改,增加了 2.0 的信息,以及更多 1.0 的标准 [22:51] <human> jrand0m:对,应该有 I2P 的 “TCP” 和 “UDP” 风格协议,具备完整的协议事件报告,并且可供非 Java 应用访问 [22:52] <MrEcho> human,听起来不错 [22:52] <jrand0m> 我希望有尽可能多的接口,但我不想因为接口太多而过度承诺维护 [22:52] * human 想要 I2COCP(或别的)用于他的 I2P twisted transport(见 http://www.twistedmatrix.com/),不过目前他会很开心地绕过 TunnelManager 搞个土办法 :-) [22:53] * w0rmus 退出了 IRC (Lost terminal) [22:53] <jrand0m> 妥。这是目前最好的 [22:54] <jrand0m> 好,关于路线图还有什么意见吗? [22:55] <jrand0m> [这里什么都没有,啦啦] [22:55] <jrand0m> 好,5)i2pIM [22:55] <jrand0m> thecrypto 不在,所以我们等他往 i2p@ 发更新就行了 :) [22:55] <wiht> 我记得我们现在有 Jabber,对吧。那我们还需要 i2pIM 吗? [22:55] <jrand0m> 需要 [22:55] <jrand0m> Jabber 有一个会接收到明文的服务器。 [22:56] <wiht> 哦。那好吧;我之前不知道。 [22:56] <jrand0m> 这是两大硬伤(有服务器、还有明文) [22:56] <jrand0m> 不过在某些场景下还是个不错的方案,当然 [22:56] <jrand0m> 事实上,今天早上我在想,如果我们能把 i2pIM 和 i2psnark 合在一起会很棒。 [22:57] <jrand0m> (不过一步一步来) [22:57] <jrand0m> 其实,说到这个,6)i2psnark :) [22:57] <human> jrand0m:我有时用过 Jabber 配合 GnuPG…… [22:57] <jrand0m> 用于超过 2 人的聊天? [22:58] <jrand0m> 对于一对一,我完全同意已有方案 [23:01] <jrand0m> 好,来个有趣的,7)介绍 I.Toopie :) [23:01] <human> 你会如何实现加密的多于 2 人聊天?共享私钥? [23:01] <jrand0m> 是的 human [23:01] <jrand0m> 或者在组内用 n! 个共享密钥 [23:02] <human> 嗯,也许可以在现有的 jabber 协议之上实现…… [23:02] <mihi> human:把共享的对称密钥发给所有参与者 [23:02] <jrand0m> 难点在于处理加入和离开——密钥轮换等 [23:03] * Sciatica 退出了 IRC (Ping timeout) [23:03] <jrand0m> 这绝对不是个小问题。真的、真的、真的很难。 [23:03] * mihi 认同 [23:03] * human 同意 [23:04] <jrand0m> (这也是为什么专门为它设计一个应用可能比在别的协议上硬拼更值得) [23:04] <jrand0m> 不过 thecrypto 最能说明他的计划 [23:04] <jrand0m> (不过据我所知,他对如何处理群组仍然持开放态度) [23:05] * Sciatica 加入了 #i2p [23:06] <jrand0m> 好,继续 :) [后续在 i2p@ 上讨论,等等] [23:06] <wiht> 不过 I.Toopee 是什么? [23:06] <lucky> 吉祥物…… [23:06] <jrand0m> I.Toopie 是个举着黄色面具遮住脸的小人 [23:06] * lucky 打了个冷颤。 [23:07] <lucky> 嗯哼。 [23:07] <lucky> 我能看看吗? [23:07] <jrand0m> http://wiki.invisiblenet.net/iip-wiki?I2PLogo [23:07] * mihi_backup 退出了 IRC (EOF From client) [23:07] <lucky> 我已经把 Java 加到我的编译队列里了…… [23:07] <lucky> 但是.. lol [23:07] <lucky> 我已经有 7 个东西在跑 [23:07] <lucky> 要等一会儿。 [23:08] <lucky> 啊,好可爱 :P [23:08] <MrEcho> lol [23:08] <jrand0m> 我们已经有很多很酷的 logo(真不敢信我们的 logo 大赛已经搞了 3 个月!),而且看起来 I.Toopie 的潜力很大。不管是简洁、构思,还是多用性。 [23:08] <jrand0m> 而且,是啊,它很可爱 ;) [23:08] <mihi> 有些图片坏了,还是我的浏览器有问题? [23:08] <jrand0m> 嗯,有些坏了 [23:09] <jrand0m> (它们是 3 个月前放在临时图床上的) [23:09] <MrEcho> I.Toopie 的杆子现在全黄了 … [23:09] <MrEcho> 昨晚改的 [23:09] <jrand0m> 是吗? [23:09] <jrand0m> 那大家应该去更新 WIKI 啊 [23:09] <jrand0m> ;) [23:09] <MrEcho> 呵 [23:09] <MrEcho> 我手里没图了 .. 抱歉 [23:10] <wiht> 我用 Opera 能看到图片,但用 Mozilla 不行,不知为何。 [23:10] <jrand0m> 你能看到 http://img.villagephotos.com/p/2003-10/437060/badass.webp 吗? [23:10] <jrand0m> (这是那页上的一张图) [23:11] <duck> Access Denied (User Account Disabled) [23:11] <jrand0m> 对,我这也是。 [23:11] <MrEcho> 我能看到 [23:11] <jrand0m> 不过是的,DrWoo 用 I.Toopie 做了些超酷的东西 [23:11] <MrEcho> moz 1.5 [23:11] * soros 退出了 IRC (EOF From client) [23:11] * mihi_away 加入了 #i2p [23:11] * lucky 退出了 IRC (EOF From client) [23:12] <jrand0m> 我这也是 MrEcho。 奇怪。 [23:12] <wiht> MrEcho:我用的是 Mozilla 1.4。 [23:12] <jrand0m> (我的意思是我也用 moz 1.5,但得到访问被拒绝) [23:13] * jrand0m 期待一个带 i.toopie 的托盘图标 :) [23:13] <jrand0m> 好,进入 8)国际象棋服务器 [23:14] * Sciatica 退出了 IRC (Ping timeout) [23:14] * ion 退出了 IRC (Ping timeout) [23:14] <jrand0m> 最新的 hosts.txt (http://i2p.dnsalias.net/i2p/hosts.txt) 包含了 chess.fillament.i2p 的记录 [23:14] <jrand0m> 你可以用任何 FICS(自由互联网国际象棋服务器)客户端,或者直接 telnet 到那儿畅玩 :) [23:14] <jrand0m> (耶) [23:15] <kaji> Windows 下有什么好用的 FICS 客户端吗? [23:15] <jrand0m> 不知道,我最后用了 telnet [23:15] <wiht> eboard 能用吗? [23:15] <jrand0m> (学命令的曲线挺陡的) [23:15] * ion 加入了 #i2p [23:16] <jrand0m> 不知道 [23:16] * BpX 加入了 #i2p [23:16] <wiht> 我稍后试一下。 [23:16] <jrand0m> 好,如果你能把你发现的发上来就太好了 [23:17] <jrand0m> 好,9)DHT(分布式哈希表) [23:17] * wilde 退出了 IRC (Ping timeout) [23:17] <jrand0m> 我们还没有 DHT,不过也许这是个可以开始移植的线索 [23:18] <jrand0m> (它用 UDP,所以让它用 I2CP 不会太难) [23:18] <MrEcho> dht??? [23:18] <MrEcho> 我脑子一片空白 [23:18] <jrand0m> MrEcho> 看邮件里的 [10] ;) [23:18] <jrand0m> http://wiki.invisiblenet.net/iip-wiki?DHT [23:18] <Nightblade> entropy 作为临时方案就足够了 [23:18] <jrand0m> 同意 [23:19] <jrand0m> 不过我觉得也要看看长期方案 [23:19] * soros 加入了 #i2p [23:19] * lucky 加入了 #i2p [23:20] * human 担心像 Bamboo(http://bamboo-dht.org/)这样的 DHT 和 gcj/kaffe 的兼容性 [23:20] <jrand0m> 是啊,bamboo 是 1.4 [23:20] <MrEcho> afk [23:20] <jrand0m> 这正是 i2cp 的好处——router 和 tunnel 可以用 gcj 编译,而访问它们的东西可以随意 [23:21] <jrand0m> 不过它 /确实/ 只是应用层的——不是核心的一部分 [23:21] <jrand0m> 我只是在想,如何让下载了 i2p 的终端用户一上来就能做点有用的事情 [23:22] <jrand0m> (比如能匿名发布很难被审查的内容就很有用) [23:22] <jrand0m> s/uncensorable/very censorship resistant/ [23:23] <human> jrand0m:啊,好的——我还以为 bamboo 打算替换 NetworkDB 里的 Kademlia 呢 :-) [23:23] <Nightblade> squid 代理也能做……比如对中国的用户来说就会是个很好的东西 [23:23] <jrand0m> Nightblade> 对,但 squid 不可扩展 [23:24] <Nightblade> 是啊,我觉得有一种分布式 JAP(匿名代理系统)会很有意思 [23:24] <jrand0m> 同意 [23:24] <jrand0m> 所以这也是另一个很好的方向,大家可以研究一下 :) [23:24] <mihi> Nightblade:问题在于滥用处理——我不会把我的机器打开给任意的外发 HTTP [23:24] <jrand0m> 我相信还是有人会做的 [23:25] <Nightblade> 再加一部分,让每个节点可以选择他们愿意为别人代理哪些站点……客户端可以发送“whitehouse.com”的请求,然后一个愿意做代理且允许这个 URL 的节点就能响应 [23:25] <Nightblade> 是啊,恐怕需要某种访问控制 [23:25] <Nightblade> 黑名单或白名单 [23:25] <jrand0m> 对 [23:25] <Nightblade> 域名的 [23:26] <jrand0m> 这就是“出口策略”系统。虽然这本身就是一个完整项目 [23:27] <MrEcho> 它可以依托 DNS 系统……我猜 [23:27] <jrand0m> 当然 [23:27] <wiht> mihi:如果你限制带宽呢?还是说访问的网站会让你惹麻烦? [23:27] <MrEcho> 很久以后再说 lol [23:27] <jrand0m> wiht> 很多提供商明确禁止运行任何形式的服务器 [23:28] <MrEcho> verizon 肯定会对 21 端口动手脚…… [23:28] <wiht> jrand0m:哦。是个问题。 [23:28] <Nightblade> 客户端需要有某种方式来请求它们想下载的网站……广播请求不是个好办法,尤其在 i2p 上 [23:29] <mihi> wiht:问题是能访问的网站。参考前阵子针对 JAP 的诉讼。/me 住在同一个国家 [23:29] <jrand0m> 同意。不过不暴力破解约 ~2^2300 的密钥空间,广播是不可能的 ;) [23:30] <jrand0m> 对,mihi,生活在高压政权下的人无法安全地运行出口代理 [23:30] <wiht> mihi:那起诉讼是怎么回事?我不记得了。 [23:30] * dm 退出了 IRC (Ping timeout) [23:30] <Nightblade> 我是说,即便你有提供 web 代理的目标清单,也不想要向它们全部广播 [23:30] <jrand0m> 对,Nightblade [23:30] <Nightblade> 我指的是请求广播 [23:31] <mihi> 问题是有人访问了儿童色情网站,通过 JAP 代理,他们无法确定请求来自哪里。这被解读为在给警方工作“添乱”。 [23:31] <jrand0m> 大家可以看看 Crowds 或 Rewebber,了解其他做过同样任务的项目 [23:31] <wiht> mihi:啊。谢谢解释。我现在理解你为什么担心了。 [23:31] * mihi_away 退出了 IRC (Ping timeout) [23:31] <mihi> 他们还对 JAP 软件做了改动,使得可以抓到人。后来又移除了。 [23:32] <wiht> 呃,我理解你为什么担心。 [23:32] <mihi> 最后结果是 JAP 不必披露数据,但我不想知道律师费花了多少…… [23:32] <Nightblade> 是啊,但警方不是还是扣押了那些信息吗? [23:32] <jrand0m> 是的 [23:33] <mihi> 是的…… [23:33] <jrand0m> 总之,是的,可扩展的 DHT 和可扩展的 web 代理,都是我们希望在 1.0 之前拥有的非常棒的东西 [23:34] <mihi> 他们也不可能把信息还回去,是吧? [23:34] * BpX 退出了 IRC (Ping timeout) [23:36] * Sciatica 加入了 #i2p [23:36] <jrand0m> 好,第 9 点还有别的吗?不然我们就进入 10/11)NS/DNS? [23:36] <wiht> 我想在第 10 点之后,简短评论一下安装程序。 [23:37] <jrand0m> ‘k 要不我们现在就谈这个,因为 NS/DNS 可能没那么“超短”? ;) [23:37] <wiht> 好的。router 有启动脚本和停止脚本。 [23:37] <jrand0m> 对 [23:37] <wiht> 我希望所有服务都这么做——既有启动,也有停止脚本。 [23:37] <jrand0m> 大多数都有吧 [23:37] <jrand0m> 不是吗? [23:38] <jrand0m> 哦,没有停止脚本 [23:38] <wiht> 不,只有 router。 [23:38] <wiht> 这样,想要的服务就可以像 router 一样,开机时启动。我已经往邮件列表发了这方面的帖子。 [23:38] <jrand0m> aum 正在做 i2pmgr,它会是一个基于控制台和 GUI 的服务及 router 控制中心 [23:38] <wiht> 比如我想在开机时启动 eep 和 nntp。目前做不到。 [23:39] <jrand0m> 对,你需要 nohup startEepProxy.sh & [23:39] <wiht> 顺便问一句,这些脚本在 CVS 的哪里? [23:39] <MrEcho> 好我回来了 [23:39] * mihi_away 加入了 #i2p [23:39] <jrand0m> wiht> 这些脚本是在 Install.java 里(也就是硬塞进去的) [23:39] <wiht> jrand0m:谢谢。/ [23:40] <jrand0m> 但提醒得好,我们希望尽可能简单:既能随开机启动,也能按需启动 [23:41] <jrand0m> 好,进入 10/11)ns/dns [23:41] <MrEcho> 去看我的邮件 [23:41] <MrEcho> 有几件我忘了放进去的 [23:41] <jrand0m> 不幸的是你的邮件在网页界面中显示不太对 :/ [23:41] <MrEcho> 比如“临时”名字 [23:41] <MrEcho> ?? [23:42] * Sciatica 退出了 IRC (Ping timeout) [23:42] * ion 退出了 IRC (Ping timeout) [23:42] <jrand0m> MrEcho> http://i2p.dnsalias.net/pipermail/i2p/2004-January/000072.html [23:42] <MrEcho> 因为那个 gif 之类的 [23:42] <MrEcho> 糟糕 .. 我签了名 [23:43] <MrEcho> 抱歉 [23:43] <jrand0m> 邮件列表其实是打算只收文本。PGP 签名没问题(其他人也发过签名的) [23:43] <kaji> 有什么好用、免费的轻量防病毒软件? [23:43] * ion 加入了 #i2p [23:43] <jrand0m> kaji> Linux [23:43] * Sciatica 加入了 #i2p [23:43] <wiht> LOL。 [23:43] <kaji> 要能跑在我的硬件上 [23:43] <wiht> kaji:试试 Windows 下的 AVG Antivirus。 [23:44] * MrEcho_ 加入了 #i2p [23:44] * MrEcho 退出了 IRC (EOF From client) [23:44] <MrEcho_> 该死的 iip [23:44] <jrand0m> MrEcho /(以及任何对 NS/DNS 感兴趣的人)> 你读过 http://zooko.com/distnames.html 吗? [23:44] <MrEcho_> j,我要重发这封邮件吗? [23:44] <jrand0m> 它在列表里是发过去了,只是没被正确存档到网页 [23:44] <MrEcho_> 好 [23:45] <wiht> jrand0m:我还没读。 [23:45] <MrEcho_> 我过会儿看看 [23:45] * mrflibble 加入了 #i2p [23:45] <jrand0m> 给不在列表上的人看,我把 MrEcho_ 的邮件存到了 http://i2p.dnsalias.net/~jrandom/mrecho_dns.txt [23:46] <MrEcho_> 多谢 J [23:46] <kaji> 真烦,还要邮箱地址 [23:46] <jrand0m> 我担心的是命名服务的安全性和可扩展性。一旦我们找到满足这些需求的方案,那就太好了,但在此之前,我们应该谨慎对待过渡方案。 [23:47] <jrand0m> kaji> 邮件列表通常都需要邮箱地址,是的 ;) [23:47] <kaji> 我是说 AVG Antivirus [23:47] <jrand0m> 哦 ;) [23:48] <wiht> MrEcho 有几个我在规范里没想到的好点子,比如针对坏客户端的封禁。 [23:49] <MrEcho_> 不算封禁列表 [23:49] <jrand0m> 当有 1000 个客户端时,是不是意味着需要 125 次查询才能找到一个值? [23:49] <MrEcho_> 不是 [23:49] <wiht> 不是列表,但是封禁坏客户端这点我没想到。 [23:50] <MrEcho_> 检查用 2-4 个客户端 [23:50] <jrand0m> 那每个客户端会有 250 条记录? [23:50] * mihi_away 现在叫做 mihi_backup [23:50] <MrEcho_> 不会 [23:50] <wiht> 我那套是一次查询,可能会转发几次到达权威服务器。 [23:50] <MrEcho_> 客户端只会保留它们需要的 [23:51] <MrEcho_> 它会持续查询其他客户端,直到拿到用于校验的匹配数据 [23:51] <jrand0m> 那如果是 4 个对等端,它会做随机搜索,平均要 125 次查询 [23:51] <jrand0m> (1000/4/2) [23:51] <jrand0m> 还是说这些对等端是一个 DHT? [23:52] <jrand0m> (带某种维护协议?) [23:52] <jrand0m> 或者是棵搜索树? [23:52] <MrEcho_> 某种意义上是 [23:52] <MrEcho_> 我会对客户端搜索设置上限,超过就直接查询 MS [23:53] <jrand0m> 安全的分布式命名是个研究得相当多的问题——要让你的提案更容易分析安全性和可扩展性,或许你可以做一些对比,并验证你对其他方法的变体? [23:54] <MrEcho_> 如果在设定范围内没有找到 / 或者没有从客户端那里获得足够的数据来检查,它就会直接查询 MS。 [23:54] <jrand0m> 以现在的描述,还没有足够细节让我对这个架构的可扩展性或安全性有信心。并不是说它不能行,只是我现在还看不出来。 [23:54] <MrEcho_> 你能先别打字一会吗 [23:54] * jrand0m 停止了打字。 [23:55] <MrEcho_> 它会工作的……会有可扩展性,也会有安全性 [23:56] <MrEcho_> 用户越多它越好 [23:56] <jrand0m> 所以是“相信我”,是吧? [23:56] <MrEcho_> 你相信互联网的 DNS 系统吗? [23:56] <jrand0m> 在某些任务上。 [23:57] <jrand0m> 很多则不。 [23:57] <jrand0m> (政府/等很容易让记录被改动——法院经常要求注册商更新) [23:58] <MrEcho_> 另一种做法就是每个客户端维护一大堆名字列表和大量加密 [23:58] <MrEcho_> 还要动态 .. 算了吧 [23:59] * mrflibble 退出了 IRC (EOF From client) [23:59] <jrand0m> 我建议在继续之前先看下 zooko 的文章,并回答他最后的第 5 点(“为什么我错了”) Session Time: Wed Jan 07 00:00:00 2004 [00:01] <jrand0m> 好,10/11 点大概就这样(当然后面还有很多讨论) [00:02] <jrand0m> 还有没有其他想法等? [00:02] <wiht> 有。 [00:03] <jrand0m> 愿意和大家分享吗? :) [00:03] <wiht> 我会重写我写的那份规范。我想用本地 SQL 服务器来存数据,而不是文件。 [00:03] <jrand0m> 啊酷 [00:03] <jrand0m> (你那份规范也有同样的担忧——如果你能回答 zooko 的最后一个问题,那就关键了 :) [00:03] * mrflibble 加入了 #i2p [00:03] <wiht> 让 MySQL 或类似服务器管理数据存储,让 Java 去查询该服务器。 [00:04] <duck> 咦?zooko 的规范? [00:04] <wiht> 我觉得这样更好实现。 [00:04] <jrand0m> duck> 不是,我只是把大家指向他那篇老文 “Names: Decentralized, Secure, Human-Meaningful: Choose Two” [00:04] <duck> 啊那个 [00:04] <Nightblade> wiht:那是什么规范(会议我错过了很多)? [00:04] * MrEcho 加入了 #i2p [00:04] <jrand0m> (这比起重申为什么超节点/中心化服务器在安全上很可怕要容易多了 ;) [00:05] * MrEcho_ 退出了 IRC (EOF From client) [00:05] * mihi 也有一点要放到日志里 ;) [00:05] <mihi> 有点长 ;) [00:05] <mihi> *** I2Ping 结果: [00:05] <mihi> + + + eco.i2p [00:05] <mihi> + - - jabber.duck.i2p [00:05] <mihi> - + + i2pcvs.i2p [00:05] <mihi> - + + duck.i2p [00:05] <mihi> - + - jap.eco.i2p [00:05] <jrand0m> Nightblade> 它发到 iip-dev 上了……八月? [00:05] <mihi> - + + irc.duck.i2p [00:05] <mihi> - + + human.i2p [00:06] <mihi> - - + nntp.duck.i2p [00:06] <mihi> - - - tc.i2p [00:06] <mihi> - - - dyad.i2p [00:06] <mihi> - - - bozo.i2p [00:06] <mihi> - - - ogg.aum.i2p [00:06] <mihi> - - - fcp.entropy.i2p [00:06] <mihi> - - - http.entropy.i2p [00:06] <Nightblade> jrandom:哦,在我来之前.. :) [00:06] <mihi> - - - www.mail.i2p [00:06] <mihi> - - - mp3.aum.i2p [00:06] <mihi> - - - smtp.mail.i2p [00:06] <wiht> Nightblade:我是在 9 月 15 日发的。 [00:06] <mihi> - - - pop.mail.i2p [00:06] <mihi> - - - mp3.tc.i2p [00:06] <mihi> - - - lp.i2p [00:06] <mihi> - - - kaji.i2p [00:06] <mihi> - - - nm.i2p [00:06] <mihi> - - - squid.i2p [00:06] <mihi> - - - chess.fillament.i2p [00:06] <mihi> - - - mesh.firerabbit.i2p [00:06] <mihi> - - - nightblade.i2p [00:06] <mihi> - - - aum.i2p [00:06] <MrEcho> 天啊,有人能跑起来吗? [00:06] <mihi> - - - fillament.i2p [00:06] <mihi> *** 完毕。 [00:06] <mihi> 为什么这么多主机都挂了……? [00:06] * jrand0m 现在没跑我的服务器 [00:07] <FillaMent> 我能通过 eep 和 chess 连接到我自己 [00:07] * mrflibble 退出了 IRC (Ping timeout) [00:07] <jrand0m> 哦等等,i2pcvs 是在线的,真好 [00:07] <Nightblade> mihi:我的没起来是因为 i2ptunnel 跑几小时后会崩 [00:07] <mihi> 那就是我的 router 坏了(或者这是 I2P 常见的问题……) [00:08] <jrand0m> 真的 Nightblade?请报告 i2ptunnel 崩溃(用 bugzilla 就更好了) [00:08] <Nightblade> 我在 bugzilla 里了 [00:08] <lucky> 嗨 [00:08] <Nightblade> 等…… [00:08] <FillaMent> Nightblade:用的什么 JVM? [00:08] <Nightblade> #39 [00:08] <wiht> 我的 router 已经跑了 12 小时以上,尽管它注册自己时出了点问题。 [00:09] <Nightblade> java version "1.4.2-p5" [00:09] <Nightblade> 在 freebsd 上……可能是 jvm 问题,我不确定。freebsd 上的 java 支持不太好 [00:09] <jrand0m> 你说得对 Nightblade,是我疏忽了 [00:09] <jrand0m> 那是比较少见的 i2cp bug [00:09] <jrand0m> 对你来说是稳定复现吗? [00:09] <Nightblade> router 对我来说很稳定,只有 i2ptunnel 的 server tunnel 有问题 [00:09] <Nightblade> 是的,发生过好几次 [00:10] <Nightblade> 最近倒没试 [00:10] * jrand0m 刚拉了 fillament 的 eepsite [00:10] <jrand0m> (第一次尝试,刚注意到窗口完成了) [00:10] <FillaMent> 是啊,我刚跟 duck 用 jabber 聊了天,wiht 正在尝试连 chess [00:10] <jrand0m> 啊酷 [00:10] <jrand0m> 不过是的,网络里还有一些可靠性问题需要处理。 [00:10] * FillaMent 用附带的眨眼提醒大家,“他大概会想玩。” [00:10] * human 的 eepsite 还在——说明 ‘killall java’ 真的有用…… :-) [00:10] <wiht> 我刚成功连接上棋服。 [00:10] <duck> 真的吗? [00:11] <jrand0m> lol FillaMent [00:11] * mrflibble 加入了 #i2p [00:12] <Nightblade> 跑 cvs 版的 i2p 安全吗 [00:12] <jrand0m> /me 成功拉到了 human 的 1984-2004: twenty years of GNU! :-) [00:12] <jrand0m> 安全,Nightblade [00:12] <FillaMent> 没拿到 eco…… [00:12] <Nightblade> 好,也许我来试试 [00:12] <duck> 用 freenet 的话你应该总是跑最新的 cvs 版! [00:13] <duck> 只有那样才是没 bug 的 [00:13] <duck> s/freenet/i2p/ [00:13] * jrand0m 拉到了 eco.i2p [00:13] <FillaMent> 刚拿到 duck [00:13] <jrand0m> “Jan 4: First field test of I2PSnark. Pretty catastrophic: no transfer at all. Guess my single router test environment wasn't very representative :-) Back to the drawing board... ” [00:13] <jrand0m> 囧 [00:13] <duck> 呃,其实它有工作 [00:13] <duck> ardvark 能从我这儿 snark 到点东西 [00:14] <jrand0m> BT 会预创建文件——那些文件实际上有效吗? [00:14] <duck> 但第二天他才发现 [00:14] <duck> 因为那被日志给淹没了 [00:14] <jrand0m> 什么,你是说 i2p 生成的日志相当疯狂?不可能啦 [00:14] <duck> 不是 [00:14] <duck> 是 i2psnark 的输出 [00:14] <jrand0m> 啊 [00:15] <duck> 另外,我怀疑 snark churn 得太多(拼法?) [00:15] <duck> 普通的 bittorrent 客户端似乎更轻松 [00:15] <duck> 还有 i2p 的高延迟可能导致过早的块判定 [00:16] * mrflibble 退出了 IRC (Ping timeout) [00:16] <duck> 最后我们不得不重启几次 i2ptunnel :/ [00:16] <jrand0m> 同意 [00:16] <human> 关于 I2PTunnel / I2PTunnelManager 的最后一个问题(是的我知道我很无聊):让 "openclient" 和 "openserver" 返回一个有意义的 jobId 的补丁怎么样? [00:16] <jrand0m> 所以,是的,还有很多工作要做 [00:16] <human> 1. 我们先接受它,让 TunnelManager 先能用,直到新的异步架构牛起来 [00:17] <human> 2. 你的补丁烂透了,走开,TunnelManager 也去死 [00:17] <human> 3. ... [00:17] * MrEcho_ 加入了 #i2p [00:17] * mihi 选 3 ;) [00:17] * MrEcho 退出了 IRC (EOF From client) [00:17] <jrand0m> 4. 看看我们能怎样把 tunnel manager 改成异步?应该不难 [00:17] <jrand0m> 补丁是好的,但 mihi 的观点也有道理 [00:18] <human> jrand0m:是的,我同意 [00:18] <jrand0m> 离 0.3 还有 1+ 周,所以在下一个完整发布之前我们还有时间 [00:18] <human> jrand0m:但我疑问是:要多久才能把异步接口在 TunnelManager 里实现好? [00:18] <jrand0m> TunnelManager 本身写了 2 小时,我今晚就能加上异步 [00:19] <jrand0m> (要做的就是更新 BufferedLogging,让它接受 .set 调用) [00:19] <human> jrand0m:(我说的“实现好”还包含“在 I2PTunnel 里也实现好”) [00:19] <jrand0m> (或者 .nofity/etc) [00:19] <jrand0m> 对 [00:19] * mrflibble 加入了 #i2p [00:20] <jrand0m> 如果你愿意,我可以从你的补丁开始(加上 job id),并把它和异步更新合并 [00:21] <human> jrand0m:我也可以自己给 TunnelManager 加异步接口,只是接口还不存在 :-) [00:22] <jrand0m> 对,往 Logging.java 里加 public void notifyEvent(String eventName, Object value); [00:22] <human> jrand0m:我建议“我们先把这个脏点的 hack 合进去,让 0.3 里的 job id 能凑合用,然后再做异步接口” [00:23] <jrand0m> 0.3 还早呢 [00:23] <mihi> 0.3 不是也该有 streaming api 吗? [00:23] <human> jrand0m:我是说最糟情况 [00:23] <wiht> jrand0m:也许在 3.0 前再发一个版本,来把这些问题稳定下来? [00:23] <jrand0m> 是的 mihi [00:23] <mihi> human:最糟情况是 “cvs rollback && patch -p0 your.patch” [00:24] <jrand0m> 好,这样吧。我今晚把异步实现并提交,human 你明天看看,需要做什么能把你的更新也加进去? [00:26] <FillaMent> jrand0m:你有工作吗? [00:27] <jrand0m> i2p [00:27] <duck> 把 1.0 做出来! [00:27] <FillaMent> 我是说收入来源 [00:27] <jrand0m> :) [00:27] <FillaMent> 需要你去工作的那种 [00:27] <jrand0m> 收入被高估了。 [00:27] * jrand0m 开除了我的老板 [00:27] <Nightblade> “写代码换口饭”——我的座右铭 [00:27] <Nightblade> lol [00:27] <human> mihi:不过我和 aum(他在为 TunnelManager 做一个 Python 应用)还是想尽快有 jobId…… [00:28] <human> jrand0m:好,我稍后/明天来处理你的改动 [00:28] <FillaMent> 工作/金钱、睡眠/卫生、食物、业余项目、社交生活:任选其三 [00:29] * jrand0m 只选一个。 [00:29] <jrand0m> 妥 human [00:30] <FillaMent> 大家还有别的 “只需打个 tunnel 到” 的服务点子吗? [00:30] * jrand0m 还想要一个基于 telnet 的 Adventure(文字冒险):) [00:30] <jrand0m> 或者一个 waffle BBS [00:30] * duck 现在叫做 enduser [00:30] * jrand0m 踢了 enduser 一脚 [00:31] <jrand0m> (该死,没有 op) [00:31] <FillaMent> OS/2 上有个通信驱动可以把串口映射到一个 TCP 端口 =) [00:31] <enduser> 当 I2PTunnel 使用 SteamingAPI 时,作为终端用户我会看到什么差别? [00:31] * enduser 现在叫做 duck [00:31] <jrand0m> 没有 [00:31] <human> lol [00:31] <FillaMent> FillaMent:我有个朋友就是那样跑了段时间 BBS [00:31] <jrand0m> 性能,或许还有匿名性 [00:31] * human 想要一个通到 root shell(root 权限的 shell)的 I2P tunnel [00:32] <human> 有人自告奋勇吗? :-) [00:32] <duck> 跑在 UML 上的 root shell [00:32] <jrand0m> chroot 的 root shell 也不错 [00:32] <jrand0m> 或者 UML 的 :) [00:32] <FillaMent> human:要是我有空闲的主机,我就搞 [00:32] <jrand0m> 呵呵 FillaMent [00:32] <duck> VNC 连接到我 vmware 里的 win98? [00:32] <FillaMent> 但说真的各位…… [00:32] <wiht> 邮件服务器也不错。或者我们已经有了? [00:32] <FillaMent> wiht:我记得 TC 有 pop 和 SMTP [00:33] <jrand0m> 那是 aum,不过它们离线了,因为他的机器离线了 [00:33] * human 可以在他的 GNU/Hurd 系统上提供 telnet 账号…… [00:33] <jrand0m> 哦哦哦 [00:33] <FillaMent> 嗯,我暂时不太想设置开放的 SMTP 访问 [00:33] <jrand0m> 可以理解 [00:34] <FillaMent> 等网络更稳定些、我也有钱提带宽再说 [00:34] <wiht> 搞个 PGP 密钥服务器怎么样? [00:34] <mihi> FillaMent:你可以设一个指向明文 remailer 的 tunnel [00:34] <FillaMent> wiht:这个主意不错 =) [00:35] <FillaMent> mihi 呵……我也可以把 tunnel 指到我 ISP 的 SMTP 服务器上 =) [00:35] <mihi> FillaMent:这会让你对滥用负责…… [00:35] <mihi> s/be// [00:35] <duck> http://www.mit.edu/people/marc/pks/pks.html [00:36] <duck> 说真的,duck enterprises 要不要考虑跑一个 pgp keyserver? [00:37] <FillaMent> duck:我自己也在看……你来搞? [00:37] <duck> 按 mihi 的独立 ping 日志,我们一直是最稳定的服务提供者之一 [00:37] <jrand0m> 呵 [00:37] <wiht> duck:是的,请考虑一下。 [00:37] <jrand0m> 对了 duck,你是怎么做到的?你是定期重启,还是只是跑在一个可靠的 OS 和 JVM 上? [00:38] <FillaMent> 问题:JVM 会缓存 DNS 解析吗? [00:38] <duck> 重启是为了更新内核 [00:38] <jrand0m> 会,但你可以用些黑魔法来绕开它 FillaMent [00:38] * wiht 注意到会议已经进行 2h40m 了。 [00:38] <jrand0m> 哦对, [00:39] * mrflibble 举手 [00:39] <jrand0m> 呃,这次会议的日志会很庞大。我还以为事先把东西发出来会/缩短/会议呢 [00:39] <jrand0m> 怎么了 mrflibble? [00:39] <FillaMent> jrand0m:好的……因为我虽然没有宕机,但我的 IP 会定期变……我的 dyndns 更新脚本每小时跑一次,所以最多 60+~10 分钟我的域名不指向我的 IP…… [00:39] <FillaMent> 这会如何影响我的 router 在网络上的可达性? [00:40] <mrflibble> 我的机器可以提供某种常驻(daemon)服务 [00:40] <jrand0m> 酷 FillaMent,只要你指向的是 dyndns,就不成问题 [00:40] <wiht> mrflibble:常驻的? [00:40] <mrflibble> 我猜要看它要用多少带宽 [00:40] <mrflibble> daemony [00:40] <jrand0m> 明白了 mrflibble——你的 router 对你来说运行得稳定吗,还是你只是做好事? :) [00:41] <mrflibble> 不太,因为我本地带宽现在被占满了 [00:41] <mrflibble> 我还没在我的托管机上跑 [00:41] <mrflibble> 想先本地玩一玩 [00:41] <jrand0m> 啊酷。是啊,i2p 现在还没准备好广泛部署,主要还是测试用 [00:42] <FillaMent> 呵.. 我把一个 tunnel 指到我的 CUPS 服务器上,你们就能匿名打印了 =) [00:42] <jrand0m> rofl [00:42] <mrflibble> 如果有你想让我跑的东西,每月用 <40gb 带宽的,告诉我 [00:42] <FillaMent> 只要加一页封面,我好知道把纸质版寄到哪儿 =) [00:42] <mrflibble> 呵呵 [00:43] <jrand0m> 太棒了 mrflibble,我们肯定会请你帮忙的 :) [00:43] <mihi> banner | lpr ? ;) [00:43] <FillaMent> mihi 你可以把 CUPS 配置成带封面页 [00:43] <mrflibble> 好的好的! [00:43] <mihi> banner 大概会打出很多页 ;) [00:43] <jrand0m> 好,在我们进入 mixminion->打印机->邮局 网关的讨论之前,先把这次会议结束吧 ;) [00:44] * jrand0m 准备好 *baf* 器 [00:44] * jrand0m 用 *baf* 结束了会议。