간단히 정리

참석자: ant, cervantes, DrWoo, jrandom, MANCOM, polecat, postman, protokol, smeghead

회의록

13:06 <jrandom> 0) 안녕 13:06 <jrandom> 1) 0.5 상태 13:06 <jrandom> 2) nntp 13:06 <jrandom> 3) 기술 제안 13:06 <jrandom> 4) ??? 13:06 <jrandom> 0) 안녕 13:06 * jrandom 손을 흔든다 13:06 <+postman> 안녕 jr 13:07 * postman 손을 흔든다 13:07 <jrandom> w3wt 밖에도 살아있는 사람이 있었네 :) 13:07 <jrandom> 주간 상태 노트가 http://i2p.net/pipermail/i2p/2005-February/000561.html 에 올라갔어 13:07 <ant> <dm> 손을 흔든다 13:08 <jrandom> 그 이메일 읽는 동안, 1) 0.5 상태부터 들어가자 13:08 <MANCOM> 안녕 13:09 <jrandom> 지난주에 진전이 많았어, 새 crypto는 모두 들어가서 테스트도 끝났고, 이제 router의 tunnel 동작은 전부 새 tunnel 풀을 통해 이뤄져 13:10 <jrandom> 업데이트하면서 router의 몇몇 부분은 잘라냈어, 예를 들어 클라이언트로부터 lease를 요청하는 연계나 주기적으로 tunnel을 테스트하는 부분 같은 거지, 그래도 그건 별로 어렵지 않을 거야 13:11 <jrandom> 그 코드는 라이브 net과 호환되지 않고, cvs의 별도 브랜치에 있어. 그래서 사람들은 계속 cvs HEAD를 받아서 최신으로 작업할 수 있어 13:12 <+polecat> Dook 방금 그 페이지를 봤는데, tunnel 탐지 공격을 막기 위해 mixmaster 스타일의 중복을 피하는 방법을 아직 이해 못하겠어. 13:12 <+protokol> 예이 13:12 <+polecat> 그래도 아주 잘 동작할 거라고 상상은 돼. :) 13:12 <+protokol> 다른 멋진 호환성-파괴 변경도 넣고 있어? 13:13 <+protokol> tunnel 풀은 threads랑 관련 있지? 13:13 <jrandom> polecat: 우리는 매 홉마다 검증하지는 않지만, 유용한 태깅을 막기 위해 고정된 메시지 크기를 쓰고(그리고 각 홉에서 전부 암호화돼) 13:14 <jrandom> protokol: http://www.i2p/todo#sessionTag 를 고려 중이야 13:14 <+polecat> 그럼 여러 홉이 가짜 메시지를 돌려서 DoS를 유발하는 건 어떻게 막아? 13:15 <jrandom> 하지만 아니, 풀 자체는 스레딩 이슈가 아니야. 풀은 우리가 tunnel을 안전하게 관리하게 해줘서 "Lease expired" 메시지를 안 보게 하고, 클라이언트별로 길이를 설정할 수 있게 해줄 뿐이야 13:15 <jrandom> polecat: 종단점에서 실패할 거고, 생성자가 그 실패를 감지해서 거기서 벗어날 거야 13:16 <+protokol> jrandom: 어려움과 무관하게, 익명성이 좋아지는 기능은 ASAP로 넣어야 한다고 생각해 13:16 <+polecat> w00t! 동기화된 PRNG! 그런 아이디어의 실제 적용은 처음 봐! 13:17 <ant> <dm> PRNG가 뭘 뜻하죠? 13:17 <ant> <dm> 물어봐도 될까요 :) 13:18 <jrandom> protokol: 동의, 그게 바로 0.5의 목적이지 :) i2p-layer에서 더 쉬운 건 없지만, app과 lib 레이어에서는 항상 개선할 수 있어 (예: i2ptunnel 필터링 등) 13:18 <jrandom> dm: PseudoRandom Number Generator(의사난수 생성기) 13:18 <ant> <dm> 좋네요, 고마워요 13:20 <+protokol> 그러니까 이번 다음엔 주로 속도와 신뢰성 튜닝이라는 거죠? 13:21 <+protokol> 그리고 왜 요즘 IRC가 별로죠 13:21 <jrandom> protokol: 코어와 router에 대해서는 2.0 이전까지는 그래 13:21 <+protokol> ducks 서버에 접속이 안 되네 13:21 <+protokol> 예이 13:21 * jrandom 몰라, 지난 하루쯤 사이에 대략 5번 정도 대량 연결 끊김이 있었어, 아마 서버 쪽 문제일지도 13:22 <jrandom> 고칠 건 많아, 특히 0.5 배포 이후 스트리밍 라이브러리에서 13:23 <+polecat> 그 UDP 전체 얘기. 13:24 <jrandom> 아, 스트리밍 라이브러리는 0.5에서 하는 변경 외에는 0.6 릴리스 때 변경이 필요 없을 거야 13:25 <jrandom> 좋아, 0.5 상태와 관련해서 내가 꺼낼 건 여기까지야 - 이와 관련해 다른 거 있어? 13:27 <jrandom> 없으면, 2) nntp로 넘어가자 13:27 <jrandom> nntp.fr.i2p 가 올라왔어, 한 번 확인해봐 :) 13:28 <jrandom> LonelyGuy는 지금 없는 것 같지만, http://fr.i2p/ 에서 연락할 수 있어. 내 블로그에 slrn 설정 지침도 있고, jdot이 thunderbird가 꽤 안전할 수 있다고 했어(하지만 jdot이 무슨 설정을 썼는지는 몰라) 13:30 <smeghead> LonelyGuy? :) 13:30 <cervantes> Pan도 테스트해 본 사람? 13:30 <jrandom> 가끔 여기 오긴 했어 13:30 <+polecat> 난 nntp에 너무 많은 시간을 쓰고 싶진 않아, 하지만 사용자 관리 접근 제어만 있으면 괜찮아. 13:30 <jrandom> (lonelyguy, pan 얘기가 아니고 ;) 13:30 <smeghead> 그의 이름이 LazyGuy인 줄 알았는데 13:31 <jrandom> LazyGuy였나? 13:31 <jrandom> 둘 다 있었던 걸로 아는데... 13:31 <jrandom> 맞아, lazyguy 13:31 * jrandom !자기 자신을 찌른다 13:31 <jrandom> cervantes: 아마 LazyGuy가 써 봤을 거야, 설정이나 결과는 몰라 13:32 <cervantes> LimeyGuy였던가? 13:33 * jrandom SnarkeyGuy의 코멘트를 기다린다 13:33 <smeghead> 그는 프랑스인이야 13:35 <jrandom> 좋아, 더 보탤 건 없고, 질문 없으면 3) 기술 제안으로 넘어가자 13:35 <cervantes> smeghead: 당신은 ParesseuxGuy를 말하는 거죠 13:36 <jrandom> orion이 다소 까다로운 이슈들에 대한 좋은 설명과 아이디어를 몇 가지 정리했어 1) 0.5 상태 13:36 <jrandom> 2) nntp 13:36 <jrandom> 3) 기술 제안 13:36 <jrandom> 으억 13:36 <jrandom> 젠장 ^C^V 13:36 <jrandom> http://ugha.i2p/I2pRfc 에 말이야 13:37 <jrandom> 그래서 다음에 죽이는 네이밍 아이디어가 있다고 토론하고 싶으면, http://ugha.i2p/I2pRfc/I2pRfc0001ResourceNameMetadata 로 가봐 13:39 <jrandom> 더할 말은 별로 없어. 위키니까, 위키질 시작해 :) 13:39 <+polecat> 좋네. 13:39 <+postman> jrandom: 오, 멋지네 몇 개 추가해야겠어 ... 13:40 <jrandom> 잘됐다 postman, 그럴 줄 알았어 :) 새로 작성하는 사람을 위한 템플릿이 있어 13:41 <+postman> jrandom: 조금만 시간 줘(중요한 것부터) 그래도 기여할게 :) 13:41 <jrandom> w3rd 13:41 <+polecat> ResourceNameMetadata, 만드는 건 비교적 사소해. 문제는 다른 사람들로부터 그걸 어떻게 /get/ 하느냐지. 13:42 <jrandom> polecat: postman이 말했듯이, 중요한 것부터. 13:42 <+polecat> 근데 내가 해법을 갖고 있었다면, 벌써 위키질하고 있겠지. :) 13:42 <jrandom> 헤헷 13:42 <jrandom> /what/을 배포할지 결정하기 전에 /how/를 배포할지에 대한 트레이드오프 논의는 아직 이를 때야 13:43 <jrandom> 그래도 여지가 많으니, 완전히 다듬어지지 않은 아이디어라도 누구든 자유롭게 올려도 좋아 (물론 구현까지 된 완전한 것도 멋지겠지만 ;) 13:44 <jrandom> 좋아, 그 얘기에 더 없으면, 친숙한 4) ??? 로 넘어가볼까 13:44 <jrandom> 다른 이슈 꺼낼 사람? 13:45 <jrandom> smeghead: gcj 이슈를 풀기 위해 사람들이 도울 수 있는 일이 있어? 아니면 그들의 prng에서 막힌 거야? 13:46 <+polecat> 배포할 건 그냥 서명된 dict야. 그게 전부. 13:46 <+polecat> 응 아마 좋은 생각. 13:46 <+polecat> 난 아직 i2p bt 클라이언트의 스켈레톤 작업 중인데, 어느 단계에서든 조언 환영이야. 13:46 <smeghead> 해법을 찾은 것 같아 13:46 <smeghead> gnu crypto에 fortuna 구현이 있어. 지난여름부터 13:46 <jrandom> 좋다 polecat 13:46 <jrandom> 오 멋져 smeghead 13:46 <+polecat> smeghead: 히, 그 $150는 네 거나 다름없지. 13:47 <smeghead> Fortuna에 필요한 클래스만 담은 gnu-crypto.jar를 뚝딱 만들 수 있어 13:47 <+polecat> 지금까지의 작업 노트는 http://polecat.i2p/bittorrent.plan.doc 에 있어 13:47 <smeghead> 전체 gnu-crypto.jar를 배포하면 약 500 KB라서, 너무 커 13:47 <+polecat> .doc 확장자에 쫄지 마, text/plain이야. 13:48 <+polecat> Fortuna가 랜덤을 위해 SecureRandom을 쓰지 않나? 13:48 <jrandom> 요와, 맞아 500KB는 좀 과한데, http://www.gnu.org/software/gnu-crypto/ 을 보니, (우리가 수정하는 게 아니라 링크만 하므로) 안전하게 통합할 수 있을 것 같아 13:48 <smeghead> SecureRandom은 애초에 문제가 아니었어 13:48 <jrandom> polecat: fortuna가 SecureRandom을 /feed/ 해 :) 13:49 <smeghead> jrandom: 커스텀 .jar를 만드는 건 쉬워, 대략 50KB 정도일 듯 13:49 <smeghead> (대충 어림잡아) 13:49 <smeghead> 원한다면 on-demand로 커스텀 패키징하는 ant 빌드도 만들 수 있어 13:50 <jrandom> smeghead: i2p/apps/fortuna/ 밑에 넣어볼래? 13:50 <smeghead> 그럴게 13:50 <jrandom> 끝내준다! 13:51 <smeghead> 그 다음엔, gcj가 마침내 난수를 뿜어내기 시작한다고 가정하면, 아마 i2p 기능 전반에 대한 더 많은 테스트가 필요할 거야 13:51 <+polecat> 라이선스는 뭐야? 13:51 <jrandom> 그러면 net.i2p.util.RandomSource에서 SecureRandom 또는 fortuna(발견되면 등)를 쓰도록 약간의 voodo를 넣을 수 있지 13:51 <smeghead> lgpl 13:51 <+polecat> 굿. 13:51 <smeghead> 사실 SecureRandom은 불필요하겠지 13:52 <jrandom> 그래, 아직 gcj로 빌드되게 하려면 할 일이 많지만 좋은 출발이야 13:52 <jrandom> 라이브 net에서 내가 한 프로파일링에 따르면, PRNG reseeding이 CPU 로드의 상당 부분을 차지하더라 13:52 <smeghead> 누가 테스트 작성에 관심 있다면 13:52 <smeghead> 하지만 그 문장은 끝까지 안 해도 알겠지 13:52 <jrandom> ㅋㅋ 13:53 <smeghead> 이 구현에 대해 gnu crypto 메인테이너에게 물어볼게, 구글링과 메일링 리스트 아카이브를 뒤져봐도 관련 얘기가 하나도 없더라 13:54 <smeghead> 그리고 그들의 cvs 커밋 로그도 별로 도움이 안 돼 13:54 <jrandom> 오케이 좋은 생각 13:54 <smeghead> 잘 작동하길 13:54 <smeghead> 참고로 kaffe cvs에 있어 13:54 <smeghead> 네 버전에도 있을 걸 13:55 <jrandom> 흠, 아, 그래 gnu-crypto import에서 13:55 <smeghead> gnu.security.prng.Fortuna 13:55 <jrandom> 'kaffe' provider는 아직 그들의 옛 sha1prng를 쓰고 있어 iirc 13:55 <jrandom> 멋져 13:56 <MANCOM> .net용 sam 관련 건 상태가 어때? 지금 시작해도 돼, 아니면 큰 변경이 예상돼? 13:56 <smeghead> MANCOM: 테스트가 필요해, 곧 그걸 위한 유닛 테스트를 쓸 예정이야 13:56 <smeghead> 이 gcj 건이 그걸 좀 홀드해놨어 13:57 <smeghead> MANCOM: API 변경은 전혀 없을 거라 예상하니까, 그걸 기준으로 코딩해도 안전할 거야 13:58 <smeghead> API 뒤쪽의 변경은 있을 수 있지만, 클라이언트인 너는 몰라도 돼 :) 13:59 <MANCOM> :) 13:59 <jrandom> 대용량 벌크 전송 앱을 만든다면 나중에 관련 업데이트가 좀 있을 수도 있어 14:00 <jrandom> 하지만 한 번에 수십 KB 정도만 전송한다면 괜찮을 거야 14:00 <smeghead> 좋아, Java 클라이언트의 API가 바뀐다면 sam-sharp의 것도 바뀌겠지 :) 14:01 <MANCOM> 그건 부인 못하지 14:02 <jrandom> 좋아, 회의에서 더 꺼낼 게 있는 사람? 14:02 * cervantes 채널에 빅 벤을 내려놓는다 14:03 <+DrWoo> 참고: 잘했어 jrandom 14:03 <smeghead> 말장난 좋네 cervantes 14:03 * jrandom 신음한다 14:04 <MANCOM> 0.5 이전에는 i2p를 너무 홍보하길 원치 않는다고 읽었는데, 사실이야? 14:04 <jrandom> MANCOM: 0.6 이전. 맞아 14:04 <jrandom> MANCOM: 0.5는 익명성을 개선하고 사용자가 성능을 더 잘 제어하도록 도와줄 거야. 0.6은 수천 명 이상의 동시 사용자가 안전하게 운영할 수 있게 할 거고 14:04 <MANCOM> 아. 0.6. 알겠어. 14:05 <jrandom> gracias doc, 진전이 많았어 :) 14:05 <+polecat> 위이, 0.6이 기대되네... 14:05 <+DrWoo> :) 14:06 <jrandom> 동감이야 polecat, 동감 :) 14:06 * jrandom 준비한다 14:06 * jrandom *baf*s 회의를 종료한다