Quick recap
참석자: beefbroth, CCD, ChZEROHag, co, dcat, dm, godmode0, jrand0m, mihi, mihi_backup, mrflibble, Myself248, myself248, nop, pitu, Ryan_Singer, shardy, thecrypto, UserX, yodel
회의 기록
[22:56] <jrand0m> 오케이 오케이 [22:56] <jrand0m> 안건 [22:56] <jrand0m> 0.0) 환영 [22:56] <jrand0m> 1.0) 개발 현황 [22:56] <jrand0m> 1.1) router [22:56] *** Myself248 (~ident@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [22:56] <jrand0m> 1.2) DH 사전 계산 [22:56] <jrand0m> 2.0) 마이크로 로드맵 [22:56] <jrand0m> 3.0) 앱 / 사용 [22:56] <jrand0m> 4.0) ns [22:56] <jrand0m> 5.0) IM [22:56] <jrand0m> 6.0) administravia (cvs, bugzilla, cvs list, cvs web) [22:56] <jrand0m> 7.0) 질문 [22:57] <jrand0m> (그래, 오늘은 7개 항목. w00t) [22:57] <jrand0m> 0.0) 환영 [22:57] <jrand0m> 안녕. [22:57] <dm> 헤이 [22:57] <jrand0m> 오늘은 17명. 멋지군 [22:57] *** Ryan_Singer (chatzilla@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [22:57] <jrand0m> 계속 늘어나네 [22:57] <jrand0m> 좋아 [22:57] <thecrypto> 1~hi [22:57] <jrand0m> 1.1) router에 대한 개발 현황 [22:58] <jrand0m> 자바 레퍼런스 구현 router는 아주 잘 되고 있어 [22:58] *** ChZEROHag (hag@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [22:58] <jrand0m> 이제 서로 다른 router에서 애플리케이션을 실행하고 서로에게 메시지를 보낼 수 있어 [22:59] <ChZEROHag> 방해해서 미안, 근데 아마 한 번만일 거야 [22:59] <jrand0m> 반복적이고 점진적인 접근을 택하고 있고, 현재 상태는 secure, 익명성 없음, 확장성 없음, 그리고 harvestable(수집 가능) [22:59] <ChZEROHag> 혹시 다른 누가 C api 작업 중이야? [22:59] <jrand0m> 'lo ChZEROHag, 뭐가 흔들려? [22:59] <ChZEROHag> 내가 하고 있긴 한데, 아주 느리게 [22:59] *** dcat (dirtycat@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [22:59] <jrand0m> 오 멋져 [22:59] <jrand0m> shardy가 toorcon 끝나면 하나 작업할 거야 [22:59] <jrand0m> 너네 둘이 같이 해보면 어때? [23:00] <co> jrand0m: 수신할 destination을 수동 입력할 수 있어? [23:00] <co> 더 잘 말하자면, destination의 ASCII 표현이 있어? [23:00] <jrand0m> 응 co, 둘 다 가능해 [23:00] <co> 훌륭해. [23:00] <jrand0m> destination과 모든 I2P 구조는 (대체 알파벳의) base 64로 로드/직렬화 가능해 [23:01] <thecrypto> 그러면 외우긴 쉽지 않지만, ascii이긴 하겠네? [23:01] <jrand0m> (예: 내 router 중 하나의 netDb에 leaseSet-enD4jtE-orMwFD0QGog9GAyC5MvLvnPzhVD8cDYvSI8.dat 라는 파일이 있는데, 거기에 destination enD4jtE-orMwFD0QGog9GAyC5MvLvnPzhVD8cDYvSI8의 lease set가 들어 있어) [23:02] <jrand0m> [저건 H(destination).toBase64()야] [23:03] <jrand0m> ChZEROHag> 그거 도와줄 수 있는 게 있으면 한마디만 해 [23:03] <jrand0m> 좋아 그럼 1.1 끝. 1.2) DH 사전 계산 [23:03] <ChZEROHag> 내가 대신 해달라고? :-) [23:04] <jrand0m> 어젯밤에 DH 교환용 사전 계산 최적화를 작성했어. 세션 협상 1.5초에서 약 1초를 절약. 암호 잘 아는 누가 내 정신이 나간 게 아닌지 확인해주면 좋겠어 ;) [23:04] <jrand0m> ㅋㅋ ChZEROHag [23:04] <ChZEROHag> 아하 필요한 게 뭐였는지 기억났어 [23:04] <ChZEROHag> netdb 구현 [23:04] <thecrypto> 그거 cvs에 있어? [23:04] <thecrypto> dh 말이야 [23:04] <jrand0m> 응 thecrypto [23:05] <jrand0m> C:\dev\i2p\code\core\java\src\net\invisiblenet\i2p\crypto\DHSessionKeyBuilder.java [23:05] <ChZEROHag> 좋아 난 앞으로 3/4시간은 깨어있을 테니, 그거면 할 게 생기겠군 [23:05] <jrand0m> 어, s/C:\\dev/g; s/\\/\//g [23:05] *** wax_off (~nomail@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [23:06] <jrand0m> 오키. 왜 netdb 구현이 필요한 거야? [23:06] <ChZEROHag> 기억 안 나 [23:06] <jrand0m> 현재 cvs에 확장성 없는 netdb가 있어 [23:06] <jrand0m> 헿 [23:06] <ChZEROHag> 최소한 일주일은 손도 안 댔어 [23:06] <jrand0m> 너 C I2CP api 작업 중이지? I2NP는 아니고? [23:07] <ChZEROHag> 그냥 전부 하려고 했지 [23:07] *** wax_off 님이 #iip-dev에서 나갔습니다 [23:07] <jrand0m> I2NP는 I2CP보다 정말정말정말 훨씬 더 많은 일이야 [23:07] <ChZEROHag> 일단 제대로 시작만 하면, 쭉쭉 나올 거야 [23:07] <jrand0m> 하지만 C로 I2NP 구현하면 멋지지 [23:07] <dm> 지금 I2NP가 어느 언어로든 있긴 해? [23:07] <jrand0m> (I2CP:I2NP::FCP:FNP) [23:07] <jrand0m> 응 dm [23:08] * ChZEROHag emacs 최소화 해제 [23:08] <jrand0m> 내가 작업 중인 자바 구현에는 I2NP가 동작해 [23:08] <dm> 알았어... [23:08] <ChZEROHag> jrand0m: url? 참고할 게 필요해, 비록 끔찍한 언어로 되어 있더라도. [23:08] <jrand0m> ㅎㅎ [23:08] <jrand0m> 음, 사실 그건 6.0 administravia: 일명 우리 anon cvs 접근은 대체 어디 있는 거냐 ;) [23:09] <thecrypto> DH 것들 받고 있어 [23:09] <jrand0m> 좋네 [23:09] <ChZEROHag> 아 맞다 [23:09] <Ryan_Singer> jrand0m, 일정으로 돌아가서, 마이크로 로드맵? [23:09] * thecrypto 얼굴을 가린다 [23:09] <ChZEROHag> 음 그럼 기다릴게 :) [23:09] <jrand0m> ㅎㅎ 오케이 [23:09] <jrand0m> 마이크로 로드맵 [23:09] <jrand0m> 0.1부터 0.5까지 그려놨어 [23:09] <dm> freenet의 로드맵을 따라갔군? [23:10] *** mrflibble (mrflibble@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [23:10] <jrand0m> 0.1) 기능 동작, 보안, 익명성 없음, 확장성 없음, harvestable(수집 가능) [23:10] <dm> 0.5 동안 개발이 느려지다가 얼지... [23:10] <jrand0m> 지금은 0.1이야. [23:10] <jrand0m> 헿 나도 봤어 dm, flinks도 0.5.2에서 멈췄지 ;) [23:10] <co> 전체 패키지 이름은 뭐로 할 거야? [23:10] <jrand0m> (이상한 우연) [23:10] <co> 즉, 버전 0.1의 무엇? [23:10] <jrand0m> 전체 패키지? i2p router 레퍼런스 구현 [23:10] <ChZEROHag> co: Wonga [23:10] * beefbroth 회의에 참가 [23:11] <jrand0m> buenos noches beefbroth [23:11] <co> 좋아. 그럼 이해됐네. [23:11] <ChZEROHag> 사실 그걸로 부를까. 확실히 'i2pd'보다 더 흥미로워 보여 [23:11] <jrand0m> 0.1에는 버그가 있어. 그건 당연. 그리고 눈에 띌 최적화가 없어 (DH 사전 계산은 도움이 되지만). [23:11] <jrand0m> ㅎㅎ [23:11] <Ryan_Singer> jrand0m, 그럼 0.2)는? [23:11] <jrand0m> invisible internet police department [23:11] <jrand0m> 좋아, 0.2 [23:12] <jrand0m> 0.2는 기능 동작, 보안, 익명성, 비확장성, 수집 가능 [23:12] <jrand0m> 0.2는 길이가 0이 아닌 tunnel 지원을 추가해 [23:12] <jrand0m> 사실 그건 어젯밤에 대부분 구현했는데, 아직 철저히 테스트하지는 않았어 [23:12] <jrand0m> 0.2는 이번 주말까지 준비될 것 같아 [23:12] <Ryan_Singer> 개발 관점에서 그게 얼마나 남았지? [23:13] <Ryan_Singer> 좋군 [23:13] <jrand0m> 0.3)는 기능 동작, 보안, 익명성, 확장성, 수집 가능 [23:13] * thecrypto bochs를 받아서 네트워크 시뮬레이션하며 도움 [23:13] <jrand0m> 0.3는 kademliaDatabaseManager를 추가해 [23:13] <jrand0m> 지금은 BroadcastDatabaseManager를 써 [23:13] <jrand0m> (일명 gnunet ;) [23:14] <jrand0m> 구현은 사소하고 소규모 네트워크에는 동작하지만, 확장하려면 kademlia가 필요해 [23:14] <jrand0m> 0.4)는 기능 동작, 보안, 익명성, 확장성, 비수집 가능 [23:14] <jrand0m> 그건 trusted links를 추가해 [23:14] <Ryan_Singer> jrand0m, kademlia 구현이 개발 난이도 측면에서 어느 정도야? [23:14] <jrand0m> trusted links에 대해 아이디어가 두 개 있어.. 하나는 구현과 사용이 더 쉬워 [23:15] <jrand0m> kademlia는 아마 일주일 풀 타임 걸릴 거야 [23:15] <jrand0m> (제대로 하려면) [23:15] <jrand0m> 이 모든 것들은 리팩터링과 튜닝의 여지가 많아. 일단 동작을 목표로 하고, 그 다음에 튜닝할 거야. [23:16] <co> 그렇게 빨리 개발하고 테스트할 수 있을 거라고 확신해? [23:16] <jrand0m> 난 아무것도 확신하지 않아 [23:16] <jrand0m> 그냥 추정치야 [23:16] <Ryan_Singer> co, 그는 동작하게 만들고, 우리가 테스트 [23:16] <ChZEROHag> 확실해? [23:16] <ChZEROHag> (미안) [23:16] <co> Ryan_Singer: 알겠어. [23:17] * jrand0m 테스트하는 사람들 사랑함 :) [23:17] <Myself248> "우리가" 테스트한다는 게, 코더가 아닌 사람도 테스트에 도움될 수 있는 부분이 있어? [23:17] <jrand0m> Myself248> 아마 0.4 전까진 어려울 듯 [23:17] <dm> 기능은 하는데 네트워크 내부에서 무슨 일이 벌어지는지 아무도 모르는 지경에는 가지 않길 (즉, freenet) [23:18] <jrand0m> 0.4가 준비되면 그게 pre-alpha. 0.4가 되면 0.5(알파) 준비를 위해 튜닝/리팩터링/빈칸 채우기를 할 거야 [23:18] <Myself248> 문서화, 문서화, 문서화. [23:18] <dm> 네트워크 내부의 능동 모니터링에 대한 고려가 있나, 아니면 단순한가? [23:18] <jrand0m> 응 dm, 물론 [23:18] <jrand0m> i2np의 핵심 중 하나는 공개되는 routerInfo 구조에 통계를 포함하는 거야 [23:18] <mihi> jrand0m: s/0./0.0./ 하자 ;) [23:18] <jrand0m> 초기 리비전은 실제 통계를 공개해서 튜닝할 거야 [23:19] <jrand0m> 이후 리비전은 통계를 공개하지 않거나 가짜 통계를 공개 [23:19] * jrand0m 0.0은 안 해 [23:19] <shardy> 좋아, 나 왔어 [23:19] <jrand0m> 돌아왔네 shardy [23:19] <shardy> 늦어서 미안, 이 창 열려 있는 걸 잊었네, 헿 [23:19] <dm> 굿. [23:19] <Ryan_Singer> .4 아래 네트워크 아키텍처를 설명하는 상위 문서 있어? [23:19] <jrand0m> 머리를 쳐라 [23:20] <jrand0m> Ryan_Singer> 흠, 몇 달 전에 개요 문서들이 있었고 mids랑 nop이 미러했고, i2p 개요 문서도 있어 [23:20] <jrand0m> 0.4는 스펙에 설명된 대로의 완전한 i2np야, 다만 최적으로 구현되지는 않았지 [23:20] <shardy> 아 그리고 jrand0m, DH 최적화 검토해볼게 [23:20] <jrand0m> 굿, 그라시아스 [23:20] <Ryan_Singer> 그 문서들 받을 수 있을까? [23:21] <jrand0m> 개요는 (Link: http://www.invisiblenet.net/i2p/i2p_philosophy.pdf)http://www.invisiblenet.net/i2p/i2p_philosophy.pdf 여기에 있어 [23:21] <beefbroth> 위키에도 있을걸? [23:21] <jrand0m> 예전 개요 문서들... 흠 [23:21] <jrand0m> (i2p 스펙은 (Link: http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs)http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs 에 있음) [23:21] <co> (Link: www.invisiblenet.net/i2p/.)www.invisiblenet.net/i2p/. 에도 있어. [23:21] <jrand0m> 맞아 beefbroth [23:22] <jrand0m> 근데 예전에 tunnel 동작을 보여주는 못생긴 ms paint 그림이 있는 html 형식 문서가 있어... [23:22] <beefbroth> 내가 많이 읽었으니 알아 [23:22] <jrand0m> ㅎㅎ [23:22] <co> 그게 더 오래된 버전이거나 미러일 수도 있어. [23:22] <jrand0m> 위키의 파일들은 0.9야 (I2NP와 데이터 구조는 0.9.1이 나왔는데, 변경은 사소해) [23:23] <thecrypto> jrand0m: 사전 계산 좋아 보여 [23:23] <jrand0m> 굿 [23:24] *** pitu (~pitu@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [23:24] * jrand0m router를 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 로 실행 [23:25] <jrand0m> 좋아, 마이크로 로드맵은 여기까지 [23:25] <jrand0m> 보다시피, 이번 달 말까지 알파는 어려울 거야. 0.4는 아마 10월 첫째 주 [23:26] <dm> 괜찮아, 그 정도면 이 타입의 네트워크 구현 중 가장 빠른 거지 ;) [23:26] <Ryan_Singer> ㅋㅋ [23:26] <beefbroth> 여기서 jrand0m의 일정 추정은 지난 4시간 동안 위스키를 마셨다는 점을 기억하시오 :-P [23:26] <jrand0m> 헿 [23:26] <Ryan_Singer> 좋아... 앱/사용? [23:26] <jrand0m> 그것도 좋은 위스키지 ;) [23:26] <jrand0m> 좋아, 앱/사용 [23:27] <dm> 4초 뒤 0.7....3...2...1..!! [23:27] <jrand0m> 쉬운 것부터 노려. 새로운 코드 0 또는 최소로 가능한 것들이야. [23:27] <ChZEROHag> 술 안 마시고 어떻게 제대로 코딩하냐? [23:27] <jrand0m> 이 모든 건 mihi의 끝내주는 i2ptunnel을 크게 활용 [23:27] <co> ChZEROHag: 아주 쉽게. [23:27] *** mihi 님이 채널 #iip-dev의 주제를 <dm> 0.7 in 4 seconds....3...2...1..!! 로 변경했습니다 [23:28] <jrand0m> i2ptunnel을 쓰면, 새 코드 없이 다음을 할 수 있어: [23:28] <jrand0m> 공개 ww 프록시 (i2ptunnel + squid) [23:28] * dm, mihi에게 모자를 들어 인사한다. [23:28] <jrand0m> JAP (i2ptunnel + JAP) [23:28] <mihi> i2p로는 엉덩이 차기 못 해 (tunnel로도 못 해...) [23:28] <jrand0m> www를 익명으로 탐색 (i2ptunnel + 웹 브라우저) [23:28] <jrand0m> i2p 웹 서버 실행 (i2ptunnel + httpd) [23:29] <co> 아주 좋아. 브라보, mihi. [23:29] <jrand0m> cvs 아웃프록시 (i2ptunnel) [예: 익명 freenet 개발을 위한 소스포지로의 cvs 아웃프록시] [23:29] <jrand0m> cvs 클라이언트, cvs 서버 [23:29] <jrand0m> IM 앱, pop3 서버, imap 서버, opennap [23:29] <jrand0m> 전부 정말 쉬운 것들 [23:29] <dm> 좋아, 이제 필요한 건 i2p 뿐이네 :) [23:30] <jrand0m> 그렇지 ;) [23:30] <Myself248> i2p 웹서버면 freenet을 대체하는 거 아냐? :) [23:30] * jrand0m 그건 FAQ로 답해야겠다고 생각 [23:30] <Ryan_Singer> jrand0m, 그래도 매우 가치 있어 [23:30] <ChZEROHag> 그 목록에서, 난 cvs가 더 중요/유용하다고 봐 [23:30] <ChZEROHag> 내가 익명 유지하고 싶어서도 그렇고, 익명 www를 제공하면 luser가 몰릴 테니까 [23:30] <jrand0m> i2p + 웹은 freenet을 대체하지 않아 - freenet은 익명 통신 프레임워크 위에 콘텐츠 배포라는 상당한 가치를 더해 [23:31] <ChZEROHag> 그리고 지금은 익명 이메일은 좀 무섭지 :) [23:31] * dm 메모: "luser 금지" [23:31] <jrand0m> cvs는 확실히 상위 3개 안 [23:31] <beefbroth> i2p 웹서빙이 잘 되면, freenet의 DHT/스토리지 부분을 i2p 위에 얹는 걸 고려해야 할 듯. 그러면 두 세계의 장점을 다 갖게 되지. [23:31] <Ryan_Singer> ChZEROHag, 확장 가능하다면 좋은 거지 [23:31] <ChZEROHag> dm: luser는 초기 단계에서만 문제야, 그리고 그들은 대개 cvs를 쓰지 않아 [23:31] <Myself248> 좋아, 어떤 익명 이메일이든 해시캐시를 듬뿍 넣자. [23:31] <ChZEROHag> 아니, 그게 뭔지(있는지도) 모른다고 [23:31] <co> 해야 할 테스트 중 하나는 네트워크에 대한 모의 공격이야. [23:31] <jrand0m> 맞아 beefbroth, i2p가 우리가 목표로 하는 걸 하면 freenet도 아마 그걸 활용하도록 조정할 거야 [23:32] <co> 오프토픽이라면 미안. [23:32] <mihi> Myself248: anon remailer로 리다이렉터만 추가해. [23:32] <jrand0m> 아니, 그건 완전 온토픽이야 co - 이 네트워크를 공격해보는 건 핵심 [23:32] <ChZEROHag> Myself248: 해시캐시는 주로 우리가 'irc'라는 고대 프로토콜을 써야 하는 동안 플러딩을 막는 거지 [23:32] <ChZEROHag> '남용'이라 부를 수 있는 걸 막는 게 아냐 [23:32] <jrand0m> 맞아 mihi. 아마 mixminion을 i2p 위에서 돌리는 것도 유용할 거야 [23:33] <jrand0m> 맞아, 해시캐시는 메시지가 "돈을 내지" 않으면 한 홉으로 배달되지 않도록 i2p 자체에도 내장돼 있어 [23:33] <Ryan_Singer> jrand0m, 이 위에서 imap도 쉽게 돌릴 수 있어? [23:33] <jrand0m> 물론 [23:33] <Ryan_Singer> 인상적이네 [23:33] <jrand0m> imapd에 i2ptunnel을 포인트하고, 클라이언트의 i2ptunnel이 그 tunnel의 destination을 가리키게 [23:34] <Myself248> 그리고 freenet 검색 엔진도 :) [23:34] <mihi> ftp나 여러 non-jabber 인스턴트 메신저는 문제가 생길 거야... [23:34] <jrand0m> 맞아, 두 개의 연결이 필요한 것들은 더 복잡해 [23:34] <ChZEROHag> jrand0m: i2p에 hashcash? [23:34] <ChZEROHag> 이거 끝나면 그거로 괴롭힐게. [23:34] <shardy> i2p에 hashcash? 좋네. [23:34] <dm> 너무 앞서가고 있어! 아 됐고.. QUAKE + IIP!!!!!! [23:34] <dm> 미안, I2p :) [23:34] <jrand0m> ㅋㅋ dm [23:35] <Myself248> 우리 같은 약한 CPU 유저는 hashcash란 말을 들으면 불안해지지만, 안티 스팸으로는 이해해. [23:35] <co> dm: 그건 정말 너무 앞서가는 거지. [23:35] * mihi 는 jabber:schierlm@a-message.de ;) [23:35] <jrand0m> 응 ChZEROHag - Destination == 공개 서명 키 (DSA) + 공개 암호화 키 (ElGamal) + certificate (null이거나 hashcash(keys)) [23:35] <beefbroth> i2p tunnel은 클라이언트 쪽에서 static이야 아니면 dynamic? [23:35] <mihi> beefbroth: 지금은 전부 static. 하지만 dest로 socks 프록시를 쓸 수 있어. ;) [23:35] <jrand0m> Myself248> 몇 주 안에 끝내주는 sun ultra1 받는다. 160Mhz 박스가 할 수 있으면, 누구나 할 수 있어 [23:35] <shardy> 음. hashcash는 작은 cpu에도 끔찍하진 않아야 해. 뭔가를 억만 번 하려는 게 아니라면 티도 안 날걸. [23:36] <co> beefbroth: dynamic일 수도 있지. [23:36] <Ryan_Singer> 여기 "쉬운 것"의 잠재적 애플리케이션은 매우 인상적이야 [23:36] <jrand0m> 맞아 mihi [23:36] <jrand0m> "eleventy". 헿 [23:36] <ChZEROHag> 쉬운 것들은 본질적으로 '일반' 인터넷 앱이지만, 익명으로 [23:36] <ChZEROHag> 맞지? [23:36] <jrand0m> 맞아 [23:36] <Ryan_Singer> 응 [23:36] <dm> (quake) [23:37] <jrand0m> 0.1은 보안을, 0.2는 익명성을, 0.3는 확장성을, 0.4는 비수집 가능성을 제공해 [23:37] <jrand0m> (우린 지금 0.1) [23:37] <shardy> 비수집 가능이라는 게 무슨 뜻이야? [23:37] <co> 미안, harvestable이 다시 뭐였지? [23:37] <ChZEROHag> dm: 안타깝게도 실시간은 30년이 넘도록 아직 '일반'이 아닐 정도로 우리가 발목이 잡혀왔지 [23:37] <Myself248> 휴. 누가 물어봐 주길 바라고 있었음. ;) [23:37] <Ryan_Singer> 로깅 가능 [23:37] <jrand0m> harvesting은 능동 공격자가 router를 돌리면서 다른 많은 router들을 알아낼 수 있다는 뜻(“수확”), 그리고 깡패들을 보내 문을 부술 수 있다는 거야 [23:38] <Myself248> 오, gnutella처럼. :) [23:38] <Ryan_Singer> 정보기관 같은 깡패들 [23:38] <jrand0m> 맞아 [23:39] <shardy> 아, 이해 [23:39] <jrand0m> 좋아, 마이크로 로드맵은 여기까지. [23:40] <jrand0m> 그런데, 0.x로 부르는 게 바보 같은 걸까 0.0.x로 불러야 할까? 1.0은 "완벽"해야 해? 아니면 1.0은 기능적이고 안전하면 돼? [23:40] <Ryan_Singer> jrand0m, 그럼 .4는 언제 보게 돼? [23:40] <jrand0m> 0.4는 아마 2주쯤 남았어 [23:40] * jrand0m 10월 중순쯤 일주일(쯤) 쉬어. 손님들이 와서 [23:40] *** Signoff: dm (EOF From client) [23:40] <mihi> 1.0은 안정적이어야 해. [23:40] <co> 1.0은 기능적이고 안전하면 돼. [23:40] <thecrypto> co 말에 동의 [23:41] <Ryan_Singer> 1.0은 기능적이고, 안정적이고, 안전해야 [23:41] <ChZEROHag> jrand0m: 버전 번호에 대한 내 철학은, 헷갈리면 리눅스를 따라라 [23:41] <Myself248> 5.0이 "완벽"일 수 있어. 자유 소프트웨어 사람들은 버전 번호 뻥튀기를 과하게 두려워해. [23:41] <jrand0m> 오키 [23:41] <mrflibble> jrand0m, v1은 원래 완벽하지 않아 :) [23:41] *** dm (~gj@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [23:41] <mrflibble> 아무도 완벽하길 기대하지도 않고 [23:41] <dm> 내가 1.0 놓쳤나? [23:41] <ChZEROHag> mrflibble: 사람들은 어떤 소프트웨어도 완벽하길 기대하지 않아. 사람들은 윈도를 써. [23:41] <Ryan_Singer> 이 소프트웨어는 GPL이야 아니면 LGPL? [23:41] <jrand0m> 좋네, 벌써 1.0이 완벽하지 않다고 뭐라 하더라 [23:41] <ChZEROHag> 그렇다고 완벽하지 않아도 된다는 뜻은 아냐. [23:41] <mrflibble> 좋은 지적이야 ChZEROHag [23:42] <dm> 아 젠장, 놓쳤구나.. [23:42] <mihi> dm: 그만 놀려 [23:42] <mrflibble> 응, 놓쳤어 [23:42] <jrand0m> router는 GPL. 자바 클라이언트 라이브러리는 현재 GPL이지만, 열려 있어. thecrypto랑 나는 Cryptix AES 구현 한 섹션(MIT) 빼고 전부의 전체 권리자야 [23:42] <dm> 알겠어 알겠어 미안해 :( [23:42] <jrand0m> 아니, 말 취소 [23:42] <jrand0m> Freenet의 Base64.java도 썼지 [23:43] <beefbroth> 아직 안건 0.3 Apps야? [23:43] <jrand0m> 그래서 base64는 GPL :) [23:43] <thecrypto> 그리고 IM 클라이언트는 GPL [23:43] <jrand0m> 아 맞다, 우린 0.3에 있지 [23:43] <thecrypto> 코멘트를 코드에 넣기만 하면 [23:43] *** UserX_ (~User@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [23:43] <jrand0m> ㅎㅎ thecrypto [23:43] <ChZEROHag> GPL 좋아 보여 [23:43] <jrand0m> w0ah, 23명 [23:43] <Myself248> 우린 안건 항목 6.02E23, 랜덤 잡담에 와 있지 :) [23:43] <Ryan_Singer> jrand0m, 시간 되면, 라이선스랑 컨설팅 건에 대해 얘기하고 싶어 [23:43] <jrand0m> 좋아 Ryan_Singer [23:43] <ChZEROHag> 근데 누가 지적했듯(필라멘트였나?) - 누가 라이선스를 어기면 익명인 사람이 뭘 할 수 있지? [23:43] <mihi> jrand0m: 22 ;) [23:43] <jrand0m> ChZEROHag> flinks에 있는 내 라이선스를 읽어봐 ;) [23:43] <Myself248> 우리에겐 익명 법정 시스템이 필요해. [23:44] * mihi 는 여기 두 번 있음 [23:44] <jrand0m> Myself248> 그건 yodel이라고 불러 ;) [23:44] <Myself248> "법정은 이제 34534번, J. Doe 대 J. Doe 사건을 심리합니다" [23:44] <Ryan_Singer> ChZEROHag, 내가 묻는 이유는 기업들이 산업 스파이로부터 보안을 위해 이 소프트웨어를 사용하려면 어찌해야 하는지라서 [23:44] <co> Naming server도 GPL로 라이선스할 거야. 최소한 자바 구현은 router에 접속하는 데 클라이언트 라이브러리 코드를 쓰니까. [23:44] <CCD> ㅋㅋ [23:44] <Myself248> "집행관, 우리가 방금 전 34533건에서 들은 당사자들이랑 똑같지 않나요?" [23:44] <shardy> 음 [23:45] <shardy> 사람들이 정말 프로토콜을 쓰길 원하고 돈이 걱정이 아니라면, 완전 오픈으로 만들란 생각도 있어. GPL로도 제한하지 말고. [23:45] <co> shardy: 공개 도메인? [23:45] <beefbroth> co가 0.4 안건 항목으로 이끄는 중인 듯 :-P [23:45] <jrand0m> shardy> 스펙은 공개이고 오픈이야. 스펙에는 저작권 주장하지 않았어. [23:45] <Ryan_Singer> shardy, 아니, 우리는 프로토콜 작업이 계속 공개되길 원해 [23:45] <shardy> 퍼블릭 도메인, BSD 라이선스, "뭐든 해도 되지만 크레딧은 부탁" 라이선스 등 [23:45] <jrand0m> 코드는 router에 대해 GPL. 자바의 한 클라이언트 api 구현은 GPL [23:46] <Ryan_Singer> liberty 프로토콜을 봐... (Link: http://projectliberty.org)http://projectliberty.org [23:46] <shardy> jrand0m: 오케이. 이해했어. [23:46] * jrand0m "no government use" 라이선스도 생각해 봤지 ;) [23:46] <jrand0m> 좋아, 내가 3.0) 앱을 이슈 목록에 넣은 이유는 이거야 [23:46] <jrand0m> 도움이 필요해. [23:46] <Ryan_Singer> 뭐가 필요해? [23:46] <jrand0m> i2ptunnel은 좋은 코드야. i2p의 router도 좋은 코드가 될 거야. [23:47] <jrand0m> 필요한 건 릴리스 엔지니어링의 요령을 잡기 시작하는 사람들이야 [23:47] <dm> i2ptunnel만 있으면 앱이 왜 필요해? [23:47] <ChZEROHag> jrand0m: 뭐라고? [23:47] <jrand0m> 즉, Joe Sixpack(평범한 사용자)이 다운로드해서 웹을 탐색할 수 있도록 실제로 패키징하는 방법 [23:47] <ChZEROHag> dm: telnet만 쓸 수 있으면 앱이 왜 필요해? [23:47] <dm> 뭐라고? [23:47] * dm 머리를 긁적. [23:47] <CCD> 어, telnet 말고 다른 게 있어? [23:48] * jrand0m 그게 ChZEROHag가 하려던 말인 듯 dm ;) [23:48] *** Myself248 님의 닉네임이 myself248 로 변경되었습니다 [23:48] *** Signoff: thecrypto (Ping timeout) [23:48] <ChZEROHag> dm: i2ptunnel을 쓰는 건, 차가 멀쩡한데 손수레로 끄는 것과 같아 [23:48] <jrand0m> 좋아, 그냥 언급만 할게. 혹시 시간 남는 사람이 있을까 해서 :) [23:48] <jrand0m> 좋아, 4.0) [23:48] <jrand0m> 네이밍 서비스 [23:48] <dm> 뭔가 말하려는 건 알겠어. [23:48] <jrand0m> 안녕 co, 어때? :) [23:48] <co> 네이밍 서버는 반드시 GPL이어야 해, 적어도 자바 구현은 router에 연결하기 위해 클라이언트 라이브러리 코드를 사용하니까. [23:49] <dm> 근데 방금 20분 동안 I2Ptunnel + 웹 서버!, I2Ptunnel + quake! 하고 있었잖아 ;) [23:49] <ChZEROHag> 또는 컴퓨팅적으로 말하자면, ip 스택에서 직접 하는 대신 모든 인터넷 작업을 telnet으로 하는 것과 같지 [23:49] <co> 지난주엔 별로 못 했어. 클라이언트 API를 릴리스했는데, 그것도 작업이 필요해. [23:49] <ChZEROHag> i2ptunnel은 과도기적 솔루션 [23:49] <co> 이번 주엔 시간 나니까, 네이밍 서버 구현을 시작할 거야. [23:49] <jrand0m> 굿 [23:49] <jrand0m> 클라이언트 api가 어디더라? [23:50] <mihi> 메일링 리스트에 ;) [23:50] <co> 가정 중 하나는 destination이 base64로 인코딩될 수 있다는 거야. 그래서 아까 그 질문을 했던 거고. [23:50] <jrand0m> ChZEROHag> 어떤 면에서 과도기지 [23:50] * jrand0m !자기자신을 툭 [23:50] *** thecrypto (~thecrypto@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [23:50] <dm> TCP도 그렇지! [23:50] *** yodel (yodel@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [23:50] <jrand0m> 'lo yodel [23:50] <beefbroth> 네이밍 규칙은 어떻게 보일까? 일반 사용자도 공감할 수 있는 형태일까 (예: (Link: www.somthing.com)www.somthing.com 또는 http/web용 (Link: www.something.i2p)www.something.i2p)? [23:50] <co> 네이밍 서비스 스펙과 클라이언트 API를 CVS에 넣을 거야. [23:50] <jrand0m> 다시 온 걸 환영해 thecrypto [23:50] <ChZEROHag> 아마 전에 다뤘겠지만, ns는 어떻게 공정하게 고유 이름을 제공해? [23:50] * mihi 는 *.mihi.iip를 원함 ;) [23:50] <jrand0m> beefbroth> 네이밍 서비스 있을 때? 없을 때? [23:50] <jrand0m> 헿 mihi [23:50] <ChZEROHag> DNS를 괴롭힌 스쿼팅 등을 어떻게 피하지 [23:50] <thecrypto> 누가 방금까지 있었는지 요약 좀? [23:51] <beefbroth> jrand0m: 있을 때. 없으면 긴 숫자 문자열일 듯. [23:51] <co> ChZEROHag: 여러 네이밍 서버 그룹에 등록한 다음, 그 그룹 이름으로 자신을 식별할 거야. [23:51] <co> IM 서비스를 제공한다면 IM.beefbroth.mygroup 같은 식으로. [23:51] <mihi> 앗, s/iip/i2p [23:51] *** godmode0_ (~mode@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [23:51] *** Signoff: godmode0 (EOF From client) [23:51] <jrand0m> ChZEROHag> co의 네이밍 서비스는 trusted groups가 있고, 각 그룹이 그룹 이름(tld)을 관리해. 각 tld를 어떤 그룹이 운영할지 클라이언트가 선택해 [23:51] <co> 맞아, 누군가 group2에 사용자명 beefbroth를 등록할 수도 있어. [23:51] <thecrypto> 내가 4분 동안 없던 사이 [23:52] <ChZEROHag> co: 그럼 .mygroup의 고유성만 이슈란 거지? [23:52] <ChZEROHag> 그리고 누가 'com' 그룹을 가져? :-) [23:52] <jrand0m> 그 선택은 클라이언트가 해 [23:52] <mihi> ChZEROHag: i2p는 COMmerical이 아냐 [23:52] <jrand0m> (예: ns 클라이언트 라이브에 "'.com' 그룹은 group 0123ff33aefcbb34fe"라고 알려줘 [23:52] <beefbroth> 말하긴 싫지만, 일반 웹과 비슷하다는 착각을 유지하려면 기본으로 3글자 그룹으로 해야 하지 않을까 [23:52] <co> ChZEROHag: "com" 그룹을 누가 가져갈지는 모르겠어. [23:52] <co> 좋은 질문이야. [23:53] <shardy> beefbroth: "일반 웹"은 더 이상 3글자 tld만 있는 게 아니야 [23:53] <mihi> beefbroth: 아니면 모든 주소에 .i2p를 붙이자. [23:53] <ChZEROHag> beefbroth: 그 착각은 미국에서만 있어 [23:53] <shardy> tld들. [23:53] <jrand0m> 시작할 땐, 일단 하나의 네이밍 서버 그룹 ".i2p"만 두는 게 좋을지도 [23:53] <co> beefbroth: 네이밍 서버 소프트웨어는 최대 32글자를 허용해. [23:53] <ChZEROHag> 다른 곳에선 우리한테 주어진 2글자 국가 코드를 써 [23:53] <shardy> .us도 미국에서 쓰이고 [23:53] <co> 사실, 첫 그룹은 "test"로 하고 싶었어. [23:53] <shardy> .info나 .name 같은 것도 있고 [23:53] <jrand0m> 헿 좋아 [23:54] <ChZEROHag> shardy: 그래, 한 5명 정도가. [23:54] <ChZEROHag> 어쨌든 이건 다른 때 할 분노 주제 :) [23:54] <jrand0m> 사실은... [23:54] <shardy> .museum도 있어 [23:54] <Ryan_Singer> jrand0m, .12p 쓰는 건 어때 [23:54] <jrand0m> JXTA 기반의 분산 DNS를 본 적 있어 [23:54] <co> ChZEROHag: 하지만 요지는, "com" 그룹 운영자가 마음에 안 들면 "com2" 그룹을 만들고 그 서버들을 운영(그리고 거기에 등록)할 수 있다는 거야. [23:55] <ChZEROHag> 응 그건 완전 이해돼 [23:55] <mihi> ChZEROHag: (Link: http://www.nic.us/press/audio/dotus-mayEM.wav)http://www.nic.us/press/audio/dotus-mayEM.wav ;) [23:55] <jrand0m> co> 그들을 "그들이 .com이라고 '생각'할 뿐이고, 난 .com은 group2가 운영한다고 말하는" 건 안 돼? [23:55] <ChZEROHag> 내가 말하려는 건, 결국 선착순인가 하는 거지 [23:55] <co> 클라이언트를 어떻게든 구성할 수 있어. [23:56] <Ryan_Singer> JXTA 네임 시스템은 어떻게 동작해? [23:56] <jrand0m> co> (Link: http://wiki.java.net/bin/view/Jxta/DisDNS)http://wiki.java.net/bin/view/Jxta/DisDNS 는 분산 DNS 위키야. 근데 매우 조악하고 진짜 어려운 이슈는 안 다뤄 [23:56] <co> ChZEROHag: 그룹에 사용자명을 등록하는 건, 맞아. [23:56] <co> jrand0m: 미팅 끝나고 볼게. [23:56] <jrand0m> jxta는 rendezvous 포인트에서 네이밍 서버를 돌려 [23:56] <ChZEROHag> mihi: 그게 뭐야? [23:56] <beefbroth> 그럼 누군가 기존 i2p 네이밍 서버 그룹을 흉내 내서 NS 시스템을 공격하는 것도 가능하겠네 [23:57] *** Signoff: jeremiah (Ping timeout) [23:57] <co> beefbroth: 아닐 것 같아. [23:57] <mihi> ChZEROHag: 들어봐. 왜 xx백만 미국인이 .com보다 .us를 선호하는지 [23:57] <mihi> 6800만 [23:57] <co> 그룹을 설정하는 사람들은 그 그룹을 공표할 거라고 봐. [23:57] <jrand0m> 흉내 낸다고? 그룹의 서버는 공개키 시스템으로 인증되므로 흉내낼 수 없어 [23:58] <jrand0m> 하지만, 그룹이 비신뢰 멤버의 합류를 허용하면, 쉽게 장악당할 수 있지. [23:58] <shardy> 근데 키 교환은 어떻게 해? [23:58] <co> 나중에 들어오는 사람들은 그룹이 이미 자리 잡았고, 클라이언트 소프트웨어 설정 파일에 기존 그룹의 destination이 들어 있다는 문제에 직면할 거야. [23:58] <ChZEROHag> mihi: 글쎄, 애국심이니 뭐니 해서 그걸 선호하는 게 말은 되지만, 실제로 본 적은 별로 없네. [23:58] <beefbroth> 두 개의 네이밍 서버 그룹이 둘 다 .i2p 그룹을 해결한다고 주장하면 어떻게 돼? [23:58] <co> 좋은 질문이야, 다시 신중히 생각해볼게. [23:58] <ChZEROHag> mihi: 어쨌든 들어볼게 [23:58] <jrand0m> shardy> 키 교환이 아니라 - 키 공개 [23:58] <beefbroth> 이해, 좋은 지적 [23:58] <ChZEROHag> co: 그래 그 얘길 하려던 거였어 [23:58] <shardy> 근데 온라인으로 공개된 키도 가로챌 수 있잖아 [23:58] <jrand0m> beefbroth> 아무도 주장하지 않아. 네 클라이언트가 "i2p == [dest1, dest2, dest]"라고 말하는 거지 [23:59] <shardy> 우리가 필요한 건 신뢰 기반 dns 시스템 :) [23:59] <shardy> 이름 질의하면 응답 목록을 받고... 그중 신뢰하는 걸 선택 [23:59] <co> 제기해줘서 고마워. [23:59] <jrand0m> shardy> 아, 혼동을 이해한 듯. 네이밍 서비스는 band 밖(OOB, 즉 설치 패키지에 포함)으로 destination 세트를 제공하는 게 좋을 것 같아 [23:59] <ChZEROHag> 응 하나 있어 - 모두가 IANA(지금은 이름이 뭐든)를 믿거나 말거나. [23:59] * shardy 고개 숙임 [23:59] <ChZEROHag> :-D [23:59] <mrflibble> dnssec로 시도 중인데, 물론 그건 익명은 아냐 [00:00] <jrand0m> 이 네이밍 서비스의 목적은 루트 서버에서 벗어나는 거야 [00:00] <beefbroth> 활성 네이밍 그룹과 권한 목록을 올리는 i2p 홈페이지를 둘 수도 있지? [00:00] <shardy> jrand0m: 오케이. 그래도 초기 키 전송은 물리적으로 안전한 채널이 없으면 뭐를 하든 가로채질 수 있다는 건 사실이야... [00:00] <co> shardy: 스펙에서 키 교환을 다뤘다고 생각해. 아니라면 말해줘. [00:00] <shardy> 근데 OOB로 패키징하면 더 나아지긴 해 [00:00] <shardy> co: 확인해볼게. [00:00] <jrand0m> shardy> 맞아, 사람들이 다운로드하는 코드를 신뢰할 수 있어야 해 [00:00] <co> beefbroth: 물론. [00:01] <ChZEROHag> 아 생각났다 [00:01] <jrand0m> beefbroth> 맞아, 아마 제일 먼저 구현될 앱 중 하나가 될 거야 - i2p 웹서버 + bbs & wiki, i2p를 통해 접근 [00:01] <ChZEROHag> iipmail용 gpg 키를 만들어야지 [00:01] *** yodel 님이 #iip-dev에서 나갔습니다 [00:01] * ChZEROHag 지루한 동안 그 작업 함 [00:01] <jrand0m> 헿 오케이 [00:01] <co> 네이밍 서버 스펙은 아직 개선 제안에 열려 있다는 점을 이해해줘. [00:02] <shardy> toorcon 가는 비행기에서 모든 스펙을 가져가려 해... 읽을 시간이 되겠지 [00:02] <co> 지금 완벽하거나 최종이라고 주장하지 않아. [00:02] <jrand0m> 헿 긴 비행이면 좋겠다 [00:02] <shardy> 그리고 내내 fft advance만 하는 것보다 생산적이지, 헿 [00:02] * jrand0m 스펙을 구현하는 코드가 있으면 비판이 훨씬 자유롭게 나온다는 걸 배움 [00:02] *** godmode0_ 님의 닉네임이 godmode0 로 변경되었습니다 [00:02] <co> 그리고 내가 코드를 써야지. [00:02] <co> 다음 주제로 넘어가도 될 듯. [00:02] <jrand0m> 오케이 [00:02] <jrand0m> 5.0) IM [00:03] <jrand0m> 안녕 thecrypto [00:03] <mihi> 이름은 base64 표현과 충돌하면 안 돼. [00:03] <thecrypto> 안녕 [00:03] <thecrypto> 오케이 [00:03] <mihi> 그리고 네이밍 서버는 base64 주소는 투명하게 있는 그대로 반환해야 해. [00:03] <co> mihi: 좋아, 그 문제를 피하도록 할게. [00:03] <thecrypto> 먼저 내 이메일이 또 안 돼서 (젠장 스패머) [00:03] <jrand0m> (DataStructure를 확장하는 모든 클래스에는 String .toBase64()와 .fromBase64(InputStream) 있음) [00:03] <thecrypto> 여기서 내 시스템에 대한 whit의 질문에 답할게 [00:04] * jrand0m co의 이메일을 연다 [00:04] <mihi> jrandom? 왜 Inputstream이고 Reader가 아냐? [00:04] <thecrypto> 네트워크가 제일 먼저 떠올랐고, i2p 네트워크 위에서 연결을 만들고, 매우 p2p라서 네트워크라 불렀지 [00:04] <jrand0m> Reader가 필요하면 InputStreamReader를 쓰면 되잖아, 이놈아 [00:04] <mihi> base64는 내 생각엔 바이트가 아니라 문자야. [00:04] <ChZEROHag> jrand0m: IM == 인스턴트 메시징? [00:04] <jrand0m> 응 ChZEROHag [00:04] <thecrypto> 그게 불편하면, 뭐라고 부를지 제안 좀 줘 [00:05] <ChZEROHag> jabber? [00:05] <thecrypto> IM == 내가 만든 분산 IM 네트워크 [00:05] <shardy> "bob"이라고 부르자 [00:05] <jrand0m> i2p im은 aim이 네트워크인 것과, kazaa가 네트워크인 것과 같은 식으로 네트워크야. 전부 tcp/ip나 udp/ip 위에서 돌아가 [00:05] <co> IM 애플리케이션은 어때? [00:05] <ChZEROHag> (anonabber) [00:05] <co> jrand0m: 알겠어. [00:05] <thecrypto> jabber는 중앙 서버가 필요해 [00:05] <jrand0m> 용어는 난 상관없어. 난 shardy의 아이디어가 좋아 [00:05] <ChZEROHag> thecrypto: 아무것도 중앙 서버가 "필요"하지는 않아 [00:05] <thecrypto> 오늘 오타가 심해, 이해해줘 [00:05] <ChZEROHag> 그냥 그렇게 작성되어 있을 뿐 [00:05] <jrand0m> (난 Betty가 더 좋아) [00:05] <thecrypto> 그럼 I2PIM bob으로 부르자는 거야? [00:05] <thecrypto> :) [00:05] <jrand0m> wilma는 어때? [00:05] <jrand0m> fred는 이미 있어 [00:05] <co> 그럼 distributed IM은 어때? [00:05] <jrand0m> DIM, 헿 [00:05] <co> 하지만, distributed IM 애플리케이션? [00:05] <dm> AIM, anonymous Instant messaging! [00:05] <thecrypto> 나쁜 약자네 :) [00:06] <dm> 그러면 AOL을 접수하자. [00:06] <thecrypto> 오오 AOL이 그걸 알게 되길 기다릴 수 없네 [00:06] <ChZEROHag> dm: 어떤 인간들 빡치게 만들겠군. 맘에 든다. [00:06] <jrand0m> ㅎㅎ 해 [00:06] <Ryan_Singer> thecrypto, 탈중앙 방식으로 IM을 구현할 수 있어? 아니면 중앙집중식이어야 해? [00:06] <co> dm: 좋은 생각. 그 약자에 한 표. [00:06] <jrand0m> 내가 읽은 thecrypto 문서에 따르면, IM은 완전히 탈중앙이야 [00:06] <thecrypto> 분산 IM을 구현 중이야, CVS에 있어 [00:06] <beefbroth> 사람들을 혼란스럽게 할 건 반대 [00:07] <Ryan_Singer> AOL 타임워너가 이름을 타임워너로 바꿨어 [00:07] <ChZEROHag> dm: 어떤 인간들 빡치게 만들겠군. 맘에 든다. [00:07] <jrand0m> 사람들이 익명성이 뭔지 이해하지 못하면, 투명하게 익명인 건 쓸모없어. [00:08] <ChZEROHag> 오 잠깐, 이런 게 종이에 있어 [00:08] <beefbroth> 난 thecrypto의 아이디어가 좋아 [00:08] <thecrypto> I2PIM이 어떤 "네트워크" 위에서 도는지 그걸 찾는 중 [00:08] <jrand0m> 사람들이 스스로를 보호하는 법을 가르치는 건 정말 중요 [00:08] <thecrypto> Presence System? [00:08] <Ryan_Singer> 익명의 보안 측면을 강조해 [00:08] <dm> I2M (instant 2 messaging) [00:08] <ChZEROHag> 난 XIrc 같은 게 있었지 [00:09] <jrand0m> 네가 정해 thecrypto, 네게 맞는 걸로 ;) [00:09] <dm> 그리고 I2M 로고에서 2는 아주 작게 :) [00:09] <thecrypto> 음 I2P는 Invisible ... jrand0m ? [00:09] <ChZEROHag> 내가 좋았던 건 모두가 Borg고, Collectives에서 채팅했다는 거 [00:09] <jrand0m> i2p = i^2p (invisible internet project) [00:09] <co> P는 protocol의 P인 줄 알았는데. [00:09] <jrand0m> 그것도 맞아 [00:09] <jrand0m> 음, 사실, 아니 [00:10] <thecrypto> 그럼 Invisible Internet Project Instant Messaging [00:10] <jrand0m> i2np가 프로토콜 [00:10] <jrand0m> i2p는 프로젝트 [00:10] <jrand0m> i2cp는 클라이언트 프로토 [00:10] <beefbroth> 난 "poop"의 약자인 줄 [00:10] <co> thecrypto: 맞아, 이름은 그리 중요하지 않아. [00:10] <dm> i2m = i^2m = instant invisible messaging [00:10] <thecrypto> 그럼 다음 주제로 [00:10] <Ryan_Singer> 좋아.... 점점 안건에서 벗어나네... IM은 끝? [00:10] <shardy> "bob"이 싫으면, "jimbob"으로 하자 [00:10] <jrand0m> 오케이, 6.0) administravia [00:10] <thecrypto> 아니, 아직 더 있음 [00:11] <thecrypto> 미안 [00:11] <co> administrivia야. [00:11] <thecrypto> 아니 IM이야 [00:11] <jrand0m> nop> 루트 줘. anon cvs, bugzilla, cvsweb 설치해야 해. [00:11] <thecrypto> 아직 안 끝났어 [00:11] <thecrypto> :) [00:11] <thecrypto> 되감기! [00:11] * jrand0m 뒤로 감기 [00:11] <jrand0m> 5.1) thecrypto v2 [00:11] <Ryan_Singer> IM에 뭐가 더 있어, thecrypto? [00:12] <mihi> thecrypto: 그냥 계속해; /me 네이밍 서비스도 놓쳤으니까 [00:12] <thecrypto> 오케이, 프레즌스(접속 상태)가 통신하는 방식은 달라 [00:12] <thecrypto> 모두가 모두를 아는 게 아냐 [00:12] <thecrypto> 사실상 누군가를 "스토킹"할 방법이 없어 [00:12] <thecrypto> 보여달라고 요청해야 해 [00:13] <mihi> 익명 네트워크에선, 보통 아무도 아무도 몰라 ;) [00:13] <jrand0m> (사람들의 Destination이 랜덤인 한) [00:13] *** Signoff: pitu (Lost terminal) [00:13] <dm> 무슨 뜻? [00:13] <thecrypto> Alice가 Bob과 대화하고 싶어 [00:13] <jrand0m> mihi> 그래도 네이밍 서비스는 서비스로 검색을 허용해 [00:13] <jrand0m> (서비스는 IM, www 등) [00:13] <thecrypto> Alice가 Bob의 IM destination을 어떤 식으로든 찾아, 아마 네이밍 서비스로 [00:14] <thecrypto> 그래서 Alice가 Bob의 IM destination으로 메시지를 보내 [00:14] <dm> 응? [00:14] <thecrypto> 그러면 "Alice가 너에게 연락하려 함"이라는 작은 메시지가 떠. 그와 대화하고 싶으면 할 수 있고, 무시할 수도 있고 [00:15] <thecrypto> 하지만 중앙 presence 서버는 없어, Alice는 그냥 메시지가 사라지고 응답을 못 볼 수도 있어 [00:15] <dm> 오케이, MSN 같네? [00:15] <jrand0m> (근데 Alice는 Bob이 자길 무시했는지 알 수 있음) [00:15] <thecrypto> 그리고 Alice는 그냥 Bob을 버디 리스트에 추가하고 그를 기다릴 수 없어 [00:15] <Ryan_Singer> thecrypto, 그러면 제대로 설정된 Y!, MSN, AIM과 뭐가 다른 거야.. 중앙 서버 없는 걸 빼고 [00:15] <thecrypto> Bob이 Alice의 로그인 상태를 보려면 Bob이 Alice에게 메시지를 보내야 해 [00:15] <Ryan_Singer> 오 [00:15] <dm> 오케이, 사용자 입장에선 바뀌는 건 없지만, 네 말은 알겠어. [00:16] <jrand0m> thecrypto> 완전 정확하진 않아 [00:16] <Ryan_Singer> 알겠어.. 버디 리스트 기능 없음... [00:16] <jrand0m> 아, 음, 기술적으로는... [00:16] <thecrypto> Ryan_Singer: 아니 버디 리스트는 여전히 있어 [00:16] <dm> Alice가 Bob을 볼 수 없으면 어떻게 메시지를 보내? [00:16] <dm> 거기 있는지 확인하려고 그냥 랜덤으로 연락해봐야 해? [00:16] <jrand0m> Bob은 Alice의 router로 메시지를 보내야 하고, 그건 Alice가 모르는 사이에도 일어날 수 있어 [00:16] <thecrypto> Alice는 랜덤으로 시도할 수 있어 [00:17] <dm> 그리 편리하진 않은데? 온라인이 되자마자 모두에게 (있어?, 있어?)라고 보내야 해? [00:17] <beefbroth> thecrypto: 사용자가 로그인할 때 모든 버디에게 메시지로 "알림"을 보낼 수는 없어? 방금 그 말이었나 [00:17] * co 는 두 개의 Bob이 서로 다른 네이밍 서버 그룹에 등록될 수 있음을 적어둠. [00:17] <thecrypto> beefbroth: 방금 그 말 [00:17] <dm> 오케이, 기본적으로 지금 스킴이랑 비슷하지만 기본은 보이지 않음이네. [00:17] <dm> 이해. [00:18] <thecrypto> dm: 아니 반대야, 로그인하면 모두에게 "나 접속" 메시지를 보내. "나 접속" 메시지를 받으면 그걸 되돌려 [00:18] <thecrypto> 원하면 [00:18] <co> 즉, 누가 자기 자신을 볼 수 있는지 사용자가 제어. [00:18] <thecrypto> 그래서 Alice가 너를 버디 리스트에 넣으면, 네가 "Alice가 너를 버디 리스트에 넣었어, 네 프레즌스를 알릴래?"라는 메시지를 받게 돼 [00:19] <Ryan_Singer> 나갈 때 먼저 "나 나간다"는 메시지를 보내? [00:19] <dm> 오케이, 그럼 IM 경험은 지금과 동일. 그걸 확인하고 싶었어. [00:19] <thecrypto> Bob이 Alice를 버디 리스트에 가지고 있고, Alice로부터 Online 메시지를 받으면, 응답 메시지는 자동 [00:19] <beefbroth> 비의도적 연결 끊김이 없는지 확인하려고 일정 주기마다 다른 IM 유저를 "핑"해야 할 수도 [00:19] <thecrypto> Bob이 Alice를 버디 리스트에 없고, Alice로부터 online 메시지를 받으면, 사용자에게 프롬프트 [00:19] <dm> 오케이, 그건 서버가 없는 걸 우회하려는 방식이고, 질문은 기본 설정으로 누군가가 로그인할 때 "나 접속"을 보내도록 앱이 설정될지 여부. [00:20] <Ryan_Singer> 그러길 [00:20] <jrand0m> Ryan_Singer> 또는 주기적으로 "아직 접속 중" 핑 [00:20] <jrand0m> (핑이 없으면 = 오프) [00:20] <Ryan_Singer> keep-alive 같은 거? [00:20] <beefbroth> 비의도적 연결 끊김이 없는지 확인하려고 일정 주기마다 다른 IM 유저를 "핑"해야 할 수도 [00:20] <thecrypto> Bob이 Alice를 버디 리스트에 가지고 있고, Alice로부터 Online 메시지를 받으면, 응답 메시지는 자동 [00:20] <beefbroth> 헿 [00:20] <thecrypto> Bob이 Alice를 버디 리스트에 없고, Alice로부터 online 메시지를 받으면, 사용자에게 프롬프트 [00:21] <dm> 오케이, 그럼 IM 경험은 지금과 동일. 그걸 확인하고 싶었어. [00:21] <thecrypto> 단지 이제 버디 추가에 확인이 들어가 [00:21] <thecrypto> 그건 아마 ICQ만 [00:21] <jrand0m> IM 앱이 독립형이야, 아니면 trillian을 쓸 수 있어? [00:21] <dm> 응, MSN이 그래. [00:21] <jrand0m> [등등] [00:21] <ChZEROHag> thecrypto: ICQ는 확인이 필요한 척만 해 [00:21] <beefbroth> dm: 틀렸지. MSN, Y!, AIM이 몇 달마다 프로토콜 바꾸고 잠그는 걸 상대하지 않아도 됨 :) [00:22] <thecrypto> jrand0m: 스펙을 만들 거고, trillian이 내게 플러그인 인터페이스를 주거나, 아니면 자기들이 직접 만들면 돼 [00:22] <thecrypto> 최소한 gaim용 플러그인은 만들 거야 [00:22] <thecrypto> 독립형 클라이언트와 함께 [00:22] <jrand0m> 굿 [00:22] <thecrypto> 네트워크와 함께 쓰도록 만들어져 있어 [00:22] <jrand0m> gaim이 파일 전송 지원해? 아니면 그게 i2pim 클라이언트의 장점이 될까? [00:22] <beefbroth> thecrypto: kopete 개발자들에게도 한 번 알리는 게 좋겠어 [00:22] * jrand0m 자신의 무지 드러냄 [00:23] <thecrypto> gaim 플러그인을 독립형만큼 잘 동작하게 만들려고 하겠지만, 장담은 못 해 [00:23] <co> thecrypto: 먼저 독립형 애플리케이션부터 하자. [00:23] <thecrypto> gaim 파일 전송은 아마 AIM에서만 [00:23] <thecrypto> 그래서 플러그인으로 넣으려면 좀 삽질이 필요할지도 [00:23] <Ryan_Singer> 좋아.. 다 이해한 듯... IM 이슈 더 있어? [00:24] <thecrypto> 그리고 co의 마지막 것 [00:24] <beefbroth> gaim은 NAT 쓰는 사람들의 IM 전송에 문제가 있어 [00:24] <thecrypto> 같은 이름을 갖는 사람이 여러 명 있을 수 있어 [00:24] <thecrypto> 그들은 고유한 destination을 갖게 돼 [00:24] *** Signoff: mihi (Ping timeout) [00:24] <co> 좋아. [00:24] * mihi_backup 는 아직 여기... [00:24] <thecrypto> 하지만 누군가 가장할 순 없어 [00:25] <jrand0m> 헿 나이스1 mihi_backup [00:25] <co> 네이밍 서버를 쓰면, "group1의 Bob", "group2의 Bob"이 돼. [00:25] <co> 고유한 destination과 함께. [00:25] <jrand0m> 맞아 thecrypto. 이름은 임의야. dns랑 비슷 ;) [00:25] *** mihi (~none@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [00:25] <thecrypto> 또한 IM 클라이언트는 선택적으로 이런 체크를 할 수 있어 "야, 이 IM은 Bob이라 불리는 이에게서 왔는데, 네 리스트의 Bob의 destination과 다르네, 메시지 수락할래?" [00:26] <dm> mihi: 네 백업이 네가 없는 동안 말했어. [00:26] <thecrypto> 누가 Bob을 가장하려 하면 알게 되고, 아니면 별명 처리할 수 있어 [00:26] <mihi> 알아... [00:26] <jrand0m> "누가 Bob이라 불린다"? 누가 그렇게 말해? 본인이 스스로 Bob이라 하나? 아니면 어떤 그룹이 그를 Bob이라 하나? 아니면 네가 그들의 dest를 Bob이라 부르나? [00:26] <thecrypto> presence에 name이라는 필드가 있어 [00:26] <thecrypto> 그걸 보고 있어 [00:27] * jrand0m 은 그 문제에 ICQ의 방식이 좋다고 봐 - 모두 숫자이고, 숫자에 로컬에서 이름을 별칭 [00:27] <co> 그건 그렇고, NS 엔티티 이름을 대소문자 구분 없이 만들까? [00:27] <jrand0m> 아마도 co [00:27] <mihi> base64 것들은 여전히 대소문자 구분해야 해 ;) [00:27] * jrand0m 은 누가 Jrand0m을 스푸핑하는 건 원치 않아 [00:27] <co> mihi: 엔티티 이름이지 destination이 아냐. [00:27] <jrand0m> 맞아 맞아 mihi [00:28] <jrand0m> (뭐, 사람들이 jrand0m은 마음껏 스푸핑해도 돼. 난 jrandom만 돌려받고 싶어) [00:28] <co> 계속해, thecrypto. [00:28] *** Signoff: UserX_ (Ping timeout) [00:28] <thecrypto> 내 말은 여기까지 [00:28] <thecrypto> 드디어 :) [00:28] <mihi> co: 어디든 엔티티 이름을 넣을 수 있는 곳에는 destination도 넣을 수 있어야 해. [00:28] <mihi> dns 이름과 IP처럼 [00:28] <co> mihi: 좋은 지적. 그걸 스펙에 추가할게. [00:28] <thecrypto> jrand0m: 사실 ICQ랑 비슷해. 다만 네가 원하는 별명을 사람들이 알게끔 해 [00:29] <thecrypto> 요즘은 그렇게 하더라 [00:29] <co> 아이디어는, destination보다 이름이 훨씬 짧게 입력되게 하자는 것. [00:29] <jrand0m> mihi> 네이밍 서비스는 이름을 destination으로 바꾸기만 해 - destination의 destination을 네이밍 서비스에 묻는다면 진짜진짜 빨리 답해야 [00:29] <Ryan_Singer> 오케이 여러분... 회의가 있어... jrand0m, anonymail 보내줘 [00:29] <jrand0m> 오케이 adios [00:29] <mihi> jrand0m: 응, 그리고 그 dest 자체를 반환해야 하고, "없음"이 나오면 안 돼 [00:30] <jrand0m> 맞아 [00:30] *** Signoff: Ryan_Singer ((null)) [00:30] <jrand0m> 좋아. 이제 7.0) [00:30] <jrand0m> 질문 [00:30] <jrand0m> 하이 [00:30] <co> 6.0) Administrivia는? [00:31] <co> 그건 끝난 거야? [00:31] <jrand0m> 6.0 administravia는 그냥 nop에게 루트 줘서 여러분에게 anon cvs 접근, bugzilla, cvsweb 인터페이스를 설치하자고 잔소리한 거야 :) [00:31] <beefbroth> 채택을 빠르게 하려고 Win/Mac/SuSE/RehHat/Debian용 알파/베타/릴리스 패키징에 주도적으로 일할 오너가 있을까? [00:32] <jrand0m> 자원할래? [00:32] <jrand0m> (즉, 그러면 좋지) [00:32] <beefbroth> 내 배포판용 패키징 배우면 :) [00:32] <jrand0m> 어떤 배포 써? [00:33] <co> 기억으로, IIP 개발자들은 IIP를 I2P 위에 재구현하고 싶어 했어. I2P가 익명성 약속을 이행한다면, I2P 위에서 IRC만 하면 더 단순하지 않을까? [00:33] <beefbroth> 근데 내 요지는, 많은 사람들이 거기에 의존한다는 것. 사람들 채택을 쉽게 해줘. Freenet은 활동적인 메인터너 부족으로 고생하지. [00:33] <dm> jr은 좋은 매니저감 :) [00:33] <jrand0m> 응 co, 더 단순하지만, 그만큼 확장 가능하진 않아 [00:33] *** UserX_ (~User@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [00:33] <thecrypto> 맞아, 근데 어떤 사람들은 IRC를 원치 않아 [00:34] <jrand0m> beefbroth> 완전 맞아, 할 일이 많고, 나도 최소 4시간은 자야 해 [00:34] <co> thecrypto: 좋은 지적, 그래도 I2P가 사람들의 IP 주소를 익명화할 거야. [00:34] <beefbroth> jrand0m: 준비되면 패키징 도울게. 약간의 기술력이 있는 비개발자들이 기여할 좋은 방법이라고 봐. [00:34] <jrand0m> 최고야 beefbroth [00:34] <thecrypto> IM과 IRC가 있으면, 채택이 더 늘지 [00:35] <mihi> co: 문제는 irc에는 꺼버릴(서버) 게 있다는 것. [00:35] *** jeremiah (~jeremiah@anon.iip) 님이 채널 #iip-dev에 참여했습니다 [00:35] <jrand0m> thecrypto> 즉시 채택: opennap [00:35] <beefbroth> 패키징 배우는 게 i2p 데이터 구조 배우는 것보다 쉬워. 몇몇 사람이 참여하기 좋은 쉬운 길 [00:35] <dm> IRC는 꽤 빡세지 않나? [00:35] <dm> 분산 IRC 말이야... [00:35] <co> mihi: 맞아. 그걸 잊었네. 상기시켜줘서 고마워. 이의 철회. [00:36] <jrand0m> dm> irc는 여러 irc 서버(efnet처럼)가 i2p를 통해 서로 통신할 수 있어 [00:36] <shardy> "irc 비슷이" 채팅 프로토콜을 말하는 거야? [00:36] <shardy> 아니면 irc를 개조? [00:36] <jrand0m> 사람들은 i2p를 통해 irc 서버 중 하나로 터널링해서 서로 대화 [00:36] <dm> i2p 뒤에서 서버로 irc 하는 건 괜찮아, 난 서버 없이 하는 걸 말한 거야. 뭐 상관없겠지. [00:37] <jrand0m> dm> 맞아, 서버 없이 훨씬 더 잘 할 수 있어, 그리고 생각은 좀 해봤지만, (내 지식으론) 정말 견고한 건 아직 [00:38] <dm> 어쨌든, 오프토픽. [00:38] <dm> 계속! [00:39] <jrand0m> 다른 질문? [00:39] <jrand0m> 스펙 읽은 사람? ;) [00:39] <jrand0m> (beefbroth는 외워서 제외) [00:39] * dm 천장을 본다. [00:40] <jrand0m> 좋아, 그럼 100분 회의로 [00:40] <thecrypto> 난 필요할 때 읽는 중 :) [00:40] <ChZEROHag> 스펙! [00:40] <ChZEROHag> 그걸 잊었네! [00:40] <jrand0m> 헿 [00:41] *** dm 님이 채널 #iip-dev의 주제를 topic1 로 변경했습니다 [00:41] * jrand0m 로드하고... [00:41] * jrand0m *baf* 하고 회의를 마무리한다