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

简要回顾

出席: duck, joda, jrand0m, mrflibble, Nostradumbass

会议记录

[22:02] <jrand0m> 0) 欢迎来到 $num [22:02] <jrand0m> 1) iip 状态 [22:02] <jrand0m> 2) kademlia 相关内容 + idn [22:02] <jrand0m> 3) 节点画像相关内容 [22:02] <jrand0m> 4) i2p 服务 [22:02] <jrand0m> 5) 杂项 [22:02] <jrand0m> 0) 欢迎 [22:02] <jrand0m> 嗨 [22:03] <jrand0m> 这是第 67 场还是第 68 场会议…… [22:03] <jrand0m> 1) iip 状态 [22:03] <jrand0m> 我不清楚。有人知道最近的情况吗? [22:04] <jrand0m> iip 的开发者不在,所以……不知道。 [22:04] <jrand0m> [ping] [22:04] <jrand0m> (上周我打了大概 10 分钟字,结果客户端把我 ping 掉了……) [22:05] <jrand0m> (在收到 p0ng 之前我什么都不打了,该死的;)) [22:05] *** Nostradumbass (nostradum@anon.iip) 加入了频道 #iip-dev [22:05] <jrand0m> 嗨,Nostradumbass [22:06] <Nostradumbass> 嗨 :) [22:06] <jrand0m> 好,太好了,看来我没有被 ping 掉,只是大家都在潜水。不错 :) [22:06] * jrand0m 跳到下一个议程项目 [22:06] <Nostradumbass> i2p 进展如何? [22:06] <Nostradumbass> 抱歉? [22:06] <jrand0m> 不错的引子 ;) [22:07] <jrand0m> 议程项目 3)i2p 0.2.3 状态 :) [22:07] *** nerox (~nerox@anon.iip) 加入了频道 #iip-dev [22:07] <jrand0m> 进展挺多的,尽管我离线了。几小时前提交了一大堆代码 [22:07] <jrand0m> 其中包括 kademlia netDb 的一个实现 [22:08] <jrand0m> 所以我很有信心下周发布 0.2.3(基本就是 kademlia netDb + 一个 shell 脚本) [22:08] <jrand0m> 不过我们对 kademlia 协议做了一些变体,以更适配 i2p [22:09] <jrand0m> 我们的 kademlia 树会一直非常、非常、/非常/稀疏。 [22:09] <jrand0m> 有 2^256 个可能的槽位,而网络中每个节点只有 1–10 个值。 [22:09] <jrand0m> 所以,就算极端地乐观,实际也几乎用不上什么东西,所有条目都会落在最外层的 kbucket 里 [22:10] <jrand0m> 因此 kademlia 的某些部分会被默默忽略 ;) 但基本思想保持不变,包括搜索算法和距离度量 [22:10] <jrand0m> 不过,idn 已经搁浅了。 [22:11] <jrand0m> 以为 i2p 的 netDb 代码可以和一个发布型 DHT 共用同一套代码,这个想法挺傻的 [22:11] <jrand0m> 已经果断放弃。 [22:11] <jrand0m> idn 总体上还是个好主意,但我不会花 i2p 的开发时间在上面 [22:12] *** tusko (~tusko@anon.iip) 加入了频道 #iip-dev [22:12] <jrand0m> 不过 0.2.3 的一部分变更包括对我们如何选择节点以及组织 router 统计的重大改造 [22:12] <jrand0m> 嗨呀,tusko [22:12] <jrand0m> 这就带到了议程项目 3)节点画像 [22:12] <jrand0m> 我之前挺傻的……终于把一些数学算了算 [22:13] <jrand0m> 现在收集的统计量非常庞大。 [22:13] <jrand0m> 大约每个节点有 6000 个数据点 [22:13] <duck> 什么是节点画像? [22:13] <jrand0m> 节点画像就是 router 跟踪每个节点的性能,以便将来决定用谁 [22:13] <duck> 啊 [22:13] <jrand0m> (也就是快速的 router、可靠的 router 等) [22:13] <duck> 那个吃我内存的进程 :) [22:14] <jrand0m> 嘿,其实那部分还不算太糟 [22:14] <jrand0m> 不过 6000 个数据点是没法扩展的。 [22:14] <jrand0m> 1000 个 router × 每个 6000 个数据点 × 每个数据点 4 字节 = 24MB [22:15] <jrand0m> 不过对几百个节点保留详细统计大概没问题,即使网络继续增长 [22:15] <jrand0m> 我们/不/需要给所有人都保留统计。只需要对我们想要用于 tunnel、garlic routing 和源路由的那些 router 保留即可。 [22:16] <jrand0m> 从长期看,追踪一百来个节点可能就够了。 [22:16] <jrand0m> 不过,就目前而言,我只能说:去他的。 [22:16] <jrand0m> 对所有节点都保留统计 [22:16] <duck> ping [22:16] <jrand0m> p0ng [22:17] <duck> 它会尝试了解所有节点吗? [22:17] <jrand0m> 现在会 [22:17] <duck> 哦等等,你最后几句已经说了 [22:17] <jrand0m> 我们还有一些用于合并并对节点画像做计算的代码 [22:18] <jrand0m> 所以其中一个计算器会决定丢弃哪些节点 [22:18] <jrand0m> 正在收集的数据集示例: (Link: http://i2p.dnsalias.net/~jrandom/profile.txt)http://i2p.dnsalias.net/~jrandom/profile.txt [22:19] <jrand0m> (你会注意到有很多 0 :)) [22:19] <jrand0m> 我写了一个关于节点选择和画像的粗略宣言,但需要把它放到 wiki 上 [22:20] <jrand0m> 不过那些基本都是 0.3 的事情。0.2.3 只用到了一点点 [22:21] <jrand0m> 好,节点画像先说到这儿。后面还有很多内容,现在只是先让大家瞄一眼进展 [22:21] <jrand0m> (当然,一如既往,任何愿意亲自上手,研究还该用哪些统计/计算/攻击/等等的人,我们会*非常*感激) [22:22] <jrand0m> 好,4)i2p 服务 [22:23] <jrand0m> tc 的站点很棒而且很可靠!我终于也访问到了 nightblade 的页面,是个很酷的博客(‘plog’ ;))。只是希望我能留言评论就好了 :) [22:23] <jrand0m> 还有 duck 的 Jabber 服务器,按照 tc 的论坛上发布的说明用起来相当简单 [22:24] <jrand0m> 有时会有点小问题,但那是 <= 0.2.2 的 router 里一些 bug 导致的,已经修复(会随着 0.2.3 推出) [22:24] <jrand0m> squid 代理通常是离线的,因为我经常离线,没法看护我的 kaffe routers :/ [22:25] <jrand0m> 所以目前在 i2p 上最可靠的可能就是那些 eepsites 和 Jabber 聊天,都跑在 i2ptunnel 之上 [22:25] <jrand0m> 接下来出现哪些服务会比较酷? [22:25] <duck> 我确实试过在 i2ptunnel 上跑一个 ircd [22:25] <duck> 但登录后还没拿到完整的 MOTD,我就已经因为无响应被 ping 超时了 [22:26] <jrand0m> 唉 [22:26] <duck> 而且那还是在同一个 router 上 [22:26] <duck> 所以放到野外性能会更差 [22:26] <jrand0m> 在本地 router 上也会被 ping 掉?! [22:26] <jrand0m> 本地 router 不该把任何东西 ping 掉 [22:26] <jrand0m> 哦,除了那个竞争条件的 bug [22:26] <jrand0m> (这大概就是原因,因为是本地,race 会更快触发) [22:26] <duck> irc 客户端因为未及时响应被 ping 掉了 [22:27] <duck> 我会用 0.2.3 再试试 [22:27] <jrand0m> 好 [22:27] <duck> 不过目前 Jabber 还挺好用的 [22:27] <jrand0m> 确实 [22:27] <jrand0m> 而且从长期看,irc 不是正途 [22:27] <duck> tc、jrandom 和我都在那里可以聊天! [22:27] <jrand0m> 呵呵 :) [22:28] <jrand0m> 我们需要一种即时通讯和群聊方案,不会把明文泄露给任何未授权的人,也不需要集中式的卡口 [22:28] <jrand0m> (也就是 iip 2.0) [22:28] <jrand0m> 现在要是 userx 回归就太好了 ;) [22:29] * jrand0m 不再屏住呼吸 [22:29] <jrand0m> 一个 NNTP 服务器/也/会非常非常赞。 [22:29] <duck> 我明天试试 [22:29] <jrand0m> r0x0r [22:30] <duck> Jabber 用来承载其他东西真的挺不错 [22:30] <duck> 看看 Jabber RPC 规范 [22:30] <duck> (Link: http://www.pipetree.com/jabber/jrpc/)http://www.pipetree.com/jabber/jrpc/ [22:30] <duck> 还有其他服务吗? [22:30] <jrand0m> 这很有意思——本质上把 Jabber 当作命名服务来做 [22:31] <duck> 你是说: [22:31] <jrand0m> 总会有更多服务可加——有邮件(usenet)、聊天(Jabber)和发布/浏览(eepsites),覆盖已经不错了 [22:31] <duck> 名称服务器有一个 Jabber 客户端,你可以通过它注册名称(提供令牌) [22:31] <duck> 也用它来查询? [22:31] <jrand0m> 不 [22:32] <jrand0m> 让 Jabber 的注册表本身充当命名服务 [22:32] <duck> 好 [22:32] <jrand0m> 它是中心化的,但能用 [22:32] <jrand0m> 就像 hosts.txt :) [22:33] <duck> 有没有比 SMTP 和 POP/IMAP 更适合这种环境的邮件方案? [22:33] <jrand0m> 这是个非常好的问题 [22:33] <duck> 因为我不认为把邮件服务器直接连上就能正常工作 [22:34] <jrand0m> 是啊,可能需要一个网关(类似 freemail),或者让命名服务做些有趣的“踢踏舞” [22:34] <jrand0m> 或者退回到中心化的单一 POP3/IMAP 服务器,大家都用同一台 [22:35] <duck> 我昨天和 aum(freemail 的作者)聊过 [22:35] <duck> 他说想用 Python 重写 fred [22:35] <jrand0m> 哈哈,不错 [22:35] *** mrflibble (mrflibble@anon.iip) 加入了频道 #iip-dev [22:35] <duck> 所以我建议他改为给 i2p 做 Python 版 router [22:35] <jrand0m> 哦,那简直太赞了! [22:35] <duck> 然后他对那些 PDF 文档非常不满 [22:36] <jrand0m> 嘿,如果他想要 OpenOffice 的原始文档,或者甚至导出成 txt,我可以导出 [22:36] <duck> 我没忍住,告诉他如果好好说,你也会有 m$word 文档的 [22:36] <duck> 嗯,你不导出成 HTML 之类的是个混蛋行为 [22:36] <jrand0m> 不,我试过了 ;) [22:36] <duck> 我没忍住,叫他去找你谈 [22:36] <jrand0m> OpenOffice 的 HTML 导出太烂了 [22:37] <duck> 嗯 [22:37] <mrflibble> 没错,jr [22:37] <jrand0m> 等规范到 1.0(也就是 router 到 1.0 并更新以匹配代码)时,它们会放到 wiki 上。 [22:37] <duck> 不过 wiki 上已经有大部分信息 [22:37] <jrand0m> 没错 [22:37] <mrflibble> 我试过拿它处理那本 Kevin Mitnick 的书。比 MS Office 还糟 [22:37] <duck> 唉 [22:37] <jrand0m> 正是。 [22:37] <duck> 他也许会来这里露个面 [22:37] <jrand0m> 那就太棒了 [22:38] <duck> 不过以他的态度,也许去加入 Freenet 阵营更好 [22:38] <duck> ... [22:38] <jrand0m> 嗯,投入 Freenet 总归是好事 [22:38] * duck 回到友好模式 [22:38] <jrand0m> :) [22:38] <duck> aum 的作品很棒 [22:38] <duck> 希望他能在 i2p 上继续发光 [22:39] <jrand0m> 是啊,每当有人谈起在 Freenet 上搜索,我总说“嗯,照着 McNabb 那样做就行” [22:39] <jrand0m> 我们确实需要帮助 [22:39] <duck> 这把我带到下面的问题: [22:39] <duck> 你对 I2P 做的这些改动,有规格文档吗? [22:39] <duck> 还是说 Java 源码就是最新信息的文档? [22:40] <jrand0m> 我在 palmpilot、文件系统和笔记本里都有记录,但不幸的是,我有一阵子没更新 OpenOffice 文档了 [22:40] <jrand0m> 二月是 jrandom 的文档月。 [22:40] <jrand0m> (还有 QA 和修 bug) [22:41] <jrand0m> ((还有狂欢;)) [22:41] <jrand0m> 规范大体还是正确的,只是细节更多了。 [22:41] <duck> 太好了 [22:41] <jrand0m> 不过数据结构改动更大 [22:42] <jrand0m> 好,关于服务还有别的吗? [22:43] <jrand0m> 好,5)杂项 [22:43] <jrand0m> 嗨 [22:43] <duck> 嗨! [22:43] <jrand0m> 最近怎么样? [22:43] <jrand0m> [任何问题/想法/问题/等等都在这里提] [22:43] <duck> base64 的技巧应该加到 i2ptricks 页面上 [22:44] <jrand0m> 哦,说得好 [22:44] <duck> 可能还有我还不知道的其他技巧 [22:44] <duck> 我会在源码里 grep 一下 ‘main’ [22:44] <jrand0m> 安装器没做成能让人自动获取 hosts.txt 并 reseed,我感觉很内疚 [22:44] <jrand0m> lol [22:44] <jrand0m> 有很多很多 main() 方法,但大多都是测试函数 [22:45] <jrand0m> 哦! [22:45] <jrand0m> 有件事。别指望从 cvs 拉下来的当前代码能和正常的 router 一起工作。 [22:45] *** joda (--@anon.iip) 加入了频道 #iip-dev [22:45] <joda> 嗨 [22:45] <jrand0m> db 消息变了 :) [22:45] <jrand0m> 嗨 joda [22:45] <joda> 抱歉,如果我打断了什么 [22:45] <duck> 我有点郁闷,没能让 cvs 跑起来 [22:45] <duck> 但我想起来这不是 Freenet [22:45] <joda> 我只是想问“anonymail”怎么了? [22:46] <duck> 所以你不需要最新的 cvs 也能用它 [22:46] <jrand0m> joda> 运行它的用户现在好像不在线。应该很快会回来 [22:46] <jrand0m> 呵呵 duck——今天我提交之后对你来说就跑不起来了,还是说在这之前就不行? [22:46] <duck> 上周某个时候 [22:46] <joda> jrand> 谢谢 :) [22:46] <joda> 回见 :) [22:46] <jrand0m> 啊,好的,duck [22:46] <jrand0m> 回头见 joda [22:47] <jrand0m> 是的,我只推荐跑发布版的代码 [22:47] <duck> 0.2.3 会把版本文件放到一个目录里吗? :) [22:47] <jrand0m> 0.2.3 会去掉版本文件 :) [22:47] <jrand0m> (非常非常多的改动) [22:47] <jrand0m> 但这意味着 0.2.3(以及之后)需要大致正确的系统时钟 [22:48] <jrand0m> (当前 Router.CLOCK_FUDGE_FACTOR = 30 分钟) [22:48] <duck> 0.2.3 的 fudge factor 会是多少? [22:48] <jrand0m> 可能一样 [22:49] *** joda 离开了 #iip-dev [22:49] <duck> 哦,current = 你的代码 [22:49] <jrand0m> 那个时间将用来让数据库条目过期 [22:49] <duck> 好 [22:49] <jrand0m> 啊,对,嗯 :) [22:49] <jrand0m> (在 0.2.2 里,那个 clock_fudge_factor 分散在六七个文件里) [22:49] <duck> 也许安装器可以更友好一些 [22:49] <duck> 比如少问点问题 [22:49] *** 签退:nickthief66282(Excess Flood) [22:50] <duck> 包含默认的 phttp URL,不限带宽等 [22:50] <jrand0m> 我想我们也可以自动猜一个随机端口 [22:50] <jrand0m> 你说得对 [22:50] <jrand0m> 想要提交权限吗? :) [22:50] *** 签退:nerox(EOF From client) [22:50] <jrand0m> (如果不要的话,我可以为 0.2.3 来更新它) [22:51] <duck> 反对的一个理由是用户会过于想当然地接受设置 [22:51] <duck> 而且大家都会用同一个 phttp relay [22:51] *** nickthief24373 (~chatzilla@anon.iip) 加入了频道 #iip-dev [22:51] <jrand0m> 确实。不过 0.3.1 的计划包括更新 phttp relay 的代码,让 relays 彼此通信,并把用户重定向到负载更轻的 relay [22:52] <jrand0m> 不过我总体上对当前的安装流程还满意——我新装了一个 0.2.2,不到一分钟就能浏览 tc 的页面了 [22:52] <jrand0m> (不过那是因为我知道文案都写了啥,根本没读……) [22:52] <duck> 我不喜欢很长的密钥 [22:53] <duck> 尤其是当你必须复制粘贴它们时 [22:53] <duck> 最好把它们当作文件来用 [22:53] <jrand0m> 嗯? [22:53] <duck> 但分发二进制文件很麻烦 [22:53] <duck> 所以你得用 base64 小技巧.. [22:53] <duck> i2ptunnel 能不能也读取 base64 的目标密钥? [22:53] <duck> 也就是从文件里读 [22:53] <jrand0m> 我正要打这句呢 ;) [22:53] <jrand0m> 是的,不会有多少工作量 [22:54] <jrand0m> 也许一行代码就够 [22:54] <duck> 另外,加“加密封装”(armouring)怎么样? [22:54] <duck> 带一个头和尾 [22:54] <duck> 像 PGP 那样 [22:55] <jrand0m> 对,有这种校验会很有用 [22:55] <duck> 当然,那只是个小玩意儿 [22:55] <duck> 但对想使用 tunnel 的人可能有帮助 [22:55] <jrand0m> 不过 Destination 结构本身已经很挑剔了 [22:55] <jrand0m> 但你说得对,裸的 base64 既不直观也不够安全 [22:56] <jrand0m> 我们需要一个 bugzilla [22:56] <jrand0m> 这样这些事情就能发到待办里 [22:56] <jrand0m> 我就可以不用我 palm 上的待办列表了 [22:56] <duck> bugzilla 有纳粹式的注册要求 [22:56] <duck> 要邮箱之类的…… [22:56] <jrand0m> 确实 [22:57] <duck> 但总比没有好 [22:57] <duck> 其他 bug 跟踪器也都有缺点 [22:57] <jrand0m> 是啊,我待过的公司最后基本都自己造了一个 [22:58] <jrand0m> 再看吧。等开始全面做 QA(0.3 出来之后),我们就需要一个 bug 跟踪器 [22:58] <jrand0m> 所以我们还有几周时间 ;) [22:58] <jrand0m> 不过要是有人做做调查,找到一个很不错的就太好了 [22:59] <jrand0m> [不是专门说你,duck,任何在家读这些会议记录的人都可以 ;)] [22:59] <duck> 目前 phpBugTrackers 对我来说还可以 [22:59] <jrand0m> 嗯,没用过那个 [22:59] <duck> 是的,我也不是在跟 jrandom 说话 [22:59] <jrand0m> lol [22:59] <duck> 而是在跟 I2P 代码开发者群体说话 :) [22:59] * jrand0m 其实是 12 个人共用一个 nym 的马甲 [23:00] <jrand0m> 好,1 小时,正点结束 [23:00] <jrand0m> 在我把 *baf*er 拿出来之前,还有谁要补充吗? [23:01] * duck 要求再给 1 分钟 [23:01] <duck> 因为我们是 21:02 开始的 [23:01] <jrand0m> 好好好 [23:01] <jrand0m> 啦啦啦 [23:01] <jrand0m> 晚饭吃什么好? [23:01] <jrand0m> 隔壁有家不错的炸豆丸子店…… [23:01] <jrand0m> 中午还吃了意式土豆团子 [23:01] <jrand0m> 嗯…… [23:01] <jrand0m> 也许来顿液体晚餐 [23:02] <duck> 汤? [23:02] <jrand0m> 哦哦哦——威士忌汤! [23:02] * jrand0m 就此用 *baf* 宣布会议结束