快速回顾

出席: beefbroth, CCD, ChZEROHag, co, dcat, dm, godmode0, jrand0m, mihi, mihi_backup, mrflibble, Myself248, myself248, nop, pitu, Ryan_Singer, shardy, thecrypto, UserX, yodel

会议记录

[22:56] 好好 [22:56] 议程 [22:56] 0.0) 欢迎 [22:56] 1.0) 开发状态 [22:56] 1.1) router [22:56] *** Myself248 (~ident@anon.iip) 加入了频道 #iip-dev [22:56] 1.2) DH 预计算 [22:56] 2.0) 微路线图 [22:56] 3.0) 应用 / 用途 [22:56] 4.0) ns [22:56] 5.0) IM [22:56] 6.0) administravia(cvs、bugzilla、cvs 列表、cvs web) [22:56] 7.0) 问题 [22:57] (没错,今天7个点。w00t) [22:57] 0.0) 欢迎 [22:57] 嗨。 [22:57] 嘿 [22:57] 今天17个用户。不错 [22:57] *** Ryan_Singer (chatzilla@anon.iip) 加入了频道 #iip-dev [22:57] 还在增加 [22:57] 好的 [22:57] 1~hi [22:57] 1.1) router 的开发状态 [22:58] Java 参考实现的 router 进展很顺利 [22:58] *** ChZEROHag (hag@anon.iip) 加入了频道 #iip-dev [22:58] 我们现在可以在不同的 routers 上运行应用并相互发送消息了 [22:59] 抱歉打断一下,希望只这一次 [22:59] 采用迭代增量式的方法,目前状态是安全,但不匿名,不可扩展,且可被收集 [22:59] 还有其他人在做 C 的 api 吗? [22:59] 你好啊 ChZEROHag,怎么样? [22:59] 因为我在做,但很慢 [22:59] *** dcat (dirtycat@anon.iip) 加入了频道 #iip-dev [22:59] 哦,酷 [22:59] shardy 会在 toorcon 结束后做一个 [22:59] 或许你们俩可以一起做? [23:00] jrand0m:你能手动输入一个 destination 来发消息吗? [23:00] 更准确地说,有没有 destination 的 ASCII 表示? [23:00] 是的 co,两者都是 [23:00] 太好了。 [23:00] destinations,以及所有 I2P 结构,都可以用(另一种字母表的)base 64 加载和序列化 [23:01] 所以不容易记,但会是 ascii? [23:01] (例如在我某个 router 的 netDb 里,我有 leaseSet-enD4jtE-orMwFD0QGog9GAyC5MvLvnPzhVD8cDYvSI8.dat,它包含 destination enD4jtE-orMwFD0QGog9GAyC5MvLvnPzhVD8cDYvSI8 的 lease set) [23:02] [不过那是 H(destination).toBase64() [23:03] ChZEROHag> 如果我们能帮你点什么,尽管开口 [23:03] 好,这就是 1.1。1.2) DH 预计算 [23:03] 你可以帮我做完它?:-) [23:04] 昨晚我写了个 DH 交换的预计算优化,能把 1.5 秒的会话协商省掉约 1 秒。如果有懂密码学的能确认我没疯就太好了 ;) [23:04] lol ChZEROHag [23:04] 啊我知道我需要什么了 [23:04] 一个 netdb 的实现 [23:04] 在 cvs 里吗? [23:04] 这个 dh [23:04] 是的 thecrypto [23:05] C:\dev\i2p\code\core\java\src\net\invisiblenet\i2p\crypto\DHSessionKeyBuilder.java [23:05] 嗯我还会再熬个 3/4 小时,或许能找点事做 [23:05] 呃,s/C:\\dev/g; s/\\/\//g [23:05] *** wax_off (~nomail@anon.iip) 加入了频道 #iip-dev [23:06] 好哒。你需要 netdb 实现做什么? [23:06] 我不记得了 [23:06] 我们目前在 cvs 里有一个不可扩展的 netdb [23:06] 嘿 [23:06] 至少一周没碰了 [23:06] 你在做 C 的 I2CP api,对吧?不是 I2NP? [23:07] 我本来打算全都做 [23:07] *** wax_off 离开了 #iip-dev [23:07] I2NP 比 I2CP 工作量真的真的真的大很多 [23:07] 一旦我真正开始,就会顺着做出来 [23:07] 但如果你在 C 里实现一个 I2NP,那就太棒了 [23:07] 现在有任何语言里的 I2NP 吗? [23:07] (I2CP:I2NP::FCP:FNP) [23:07] 有的 dm [23:08] * ChZEROHag 还原了 emacs [23:08] 我正在做的 Java 实现里 I2NP 是工作的 [23:08] 好的…… [23:08] jrand0m:url?我需要一个参考,就算是用可怕的语言写的也行。 [23:08] 嘿 [23:08] 呃,其实那是 6.0 administravia:也就是我们的匿名 cvs 访问到底在哪 ;) [23:09] 我在拿 DH 的东西 [23:09] 酷 [23:09] 哦对 [23:09] jrand0m,回到日程,microroadmap? [23:09] * thecrypto 捂脸 [23:09] 那我等着 :) [23:09] 呵 好的 [23:09] 微路线图 [23:09] 我把 0.1 到 0.5 都规划好了 [23:09] 那就是照着 freenet 的路线图走的? [23:10] *** mrflibble (mrflibble@anon.iip) 加入了频道 #iip-dev [23:10] 0.1) 可用,安全,不匿名,不可扩展,可被收集 [23:10] 在 0.5 期间开发放缓并冻结…… [23:10] 我们现在在 0.1。 [23:10] 呵 我注意到了 dm,flinks 也在 0.5.2 卡住了 ;) [23:10] 你叫整个包叫什么? [23:10] (奇怪的巧合) [23:10] 也就是,0.1 版的什么? [23:10] 整个包?i2p router 参考实现 [23:10] co:Wonga [23:10] * beefbroth 加入了会议 [23:11] 晚上好 beefbroth [23:11] 好的。这样就解释得通了。 [23:11] 其实我也许会这么叫。肯定比“i2pd”有趣 [23:11] 0.1 有 bug,这是肯定的。也没有什么显著优化(不过 DH 预计算有帮助)。 [23:11] 呵 [23:11] jrand0m,那 0.2) 呢? [23:11] invisible internet police department [23:11] 好的,0.2 [23:12] 0.2 是可用,安全,匿名,不可扩展,可被收集 [23:12] 0.2 增加对非零长度 tunnels 的支持 [23:12] 我昨晚其实大部分已经实现了,但还没彻底测试 [23:12] 我觉得 0.2 到本周末能准备好 [23:12] 从开发角度看我们离它还有多远? [23:13] 很好 [23:13] 0.3) 是可用,安全,匿名,可扩展,可被收集 [23:13] * thecrypto 下了 bochs,这样他可以模拟网络来帮助这个 [23:13] 0.3 增加一个 kademliaDatabaseManager [23:13] 目前我们用的是 BroadcastDatabaseManager [23:13] (也就是 gnunet ;) [23:14] 实现起来很简单,小网络能用,但我们需要 Kademlia 来扩展 [23:14] 0.4) 是可用,安全,匿名,可扩展,不可被收集 [23:14] 会加上受信链接 [23:14] jrand0m,实现 Kademlia 的开发挑战有多大? [23:14] 我有两个受信链接的想法……一个更容易实现和使用 [23:15] Kademlia 可能要整整一周 [23:15] (要做对的话) [23:15] 注意这些都还有大量重构和调优空间。我先追求可用,然后再调。 [23:16] 你确定能那么快开发和测试吗? [23:16] 我什么都不确定 [23:16] 只是我的估计 [23:16] co,他先做出可用的,我们来测 [23:16] 你确定吗? [23:16] (抱歉) [23:16] Ryan_Singer:明白了。 [23:17] * jrand0m <3 肯测试的人 :) [23:17] 你说“我们”测试。非代码的人能参与测试吗? [23:17] Myself248> 可能要等到 0.4 [23:17] 但愿不会到那一步:功能可用,但没人知道网络内部到底怎么运作才能跑好(比如 freenet) [23:18] 0.4 准备好后,那就是预览-Alpha。一旦到 0.4 我会调优、重构、补空白,为 0.5(Alpha)做准备 [23:18] 文档、文档、文档。 [23:18] 有在考虑对网络内部进行主动监控吗,还是很直观? [23:18] 是的 dm,绝对有 [23:18] i2np 的关键之一是 routerInfo 结构里发布统计数据 [23:18] jrand0m:做个 s/0./0.0./ ;) [23:18] 初始版本会发布真实统计,这样我们能调优 [23:19] 之后的版本要么不发布统计,要么发布假的 [23:19] * jrand0m 不做 0.0 [23:19] 好,我到了 [23:19] 欢迎回来 shardy [23:19] 抱歉迟到了,忘了这个窗口开着,呵 [23:19] 酷。 [23:19] 有没有更高层次的文档描述 .4 下的网络架构? [23:19] 砍头去 [23:20] Ryan_Singer> 嗯,几个月前我有些概览文档,mids 和 nop 做了镜像,还有 i2p 概览文档 [23:20] 0.4 是按规范里的完整 i2np,只是实现不够优化 [23:20] 哦对了 jrand0m,我会帮你看看那个 DH 优化 [23:20] 好的,gracias [23:20] 我能拿到那些文档吗? [23:21] 概览在 (Link: http://www.invisiblenet.net/i2p/i2p_philosophy.pdf)http://www.invisiblenet.net/i2p/i2p_philosophy.pdf [23:21] 我记得它们在 wiki 上? [23:21] 老的概览文档……嗯 [23:21] (i2p 规范在 (Link: http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs)http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs) [23:21] 它们在 (Link: www.invisiblenet.net/i2p/.)www.invisiblenet.net/i2p/. [23:21] 对 beefbroth [23:22] 不过有些旧的 html 文档,配了丑丑的画图图片,展示 tunnels 怎么工作…… [23:22] 我应该知道,我看了很多遍 [23:22] 呵呵 [23:22] 除非那些是老版本或镜像。 [23:22] wiki 上那些文件是 0.9(I2NP 和数据结构已有 0.9.1,但只是小改动) [23:23] jrand0m:预计算看起来不错 [23:23] 酷 [23:24] *** pitu (~pitu@anon.iip) 加入了频道 #iip-dev [23:24] * jrand0m 用 java -Dcrypto.dh.precalc.min=3 -Dcrypto.dh.precalc.max=10 -Dcrypto.dh.precalc.delay=5000 -jar C:\dev\i2p\code\router\java\src\router.jar 运行 router [23:25] 好,这就是微路线图 [23:25] 如你所见,我接受 Alpha 月底前不会准备好。0.4 可能是十月第一周 [23:26] 没关系,即便那样也会是此类网络史上最快的实现 ;) [23:26] lol [23:26] 看 jrand0m 的时间预估时,请记住他过去 4 小时一直在喝威士忌 :-P [23:26] 呵 [23:26] 好吧……apps/usage? [23:26] 还是好威士忌 ;) [23:26] 好的,apps/usage [23:27] 4 秒到 0.7……3……2……1..!! [23:27] 我瞄准好上手的——这些我们可以零代码或最少新代码完成。 [23:27] 你清醒着怎么可能好好写代码? [23:27] 这些都大量用到 mihi 的牛逼 i2ptunnel [23:27] ChZEROHag:很容易。 [23:27] *** mihi 把频道 #iip-dev 的主题改为 4 秒到 0.7....3...2...1..!! [23:28] 用 i2ptunnel,我们可以不写新代码做这些: [23:28] 公共 ww 代理(使用 i2ptunnel + squid) [23:28] * dm 向 mihi 致意。 [23:28] JAP(使用 i2ptunnel + JAP) [23:28] 你不能通过 i2p 踢屁股(通过 tunnel 也不行……) [23:28] 匿名浏览 www(i2ptunnel + 浏览器) [23:28] 运行 i2p web 服务器(i2ptunnel + httpd) [23:29] 非常棒。好极了,mihi。 [23:29] cvs 出口代理(i2ptunnel)(例如到 sourceforge 的 cvs 出口代理,用于匿名 freenet 开发) [23:29] cvs 客户端,cvs 服务器 [23:29] IM 应用、pop3 服务器、imap 服务器、opennap [23:29] 这些都是真正的“低垂果实” [23:29] 好的,现在我们只需要 i2p :) [23:30] 对 ;) [23:30] i2p web 服务器不会有点取代 freenet 吗?:) [23:30] * jrand0m 觉得这算个常见问题我应该回答 [23:30] jrand0m,但它们也很有价值 [23:30] 在这列表里,我觉得 cvs 更重要/有用 [23:30] 一方面我想保持匿名,另一方面如果提供匿名 www,就会有小白涌来 [23:30] i2p + web 不会取代 Freenet——Freenet 在匿名通信框架之上增加了重要价值——内容分发 [23:31] 目前匿名邮件这个想法有点吓人 :) [23:31] * dm 记下:“拒绝小白” [23:31] cvs 肯定在前三 [23:31] 我觉得如果 i2p web 服务效果好,你得考虑把 Freenet 的 DHT/存储部分融合到 i2p 上,这样两全其美。 [23:31] ChZEROHag,如果可扩展那是好事 [23:31] dm:小白只在早期阶段是问题,而且他们一般不用 cvs [23:31] 好吧,给任何匿名邮件加大量 hashcash。 [23:31] 甚至不知道那是什么(或存在) [23:31] 我觉得需要做的测试之一是对网络的攻击测试。 [23:31] 是的 beefbroth,一旦 i2p 达成目标,Freenet 很可能会调整来利用它 [23:32] 抱歉如果跑题。 [23:32] Myself248:加个重定向到匿名转发器就行。 [23:32] 不,绝对不跑题 co——攻击这个网络是关键 [23:32] Myself248:hashcash 主要是为了在我们被迫使用“irc”这种上古协议时防止泛洪 [23:32] 不是为了阻止所谓的“滥用” [23:32] 对,或许在 i2p 上跑 mixminion 会有用 [23:33] 对,hashcash 甚至内置在 i2p 自身里,防止消息不“付费”就只走一跳投递 [23:33] jrand0m,我们能很容易在这上面跑 imap 吗? [23:33] 绝对可以 [23:33] 令人印象深刻 [23:33] 一个 i2ptunnel 指向 imapd,客户端的 i2ptunnel 再指向那个 tunnel 的 destination [23:34] 还有 Freenet 搜索引擎 :) [23:34] ftp 或若干非 jabber 的即时通讯会有问题…… [23:34] 对,需要两条连接的更复杂 [23:34] jrand0m:i2p 里有 hashcash? [23:34] 这会后我来缠你。 [23:34] i2p 里有 hashcash?不错。 [23:34] 我们跑太前面了!哦好吧,谁在乎……QUAKE + IIP!!!!!! [23:34] 抱歉,是 I2p :) [23:34] lol dm [23:35] 我们这些小 CPU 的一听 hashcash 就紧张,但作为反垃圾措施我理解。 [23:35] dm:那就真是太太太超前了。 [23:35] * mihi 是 jabber:schierlm@a-message.de ;) [23:35] 是的 ChZEROHag——Destination == 公钥签名密钥(DSA)+ 公钥加密密钥(ElGamal)+ 证书(要么为空要么是 hashcash(keys)) [23:35] i2p tunnel 在客户端是静态还是动态的? [23:35] beefbroth:目前都是静态的。但你可以用 socks 代理作为目标。;) [23:35] Myself248> 我过几周会收到一台很牛的 sun ultra1。如果 160MHz 的机器都能跑,大家都能跑 [23:35] 嗯。hashcash 对小 CPU 也不该很糟。只有当你想做“十亿次”的时候才会察觉。 [23:36] beefbroth:可以是动态的。 [23:36] 这里“低垂果实”的潜在应用非常让人印象深刻 [23:36] 对,mihi 说得对 [23:36] “eleventy”。呵 [23:36] 低垂果实本质上就是“正常”的互联网应用,但匿名 [23:36] 对吧? [23:36] 对 [23:36] 是的 [23:36] (quake) [23:37] 0.1 安全地运行它们,0.2 匿名地运行,0.3 可扩展地运行,0.4 不可被收集地运行 [23:37] (我们现在在 0.1) [23:37] 你说的“不可被收集”是什么意思? [23:37] 抱歉,“可被收集”是啥来着? [23:37] dm:不幸的是,我们已经被拖累到实时通讯在 30 多年后仍不“正常” [23:37] 呼。我就希望有人问这个。;) [23:37] 可被记录 [23:37] “收集”是指一个主动攻击者可以运行一个 router,发现很多其他 routers(“收集”它们),然后派人去砸他们的门 [23:38] 哦,比如你能在 gnutella 上做到的那样。:) [23:38] 像特务那样的打手 [23:38] 没错 [23:39] 啊,明白了。 [23:39] 好的,总之,这就是微路线图。 [23:40] 现在,我把这些叫 0.x 而不是 0.0.x 蠢吗?1.0 应该是“完美”还是应该是可用且安全? [23:40] jrand0m,那我们啥时候能看到 .4? [23:40] 0.4 大概还有两周 [23:40] * jrand0m 十月中旬会休(大概)一周,因为有人来访 [23:40] *** Signoff: dm (客户端发来 EOF) [23:40] 1.0 应该是稳定的。 [23:40] 让 1.0 可用且安全。 [23:40] 同意 co [23:41] 1.0 应该是可用、稳定且安全 [23:41] jrand0m:我对版本号的哲学是,拿不准就学 Linux [23:41] 5.0 可以“完美”。自由软件的人太害怕版本号膨胀了。 [23:41] 好 [23:41] jrand0m,v1 从不完美 :) [23:41] *** dm (~gj@anon.iip) 加入了频道 #iip-dev [23:41] 人们也不指望它完美 [23:41] 我错过 1.0 了吗? [23:41] mrflibble:人们不指望任何软件完美。人们都在用 Windows。 [23:41] 这个软件会是 GPL 还是 LGPL? [23:41] 酷,已经有人因为 1.0 还不完美来挑刺了 [23:41] 这不代表它不该完美。 [23:41] 说得好 ChZEROHag [23:42] 啊糟,我确实错过了…… [23:42] dm:别闹了 [23:42] 是的,你错过了 [23:42] router 是 GPL。Java 客户端库目前是 GPL,但我持开放态度。除了一段(Cryptix 的 AES 实现,MIT 许可)外,thecrypto 和我对其余部分拥有全部版权 [23:42] 好吧好吧,对不起 :( [23:42] 实际上,我收回前面的话 [23:42] 我还用了 Freenet 的 Base64.java [23:43] 我们还在议程 0.3 Apps 上吗? [23:43] 所以 base64 是 GPL :) [23:43] 而 IM 客户端会是 GPL [23:43] 哦对,我们在 0.3 上吧 [23:43] 等我把代码里加上注释 [23:43] *** UserX_ (~User@anon.iip) 加入了频道 #iip-dev [23:43] 呵 thecrypto [23:43] GPL 听起来不错 [23:43] w0ah,23 个用户 [23:43] 我们在议程 6.02E23,随机吐槽。:) [23:43] jrand0m,如果你有时间,我想和你聊聊授权和潜在的咨询机会 [23:43] 好的 Ryan_Singer [23:43] 不过正如某人(Fillament?)指出的——如果有人违反授权,匿名的人怎么处理? [23:43] jrand0m:22 ;) [23:43] ChZEROHag> 去读我在 flinks 上的授权 ;) [23:43] 我们需要一个匿名法院系统。 [23:44] * mihi 同时在两个地方 [23:44] Myself248> 它叫 yodel ;) [23:44] “法庭现在审理案号 34534,J. Doe 诉 J. Doe” [23:44] ChZEROHag,我问这个的原因是让公司能利用这软件来防工业间谍 [23:44] 呵 [23:44] “法警,那不是我们刚听过的前 34533 个案子的同一双方吗?” [23:44] 嗯 [23:45] 总有一种想法是,如果你真想让大家用你的协议,而且你不在乎钱,就把它完全开放。甚至不受 GPL 限制。 [23:45] shardy:你是说公有领域? [23:45] 我觉得那是 co 引到 0.4 议题 :-P [23:45] shardy> 规范是公开开放的。我没有对规范主张版权。 [23:45] shardy,不,我们希望协议上的工作能保持可用 [23:45] 公有领域、BSD 许可、“随便用但请署名”许可,之类 [23:45] 代码方面,router 是 GPL。Java 的一个客户端 api 实现是 GPL [23:46] 看看 liberty 协议……(Link: http://projectliberty.org)http://projectliberty.org [23:46] jrand0m:好的懂了。 [23:46] * jrand0m 想过“不得政府使用”的授权 ;) [23:46] 好,把 3.0) apps 放到清单里的原因是 [23:46] 我们需要帮助。 [23:46] 需要什么方面的帮助? [23:46] i2ptunnel 是好代码。i2p 的 router 也会是好代码。 [23:47] 我们需要大家开始琢磨发布工程的细节 [23:47] 如果能用 i2ptunner,为什么需要应用? [23:47] jrand0m:再说一遍? [23:47] 也就是,如何真正把某个东西打包,让“老王”能下载然后浏览网页 [23:47] dm:既然有 telnet,为什么还要应用? [23:47] 啥? [23:47] * dm 挠头。 [23:47] 呃,除了 telnet 还有别的? [23:48] * jrand0m 觉得这就是 ChZEROHag 想表达的 dm ;) [23:48] *** Myself248 现在叫做 myself248 [23:48] *** Signoff: thecrypto (Ping timeout) [23:48] dm:用 i2ptunnel 就像你有一辆能开的车,却用手推车拖着它 [23:48] 好,就这样。我只是提一下,以防大家有空 :) [23:48] 好,4.0) [23:48] 命名服务 [23:48] 我看出来他在表达一个观点。 [23:48] 嗨 co,最近怎样?:) [23:48] 命名服务器必须 GPL,因为至少 Java 实现用到了客户端库里的代码来联系 routers。 [23:49] 但我们刚花了 20 分钟说:I2Ptunnel + web server!,I2Ptunnel + quake! ;) [23:49] 或者,用计算机术语说,就像所有上网活都用 telnet 而不是直接用 IP 栈 [23:49] 我上周做得不多。我发布了客户端 API,它也需要工作。 [23:49] i2ptunnel 是个过渡方案 [23:49] 不过这周我有时间开始实现命名服务器。 [23:49] 酷 [23:49] 客户端 api 在哪来着? [23:50] 在邮件列表 ;) [23:50] 它的一个假设是 destination 能用 base64 编码,这也是我之前问那个问题的原因。 [23:50] ChZEROHag> 在某些方面它是过渡的 [23:50] * jrand0m !thwaps self [23:50] *** thecrypto (~thecrypto@anon.iip) 加入了频道 #iip-dev [23:50] TCP 也是! [23:50] *** yodel (yodel@anon.iip) 加入了频道 #iip-dev [23:50] 嗨 yodel [23:50] 命名约定会是什么样的?“老李”能看懂吗(例如 (Link: www.somthing.com)www.somthing.com 或 (Link: www.something.i2p)www.something.i2p 用于 http/web)? [23:50] 我会把命名服务规范和客户端 API 放进 CVS。 [23:50] 欢迎回来 thecrypto [23:50] 这些可能之前讨论过了,但 ns 如何公平地提供唯一名? [23:50] * mihi 想要 *.mihi.iip ;) [23:50] beefbroth> 带命名服务还是不带? [23:50] 呵 mihi [23:50] 避免像 DNS 那样的抢注等问题 [23:50] 谁能发我刚才发生了什么? [23:51] jrand0m:带。我想不带就是一长串数字。 [23:51] ChZEROHag:你会在一组命名服务器里注册,然后用那组的名字来标识自己。 [23:51] 比如你提供 IM 服务,那就是 IM.beefbroth.mygroup。 [23:51] 噢,s/iip/i2p [23:51] *** godmode0_ (~mode@anon.iip) 加入了频道 #iip-dev [23:51] *** Signoff: godmode0 (客户端发来 EOF) [23:51] ChZEROHag> co 的命名服务有可信的分组,每个组管理一个组名(tld)。你选择哪些组运行哪个 tld [23:51] 是的,也可能有人在 group2 注册用户名 beefbroth。 [23:51] 在我离开的 4 分钟里 [23:52] co:所以唯一的问题就是 .mygroup 的唯一性? [23:52] 那谁拿 group ‘com’?:-) [23:52] 而且这是由客户端选择的 [23:52] ChZEROHag:i2p 不是 COMmercial [23:52] (例如你告诉 ns 客户端库“.com 组是 group 0123ff33aefcbb34fe [23:52] 我不太想提,但我几乎觉得组默认 3 个字母能保留它和常规 web 类似的错觉 [23:52] ChZEROHag:我不确定谁拿 “com” 组。 [23:52] 好问题。 [23:53] beefbroth:除了“常规 web”不再只有 3 字母 tld [23:53] beefbroth:或者给所有地址加 .i2p。 [23:53] beefbroth:那种错觉只在美国存在 [23:53] tlds。 [23:53] 一开始,我们也许只需要先有一个命名服务器组,“.i2p” [23:53] beefbroth:命名服务器软件允许你最多有 32 个字母。 [23:53] 在别处我们用给的 2 字母国家码 [23:53] .us 在美国也在用。 [23:53] 其实,我想第一个组叫“test”。 [23:53] 还有 .info 和 .name [23:53] 呵 好的 [23:54] shardy:是啊,大概 5 个人用。 [23:54] 不过这也许是另一个时间的吐槽 :) [23:54] 实际上…… [23:54] 甚至还有 .museum [23:54] jrand0m,用 .12p 听起来不错 [23:54] 我前几天碰到一个基于 JXTA 的分布式 DNS [23:54] ChZEROHag:但重点是,如果你不喜欢运行“com”组的人,你可以建立“com2”组并运行其服务器(并在那注册)。 [23:55] 是的那点完全说得通 [23:55] ChZEROHag:(Link: http://www.nic.us/press/audio/dotus-mayEM.wav)http://www.nic.us/press/audio/dotus-mayEM.wav ;) [23:55] co> (Link: http://wiki.java.net/bin/view/Jxta/DisDNS)http://wiki.java.net/bin/view/Jxta/DisDNS 是个分布式 DNS 的 wiki,虽然很粗糙,也没解决什么难题 [23:55] 我会会后看那个。 [23:55] jxta 通过 rendezvous 点跑命名服务器 [23:55] mihi:那是什么? [23:55] 所以有人可能通过模仿已存在的 i2p 命名服务器组来攻击 NS 系统 [23:57] *** Signoff: jeremiah (Ping timeout) [23:57] beefbroth:我觉得不会。 [23:57] ChZEROHag:听听。为什么 xxx 百万美国人更偏好 .us 而不是 .com [23:57] 6800 万 [23:57] 我设想是,人们搭建组时会宣布这些组。 [23:57] 模仿?他们不能模仿,因为组内服务器通过公钥系统认证 [23:58] 不过,如果组允许不可信成员加入,很容易被接管。 [23:58] 但密钥交换怎么做? [23:58] 后来的会面临组已建立的问题,而且客户端软件配置文件里已经包含了前者组的 destinations。 [23:58] mihi:我一直说偏好它是有道理的,爱国什么的,只是我没怎么见过而已。 [23:58] 如果两组命名服务器都声称解析 .i2p 组会怎样? [23:58] 好问题,我会再仔细想想。 [23:58] mihi:总之,我去听听 [23:58] shardy> 没有密钥交换——是密钥发布 [23:58] 我懂了,说得好 [23:58] co:是的,这也是我想说的 [23:58] 但如果在线发布,密钥仍可能被截获 [23:58] beefbroth> 没人“声称”什么。你的客户端说“i2p == [dest1, dest2, dest]” [23:59] 我们需要的是一个基于信任的 dns 系统 :) [23:59] 这样你可以提交查询拿回一组响应……然后用你信任的那个 [23:59] 感谢提出来。 [23:59] shardy> 啊,我想我理解困惑了。我觉得命名服务会希望通过带外方式带一组 destinations(也就是随安装包自带) [23:59] 是啊我们有一个——大家信 IANA(或不管他们叫啥),否则就…… [23:59] * shardy 蹲下 [23:59] :-D [23:59] 他们在用 dnssec 尝试,但当然那不匿名 [00:00] 这个命名服务要做的是摆脱根服务器 [00:00] 你总可以有个 i2p 首页列出活跃的命名组和权威? [00:00] jrand0m:好的。只是指出不管怎么做它仍可能被截获,除非最初传输密钥用的是物理安全的通道…… [00:00] shardy:我觉得我在规范里覆盖了密钥交换。如果没有,告诉我。 [00:00] 但带外分发会更好 [00:00] co:我去看看。 [00:00] shardy> 哦对。是的,人们需要信任他们下载的代码 [00:00] beefbroth:当然。 [00:01] 啊这提醒我了 [00:01] beefbroth> 是的,这肯定是最先实现的应用之一——一个 i2p webserver,带 bbs 和 wiki,人们可以通过 i2p 访问 [00:01] 我应该给我的 iipmail 创建个 gpg 密钥 [00:01] *** yodel 离开了 #iip-dev [00:01] * ChZEROHag 在无聊部分进行时就去做 [00:01] 呵 好 [00:01] 请理解命名服务器规范仍然开放改进建议。 [00:02] 我打算飞去 toorcon 的时候把所有规范带上……正好有时间看 [00:02] 我不声称它现在完美或定稿。 [00:02] 呵 希望是个长途 [00:02] 也比一路玩 FFT Advance 更有生产力,呵 [00:02] * jrand0m 发现一旦有实现规范的代码,批评会更踊跃 [00:02] *** godmode0_ 现在叫做 godmode0 [00:02] 我还得写代码。 [00:02] 我觉得我们现在可以进入下一个话题了。 [00:02] 好 [00:02] 5.0) IM [00:03] 嗨 thecrypto [00:03] 名称不应与 base64 表示冲突。 [00:03] 嗨 [00:03] 好的 [00:03] 而命名服务器应透明地原样返回 bas64 地址。 [00:03] mihi:很好,我会尽量避免这个问题。 [00:03] 首先,因为我的邮件又坏了(该死的垃圾邮件) [00:03] (所有继承 DataStructure 的类都有 String .toBase64() 和 .fromBase64(InputStream)) [00:03] 我就在这里回答 whit 对我系统的问题 [00:04] * jrand0m 打开 co 的邮件 [00:04] jrandom?为什么是 InputStream 而不是 Reader? [00:04] network 是我首先想到的,你在 i2p network 上连接,它很 p2p 所以我叫它 networkr [00:04] 如果你要 Reader,就套个 InputStreamReader,熊孩子 [00:04] base64 在我看来是字符,不是字节。 [00:04] jrand0m:IM == Instant Messaging? [00:04] 是的 ChZEROHag [00:04] 如果有人不喜欢这个叫法,给我个替代建议 [00:05] jabber? [00:05] IM == 我自己的分布式 IM network [00:05] 你应该叫它“bob” [00:05] i2p im 和 aim 是网络的同样意义,或 kazaa 是网络,都是跑在 tcp/ip 或 udp/ip 上 [00:05] 叫 IM application 怎么样? [00:05] (anonabber) [00:05] jrand0m:我懂了。 [00:05] jabber 需要中心服务器 [00:05] 术语对我无所谓。我喜欢 shardy 的主意 [00:05] thecrypto:没有什么“必须”中心化 [00:05] 今天我拼写不行,见谅 [00:05] 那只是写法的问题 [00:05] (不过我更喜欢 Betty) [00:05] 那你想让我叫它 I2PIM bob? [00:05] :) [00:05] Wilma 如何? [00:05] fred 被占了 [00:05] 分布式 IM 怎么样? [00:05] DIM,呵 [00:05] 但那就是分布式 IM “应用”? [00:05] AIM,anonymous Instant messaging! [00:05] 不太好的缩写 :) [00:06] 然后我们就能接管 AOL。 [00:06] 哦我已经等不及 AOL 知道这个了 [00:06] dm:那会真把某些人气坏。我喜欢。 [00:06] 呵 做吧 [00:06] thecrypto,我们能以去中心化的方式实现 IM 吗,还是必须中心化? [00:06] dm:好主意。我支持这个缩写。 [00:06] 以我读 thecrypto 文档的理解,IM 是完全去中心的 [00:06] 我在实现一个分布式 IM,在 CVS 里 [00:06] 我会反对任何会让人困惑的东西 [00:07] AOL TimeWarner 把名字改回了 Time Warner [00:07] dm:那会真把某些人气坏。我喜欢。 [00:07] 如果人们不理解什么是匿名,透明的匿名就没用。 [00:08] 哦等等,我有类似的东西写在纸上 [00:08] 我喜欢 the crypto 的想法 [00:08] 我在找 I2PIM 跑在哪个“network”上 [00:08] 教人们如何保护自己真的很重要 [00:08] 我在想 Presence System? [00:08] 强调匿名的安全性 [00:08] I2M(instant 2 messaging) [00:08] 虽然我只把它叫 XIrc [00:09] 你说了算 thecrypto,什么顺手就用什么 ;) [00:09] 然后在 I2M 的 logo 里,2 要很小 :) [00:09] 那 I2P 展开是 Invisible … jrand0m? [00:09] 我最喜欢的是大家都叫 Borg,然后他们在 Collective 里聊天 [00:09] i2p = i^2p(Invisible Internet Project) [00:09] 我以为 P 代表 protocol。 [00:09] 也可以这么说 [00:09] 嗯,其实,不是 [00:10] 那就是 Invisible Internet Project Instant Messaging [00:10] i2np 是协议 [00:10] i2p 是项目 [00:10] i2cp 是客户端协议 [00:10] 我还以为代表“poop” [00:10] thecrypto:你说得对,名字不太重要。 [00:10] i2m = i^2m = instant invisible messaging [00:10] 那下个话题吧 [00:10] 好的……我们偏离议程了……IM 结束了吗? [00:10] 如果“bob”不够好,我们可以叫“jimbob” [00:10] 0k,6.0) administravia [00:10] 不,还没完 [00:11] 抱歉 [00:11] 是 administrivia。 [00:11] 不,是 IM [00:11] nop> 给我 root。我需要安装匿名 cvs、bugzilla 和 cvsweb。 [00:11] 我还没说完 [00:11] :) [00:11] 回带! [00:11] * jrand0m 后退 [00:11] 5.1) thecrypto v2 [00:11] IM 还有什么,thecrypto? [00:12] thecrypto:继续说;/me 我也像错过命名服务一样错过了 [00:12] 好的,presences 通信的方式不一样 [00:12] 不是每个人都认识每个人 [00:12] 几乎没法“跟踪”某人 [00:12] 你得请求才会展示给你 [00:13] 在匿名网络里,通常没有人认识任何人 ;) [00:13] (只要人们的 Destination 是随机的) [00:13] *** Signoff: pitu (终端丢失) [00:13] 你什么意思? [00:13] Alice 想和 Bob 说话 [00:13] mihi> 不过命名服务允许按服务搜索 [00:13] (服务比如 IM、www 等) [00:13] Alice 以某种方式找到 Bob 的 IM destination,可能通过命名服务 [00:14] 所以 Alice 给 Bob 的 IM destination 发消息 [00:14] 然后? [00:14] 他会收到条小消息说“Alice 试图联系你”,他要是想聊就可以,不想就忽略 [00:15] 但没有中心的 presence 服务器,Alice 也可能只是看着她的消息消失,没回应 [00:15] 好吧,那不就跟 MSN 一样? [00:15] (不过 Alice 能知道 Bob 忽略了她) [00:15] 而 Alice 不能把 Bob 加到她的好友列表然后等他 [00:15] thecrypto,好吧……除了没有中心服务器,这和恰当配置的 Y!、MSN 或 AIM 有什么不同 [00:15] 因为 Bob 得先给 Alice 发消息才能看到她上线 [00:15] 哦 [00:15] 好,用户这边体验不变,但我懂你意思了。 [00:16] thecrypto> 不完全是 [00:16] 明白了……没有好友列表功能…… [00:16] 哦,嗯,从技术上说…… [00:16] Ryan_Singer:不,仍然有好友列表 [00:16] 如果 Alice 看不到 Bob,怎么给他发消息? [00:16] 你只能碰运气地尝试随便联系? [00:16] Bob 要给 Alice 的 router 发消息,这可以在 Alice 不知情的情况下发生 [00:16] Alice 可以随机试 [00:17] 那不太方便吧?你一上线就得给每个人发“在吗?在吗?” [00:17] thecrypto:用户上线时能不能“通知”所有好友,给他们发一条消息?或者你说的就是这个 [00:17] * co 注意到可以有两个 Bob 分别注册在两个不同的命名服务器组。 [00:17] beefbroth:我说的就是这个 [00:17] 好,和当前方案类似,但你默认是隐身的。 [00:17] 懂了。 [00:18] dm:不,反过来,你上线时会给所有人发消息说“我上线了,我上线了”,如果你收到“我上线了”消息,你就回一个 [00:18] 如果你愿意 [00:18] 所以用户控制谁能看到他/她/它。 [00:18] 所以 Alice 可以把你加到她的好友列表,你会在她上线时收到消息说“Alice 把你加到她的好友列表了,你要通知她你的 presence 吗” [00:19] 你下线之前会先发一条“我要下线了”的消息吗? [00:19] 好,所以 IM 体验和现在一样。确认一下。 [00:19] 如果 Bob 把 Alice 加在好友列表里,且 Bob 收到 Alice 的在线消息,就会自动回 [00:19] 可能需要每隔一段时间“ping”一下对方,确保不是无意断线 [00:19] 如果 Bob 没有把 Alice 加到好友列表,Bob 收到 Alice 的在线消息时会提示用户 [00:19] 好,那只是绕开服务器的一种方式,但问题是默认情况下应用会不会在有人登录时发“我上线了”。 [00:20] 希望会 [00:20] Ryan_Singer> 或者就定期发“我还在线”的 ping [00:20] (缺 ping == 下线) [00:20] 保活那种? [00:20] 可能需要每隔一段时间“ping”一下对方,确保不是无意断线 [00:20] 如果 Bob 把 Alice 加在好友列表里,且 Bob 收到 Alice 的在线消息,就会自动回 [00:20] 嘿 [00:20] 如果 Bob 没有把 Alice 加到好友列表,Bob 收到 Alice 的在线消息时会提示用户 [00:21] 好,所以 IM 体验和现在一样。确认一下。 [00:21] 只是现在加好友有确认 [00:21] 我觉得只有 ICQ 有 [00:21] IM 应用会是独立应用,还是我能用 trillian? [00:21] 是啊,MSN 就是这样。 [00:21] [等等] [00:21] thecrypto:ICQ 只是装作需要确认 [00:21] dm:不对。你不用应对 MSN、Y! 和 AIM 每隔几个月改协议把人锁在外面了 :) [00:22] jrand0m:我会写个规范,trillian 要么给我个插件接口,要么他们自己写 [00:22] 我至少会写个 gaim 插件 [00:22] 还有个独立客户端 [00:22] 酷 [00:22] 它就是配合 network 使用 [00:22] gaim 支持文件传输吗,还是这会是 i2pim 客户端的优势? [00:22] thecrypto:你也许想和 kopete 开发者打个招呼,就让他们知道 [00:22] * jrand0m 展示了自己的无知 [00:23] 我会尽量让 gaim 插件和独立版一样好,但不确定 [00:23] thecrypto:先有独立应用吧。 [00:23] gaim 的文件传输我记得只在 AIM 上有效 [00:23] 所以要把它塞进插件可能要费点劲 [00:23] 好……我想我们都懂了……IM 还有别的事吗? [00:24] 以及 co 的最后一点 [00:24] gaim 在 NAT 环境下的 IM 传输有问题 [00:24] 不止一个人可以有同样的名字 [00:24] 他们会有唯一的 destinations [00:24] *** Signoff: mihi (Ping timeout) [00:24] 好的。 [00:24] * mihi_backup 还在…… [00:24] 但有人不能伪装 [00:25] 呵 不错啊 mihi_backup [00:25] 如果你用命名服务器,会是“来自 group1 的 Bob”和“来自 group2 的 Bob”。 [00:25] 拥有唯一的 destinations。 [00:25] 对 thecrypto。名字是任意的。有点像 dns ;) [00:25] *** mihi (~none@anon.iip) 加入了频道 #iip-dev [00:25] 另外 IM 客户端本身可以可选检查“嘿,你收到的这条 IM 来自一个叫 Bob 的人,但你列表里 Bob 的 destination 不同,要接受吗?” [00:26] mihi:你不在时你的备份说话了。 [00:26] 如果有人试图伪装 Bob,你会知道,否则,你可以给他们起别名 [00:26] 我知道…… [00:26] “一个叫 bob 的人”?谁说的?他自称 bob?还是某个组叫他 bob?还是你把他的 dest 称为 bob? [00:26] presence 里有个字段叫 name [00:26] 我看的就是它 [00:27] * jrand0m 喜欢 ICQ 处理这个问题的方式——每个人都是一个号码,你只在本地把号码起别名为名字 [00:27] 顺便说一下,我要不要把 NS 实体名做成不区分大小写? [00:27] 可能要,co [00:27] base64 的东西仍必须区分大小写 ;) [00:27] * jrand0m 不想有人冒充 Jrand0m [00:27] mihi:是实体名,不是 destinations。 [00:27] 对对,mihi [00:28] (好吧,人们可以随便冒充 jrand0m。我只想要回 jrandom) [00:28] 继续,thecrypto。 [00:28] *** Signoff: UserX_ (Ping timeout) [00:28] 我说完了 [00:28] 总算 :) [00:28] co:你应该能在任何能放实体名的地方放一个 destination。 [00:28] 就像 dns 名和 IP 一样 [00:28] mihi:好主意。我会把这点加进规范。 [00:28] jrand0m:其实它有点像 ICQ,只是你告诉别人你想要的别名 [00:29] 好像他们现在就是这样 [00:29] 不过想法是,输入名字比输入 destinations 要短得多。 [00:29] mihi> 命名服务只把名字转成 destinations——如果你问命名服务一个 destination 的 destination,它应该非常非常快地返回 [00:29] 好了各位……我有个会……jrand0m,给我发匿名邮件 [00:29] 好,再见 [00:29] jrand0m:是的,而且它应返回那个 dest 自身,而不是“未找到” [00:30] 对 [00:30] *** Signoff: Ryan_Singer ((null)) [00:30] 好。我们到 7.0) 了 [00:30] 问题 [00:30] 嗨 [00:30] 那 6.0) Administrivia 呢? [00:31] 还是你已经说完了? [00:31] 6.0 administravia 就是我催 nop 给我 root,这样我能给大家:匿名 cvs 访问、bugzilla 和一个 cvsweb 界面 :) [00:31] 会不会有人负责为 Win/Mac/SuSE/RedHat/Debian 打包 alpha、beta 和发布版来加快采用? [00:32] 你要自愿? [00:32] (也就是,是的,那太好了) [00:32] 如果我学会给我的发行版做包的话 :) [00:32] 你用哪个发行版? [00:33] 我记得,IIP 开发者想在 I2P 上重写 IIP。如果 I2P 能兑现其匿名承诺,那直接把 IRC 跑在 I2P 上不是更简单? [00:33] 但我的观点是,很多人依赖这些。它会让采用更容易。Freenet 缺活跃维护者就吃了亏。 [00:33] jr 是个不错的经理 :) [00:33] 是的 co,更简单,但不如另一些方案可扩展 [00:33] *** UserX_ (~User@anon.iip) 加入了频道 #iip-dev [00:33] 是,但有些人不想用 IRC [00:34] beefbroth> 你说的非常对,要做的事很多,而我至少需要每天睡 4 小时 [00:34] thecrypto:说得好,不过 I2P 会匿名化大家的 IP 地址。 [00:34] jrand0m:东西准备好时我可以帮打包。我觉得这是一些有点技术专长的非开发者可以贡献的好方式。 [00:34] 太棒了 beefbroth [00:34] 如果我们有 IM 和 IRC,采用会更多 [00:35] co:问题在于 IRC 有可关停的东西(服务器)。 [00:35] *** jeremiah (~jeremiah@anon.iip) 加入了频道 #iip-dev [00:35] thecrypto> 即刻采用:opennap [00:35] 学做包比学 i2p 数据结构容易。是几个人容易参与的方式 [00:35] IRC 相当难,对吧? [00:35] 分布式 IRC 是说…… [00:35] mihi:当然。我忘了。谢谢提醒。我撤回异议。 [00:36] dm> irc 可以有多个 irc 服务器(比如 efnet 等)通过 i2p 相互沟通 [00:36] 你指“看起来像 irc”的聊天协议? [00:36] 还是改造 irc? [00:36] 人们通过经由 i2p 隧穿到其中某个 irc 服务器来相互聊天 [00:36] irc 服务器在 i2p 后面没问题,我是说没有服务器。不重要我想。 [00:37] dm> 对,没有服务器能做得更好,已经有些思考,但据我所知还没有很扎实的东西 [00:38] 无论如何,这跑题了。 [00:38] 继续! [00:38] 还有其他问题吗? [00:38] 有人读过规范了吗?;) [00:38] (除了 beefbroth,他已经背下来了) [00:38] * dm 看着天花板。 [00:39] 好,那就 100 分钟会议吧 [00:39] 我在读,需要什么我就去看 :) [00:39] 规范! [00:39] 我就忘了这个! [00:39] 呵 [00:40] *** dm 把频道 #iip-dev 的主题改为 topic1 [00:40] * jrand0m 装填然后…… [00:40] * jrand0m *baf* 结束了会议