간단 요약

참석자: jrand0m, nop, MrEcho, dm, dish, mihi

회의 로그

[22:02] <jrand0m> 아젠다 [22:02] <jrand0m> 0) 환영 [22:02] <jrand0m> 1) i2p router [22:02] <jrand0m> 1.1) 상태 [22:02] <jrand0m> 1.2) 로드맵 변경 [22:02] <jrand0m> 1.3) 열린 하위 프로젝트 [22:02] <jrand0m> 2) 네이티브 modPow [22:03] <jrand0m> 2) GUI 설치 프로그램 [22:03] <jrand0m> 3) IM [22:03] <jrand0m> 4) 네이밍 서비스 [22:03] <jrand0m> 5) 라이선싱 [22:03] <jrand0m> 6) 기타? [22:03] <jrand0m> 0) 환영 [22:03] <jrand0m> 안녕하세요. [22:03] <nop> 안녕 [22:03] <jrand0m> 회의 2^6 [22:04] <jrand0m> nop, 추가할 아젠다 항목 있어? [22:04] <jrand0m> 좋아, 1.1) router 상태 [22:04] <jrand0m> 우리는 0.2.0.3이고, 내가 마지막으로 들은 바로는 동작해 [22:04] <MrEcho> > 0.2.0.3 [22:04] <MrEcho> 맞지? [22:05] <MrEcho> 지금 돌리고 있어요 .. 괜찮아 보입니다 [22:05] <nop> 아니 [22:05] <jrand0m> 0.2.0.3 릴리스 이후에 사소한 커밋들이 있었지만, 별도로 릴리스할 정도는 아냐 [22:05] <nop> 나 그냥 따라잡으려고 하는 중이야 [22:05] <jrand0m> 좋아 [22:06] <jrand0m> 0.2.0.x에서의 경험과 피드백을 바탕으로, 실행 시 자원 소모를 줄이도록 로드맵을 업데이트했어 [22:06] <jrand0m> (즉 사람들이 웹서버/기타를 돌려도 CPU를 잡아먹지 않도록) [22:06] <jrand0m> 구체적으로(아젠다 1.2로 이동): http://wiki.invisiblenet.net/iip-wiki?I2PRoadmap [22:07] <MrEcho> 내가 보니 대부분 router가 사용하는 게: TransportStyle: PHTTP [22:07] <MrEcho> 자동으로 PHTTP로 가는 건가요, 아니면 먼저 TCP를 시도하나요 [22:07] <jrand0m> 흠, 대부분의 router는 PHTTP를 지원해야 하고, 인바운드 연결을 받을 수 있다면 TCP도 지원해야 해 [22:07] <jrand0m> 가능하기만 하면 TCP를 사용해 [22:07] <jrand0m> PHTTP는 TCP보다 대략 1000배 비용이 비싸게 가중치가 주어져 있어 [22:08] <jrand0m> (각 transport에게 피어에게 메시지를 보내는 데 비용이 얼마나 들지 묻는 GetBidsJob을 참고) [22:08] <jrand0m> (그리고 쓰이는 값을 보려면 TCPTransport.getBid와 PHTTPTransport.getBid를 봐) [22:08] <MrEcho> 오케이 [22:08] <jrand0m> 메시지를 주고받을 때 PHTTP를 자주 쓰고 있어? [22:09] <jrand0m> (그건 당신의 TCP 리스너에 도달할 수 없다는 신호일 수 있어) [22:09] <MrEcho> 내 쪽에 URL들을 넣지 않았어요 [22:09] <jrand0m> 아 오키. [22:09] <MrEcho> 오, 그렇군요 [22:10] <jrand0m> 좋아, 네, 내 router들이 당신에게 TCP 연결을 열어두고 있어 [22:10] <dm> 참 친절하네. [22:11] <jrand0m> 하지만 여러분이 routerConsole.html 구현하게 해줘서 다행이야, 이런 것 때문에 로그를 뒤질 필요가 없으니까 [22:11] <MrEcho> TCP로 연결이 안 되면 PHTTP로 가는 타임아웃 같은 게 있나요? 그리고 타이밍은 어느 정도죠 [22:11] <jrand0m> TCP 연결 거부/호스트 없음 등 을 받으면 그 시도는 즉시 실패 처리하고, 다음 사용 가능한 bid를 시도해 [22:12] <MrEcho> 그럼 재시도는 없나요 [22:12] <jrand0m> 내 기억이 맞다면 PHTTP는 30초 타임아웃이 있어 [22:12] <jrand0m> 재시도할 필요 없어. TCP 연결이 열려 있어서 데이터를 보낼 수 있거나, 아니면 없는 거지 :) [22:13] <MrEcho> ㅋㅋ 오케이 [22:13] <MrEcho> 그 다음부터도 매번 TCP를 시도하나요, 아니면 건너뛰고 다음 연결에 대해 그냥 PHTTP로 가나요? [22:13] <jrand0m> 현재는 매번 TCP를 시도해. [22:13] <jrand0m> transport들이 아직 히스토리를 보관하지 않거든 [22:13] <MrEcho> 좋아요, 멋져요 [22:14] <jrand0m> (하지만 어떤 피어가 4번 실패하면 8분간 블랙리스트에 올라가) [22:14] <MrEcho> 음, 상대쪽이 PHTTP 메시지를 받으면 메시지를 보낸 router에 TCP로 연결해야 하죠? [22:14] <jrand0m> 맞아. 어떤 TCP 연결이든 하나 성립되면 그걸 쓸 수 있어. [22:14] <jrand0m> (하지만 양쪽 피어가 PHTTP만 있다면 당연히 PHTTP만 사용하겠지) [22:15] <MrEcho> 그건 어떤 것에도 TCP 연결을 확립할 수 없다는 뜻이겠네요 [22:15] <MrEcho> .. 네 [22:16] <MrEcho> 그걸 우회할 방법이 있으면 좋겠네요 [22:16] <jrand0m> 아니, 제 router 중 하나는 TCP 주소가 없고 PHTTP만 있어. 하지만 TCP 주소가 있는 피어들과는 내가 TCP 연결을 성립해. [22:16] <jrand0m> (그러면 그들이 느린 PHTTP 메시지 대신 그 TCP 연결을 통해 되돌려 보낼 수 있어) [22:17] <jrand0m> 아니면 그 얘기가 아니었나? [22:17] <MrEcho> 네, 제가 헷갈렸어요 [22:17] <jrand0m> ㅇㅋ, 문제없어 [22:18] <jrand0m> 그래서, 일정 업데이트는 갱신된 로드맵을 참고하세요 (http://wiki.invisiblenet.net/iip-wiki?I2PRoadmap) [22:18] <jrand0m> 좋아, 1.3) 열린 하위 프로젝트 [22:19] <jrand0m> 드디어 내 palmpilot에 있던 할 일 목록을 위키에 한꺼번에 올렸어 http://wiki.invisiblenet.net/iip-wiki?OpenSubprojects [22:19] <jrand0m> 그러니 심심하고 코딩할 프로젝트를 찾는다면... :) [22:20] <MrEcho> 헐 [22:20] <MrEcho> 벌써 2개 있어요 [22:20] <dish> palmpilot을 갖고 있다니 엘리트네요 [22:20] <MrEcho> 제 건 죽었어요 [22:20] <jrand0m> mihi> 거기 I2PTunnel 관련해서 내가 얼마 전에 했던 생각을 적어둔 항목이 하나 있어요 [22:21] <MrEcho> 무슨 문제가 있는지 모르겠어요 [22:21] <jrand0m> 네, 예전에 Palm을 썼는데, 최근에 이 목적을 위해 하나 기부받았어요 ;) [22:21] <dish> 회의 아젠다에 userX가 마지막으로 발언한 때가 언제였는지 논의하는 항목을 넣을 수 있을까요 [22:21] <MrEcho> 망할 놈, 이젠 켜지지도 않아요 [22:21] <MrEcho> ㅋㅋ [22:22] <jrand0m> UserX는 4~5개월 동안 아무 말도 안 한 것 같아 ;) [22:22] <MrEcho> 그거 봇 같은 건가요? [22:22] <dish> 5개월 전에 뭐라고 했죠? [22:22] <MrEcho> 아마 예전에 접속하던 박스에서 돌아가는 bitchx일 걸요 .. 그리고 잊어버린 듯 [22:22] <jrand0m> 다음 주에 anonCommFramework(i2p의 옛 이름)에 대한 코멘트를 주겠다고 했지 ;) [22:23] <dish> 하하 [22:23] <jrand0m> 하지만 바쁜가 보지. 그런 게 인생이야 [22:23] <jrand0m> 좋아, 2) 네이티브 modPow [22:24] <MrEcho> 그 C 코드를 봤어요 [22:24] <jrand0m> GMP나 다른 MPI 라이브러리를 어떻게 통합할 수 있는지 보여주려고 스텁 .c와 Java 클래스를 만들어 봤는데, 당연히 아직 동작하진 않아 [22:25] <jrand0m> 이상적으론 C 코드 묶음과 간단한 연동용 Java 래퍼 클래스를 소규모 패키지로 만들어서 windows, osx, *bsd, linux용으로 빌드하고 GPL로 패키징할 수 있으면 좋겠어 [22:25] <jrand0m> (여기서 iip 대규모 장애 발생) [22:38] <MrEcho> 내가 마지막으로 본 건: [13:25] <jrand0m> 좋아, 2) 네이티브 modPow [22:38] <jrand0m> 안녕 MrEcho [22:38] <jrand0m> 그래요, 메인 프록시가 크래시 난 것 같네 [22:39] <jrand0m> 재시작하기 전에 2분만 더 기다려 볼게 [22:39] <MrEcho> ㅇㅋ [22:39] <MrEcho> $25 한 번만 내면 thenidus.net에 java를 풀로 돌릴 수 있어요 ... 내 사이트 중 하나죠 [22:40] <jrand0m> $25? 소프트웨어 설치하는 데 돈을 받아? [22:40] <MrEcho> 잘은 모르겠어요 .. 패키지라서요 [22:40] <MrEcho> 지금 친구랑 얘기 중이에요 [22:40] <jrand0m> 아직 router들을 올리려고 콜로케이션을 잔뜩 임대할 만큼 코드가 충분히 안정적이진 않은 것 같아. 아직은 :) [22:41] <dm> frazaa? [22:41] <MrEcho> java - jsp [22:41] <jrand0m> 좋아, 아까 보냈던 걸 다시 보낼게: [22:41] <jrand0m> GMP나 다른 MPI 라이브러리를 어떻게 통합할 수 있는지 보여주려고 스텁 .c와 java 클래스를 만들어 봤는데, 당연히 아직 동작하진 않아 [22:41] <jrand0m> 이상적으론 C 코드 묶음과 간단한 연동용 Java 래퍼 클래스를 소규모 패키지로 만들어서 windows, osx, *bsd, linux용으로 빌드하고 GPL(또는 덜 제한적인 라이선스)로 패키징할 수 있으면 좋겠어 [22:41] <jrand0m> 하지만 새로운 로드맵에서 AES+SessionTag가 내 현재 액션 아이템이 되면서, 이건 예전만큼 긴급하진 않아. [22:42] <jrand0m> 그래도 누가 이걸 맡아 진행하고 싶다면 아주 좋겠지(우리 모두가 잘 아는 또 다른 프로젝트도 이런 패키징에 관심이 있을 거라 확신해) [22:43] <dm> z? [22:43] <jrand0m> 헤헷, 어떤 의미에선 ;) [22:44] <jrand0m> 좋아, 3) GUI 설치 프로그램 [22:44] <jrand0m> MrEcho> 안녕 [22:44] <MrEcho> :) [22:44] <MrEcho> 헤헤 [22:44] <MrEcho> 진행되고 있어요 [22:44] <jrand0m> 좋아 [22:44] <MrEcho> 특별한 건 없어요 [22:45] <MrEcho> 정말 근사하게 만들 멋진 아이디어가 몇 개 있긴 한데 .. 아직은 한참 남았어요 [22:45] <jrand0m> 인스톨러에 1) http://.../i2pdb/ 에서 시드를 자동으로 가져오는 옵션, 2) http://.../i2p/squid.dest를 자동으로 가져오고 runSquid.bat/runSquid.sh도 생성하는 기능을 넣을까요? [22:45] <jrand0m> 좋아 [22:46] <jrand0m> 맞아, 인스톨러는 최대한 단순했으면 해 - 어떤 화려한 걸 생각하고 있었어? [22:46] <MrEcho> 문제는 .. java -jar installer 를 실행하면 지금 구조상 기본이 non-GUI로 간다는 거예요 [22:46] <MrEcho> JAR 파일을 더블클릭하면 GUI가 뜨도록 하려면 어떻게 하죠 [22:47] <jrand0m> install.jar <-- nongui, installgui.jar <-- gui [22:47] <jrand0m> 코드는 분리, 패키지도 분리 [22:47] <MrEcho> 화려하다기보단 눈에 잘 띄진 않지만 .. 깔끔하고 보기 좋게요 [22:47] <jrand0m> 좋아 [22:47] <MrEcho> 오 오케이 [22:48] <jrand0m> (또는 install <-- gui installcli <-- cli. 진행 상황을 보죠) [22:49] <jrand0m> GUI에 대해 더 있을까, 아니면 항목 4)로 넘어갈까? [22:49] <jrand0m> (생각하는 일정이 있나? 압박은 아니고, 그냥 궁금해서) [22:51] <MrEcho> 지금은 잘 모르겠어요 [22:51] <jrand0m> 좋아 [22:51] <jrand0m> 좋아, 4) IM [22:51] <jrand0m> thecrypto가 없으니, 그럼..... [22:51] <jrand0m> 5) 네이밍 서비스 [22:51] <jrand0m> wiht도 없네요... [22:51] <jrand0m> 핑 [22:52] <dish> 번호 매긴 아젠다 카운트가 틀렸어요 [22:52] <dish> 3) IM [22:52] <jrand0m> 맞아, 2번 아젠다 항목이 두 개였지 [22:52] <dish> 4) Naming [22:52] <dish> ;) [22:52] <jrand0m> (native modPow와 GUI 인스톨러) [22:52] <jrand0m> 보시다시피, 우리는 유연하고 뭐 그런 거지 [22:59] <jrand0m> 좋아, 로그를 위해 계속하죠 [22:59] <jrand0m> 6) 라이선싱 [23:00] <jrand0m> GPL보다 덜 제한적인 쪽으로 가볼까 생각 중이야. MIT 라이선스 코드가 조금 있고, 다른 파일 하나는 GPL(하지만 그건 그냥 base64 인코딩이라 쉽게 대체할 수 있어). 그 외의 코드는 전부 나나 thecrypto 둘 중 하나가 저작권을 갖고 있어. [23:01] <dish> mihi의 i2p tunnel 코드 부분을 보세요 [23:01] <jrand0m> 아 맞다, mihi는 그걸 gpl로 배포했지만, 원하면 다른 걸로도 배포하고 싶을 수 있지 [23:01] <jrand0m> (하지만 I2PTunnel은 본질적으로 서드파티 앱이라 원하는 대로 라이선스를 정할 수 있어) [23:02] <jrand0m> (다만 i2p sdk가 gpl이라, 그도 gpl을 쓸 수밖에 없었지) [23:02] <MrEcho> 드디어 [23:02] <jrand0m> 잘 모르겠어. 라이선싱은 내 전문이 아니지만, 적어도 lgpl로 옮기는 쪽으로 기울고 있어 [23:03] <dish> I2P HTTP Client mihi 코드의 10~20줄 변경분은 mihi 라이선스가 무엇이든 그걸로 내세요 [23:03] <jrand0m> 헤헤 :) [23:06] <jrand0m> 아무튼, 7) 기타? [23:07] <jrand0m> i2p와 관련해 질문 / 우려 / 아이디어 있는 분? [23:07] <dish> 하나 물어볼게요 [23:07] <dish> I2P에 그룹 이름 기능 같은 게 있나요? [23:07] <jrand0m> 그룹 이름 기능이요? [23:07] <dm> 팀 디스커버리 채널! [23:07] <MrEcho> ㅋㅋ [23:08] <dish> 그러니까 사설 또는 분리된 네트워크를 운영하고 싶은데, 어떤 이유로 router가 뒤섞이면 그룹 이름이 없어서 두 네트워크가 합쳐져 버릴 수 있다는 뜻이에요 [23:08] <MrEcho> 그는 WASTE를 생각하는 거예요 [23:08] <jrand0m> 아 [23:08] <dish> 왜 그걸 원할지 모르겠지만, 그냥 혹시 몰라서 물어봐요 [23:08] <jrand0m> 네, 네트워크 설계 초기에 그걸 가지고 실험했어 [23:09] <jrand0m> 그건 지금(또는 비교적 가까운 미래 [6~12개월]) 우리가 필요로 하는 것보다 고급 기능이라 나중에 통합될 수도 있어 [23:09] <dish> 아니면 하나의 큰 네트워크로 유지하는 게 더 낫기 때문에 나쁜 아이디어인가요 [23:09] <dm> i2pisdead [23:09] <jrand0m> 헤헷 dm [23:10] <nop> 닥쳐 [23:10] <dm> nop: 터프가이냐? [23:10] <jrand0m> 아니야 dish, 좋은 아이디어야 [23:10] <dm> 웃긴 녀석? [23:10] <jrand0m> 그게 본질적으로 0.2.3 릴리스의 내용이야 -- 제한된 라우트 [23:10] <jrand0m> (즉, 소규모의 개인적(신뢰된) 피어 집합이 있고, 그들이 누구인지 모두가 알게 하고 싶지는 않지만, 그래도 그들과 통신은 하고 싶은 경우) [23:15] <jrand0m> 좋아, 다른 거 있나? [23:15] <nop> 아니, 그냥 장난친 거야 [23:18] <dm> 웃긴 녀석? [23:20] <jrand0m> 좋아, 음, /흥미로운/ 미팅이었네, 중간에 iip가 몇 번 크래시 나긴 했지만 ;) [23:21] <jrand0m> * jrand0m *baf* 하며 회의를 마무리합니다