간단 요약
참석자: bar, cervantes, Complication, dust, jrandom, Myo9, postman, redzara, wiht
회의록
16:29 <jrandom> 0) 안녕 16:29 <jrandom> 1) 0.6.1.2 16:29 <jrandom> 2) I2PTunnelIRCClient 16:29 <jrandom> 3) Syndie 16:29 <jrandom> 4) I2Phex 16:29 <jrandom> 5) Stego와 다크넷들 (관련: 플레임전) 16:29 <jrandom> 5) ??? 16:29 <jrandom> 0) 안녕 16:29 <@cervantes> (6) 16:29 <+postman> 6)을 말하는 거죠? 16:29 <jrandom> 맞아, 난 셈을 못해 ;) 16:30 * postman, cervantes와 하이파이브를 한다 16:30 <jrandom> 주간 상태 노트를 여기 올렸어 @ http://dev.i2p.net/pipermail/i2p/2005-October/000990.html 16:30 <wiht> 질문은 항목 6번이어야 해. 16:30 <jrandom> 내가 30분 늦었으니, 다들 이미 그 노트를 읽어봤겠지, 분명. 그럼 시작하자 ;) 16:31 <jrandom> 1) 0.6.1.2 16:31 <@cervantes> 6) jrandom의 룸메이트가 타이밍을 엉망으로 판단한 건에 대해 토론 16:31 <jrandom> *콜록* ;) 16:31 <jrandom> 좋아, 이메일에서 말했듯이, 0.6.1.2 릴리스는 꽤 잘 돌아가는 것 같아 16:32 <jrandom> IRC 서버들을 예전 빌드에 묶어두던 버그를 찾아냈고, 이제 그것들도 최신으로 올라왔어 (w00t!) 16:32 <+postman> :) 16:32 <wiht> 그런데, router 콘솔의 netDB에서, 페이지 맨 위에 router들과 그 버전들을 나열한 표를 표시할 수 있을까요? 16:33 <jrandom> 버전별 router 수, 맞지? 물론, 꽤 쉽게 할 수 있어. peers.jsp 표(피어별 버전을 보여주는)에 통합하고, 아래에 새 표를 하나 더 두는 식으로? 16:34 <jrandom> 9가지 버전이 함께 잘 동작하는 걸 보는 것도 꽤 기분 좋아, 물론 최신 버전이 가장 잘 작동하긴 하지만 16:35 <jrandom> 좋아, 1) 0.6.1.2에 대해 더 제기할 게 있는 사람? 16:35 <+postman> 내 router 중 하나가 known 1080으로 보여 16:35 <jrandom> 어이쿠 16:35 <+postman> 이거 좀 비정상 아닌가? 16:35 <jrandom> 그게 0.6.1.2에서야? 16:35 <+postman> 응, 그런 것 같아 16:36 <jrandom> 흠, 그래, 그건... 좀 높네. 난 지금 그 절반 정도밖에 안 보여 16:36 <+Complication> 여긴 안정적으로 400대 16:37 <+bar> 여기도 비슷해 16:37 <wiht> 난 알려진 router 260개가 보여. 16:37 <jrandom> postman: 회의 끝나고 그 router에서 무슨 일이 있는지 파볼 수 있겠어? (netDb/routerInfo-*를 tar.bz2로 묶어서 나한테 보내줄 수 있어?) 16:38 <+postman> jrandom: 응, 고마워 16:38 <jrandom> gracias 16:38 <jrandom> 그래, 모두가 모든 netDb 참조를 다 보는 게 아니니까, 변동이 있는 건 정상이지 16:40 <jrandom> 좋아, 1) 0.6.1.2에 더 없으면, 2) I2PTunnelIRCClient로 넘어가자 16:40 <@cervantes> 좋다, dust 16:40 <jrandom> 이메일에서 말했듯이, 새 IRC 프로토콜 전용 필터가 CVS에 올라가 있고, 다음 릴리즈에 기본값으로 배포될 거야 16:41 <+postman> 좋네 16:41 <jrandom> 그래, 이건 정말 좋아. 사람들 이런 걸 오랫동안 요청해 왔거든 16:41 <+Myo9> Jrandom, 요즘 더 오픈해졌네. 네 전 애인 얘기도 들었고, 이제 룸메이트 얘기도, 등등. 이것도 기억해봐: http://www.navysecurity.navy.mil/st031204.webp 16:41 <jrandom> *콜록* 16:42 <dust> 클라이언트가 무엇을 보내는지 보고 싶다면 net.i2p.i2ptunnel.I2PTunnelIRCClient=INFO 를 추가한 다음 로그를 보면 전부 확인할 수 있어 16:43 <dust> 몇몇 클라이언트를 테스트해봤지만, 종류가 많아서.. 16:43 <jrandom> 응, 잠깐 지켜봤는데, 필터링은 탄탄한 것 같아 16:44 <jrandom> 앞으로 더 해볼 만한 멋진 것도 있어 — 예: 로컬에서 PING/PONG 처리해서 네트워크 트래픽을 줄인다든가 16:44 <+Complication> dust: “정보” 고마워 :) 16:44 <+bar> 대단해, dust. 정말 고마워 16:44 <wiht> 이게 추가 IRC tunnel을 설정할 필요가 없다는 뜻인가요? 16:44 <jrandom> wiht: 아니, IRC tunnel은 필요해. 하지만 지금 쓰는 걸 이걸로 대체할 수 있어 16:45 <+Complication> wiht: 우리 IRC 클라이언트가 정체를 드러낼 걱정은 좀 덜어도 돼 16:45 <jrandom> postman/cervantes: 서버 ping/pong 타임아웃을 늘리거나 없애는 것에 대한 생각 있어? 16:45 <wiht> 이해됐습니다, 감사합니다. 16:46 <+postman> 음, 나는 없애진 않겠어. 만져봤더니 내 클라이언트가 완전히 난리 났거든 16:46 <jrandom> postman: 음, 로컬에서 응답하게 해서, 클라이언트가 정말정말 빠른 PING/PONG을 받게 하는 걸 생각 중이야 16:46 <@cervantes> postman: 프록시가 ping에 응답할 수도 있지 16:46 <jrandom> (하지만 ping/pong이 네트워크를 오갈 필요는 없게) 16:47 <jrandom> 영향은 잘 모르겠지만, 검토할 가치는 있어 보여. 16:47 <@cervantes> 하지만 서버들이 어떻게 반응할지 모르겠어. 좀비 클라이언트가 한가득 생길 수도 있어 16:47 <+postman> jrandom: 음 16:47 <jrandom> 음, 스트리밍 라이브러리의 keepalive가 그걸 처리해야 해 16:47 * Complication은 가끔 좀비화 현상을 겪었음 16:47 <jrandom> Complication: 최근에? 16:47 <+postman> jrandom: 프록시가 클라이언트를 대신해 ping을 한다면, 프록시는 클라이언트에도 ping/pong을 해줘야 해 16:48 <+Complication> 일주일 전쯤인 듯. 16:48 <jrandom> postman: 클라이언트가 프록시로 PING을 보내면, 프록시는 i2p로 아무것도 보내지 않고 클라이언트에 바로 PONG으로 응답하는 식이야 16:48 <+Complication> 하지만 내 “복제본(copy)”은 결국 끊겼어. 16:48 <@cervantes> jrandom: 연결은 계속 열린 채로 있을 거야... 서버들이 어느 시점에 클라이언트가 유휴하다고 판단해 쫓아낼지 기준을 더 낮춰야 할지도 몰라 16:48 <jrandom> Complication: 아, 그땐 IRC 서버들이 최신이 아니었어. 이제는 그런 일 없을 거야 16:49 <+Complication> 내가 'ghost'를 쓰지 않았는데도. 최근에 ghost 명령을 쓴 건 노드를 많이 돌리다 보니 그랬어. 16:49 <+postman> jrandom: 그럼 지연(lag) 측정은? 16:49 <jrandom> cervantes: 맞아. 그리고/또는 필요하다면, 프록시가 서버로 추가 PING 메시지를 주입할 수도 있어, 정말 /필요/하다면. 16:49 <+postman> 난 내가 랙이 있는지 없는지 아는 게 꽤 유용하다고 봐 16:49 <jrandom> postman: 나도 그래. 하지만 언제든지 /msg로 자기 자신에게 보내볼 수 있잖아 16:50 <dust> 핑 횟수를 줄이는 것도 가능하겠지 16:50 <jrandom> 대역폭을 꽤 절약할 거야. tunnel 메시지는 1024바이트 블록이고, 2*k+1 홉을 거쳐 전송되니까 16:50 <jrandom> 그것도 그렇지 16:50 <jrandom> 글쎄, 그냥 아이디어야. 어쨌든 지금 있는 것만으로도 끝내줘 16:51 <+postman> 좋아, 테스트 서버에 패치를 해보지 16:51 <@cervantes> 수량을 줄이는 건 검토해볼 만해... 하지만 클라이언트가 살아 있는지 판단하려면 실제 ping은 조금은 보내야 한다고 생각해 16:51 <+postman> 아마 될 거야 16:51 <jrandom> 합리적으로 들려, cervantes. 서버 쪽에서 별도 패치가 필요하진 않을 것 같은데, 그렇지? 16:52 <+postman> jrandom: 비활성화하려면 아마 필요할 수도 — 하지만 간격을 낮추는 건 설정 파라미터야 16:53 * postman이 ircd 문서를 (또) 씹어보고 있음 16:53 <jrandom> 좋아, 급할 건 없어. 언젠가 살펴보면 될 일이지 16:53 <@cervantes> class servers 16:53 <@cervantes> { 16:53 <@cervantes> pingfreq 120; 16:54 <@cervantes> class clients { pingfreq 90 } 16:54 <@cervantes> 그게 내 현재 설정이야 16:54 <+postman> cervantes: 응, 알아 — 문제는 그걸 아예 비활성화할 수 있느냐는 거지 16:54 <@cervantes> 난 비활성화하진 않겠어... 그냥 줄이는 걸 보자 16:55 <+postman> 좋아, 그걸로 시작하자 16:55 <+postman> cervantes: 180초는 어때? 16:56 <@cervantes> 아예 깊게 가서 240으로 16:56 <@cervantes> 하지만 먼저 ircproxy 쪽을 준비해야 할지도 16:57 <@cervantes> *회의 후에 논의* 16:57 <+postman> 동의 16:57 <jrandom> w3rd. 좋아, 2) I2PTunnelIRCClient에 더 있을까, 아니면 3) Syndie로 넘어갈까? 16:57 <@cervantes> 현재 초당 40kb/sec 평균 router 트래픽을 줄일 수 있는 건 뭐든지 ;-) 16:58 <jrandom> 헷, 왠지 그게 전부 IRC 때문이진 않을 것 같은데 ;) 16:58 <jrandom> 좋아, 계속 가자 16:59 * cervantes가 일주일 내내 jrandom에게서 빨아온 조랑말 동영상 다운로드를 숨김 16:59 <@cervantes> is=the 16:59 <+postman> LOL 16:59 <jrandom> 메일에서 말했듯이, Syndie에서 꽤 멋진 일들이 진행 중이야 16:59 <jrandom> CLI는 사소한 거고, dust의 새 Sucker가 정말 유망해 보여 16:59 <jrandom> dust: 개요 좀 알려줄래? 17:00 <dust> 오, 17:01 <dust> 음, 피드를 파싱하는 데 rome을 쓰고, jrandom의 블로그에 설명된 대로 그걸 sml로 변환해 17:02 <dust> 아직 견고하다고 할 순 없지만, 겨우 이틀 된 거니까 :) 17:02 <dust> 내 Syndie에 딜버트 몇 개 넣어봤어.. 17:02 <dust> :) 17:02 <dust> . 17:02 <jrandom> 좋네 17:03 <jrandom> 좋아, 앞으로 방향에 대해 어떻게 생각해? — Syndie 소스에 넣고 CLI로 제공할까, 아니면 따로 두고 독립적으로 배포할까, 또는 다른 방법? 17:04 * dust는 모르겠다, 네가 결정해 17:04 <dust> 따로 노는 도구는 적을수록 좋아 17:04 <jrandom> 그래, 아마 한데 묶는 게 더 쉬울 거야. 그래야 모두가 쓸 수 있다는 걸 알지 17:05 <jrandom> 그러면 웹 인터페이스에 통합한다든가, 어쩌면 Ragnarok의 스케줄러에 넣어서(다른 노드들과 동기화하고 RSS/Atom/etc에서 끌어오는) 같은 것도 할 수 있어 17:07 <jrandom> 좋아, 3) Syndie에 대해 질문/코멘트/우려 사항 있는 사람? 17:07 <wiht> I2P에 계속 소프트웨어를 통합하면, 비대한 소프트웨어 패키지가 될 수도 있어요. 17:07 <wiht> 물론, 안 쓸 땐 Syndie를 꺼둘 수 있죠. 17:08 <jrandom> i2p SDK는 13KLOC 17:08 <jrandom> 그리고 i2p router는 22KLOC뿐이야 17:08 <jrandom> 하지만 그래, 설치 다운로드 시간에는 영향이 있어 17:09 <jrandom> 원한다면, router.jar, jbigi.jar, i2p.jar만 써서 클라이언트 앱 없는 경량 router를 빌드할 수도 있어 17:09 <wiht> 네, 다운로드를 말한 거였어요. 17:09 <jrandom> (하지만 웹 인터페이스로 제어하고, i2ptunnel과 스트리밍 라이브러리 등등이 있을 때 훨씬 유용하지 ;) 17:11 <jrandom> smeghead가 배포 시스템(자바용 emerge 같은 것)을 작업 중이었고, jpackage 쪽도 있어 17:11 <jrandom> 누가 번들 없이 앱을 매끄럽고 신뢰성 있게 관리하는 방법을 찾아본다면 꽤 멋질 거야 17:12 <jrandom> 좋아, 더 없으면 4) I2Phex로 넘어가자 17:13 <jrandom> 상태 노트에 있는 것 말고는 덧붙일 게 많진 않아 17:13 <jrandom> redzara: 있어? 17:13 <+redzara> 응, 있어 17:13 <+redzara> Gregor와의 미팅을 기다리는 동안, 다음 버전을 이미 작업하고 있어. 17:13 <jrandom> 아, 좋네 17:13 <+redzara> 지금으로선, 주 업무는 I2P 사용과 관련된 차이점과 필요사항을 파악하는 거야. 예를 들어 tcp/udp 대 i2p, I2P에 특화된 매개변수의 관리(그리고 다음 버전 때 이 매개변수들의 업데이트 관리, ...), GWebCache의 I2P 포팅, RSS를 쓸지 말지, push를 쓸지 말지... 17:14 <+redzara> 읽어야 할 문서와 코드가 아주 많아 17:15 <jrandom> 와, 그래, 많아 보인다. i2p 통합과 관련해 질문이 있거나, 아이디어를 주고받을 사람이 필요하면 알려줘 17:16 <jrandom> I2Phex 부분을 메인라인 Phex의 플러그인으로 넣을 수 있으면 정말 끝내줄 거야 17:17 <jrandom> 좋아, 4) I2Phex에 대해 다른 사람 있어? 17:18 <+redzara> petname 부분에서는 확실히 도움이 필요할 것 같아 17:19 <+redzara> 그리고 tunnel 매개변수의 미세 조정에도 아마 도움이 필요할 거고 17:19 <jrandom> 좋아, 네이밍은 꽤 쉬워 — 기본 수준에선 이름을 전혀 쓰지 않고도 할 수 있어(지금 I2Phex가 그렇게 하고 있고) 17:20 <jrandom> tunnel 설정도 문제가 되진 않을 거야. 다만 그 얘기를 하니, 아마 Phex에는 플러그인을 위한 '고급 설정' 섹션이 필요할지도 모르겠다는 생각이 드네 17:20 <jrandom> (물론 기본값은 잘 정해둘 거고) 17:21 <+redzara> 아마 ircclient 같은 것, 즉 확실히 걸러주는 필터 같은 게 필요할지도 17:22 <@cervantes> 내 생각엔 앱부터 제대로 만드는 게 낫겠어 17:22 <jrandom> 그게 통할 수도 있지만, 임의의 바이트 시퀀스를 다루는 건 어려울 수 있어 17:23 <jrandom> 그래도 ircclient 같은 프록시라면 어떤 Gnutella 클라이언트든 쓸 수 있게 해줄지도 몰라. 하지만 일이 많을 거야. 17:23 <+redzara> 흠, 그냥 아이디어일 뿐이지 ;) 17:23 * jrandom은 그 프로토콜을 충분히 잘 아는 건 아니라서 최선의 접근을 말하긴 어려우니, 가능한 가장 단순한 방식으로 가자고 제안 :) 17:25 <jrandom> 좋아, 더 없으면 5) stego와 다크넷을 간단히 훑고 갈까 17:26 <jrandom> 리스트에서 나온 얘기 외에 덧붙일 게 있는지는 잘 모르겠어(본격적인 논의는 아마 거기서 계속하는 게 좋을 거야) 17:27 <jrandom> 그렇긴 해도, 제기된 이슈들에 대해 누가 이야기하고 싶은 게 있어? 17:27 <wiht> 논의에서 Freenet 버전 0.5와 0.7이 언급됐죠. Freenet에 0.6 버전도 있나요? 17:27 <jrandom> 0.6은 그들의 현재 '불안정(unstable)' 네트워크 브랜치야 17:27 <jrandom> 내가 아는 한 17:28 <+postman> 오, 전 외계인한테 납치된 줄 알았는데요 17:28 <jrandom> 외계인 탓 하는 건 보통 안전한 선택이지만, 이번만큼은 그들의 잘못이 아니야 17:28 <+postman> :) 17:28 <wiht> Toad가 I2P나 FreeNet 노드의 IP 주소를 수집할 수 있다는 얘길 한 거죠? 17:28 <jrandom> 그런 것들 중 하나지 17:29 <wiht> 그걸 확인하고 싶었어요, 감사합니다. 17:29 <jrandom> 천만에. 좋아, 5)에 대해 다른 거 있어? 아니면 정겨운 6) ???로 넘어갈까 17:30 <+postman> 좋아, 6) 관련해서 하나 있어 17:30 <jrandom> 그럼 넘어간 걸로. 17:30 <jrandom> 무슨 일이야, postman? 17:30 <+postman> 우리 모두 프로토콜 전용 필터가 가능한 프록시가 좋고 필요하다는 걸 봤잖아 17:31 <+postman> 일반화된 프록시에 대해 생각을 투자해 보는 게 가능할까? 17:31 <+postman> 프로토콜 서술을 먹여서 동작하는 그런 거 17:31 <+redzara> BeanShell(자바 스크립팅 엔진)을 사용해서 자바 코드를 동적으로 실행하는, cron 같은 애플리케이션이 있었으면 해 17:31 <+postman> 감시/필터링/위장해야 할 것들과 함께 17:31 <+postman> 필터/정화(sanitize)에 대한 XML 서술 같은 걸로 17:32 <+postman> 그래서 새 소스 없이도 새 필터 파일/프로파일만으로 가능하게 17:32 <+postman> (생각해볼 가치가 있는지 묻는 거야) 17:32 <jrandom> 매우, 매우 복잡해, postman. javacc 같은 lexer(어휘 분석기)를 사용해 입력 언어를 만들고, 그 언어를 출력 형식으로 변환하는 앱을 만드는 건 가능하겠지 17:32 <@cervantes> 프로토콜에서 벗어나는 것들을 잡아내는 게 까다롭지 17:33 <+postman> 브레인스토밍을 촉발해 보려는 아이디어였어 17:33 <+postman> 내 생각엔 모델링된 필터/파서가 있는 범용 프록시는 꽤 쓸모 있을 것 같아 17:33 <wiht> eepsites.i2p에 접속해 본 사람이 있나요? 지난주 내내 몇 번 시도했는데, 매번 실패했어요. 17:33 <jrandom> wiht: 한 번 열어봤는데, eepsites.com이랑 같더라 17:34 <jrandom> (아니면 .net? .org였나? 까먹었다) 17:34 * wiht가 eepsites.com을 방문함 17:34 <jrandom> postman: 누가 진짜로 돌아가는 걸 만들어낼 수만 있다면, 끝내줄 거야 17:34 <+postman> jrandom: 좋아, susi랑 같이 좀 생각해 볼게 17:34 <jrandom> w3wt 17:34 <+postman> jrandom: 아마 다음 주에 내놓을게 17:35 <wiht> eepsites.com이 맞고, eepsite를 위한 검색 엔진이에요. 17:35 <+postman> 하지만 그게 작동하는 꿈을 꿨지 17:35 <+postman> :] 17:35 <jrandom> :) 17:36 * Complication은 프로토콜에서 벌어지는 모든 미묘함을 서술하려면... 코드가 필요하고, 코드 말고는 답이 없다고 의심함 17:36 <+Complication> (적어도 대부분의 프로토콜은) 17:36 <@cervantes> 아냐, 그냥 좀 사악한(evil) regex 몇 개면 돼 17:36 <+postman> Complication: 어쩌면 이 의심이 우리가 더 파고들지 못하게 막는 이유일지도 17:37 <+postman> Complication: 아직 확신은 없지만, 의심만으로는 내가 그 문제를 포기하진 않을 거야 17:37 <jrandom> 글쎄, 여기서 중요한 포인트는 dust가 우리에게 보여준 거야 — 17:37 * Complication은 그런 걸 해낼 수 있는 regex를 두려워함 17:37 <jrandom> 코드가 꼭 그렇게 무서운 건 아니야. 17:37 <+postman> 봤지? :) 17:37 <+postman> 좋은 필터 모델링 언어도 같은 일을 할 수 있어 17:38 <+postman> :) 17:38 <@cervantes> tcl? :) 17:38 <+Complication> 정말 좋아야겠지. 17:38 * jrandom은 postman, 너도 네 나름의 날아다니는 조랑말이 있음을 알아챔 ;) 17:38 * dust도 여기저기서 코드를 중복하는 게 못내 찜찜했음 17:38 <+postman> jrandom: 소는 아냐 :) 17:38 <jrandom> 작동하는 코드>>>이론적 코드 개선 17:39 <+postman> 음 17:40 <+postman> i2p에서 배운 한 가지 17:40 <wiht>>>> 는 “훨씬, 훨씬 더 낫다”는 뜻인가요? 17:40 <+postman> 첫인상만으로 포기하지 마 17:40 <jrandom> 그 말 맞아, postman 17:40 <jrandom> 그래, wiht 17:41 <jrandom> 정말 멋질 거야 17:41 <jrandom> 좋아, 회의에서 더 이야기할 거 있는 사람? 17:41 <+bar> 음, IMAP은 잘 작동해, postman? (포럼에서 읽긴 했는데, 아직 내가 직접 해보진 않았어) 17:41 <+postman> bar: 직접 해봐 — 사용자 리포트는 아직 없어 17:41 * cervantes가 조랑말 모양의 징을 굴려 들임 17:42 <+bar> 좋아, 그렇게 할게 :) 17:42 <+postman> bar: 그리고 내 환경에선 아주 잘 돼 :) 17:42 <jrandom> 좋네 17:42 <+bar> 멋져 17:42 <+postman> cervantes: 집착하네 17:42 <@cervantes> 나?! 17:42 <@cervantes> :) 17:43 <jrandom> 좋아, 90분 되기 전에 17:43 * jrandom이 예열함 17:43 * jrandom이 *baf* 하며 회의를 종료함