간단 요약
참석자: cat-a-puss, cervantes, Connelly, deer, duck, jrandom, mihi, modulus
회의 기록
14:05 <jrandom> 0) 안녕하세요 14:05 <jrandom> 1) 0.3.2.3, 0.3.3, 그리고 로드맵 14:05 <jrandom> 2) s/reliability/capacity/g 14:05 <jrandom> 3) 웹사이트 업데이트 14:05 <jrandom> 4) 공격과 방어 14:05 <jrandom> 5) ??? 14:05 <jrandom> 0) 안녕하세요 14:05 * jrandom 손을 흔든다 14:05 <jrandom> 주간 상태 노트 올라왔습니다 @ http://dev.i2p.net/pipermail/i2p/2004-July/000358.html 14:06 <jrandom> 바로 1) 0.3.2.3, 0.3.3, 그리고 로드맵 으로 들어갑시다 14:07 <jrandom> (여러분은 먼저 읽고 계시겠죠 ;) 14:07 <jrandom> 0.3.2.3 릴리스가 나갔고 잘 동작하는 것 같습니다 14:07 <jrandom> 여러분이 겪는 주요 불편점은 무엇인가요? 14:08 <deer> <Nightblade> 전혀 문제 없어요 14:08 <deer> <duck> 문제 없이 4일 연속 가동 중 14:08 <jrandom> 흠, 그렇군요 14:08 <deer> <duck> 어떤 분들에겐 IRC가 그렇게 안정적이지 않은 듯해요 14:08 <deer> <duck> 예를 들어 kaji가 거의 매분 킥당하는 것처럼요 14:08 <deer> <duck> 근데 그건 새롭지도 않죠 14:09 <jrandom> 그래요, 그건 freenode 네트워크에서도 그에게 일어나는 일이라서, 뭘 탓해야 할지 모르겠네요 14:09 <deer> <duck> 맞아요 14:09 <deer> <duck> connelly는 다운로드가 좀 안 좋았다고 하더군요 14:10 <deer> <duck> 그래도 제가 불평하는 건 못 들으셨죠 14:10 <jrandom> 아 정말요? 흠, 그중 일부는 그의 라이브러리와 관련된 걸로 밝혀졌던 것 같지만, 저도 큰 파일 전송에서 가끔 실패를 겪었습니다 14:10 <jrandom> 특히 alexandria에서 책을 받으면서 14:10 <jrandom> (음, 특히 그런 건 아니고, 제가 받는 곳이 그 사이트뿐이라서요) 14:11 <deer> <duck> :) 14:11 <jrandom> 좋아요, 제 계획은 0.3.3 릴리스가 나오면 제 시간을 0.4로 끌어올리는 데 집중하고, 사람들이 제기하는 버그 수정도 병행하는 것입니다 14:12 <jrandom> 남아 있는 0.4 작업은 대체로 간단한 웹 작업입니다 (새로운 router 콘솔/servlet, Jetty 통합, router를 제어하는 servlet, 그리고 i2ptunnel 인스턴스를 설정하는 servlet) 14:13 <jrandom> 아마 JSP/servlet 쪽에 익숙한 분들이 코드에 발 담글 겸 일부를 도와주실 수도 있을 겁니다. 저도 그런 작업을 많이 해봤기 때문에 구현 자체는 그리 어렵지 않을 거예요 14:13 <jrandom> 제가 알기로 hypercubus의 인스톨러는 거의 준비 완료입니다 14:13 <jrandom> (오늘 그에게 새 작업을 좀 던지긴 했지만 ;) 14:13 <deer> <duck> featurecreep++ 14:14 <jrandom> 사람들을 긴장하게 만들죠 :) 14:14 <jrandom> (근데 있잖아요, 업그레이드할 때 JAR들을 하나하나 따로 받는 건 다들 싫어하잖아요) 14:14 <deer> <duck> 네, 그게 업그레이드의 가장 큰 불편이죠 14:14 <deer> <duck> (제가 CVS를 쓰긴 하지만) 14:14 <deer> <duck> 안 썼다면 그랬을 거예요 14:15 <jrandom> 헤헷 14:15 <mihi> jrandom: 전부 tar로 묶으면 -> 다운로드 한 번이면 되죠 ;) 14:15 <jrandom> 그것도 충분히 간단하죠, 그리고 updgrade.sh/upgrade.bat == jar xf upgrade.jar 로 두면 되고 14:16 <jrandom> (wget 비슷한 호출 이후에) 14:16 <jrandom> 음, hypercubus가 그 모든 걸 처리하는 코드를 잘 잡고 있는 것 같으니, 올바르게 해줄 거라고 믿고 맡겨도 되겠어요 14:17 <jrandom> 아무튼, 다들 눈치채셨겠지만 우리의 일정은 예전 같지 않습니다 14:17 <jrandom> 로드맵이 업데이트되었고 길~~게 늘어났습니다 14:18 <mihi> jjrraannddoomm:: cchheecckk yyoouurr dduupplleexx sswwiittcchh 14:18 <deer> <Nightblade> hah 14:18 <jrandom> 헤헷 14:18 * mihi가 실수했는데... 누가 먼저 찾죠? 14:19 <jrandom> (\n\n) 14:19 <jrandom> 어쨌든 14:19 <mihi> 좋아요, 하나 더 ;) 14:19 <duck> (이중 공백 없음) 14:19 <mihi> duck++ 14:20 <jrandom> 이제 적어도 1.0 릴리스까지의 로드맵은 꽤 현실적이라고 봅니다. 다만 사용자 확산과 피드백에 따라 0.4.2 또는 0.4.3 중 하나를 순서 변경하거나 제외할 수도 있어요 14:20 <jrandom> (그리고 물론, 더 많은 사람이 참여하면 로드맵은 언제든 바뀔 수 있죠 :) 14:21 <modulus> 언젠가는요, Java를 배우고 나서요. 하지만 i2p는 초보가 할 프로젝트 같진 않네요. 14:21 <deer> <Sandworm> 네, 더 오래 걸릴 거예요 :) 14:21 <deer> * duck은 앞으로도 일정 지연이 좀 더 있을 거라 예상함 14:21 <modulus> :-) 14:22 <deer> * duck은 그걸 겨우 '지연'이라고 부르기도 어렵다고 생각함, http://www.i2p.net/redesign/announcements 의 인상적인 표를 보세요 14:22 <jrandom> 지연은 물론 있을 수 있지만, 남은 마일스톤들은 꽤 해낼 만하다고 봅니다 14:22 <jrandom> 그래요, 내가 삶이 없다는 걸 보여줘서 고마워요, duck ;) 14:22 <deer> <duck> 이게 바로 당신의 삶이죠 14:22 <modulus> 그럼 1.0은 언제 나오나요? :-) 14:22 <deer> <duck> 그걸 자랑스러워하세요 14:23 <jrandom> modulus: i2p의 일부는 꽤 어렵지만, 새 개발자도 비교적 쉽게 다룰 수 있는 부분이 많아요 14:23 <modulus> 아마 좀 지루한 부분들이겠죠, 그렇죠? 14:24 <jrandom> 아뇨, 전혀요. 예를 들어 깔끔한 익명 파일 전송이나 채팅 앱, 미니 웹서버, MUD, 체스 앱 등등을 뚝딱 만들 수 있어요 14:24 <duck> (웹사이트 업데이트) 14:24 <modulus> 흠, 멋진데요. 14:24 <jrandom> (즉, 익명으로 동작할 수 있는 간단한 클라이언트 앱들) 14:24 <jrandom> 그리고 물론 웹 업데이트도 있죠 ;) 14:25 <modulus> 웹 업데이트가 뭔 얘기죠? 14:25 <jrandom> 우리 웹사이트에 손볼 게 많아요 (http://dev.i2p.net/pipermail/i2p/2004-July/000358.html 을 보시거나 몇 분만 기다리면 안건 3에서 다룹니다) 14:25 <cat-a-puss> myi2p는 그 모든 것에서 어디에 들어가나요? 14:25 <modulus> 아하 14:26 <jrandom> cat-a-puss: http://www.i2p.net/redesign/myi2p :) 14:26 <modulus> 제 생각엔 myi2p는 지금 우선순위가 아닌 듯... 14:26 <jrandom> (몇 시간 전에 그에 대해 간단한 페이지를 썼어요) 14:27 <jrandom> 덧붙여, 웹사이트 업데이트는 모두 i2pwww 메일링 리스트에 올립니다 (http://dev.i2p.net/pipermail/i2pwww/2004-July/thread.html) 14:28 <modulus> 흠, 전역 네이밍 ap를 쓸 수도 있겠네요 :-) 14:28 <jrandom> 하지만 제 생각엔 myi2p 구현(최소한 기본 주소록과 블로깅)은 1.0 릴리스에 들어갈 겁니다 14:28 <jrandom> (로드맵에 따르면 11월 예정) 14:28 <jrandom> 네, 분명히 가능하죠 14:28 <modulus> DNS보다 단순하면서 인증과 TLD 위임이 있는 무언가요 14:28 <jrandom> 그것도 나쁘지 않아요 - 중앙 이름 서버를 질의하는 간단한 앱이 있으면 좋겠죠 14:29 <modulus> 네 14:29 <jrandom> 그러니 코딩 시작해요 :) 14:29 <modulus> 내일 시작할게요. 딴짓하고 있으면 혼내주세요 ;-) 14:29 <jrandom> ㅎㅎ 좋아요, 그럴게요 14:29 <jrandom> 좋아요, 2) s/reliability/capacity/g 로 넘어가죠 14:29 <duck> 사이트에 대한 작은 질문: 14:29 <duck> 아 잠깐만요 14:29 <duck> 그건 3번이네요 14:29 <duck> 미안 14:29 <jrandom> 그래요, 무슨 일이죠? 14:30 <jrandom> 아, 오케이 14:30 <jrandom> 이메일과 http://www.i2p.net/redesign/how_peerselection 에 설명된 대로, 0.3.3 릴리스에서는 피어 프로파일링과 선택 코드에 꽤 근본적인 변화가 있을 예정입니다 14:31 <jrandom> 현재 router 두 대에서 돌려보고 있는데 꽤 안정적으로 동작하는 것 같습니다 (Speed: 25.18 (빠른 피어 5개) Capacity: 17.50 (용량 높은 피어 8개) Integration: 37.00 (잘 통합된 피어 2개)) 14:31 <jrandom> 그리고 이제 음수 값은 없습니다 :) 14:31 <modulus> :) 14:32 <jrandom> 하루이틀 정도 더 두들겨 본 다음 0.3.3으로 내보낼 생각입니다 14:32 <cat-a-puss> d 14:32 <cat-a-puss> <modulus> 14:32 <cat-a-puss> 이런 14:33 <duck> CVS 업데이트는 하지 말라는 건가요? 14:33 <cat-a-puss> DNS를 하려면 http://www.levien.com/thesis/compact.pdf 의 캐시를 보세요 14:33 <jrandom> 아니요, CVS는 지금 꽤 안정적입니다 14:33 <jrandom> (하지만 언제나 그렇듯, 문제가 생기면 되돌릴 준비는 해두세요) 14:35 <jrandom> 멋져 보이네요 cat-a-puss, 감사합니다 14:35 <cat-a-puss> (원본을 원하시는 분이 있으면 제게 사본이 있어요) 14:36 <jrandom> Google 캐시가 이미지를 좀 망가뜨려서요, 원본 PDF가 있다면 좋겠습니다 14:36 <jrandom> 아무튼 지금은 살짝 주제에서 벗어났네요 (나중에 다시 이야기할 수 있어요) 14:37 <jrandom> reliability/capacity 전환에 대한 이야기는 이 정도로 하고, 3) 웹사이트 업데이트로 넘어가죠 14:37 <jrandom> duck: 말씀하실 게 있었죠? 14:38 <jrandom> duck이 메모를 준비하는 동안, 이메일에 올라온 항목들에 대해 아이디어/제안/우려 사항 있으신가요? 14:39 <deer> <Nightblade> 웹사이트가 좋아 보입니다 14:39 <jrandom> 네, 새로운 내비게이션이 마음에 들고 사이트 레이아웃도 꽤 깔끔해요 14:40 <deer> <Nightblade> 찾기가 더 쉬워졌어요 14:40 <cervantes> _훨씬_ 찾기 쉬워졌어요 14:40 <duck> 먼저, 우리 user advocate protocol이 쓸모 있게 되어 고맙다고 말하고 싶어요 :) 14:40 <jrandom> 헤헷 14:40 <duck> 그가 몇 가지 좋은 제안을 했고 이제 막 시작했거든요 14:40 <cervantes> 힙힙 만세! 14:40 <jrandom> (그 말에 동의!) 14:41 <duck> 다음으로, 리디자인을 실제로 올리지 않을 이유가 거의 없다고 생각해요 14:42 <jrandom> 동의합니다 - 아마 news/development/documentation을 페이지 내비게이션 항목이 아닌 것으로 표시하고, 당장은 JVM과 설정 튜닝 부분은 빼두고, I2PTunnel 페이지에 기본 콘텐츠만 채우면 배포할 수 있을 거예요 14:42 <jrandom> 저는 모든 링크가 작동하고 (작동하지 않는 페이지가 없게) 라이브로 올리길 원합니다 14:43 <jrandom> 물론 라이브로 올린 뒤에도 추가 업데이트가 있을 겁니다 ;) 14:43 <jrandom> 에, live 14:44 <jrandom> 참고로, wilde가 우리의 34sp 계정도 연결했으니, 필요할 때 그쪽으로 사이트를 이전할 수 있을 겁니다 14:44 <cervantes> 쿨하네요 14:44 <jrandom> 어때요 duck? menu.php 그거로 페이지가 아닌 내비게이션 항목도 처리할 수 있나요? 14:44 * cervantes는 추천 포인트를 받으려고 받은편지함을 확인함 14:45 <jrandom> (아니면 그걸 넣으려면 너무 손이 많이 가나요?) 14:45 <jrandom> ㅎㅎ cervantes, 곧 갈 거예요 14:45 <cervantes> ;-) 14:45 <cervantes> 아, 오래된 "수표는 발송했습니다" 전략이군요 14:47 <duck> 미안; 그 사이에 다른 일을 좀 하고 있었어요. 14:47 <duck> 좋아요; 내비게이션 섹션 제목만으로 만드는 것도 가능합니다 14:47 <jrandom> 괜찮아요, 원하시면 넘어갔다가 나중에 다시 돌아와도 돼요 14:47 <jrandom> 좋아요, 멋져요 14:47 <jrandom> (duck++) 14:48 <jrandom> 좋아요, 웹사이트 관련해서 다른 거 있나요? 14:48 <duck> 당신 제안대로면 올릴 준비가 된 것 같네요. 14:48 <jrandom> 그렇지 않으면, 4) 공격과 방어로 넘어가죠 14:48 <duck> . 14:48 <jrandom> 좋습니다 14:49 <jrandom> 좋아요, 다들 메일링 리스트를 읽고 connelly의 글과 다양한 답글을 보셨다고 가정할게요 14:50 <cervantes> 그가 바빴죠 :) 14:50 <cervantes> (거의 proto만큼이나) 14:50 <Connelly> 제 생각엔, 트래픽 분석(트래픽이 많은 사이트), 정부의 연결 차단 공격, 그리고 네트워크의 대다수를 장악한 공격자를 제외하면, 네트워크는 견고해 보입니다 14:50 <jrandom> 우리가 꽤 괜찮은 상태라고 생각하지만, 놓친 것이 (여러 개) 틀림없이 있을 겁니다. 그러니 i2p가 말하는 대로 하고 있거나 할 거라고 가정하지 말고, 가정을 흔들고 왜 형편없는지 말해 주세요 14:50 <Connelly> 암호화는 비공격적인 대부분의 공격을 사실상 무력화합니다 14:51 <jrandom> 그게 바라는 바죠 14:51 <jrandom> 게다가 i2p 2.0과 3.0의 역량으로, 정부급 적대자들의 공격에 대한 방어도 가능해질 겁니다 14:51 <Connelly> 물론 실제로는 패치해야 할 보안 구멍들이 있을 거예요 14:52 * jrandom은 3.0의 지연이 세그멘테이션 공격을 어떻게 막는지에 대한 문서를 아직 작성해야 합니다 14:52 <jrandom> 그럼요, connelly 14:54 <jrandom> 좋아요, 그 쪽 이야기가 더 없다면, 제가 준비한 건 여기까지입니다 14:54 <jrandom> 그럼 5) ??? 14:55 <jrandom> 아, 덧붙여, 시뮬레이션 중 하나에서 4일 동안 bandwidth 사용량과 참여한 tunnel 개수의 관계를 그래프로 그려봤습니다 14:55 <jrandom> 여기에 올려두었습니다 @ http://dev.i2p.net/~jrandom/4daybandwidth.webp 14:56 <jrandom> 그 시뮬레이션은 30초마다 32KB 메시지를 주고받았고, 두 개의 router를 6KBps로 병목시켰으며, 모든 게 정확히 ‘그렇게’ 동작했습니다 14:56 <duck> (사이트에 nolink 속성 구현됨) 14:56 <jrandom> (예: 빠르고 신뢰할 수 있는 피어에 부하가 분산되고, 느린 피어는 회피되는 등) 14:56 <jrandom> w00t 14:56 <Connelly> 사용자당 대역폭 대 네트워크 크기의 로그 플롯이 있으면 좋겠네요 14:57 <Connelly> 그래야 '그래, 이건 정말 스케일돼'라고 말할 수 있으니까요 14:58 <jrandom> 그건 로그 플롯조차 필요 없어요 - 클라이언트 통신의 확장성은 엄밀히 O(1)입니다 [필요량은 2k*msgSize, 여기서 k = tunnel의 홉 수] 14:58 <jrandom> 하지만 네, 동의합니다. i2p가 어떻게 스케일하는지 설명하는 문서가 필요해요 14:58 <Connelly> 그럼 Kademlia는... 그 시뮬레이션에 포함돼 있나요? 14:58 <jrandom> 네, 그 시뮬레이션은 실제로 완전한 router 코드이며, 전부 단일 JVM에서 실행됩니다 14:58 <jrandom> VM 통신 시스템 대신 전체 TCP 연결로도 실행하고 있어요 14:59 <jrandom> Kademlia 코드는 Alice가 처음 Bob과 연락하려 할 때 사용됩니다 - 대화를 계속하는 한, payload와 함께 자신의 LeaseSet을 번들링하므로 통신은 O(1)입니다 14:59 <jrandom> (그래서 이후 netDb 조회가 필요 없습니다) 15:00 <cervantes> vl07과 onb0가 병목 걸린 router인가요? 15:00 <jrandom> 하지만 네, netDb 자체가 어떻게 스케일하는지 보여주는 시뮬레이션이 필요해요 15:01 <jrandom> cevantes: 0jvf and onb0 15:01 <cervantes> 하루 가동 후 vl07의 급락은 무엇 때문이죠? 15:02 <cervantes> 00u0와 교차하는 것처럼 보이네요 15:02 <jrandom> 병목이 없는 router들은 본질적으로 동일합니다 - 모두 같은 CPU에서 돌고 지연도 동일(0ms)이므로, 어떤 것을 '빠름' 또는 '신뢰할 수 있음'으로 배정하는 건 그냥 임의적이에요 15:04 <Connelly> ‘빠르고 신뢰할 수 있음’, ‘느림’ 같은 지정 값이 매우 큰 값에서 복구되나요? 15:04 <jrandom> 왜 하루가 지난 뒤 순위/사용량이 줄었나요? 잘 모르겠어요. 테스트 중 일시적인 CPU나 I/O 오버헤드로 속도가 조금 떨어졌을 수도 있습니다 15:04 <jrandom> 네, 지금은 평균이 아니라 중앙값을 사용하고, 데이터에는 꽤 빠른 감쇠가 적용됩니다 15:05 <jrandom> s/fiarly/fairly/ 15:05 <Connelly> 그러면 제가 제 reliability를 1000000000이라고 믿게 만든 뒤 메시지를 떨어뜨리기 시작해도, 복구할 수 있다는 건가요 15:06 <jrandom> 그렇습니다 - 당신이 '실패'하면 즉시 당신에게 일을 맡기지 않고 순위를 낮춥니다 15:06 <jrandom> 새로운 'capacity' 계산은 그런 종류의 변화에 꽤 민감합니다 15:06 <jrandom> (속도도 속이기 어렵습니다. 모든 속도 순위는 실제 측정값이니까요) 15:07 <jrandom> ((reliability도 그랬고, capacity 계산도 마찬가지)) 15:09 <jrandom> 좋아요, 다른 이야기하실 분 있나요? 15:10 <deer> * jrandomi2p가 *baf*er를 제안함 15:11 * jrandom 동의함 15:11 * jrandom 준비함 15:11 * jrandom 회의를 *baf*로 마감함