Tóm tắt nhanh

Có mặt: co, jrand0m, LeerokLacerta, mihi, mrflibble, mrsc, nop, shardy, thecrypto, w0rmus

Nhật ký cuộc họp

[22:53] 0) chào mừng [22:54] 1) ứng dụng: [22:54] 1.1) IM [22:54] 1.2) NS [22:54] 2) tình trạng phát triển: [22:54] 2.1) các subsystem [22:54] 2.2) lưu trữ khóa mã hóa lâu dài [22:54] 2.3) việc cần làm [22:54] 3) chuyện đặc tả [22:54] 3.1) chỉnh sửa [22:54] 4) hành chính linh tinh: [22:54] 4.1) anon cvs [22:54] 5) ? [22:55] ok, 0) chào mừng [22:55] chào mừng đến với cuộc họp 58 [22:55] hết rồi đó [22:55] vâng thưa ngài, trừ khi ai còn gì muốn thêm? [22:55] * nop để ý jrand0m hướng đối tượng với cách đánh số :) [22:56] 3.1.2.2.4.5.8() ;) [22:56] này, chúng có thể là structs ;) [22:56] haha [22:56] điều đó chắc chắn đúng [22:56] ok, 1.1) IM. thecrypto? [22:56] mặc dù [22:56] 2 có kế thừa [22:57] ;) [22:57] hehe [22:57] đừng để ý tôi [22:57] ok [22:57] xin lỗi [22:57] tiếp tục đi [22:57] *** mihi_ (~none@anon.iip) đã vào kênh #iip-dev [22:57] được rồi, hiện tại tôi đang tải lên vài đặc tả cơ bản cho IM [22:58] (Link: http://www.thecrypto.org/i2pim.sxw)http://www.thecrypto.org/i2pim.sxw cho oowriter [22:58] và tôi đang tải lên bản pdf [22:59] nếu muốn tôi có thể đưa lên trang i2p [22:59] đợi tôi chút [22:59] được [22:59] *** mrflibble (mrflibble@anon.iip) đã vào kênh #iip-dev [22:59] bạn muốn đưa nó vào i2p/apps/IM/doc/ không? [22:59] *** mihi_ bây giờ được gọi là mihi_backup [23:00] tôi có thể [23:00] vâng [23:00] ý tôi là vào cvs :) [23:00] tôi cũng có thể làm vậy [23:00] (nhưng đưa lên web cũng tốt) [23:00] ồ [23:00] haha [23:00] (Link: http://www.thecrypto.org/i2pim.pdf)http://www.thecrypto.org/i2pim.pdf [23:01] "the file is damaged and could not be repaired" lỗi AR [23:01] thử lại đi [23:01] * jrand0m tải được bình thường [23:01] MrEcho: File PDF hả? [23:01] (file sxw) [23:01] lúc đó mới tải được một phần [23:01] giờ được rồi [23:01] hehe [23:02] cơ bản là tôi chỉ đưa vào phần presence, tin nhắn online/offline, và một message message [23:02] tôi trơ trẽn cắt dán vài phần từ tài liệu I2NP [23:02] :) [23:02] hehe tôi nghĩ vài phần nhìn quen quen :) [23:02] tôi cũng đang tải lên phần UI tôi [23:02] đã làm việc [23:03] jrand0m: tôi có cần tạo thư mục apps/IM/doc không [23:03] có, và cvs add từng cái một [23:03] -kb? [23:03] đúng [23:03] thecrypto: Tôi nghĩ apps/ hiện đã có rồi. [23:04] presence là gì? [23:05] để tôi chạy update [23:05] nhưng nó đang vào rồi [23:05] *** Signoff: shardy (Ping timeout) [23:05] ý tôi là cứ xé nhỏ đặc tả ra mà đọc [23:05] và UI cũng sẽ sớm có trong đó [23:05] nếu có gì cần làm rõ thì anonymail, e-mail, gì cũng được cho tôi, tôi sẽ sửa [23:05] tôi lỡ cuộc họp rồi à? [23:05] *** shardy (~shardy@anon.iip) đã vào kênh #iip-dev [23:05] thecrypto: Bạn có thể thông báo lên mailing list nữa, kèm link đến tài liệu. [23:05] tôi tưởng tôi có đưa vào đó rồi? [23:05] chưa, vẫn ở mục đầu tiên thôi mrflibble [23:05] mrflibble: Cuộc họp đang diễn ra. [23:05] ồ xin lỗi, tôi không thấy "logger" [23:06] thecrypto> bạn nói đó là một destination (đích trong I2P), nhưng đó có phải là destination để gửi tin nhắn không? tin nhắn offline hoạt động thế nào? [23:06] không có mids ở đây, nên không có logger ;) [23:06] ok [23:06] * mrflibble quay lại lurk [23:06] à khoan, đây chỉ là các thông báo presence, xin lỗi [23:06] làm sao đăng ký theo dõi một presence? [23:06] jrand0m: không có tin nhắn offline [23:07] về cơ bản [23:07] presence chỉ gói một destination và một tên lại với nhau [23:07] cho tiện [23:08] vậy nếu muốn chuyển sang NS thì ta làm, rồi quay lại cái này sau nhé? [23:09] ừ, ổn [23:09] và bạn vẫn có thể nhắn hỏi tôi [23:09] thực ra, một câu hỏi nhanh [23:09] hỏi đi [23:09] vậy IM chỉ có văn bản thôi? [23:10] với bản cơ bản này thì đúng, nhưng tôi sẽ thêm hỗ trợ file [23:10] hay [23:10] tôi chỉ muốn lo phần khởi đầu của hệ thống rồi xây dựng tiếp [23:10] (iterative and incremental)++ [23:11] ok tuyệt. Tôi sẽ xem kỹ hơn và mọi người cũng nên thế... giờ chuyển sang 1.2) NS (naming service - dịch vụ đặt tên). co? [23:11] Bản 1.1 (cuối) của đặc tả dịch vụ đặt tên đã phát hành đầu hôm nay. [23:12] (và mọi người vui mừng khôn xiết) [23:12] Cơ bản là, tôi đã hoàn thành các phần về cấu trúc dữ liệu và thông điệp mạng mà chương trình cần. [23:12] Tôi sẽ phát hành client API vào thứ Năm. [23:12] Và sẽ bắt đầu triển khai ứng dụng NS. [23:12] tốt [23:13] Một ý tưởng thay đổi là CA (Certificate Authority - Tổ chức chứng thực) làm gì khi các thực thể đăng ký với nó. [23:13] co: bạn sẽ triển khai nó như thế nào? [23:13] co: name server hay client? [23:14] thecrypto: Trước hết tôi sẽ triển khai các cấu trúc dữ liệu cần thiết. [23:14] Rồi đến client, rồi đến các thành phần server và CA. [23:14] ok [23:15] Như tôi đang nói, giờ tôi muốn CA cấp chứng chỉ cho các thực thể mới đăng ký. [23:15] Họ sẽ trình chứng chỉ này cho name server khi sửa đổi bản ghi của họ. [23:15] Tôi chưa chỉ rõ chứng chỉ chứa gì trong phiên bản này; điều đó sẽ đưa vào phiên bản tiếp theo của đặc tả. [23:16] Có ai thấy ý này tệ không? [23:16] hừm. Chẳng phải đơn giản/an toàn hơn nếu client dùng public key/private key sao? [23:16] tức là khi đăng ký, cung cấp một public key để cập nhật và ký bản đăng ký, và mỗi lần muốn cập nhật lại thì ký một bản cập nhật [23:16] (để CA không bao giờ có private key) [23:17] Ngoài lề: tất cả I2PIM đã commit vào kho cvs rồi [23:17] tốt [23:17] Có thể làm vậy sẽ đơn giản hơn. Tôi sẽ suy nghĩ lại vấn đề này. Cảm ơn góp ý. [23:17] Tôi chỉ có vậy để bàn về dịch vụ đặt tên lúc này, nếu bạn không có câu hỏi khác. [23:18] trông ổn đấy, tôi chưa đọc 1.1 nhưng nếu gặp gì tôi sẽ email [23:19] OK. Chủ đề tiếp theo? [23:19] ok, 2.1) tình trạng phát triển của các subsystem. [23:19] *** w0rmus (o0o@anon.iip) đã vào kênh #iip-dev [23:20] subsystem transport đủ tốt để tiến lên. subsystem quản lý peer mới chỉ là khung với thuật toán ngớ ngẩn nhưng chạy được. subsystem cơ sở dữ liệu mạng, quản lý tunnel, và quản lý thống kê vẫn đang chờ. subsystem client sẽ rất đơn giản (chỉ tái sử dụng router local-only của SDK) [23:21] Ý bạn "thuật toán ngớ ngẩn" là gì? [23:21] không nhanh à? [23:21] ờ, subsystem quản lý peer chưa theo dõi hiệu năng peer, nó chỉ trả về peer ngẫu nhiên. [23:22] thuật toán sẽ được cập nhật và tinh chỉnh khi tiến triển để cung cấp chọn peer phù hợp hơn [23:22] nhiệm vụ hiện tại của tôi là dựng và xử lý garlic messages (thông điệp garlic), khá đau đầu. [23:23] nhưng làm được, chỉ là phiền [23:23] điều đó dẫn tới 2.2) lưu trữ khóa mã hóa lâu dài. [23:24] garlic messages dùng mã hóa ElG+AES để bọc các lớp của cloves [23:24] và private key được dùng ở chỗ khác (transport, quản lý client) [23:25] *** Signoff: thecrypto (Ping timeout) [23:25] giữ private key và session key luôn ở bộ nhớ và không bao giờ ghi ra đĩa là lý tưởng, nhưng dở khi router bị tắt (cố ý hay do lỗi) [23:26] có ai có ý kiến là nên 1) không bao giờ ghi khóa ra đĩa và chấp nhận mất mát thông điệp không cần thiết quá nhiều (vì không giải mã được) 2) mã hóa chúng trước khi ghi ra đĩa hay 3) cứ ghi ra đĩa dạng thô? [23:26] Phương án 2. [23:27] jrand0m phương án 2, hoặc làm như ta đã nói trước [23:27] ta phải tin localhost [23:27] *** Signoff: cohesion (class) [23:27] ta giả định localhost không bị xâm nhập [23:27] điều kỳ ở phương án 2 là hoặc người dùng sẽ phải nhập pass phrase để khởi động router, hoặc session key sẽ có thể bị biết [23:27] ý hay nop. [23:28] nhắc lại là ta là một transport, ta không thể lo quá mức chuyện đó, cái đó có thể chỉnh ở phía client, hoặc ta có thể đưa tùy chọn [23:28] tùy mức độ hoang tưởng [23:28] cân bằng bảo mật vs tiện dụng [23:29] Vậy tôi đề xuất mặc định 3, và cho người dùng tùy chọn dùng 2. [23:29] chính xác [23:29] đúng. ok, hay là mọi người có thể (và nên!) lấy mã router và sửa theo đánh đổi đó - một "router I2P 'tinfoil' (siêu hoang tưởng)" và một "router I2P kiểu 'Jane Sixpack' (người dùng bình thường)" [23:29] ok, được, tôi sẽ dùng phương án đơn giản 3) tạm thời [23:30] ok 2.3) việc cần làm [23:30] * co muốn quay lại chủ đề NS vào cuối cuộc họp. [23:30] * nop cần đọc nốt email NS [23:30] ừ, bạn là mục #5 giờ [23:30] Tôi có thể đợi đến cuối. [23:31] mihi đã dựng vài bài test để chỉ ra một số lỗi trong triển khai SDK. vài cái sửa rồi, vài cái chưa. sửa chúng nằm trong việc cần làm :) [23:32] ngoài ra, có khoảng chục thay đổi ở các đặc tả. khi có thời gian tôi sẽ cập nhật tài liệu và đẩy ra, dù tôi có thể chỉ đưa trang errata lên wiki tạm thời [23:33] word [23:34] việc cần làm khác... ờ, tôi sửa cái "Wrong Size generating key" sáng nay cùng vài bug linh tinh [23:34] ok, hết phần tình trạng phát triển. 3) chuyện đặc tả [23:35] 3.1) xem việc cần làm liên quan đến chỉnh sửa. phần lớn là lỗi đánh máy, tôi gặp một thay đổi hơi lớn hôm nay khi triển khai garlics. vẫn không vấn đề, chỉ cần di chuyển vài cấu trúc dữ liệu và làm vài trò với mã hóa. Tôi sẽ đưa vào errata. [23:35] 3.2) [Tôi biết, mục này không trong chương trình nghị sự, nhưng vẫn đưa ra] câu hỏi về đặc tả [23:35] (brb, tôi vẫn đang lurk nếu cần) [23:35] ai có câu hỏi gì về bất kỳ đặc tả nào không? [23:35] ổn shardy [23:36] jrand0m: Xin nhắc lại giúp tài liệu nào chứa đặc tả nào. [23:37] (Link: http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs)http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs có bản đồ [23:37] Tôi sẽ xem. [23:38] (nhìn cái đó lại nhắc tôi cần viết tài liệu transport UDP an toàn, tin cậy. lại thêm việc cần làm...) [23:39] đã có vài câu hỏi từ nhiều người về việc nên xem đặc tả nào - cơ bản là, trừ khi bạn muốn biết router hoạt động ra sao (hoặc muốn giúp triển khai chúng), bạn không cần đọc đặc tả I2NP. I2CP và phần I2CP trong cấu trúc dữ liệu là đủ [23:40] jrand0m [23:40] vâng thưa? [23:41] bạn muốn nói UDP thực sự như gói UDP [23:41] hay UDP như một giao thức kiểu UDP nói chung [23:41] đúng, UDP như gói UDP [23:41] cho I2P [23:41] *** thecrypt1 (~thecrypto@anon.iip) đã vào kênh #iip-dev [23:41] *** thecrypt1 bây giờ được gọi là thecrypto [23:41] i2p/code/router/java/src/net/invisiblenet/i2p/router/transport/udp cho phần triển khai [23:42] quay lại rồi [23:42] wb [23:42] ai muốn gửi cho tôi những gì đã xảy ra lúc tôi đi không? [23:43] phần triển khai UDP khá đơn giản - nó làm trao đổi DH và thông điệp được chia thành các gói 1K và mã hóa AES256 với khóa sinh ra [23:43] hỗ trợ đổi khóa lại dù chưa tự động lúc này [23:43] ACK được gửi lại theo bó (tức là "Tôi đã nhận tất cả các gói cho thông điệp 42 đến gói 18 trừ 3 và 7") [23:44] (và lý do thực dụng tôi làm UDP trước TCP là UDP cho IO bất đồng bộ 'miễn phí' với gần như 0 overhead) [23:45] tất nhiên [23:45] còn hai việc ở triển khai udp đó - station to station để chống MITMs (kẻ tấn công trung gian) và thêm một gói cho "ôi chết, tôi quên session key" [23:45] tốt [23:46] sau transport UDP, cái tiếp theo tôi muốn triển khai là polling HTTP - để ta hỗ trợ cả người dùng thường (UDP) và người dùng bị tường lửa/NAT/proxy (polling http) [23:47] ok, vậy, ừ, cái đó cần được viết thành đặc tả :) [23:48] * jrand0m !tự vả vì code trước spec [23:48] code trước spec giúp tôi [23:48] đúng, làm việc theo vòng lặp là ổn nhất [23:48] (vì ta đang tìm ra vấn đề của đặc tả khi triển khai chúng, v.v.) [23:49] ok, đó là 3) đặc tả. 4) hành chính linh tinh [23:49] 4.1) anon cvs. thecrypto? :) [23:49] đúng lúc luôn [23:49] à, tôi đang xem, tôi nghĩ 2401 hiện bị chặn [23:49] bạn có thể cvs -d :pserver: cục bộ không? [23:49] và có thể cần vài thứ ở inetd nữa cảm ơn jrandom [23:50] à hay [23:50] để tôi thử, tôi quên là có thể làm thế :) [23:51] có phải chỉ là cvs -d :pserver: ? [23:51] cvs -d :pserver:anonymous@localhost:/home/cvsgroup/cvsroot/ co i2p [23:52] ngoài ra, sẽ tuyệt nếu ta có bugzilla ở đó nữa [23:52] acvs [checkout aborted]: connect to localhost(127.0.0.1):2401 failed: Connection refused [23:52] ừ, sau khi thêm dòng inetd.conf và kill -HUP identd? [23:52] để tôi thử dòng inet kia rồi báo lại [23:52] à, inetd :) [23:52] ừ ok [23:53] pserver nằm cùng dòng đó à? [23:53] đúng, tất cả trên một dòng [23:55] ok, phần hành chính linh tinh hết rồi, ít nhất là tôi nghĩ thế [23:55] 5a) co, đến lượt bạn [23:56] Khi hai người muốn đăng ký cùng tên thực thể, người đến sau sẽ bị từ chối. [23:56] Nhưng nếu ta dùng cách dựa trên chữ ký, [23:56] người bị từ chối có thể gửi tin nhắn cho name server [23:56] dù sao đi nữa, bảo nó sửa bản ghi. [23:56] Có hai khả năng: [23:57] 1) CA gửi cho name server một bản sao public key của thực thể đã được chấp thuận. [23:57] 2) CA gửi cho người đang đăng ký tên một chứng chỉ, ký bởi private key của nó. Name server sẽ có public key của CA để xác minh. [23:58] Nếu kẻ xấu bảo name server sửa một bản ghi nào đó, việc thiếu chứng chỉ sẽ ngăn sửa đổi. [23:58] Đó là điều tôi nghĩ. [23:59] nhưng trong trường hợp đó CA biết key - bất đối xứng nghĩa là CA chỉ biết public key, và CA cũng không muốn hay cần đưa public key đó cho ai cả - nó chỉ để chủ cập nhật hợp lệ ký khi yêu cầu cập nhật [00:00] những gì bạn mô tả nghe giống đối xứng hơn - chỉ dùng passphrase, về cơ bản [00:00] cvs đang chọc tôi đây! [00:00] (nơi chứng chỉ là bí mật chia sẻ giữa CA và chủ sở hữu hợp lệ của nym) [00:00] *** mrsc (~efgsdf@anon.iip) đã vào kênh #iip-dev [00:01] sao vậy thecrypto? [00:01] tôi đã thêm user anonymous với mật khẩu trống, thêm vào readers và vào cvsgroup và tôi nhận được cvs login: authorization failed: server localhost rejected access to /home/cvsgroup/cvsroot for user anonymous [00:01] jrand0m: Ý hay. Hãy coi phần này của đặc tả là chưa chốt, và tôi sẽ nghĩ thêm. [00:01] hay [00:01] *** LeerokLacerta (~leerok@anon.iip) đã vào kênh #iip-dev [00:02] Konnichiwa. [00:02] hừm thecrypto, tôi không nghĩ bạn muốn một user hệ điều hành tên anonymous [00:02] chào LeerokLacerta [00:02] Chào, jrand0m. [00:02] ờ tôi đặt mật khẩu vào thì được rồi [00:03] jrand0m: Và nếu bạn có góp ý nào nữa sau khi đọc đặc tả, gửi cho tôi. [00:03] sẽ làm co [00:03] tốt thecrypto.. shell của họ là /bin/false chứ? [00:03] giờ thì đúng [00:03] -> *thecrypto* mật khẩu là gì? [00:04] giờ thì vậy [00:05] ok, ta có thể xử lý sau cuộc họp. [00:05] ok, điểm cuối trong chương trình nghị sự: 5b) ? [00:05] có câu hỏi / suy nghĩ / quan ngại gì không? [00:05] cứ checkout IM app xem [00:06] hiện giờ nó chỉ tạo một cây nhưng cho thấy nó đang trông như thế nào [00:06] Không có SOCKS à? [00:06] ồ đúng rồi tôi quên [00:06] à hay thecrypto [00:06] SOCKS? ý là giao thức proxy? [00:06] có ai giỏi làm icon không? [00:06] Đúng. [00:06] Câu trả lời cho mọi lần tôi hỏi đều là "Không". [00:07] à. vâng, ta chắc chắn sẽ cần một socks proxy, nhưng hiện chưa ai làm. [00:07] Hmm. [00:07] đó sẽ là một trong các ứng dụng ta muốn trước bản 1.0 public, để mọi người duyệt các trang dựa trên i2p, cũng như để mọi người duyệt web thường ẩn danh [00:07] có đủ socks proxy miễn phí, tôi nghĩ ;) [00:08] chính xác, ta chỉ cần tích hợp chúng [00:08] nhưng tôi không biết cái nào bằng java. [00:08] JAP client app có thể hợp, tôi không rõ nó có GPL không [00:08] jap client không chứa proxy. [00:08] tôi cần vài icon cho dự án I2PIM [00:09] Cái để biểu diễn online, offline và một nhóm người [00:09] proxy duy nhất là http/ftp proxy và nó nằm ở last mix. [00:10] giống với iip - isproxy không biết giao thức IRC nào. [00:10] à, đó là phía outbound - cho các trang web dựa trên i2p, ta sẽ cần một thứ để nhận yêu cầu proxy từ trình duyệt cục bộ, tra cứu dest, và gửi thông điệp đến dest phù hợp [00:10] ai quan tâm không? [00:11] thecrypto: Bạn có thể lấy icon từ dự án gaim theo GPL không? [00:11] * jrand0m tạo đồ họa chán ngắt trong ms paint [00:11] Vì nó theo GPL, và cái này cũng thế, nếu tôi không nhầm. [00:11] ừ, tôi có thể [00:11] nếu I2PIM dùng thư viện client của sdk, I2PIM chắc chắn là GPL :) [00:12] à cái GPL tuyệt vời [00:12] LeerokLacerta> có lý do cụ thể bạn hỏi, hay chỉ muốn thúc chúng tôi làm? ;) [00:13] vấn đề với icon gaim là chúng đến từ các ứng dụng IM họ dùng [00:14] nên nếu ai có thể làm icon I2PIM thì tốt quá [00:15] * jrand0m nghĩ ta sẽ có nhiều hình vẽ nguệch ngoạc bằng paint một thời gian... [00:16] ok, ai còn ý kiến / câu hỏi / commnets? [00:16] Tôi có commnets [00:16] (ngoài "wtf là commnet") [00:16] cái đó có lây không? [00:16] *** nixonite (~nixonite@anon.iip) đã vào kênh #iip-dev [00:16] lol [00:17] ừ, nếu không, vậy là xong cuộc họp rồi, hết mục rồi [00:17] tôi lỡ cuộc họp rồi à? [00:17] đúng, 9p GMT [00:17] thực ra là bạn đến kịp đoạn cuối :) [00:17] ồ [00:18] nop: Nói nghe xem. [00:18] vậy các comment là gì [00:18] * jrand0m tưởng nop chỉ trêu lỗi gõ của tôi, nhưng nếu có comment thì bắn đi bro [00:20] anon cvs vẫn không ưa tôi, thêm việc ngày mai [00:20] đưa tôi root tôi sẽ dựng nó lên [00:21] nói với nop chuyện đó [00:21] hehe ok [00:22] ok, vì nop có vẻ bị kéo lại làm việc... [00:22] nop, và bất kỳ ai khác> nếu có comment/câu hỏi/quan ngại, cứ cho biết hoặc đăng lên mailing list (hoặc thậm chí lên wiki) [00:23] * jrand0m nạp đạn và *baf*s để kết thúc cuộc họp.