Resumo rápido
Presentes: beefbroth, CCD, ChZEROHag, co, dcat, dm, godmode0, jrand0m, mihi, mihi_backup, mrflibble, Myself248, myself248, nop, pitu, Ryan_Singer, shardy, thecrypto, UserX, yodel
Registro da reunião
[22:56] ok ok [22:56] agenda [22:56] 0.0) boas-vindas [22:56] 1.0) status do desenvolvimento [22:56] 1.1) router [22:56] *** Myself248 (~ident@anon.iip) entrou no canal #iip-dev [22:56] 1.2) pré-cálculo de DH [22:56] 2.0) microrroteiro [22:56] 3.0) aplicativos / uso [22:56] 4.0) ns [22:56] 5.0) IM [22:56] 6.0) administravia (cvs, bugzilla, cvs list, cvs web) [22:56] 7.0) perguntas [22:57] (sim, 7 pontos hoje. w00t) [22:57] 0.0) boas-vindas [22:57] oi. [22:57] oi [22:57] 17 usuários hoje. legal [22:57] *** Ryan_Singer (chatzilla@anon.iip) entrou no canal #iip-dev [22:57] e subindo [22:57] ok [22:57] 1~oi [22:57] 1.1) status do desenvolvimento para o router [22:58] o router de implementação de referência em Java está indo muito bem [22:58] *** ChZEROHag (hag@anon.iip) entrou no canal #iip-dev [22:58] agora podemos executar aplicativos em routers diferentes e enviar mensagens uns aos outros [22:59] Desculpa interromper, mas espero que seja só uma vez [22:59] adotando uma abordagem iterativa e incremental, o estado atual é seguro, não anônimo, não escalável e suscetível a coleta [22:59] Alguém mais está trabalhando numa API em C? [22:59] 'lo ChZEROHag, o que manda? [22:59] Porque eu estou, mas bem devagar [22:59] *** dcat (dirtycat@anon.iip) entrou no canal #iip-dev [22:59] ah, legal [22:59] shardy vai trabalhar em uma depois que a toorcon terminar [22:59] talvez vocês dois possam trabalhar juntos nisso? [23:00] jrand0m: Você pode inserir manualmente um destination para enviar mensagens? [23:00] Melhor dizendo, existe uma representação ASCII de um destination? [23:00] sim, co, para ambas [23:00] Excelente. [23:00] os destinations, e todas as estruturas do I2P, são carregáveis e serializáveis em base 64 (com um alfabeto alternativo) [23:01] então não será fácil de lembrar, mas será ASCII? [23:01] (por exemplo, no netDb de um dos meus routers, eu tenho leaseSet-enD4jtE-orMwFD0QGog9GAyC5MvLvnPzhVD8cDYvSI8.dat que contém o lease set do destination enD4jtE-orMwFD0QGog9GAyC5MvLvnPzhVD8cDYvSI8) [23:02] [embora isso seja H(destination).toBase64() [23:03] ChZEROHag> se houver algo que possamos fazer para te ajudar com isso, é só falar [23:03] ok, isso foi 1.1. 1.2) pré-cálculo de DH [23:03] Você poderia fazer isso por mim? :-) [23:04] ontem à noite escrevi uma otimização de pré-cálculo para trocas DH para economizar ~1s de negociações de sessão que levam 1,5s. Eu adoraria que alguém que entende de cripto garantisse que eu não estou maluco ;) [23:04] lol ChZEROHag [23:04] aah, lembrei do que eu precisava [23:04] Uma implementação de netdb [23:04] está no cvs? [23:04] o dh [23:04] sim, thecrypto [23:05] C:\dev\i2p\code\core\java\src\net\invisiblenet\i2p\crypto\DHSessionKeyBuilder.java [23:05] Bem, vou ficar acordado por umas boas 3/4 horas ainda, talvez isso me dê algo para fazer [23:05] er, s/C:\\dev/g; s/\\/\//g [23:05] *** wax_off (~nomail@anon.iip) entrou no canal #iip-dev [23:06] certo. para que você precisa de uma impl de netdb? [23:06] Não lembro [23:06] atualmente temos um netdb não escalável no cvs [23:06] heh [23:06] Não mexo nisso há pelo menos uma semana [23:06] você está trabalhando numa API em C para I2CP, certo? não I2NP? [23:07] Eu ia simplesmente fazer tudo [23:07] *** wax_off saiu de #iip-dev [23:07] I2NP é muito, muito, muito mais trabalho do que I2CP [23:07] Assim que eu realmente começar direito, vai sair [23:07] mas se você implementar um I2NP em C seria fantástico [23:07] já existe um I2NP em alguma coisa agora? [23:07] (I2CP:I2NP::FCP:FNP) [23:07] sim, dm [23:08] * ChZEROHag restaura o emacs [23:08] a impl em Java na qual estou trabalhando tem o I2NP funcionando [23:08] beleza... [23:08] jrand0m: url? Eu precisava de uma referência, mesmo que seja numa linguagem horrível. [23:08] heh [23:08] erm, na verdade isso é 6.0 administravia: vulgo onde diabos está nosso acesso cvs anônimo ;) [23:09] estou pegando o material de DH [23:09] legal [23:09] Ah, certo [23:09] jrand0m, voltando à pauta, o microrroteiro? [23:09] * thecrypto esconde o rosto [23:09] bem, vou esperar :) [23:09] heh 'k [23:09] microrroteiro [23:09] tenho de 0.1 até 0.5 delineado [23:09] seguiu o roadmap do freenet então? [23:10] *** mrflibble (mrflibble@anon.iip) entrou no canal #iip-dev [23:10] 0.1) funcional, seguro, não anônimo, não escalável, suscetível a coleta [23:10] o desenvolvimento desacelera e congela durante a 0.5... [23:10] estamos agora em 0.1. [23:10] heh, notei isso, dm, o flinks também sumiu na 0.5.2 ;) [23:10] Como você está chamando o pacote todo? [23:10] (coincidência estranha) [23:10] isto é, versão 0.1 de quê? [23:10] o pacote todo? implementação de referência do router do i2p [23:10] co: Wonga [23:10] * beefbroth entra na reunião [23:11] buenos noches beefbroth [23:11] Certo. Isso explica. [23:11] Na verdade talvez eu chame assim. Com certeza soa mais interessante do que 'i2pd' [23:11] 0.1 tem bugs. isso é certo. e não tem otimizações dignas de nota (embora o pré-cálculo de DH ajude). [23:11] heh [23:11] jrand0m, então o que é 0.2)? [23:11] departamento de polícia da internet invisível [23:11] ok, 0.2 [23:12] 0.2 é funcional, seguro, anônimo, não escalável, suscetível a coleta [23:12] 0.2 adiciona suporte para tunnels de comprimento não-zero [23:12] na verdade implementei a maior parte disso na noite passada, mas não testei completamente [23:12] acho que 0.2 estará pronto até o fim da semana [23:12] quão longe estamos disso do ponto de vista de desenvolvimento? [23:13] ótimo [23:13] 0.3) é funcional, seguro, anônimo, escalável, suscetível a coleta [23:13] * thecrypto pega o bochs para poder simular uma rede e ajudar com isso [23:13] 0.3 adiciona um kademliaDatabaseManager [23:13] agora usamos um BroadcastDatabaseManager [23:13] (vulgo gnunet ;) [23:14] trivial de implementar e funcional para redes pequenas, mas precisamos do kademlia para escalar [23:14] 0.4) é funcional, seguro, anônimo, escalável, não suscetível a coleta [23:14] isso adiciona links confiáveis [23:14] jrand0m, e quão desafiador é implementar kademlia? [23:14] tenho duas ideias para links confiáveis... uma é mais fácil de implementar e usar [23:15] kademlia provavelmente levará uma semana inteira [23:15] (para acertar) [23:15] note que tudo isso tem muito espaço para refatoração e ajuste. Meu objetivo é primeiro ficar funcional, depois afinamos. [23:16] Você tem certeza de que vai conseguir desenvolver e testar tão rápido? [23:16] Não tenho certeza de nada [23:16] é apenas minha estimativa [23:16] co, ele deixa funcional, nós testamos [23:16] Tem certeza? [23:16] (desculpa) [23:16] Ryan_Singer: Entendi. [23:17] * jrand0m <3 pessoas que testam :) [23:17] Quando você diz "nós" testamos. Há espaço para não-programadores ajudarem nos testes? [23:17] Myself248> provavelmente não até a 0.4 [23:17] vamos só torcer para nunca chegar ao ponto em que fica funcional, mas ninguém sabe que diabos está acontecendo dentro da rede para fazê-la funcionar bem (ex.: freenet) [23:18] quando 0.4 estiver pronta, isso é pré-alfa. quando for 0.4 vou ajustar e refatorar e preencher as lacunas para preparar a 0.5 (alfa) [23:18] Documentar, documentar, documentar. [23:18] há algum pensamento em monitoramento ativo dos internos da rede, ou é simples? [23:18] sim, dm, com certeza [23:18] uma das peças-chave do i2np é a inclusão de estatísticas nas estruturas routerInfo publicadas [23:18] jrand0m: faça um s/0./0.0./ ;) [23:18] as revisões iniciais vão publicar estatísticas reais para podermos ajustar [23:19] revisões posteriores ou não publicarão estatísticas ou publicarão falsas [23:19] * jrand0m não faz 0.0 [23:19] ok, estou aqui [23:19] bem-vindo de volta, shardy [23:19] desculpa o atraso, esqueci que esta janela estava aberta, heh [23:19] legal. [23:19] existe um documento de nível mais alto descrevendo a arquitetura para a rede sob .4? [23:19] cortem-lhe a cabeça [23:20] Ryan_Singer> hmm, eu tinha alguns docs de visão geral há alguns meses que o mids e o nop espelharam, e tem o doc de visão geral do i2p [23:20] 0.4 é i2np completo como descrito na spec, só não implementado de forma otimizada [23:20] ah, e jrand0m, vou revisar a otimização de DH para você [23:20] valeu, gracias [23:20] posso conseguir esses docs? [23:21] a visão geral está em (Link: http://www.invisiblenet.net/i2p/i2p_philosophy.pdf)http://www.invisiblenet.net/i2p/i2p_philosophy.pdf [23:21] estão no wiki, acho? [23:21] os docs antigos de overview... hmm [23:21] (as especificações do i2p estão em (Link: http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs)http://wiki.invisiblenet.net/iip-wiki?I2PProtocolSpecs) [23:21] Estão em (Link: www.invisiblenet.net/i2p/.)www.invisiblenet.net/i2p/. [23:21] isso aí, beefbroth [23:22] embora haja docs antigos em formato html com figuras feias do ms paint de antes mostrando como os tunnels funcionam... [23:22] Eu devia saber, já os li bastante [23:22] hehe [23:22] A menos que sejam versões mais antigas ou mirrors. [23:22] aqueles arquivos no wiki são 0.9 (0.9.1 saiu para o I2NP e as estruturas de dados, mas incluem apenas mudanças menores) [23:23] jrand0m: o pré-cálculo parece bom [23:23] legal [23:24] *** pitu (~pitu@anon.iip) entrou no canal #iip-dev [23:24] * jrand0m executa o router com 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] ok, esse é o microrroteiro [23:25] como podem ver, estou aceitando que a alpha não ficará pronta até o fim do mês. 0.4 provavelmente será na primeira semana de outubro [23:26] tudo bem, mesmo assim seria a implementação mais rápida de uma rede desse tipo ;) [23:26] lol [23:26] ao lerem as estimativas de tempo do jrand0m aqui, lembrem que ele está bebendo uísque nas últimas 4 horas :-P [23:26] heh [23:26] ok...aplicativos/uso? [23:26] uísque bom, diga-se ;) [23:26] ok, aplicativos/uso [23:27] 0.7 em 4 segundos....3...2...1..!! [23:27] estou mirando nos frutos baixos aqui - são coisas que podemos fazer com zero ou mínimo código novo. [23:27] Como é que se supõe que se programe direito estando totalmente sóbrio? [23:27] todos esses fazem uso significativo do i2ptunnel excelente do mihi [23:27] ChZEROHag: Facilmente. [23:27] *** mihi mudou o tópico no canal #iip-dev para 0.7 em 4 segundos....3...2...1..!! [23:28] usando o i2ptunnel, podemos fazer o seguinte sem escrever nenhum código novo: [23:28] proxy ww público (usando i2ptunnel + squid) [23:28] * dm tira o chapéu para mihi. [23:28] JAP (usando i2ptunnel + JAP) [23:28] você não pode chutar bundas através do i2p (nem através de um tunnel...) [23:28] navegar www anonimamente (i2ptunnel + navegador web) [23:28] rodar um servidor web i2p (i2ptunnel + httpd) [23:29] Muito bom. Bravo, mihi. [23:29] cvs outproxy (i2ptunnel) [por exemplo, cvs outproxy para a sourceforge para dev anônimo do freenet] [23:29] cliente cvs, servidor cvs [23:29] app de IM, servidor pop3, servidor imap, opennap [23:29] esses são realmente frutos bem baixos [23:29] ok, agora tudo que precisamos é do i2p :) [23:30] certo ;) [23:30] um webserver no i2p não meio que substituiria o freenet? :) [23:30] * jrand0m acha que isso se qualifica como uma FAQ que eu deveria responder [23:30] jrand0m, mas eles também são muito valiosos [23:30] Dessa lista, eu consideraria cvs mais importante/útil [23:30] Em parte porque eu quero permanecer anônimo, mas também porque se fornecer www anônimo você vai atrair lusers [23:30] i2p + web não substitui o freenet - o freenet adiciona valor significativo por cima de um framework de comunicação anônima - distribuição de conteúdo [23:31] E no momento a ideia de e-mail anônimo assusta :) [23:31] * dm anota: "sem lusers" [23:31] cvs definitivamente está no top 3 [23:31] acho que se o webserving no i2p funciona bem, você tem que considerar mesclar as partes de DHT/armazenamento do freenet por cima do i2p e então terá o melhor dos dois mundos. [23:31] ChZEROHag, se for escalável isso é bom [23:31] dm: lusers só são um problema nas fases iniciais, mas eles tendem a não usar cvs [23:31] ok, adicionar bastante hashcash a qualquer coisa de e-mail anônimo. [23:31] Ou, aliás, nem saber o que é (ou que existe) [23:31] Acho que um dos testes que precisa ser feito é um ataque de teste na rede. [23:31] sim, beefbroth, uma vez que o i2p faça o que queremos, o freenet provavelmente vai se ajustar para fazer uso dele [23:32] Desculpe se isso é off-topic. [23:32] Myself248: é só adicionar um redirecionador para um remailer anônimo. [23:32] não, isso com certeza é on-topic, co - atacar esta rede é fundamental [23:32] Myself248: hashcash é principalmente para parar flooding enquanto somos forçados a usar o protocolo antigo que é o 'irc' [23:32] Não para parar o que poderia ser chamado de 'abuso' [23:32] certo, embora talvez rodar mixminion sobre i2p fosse útil [23:33] certo, hashcash está até embutido no i2p para evitar que mensagens sejam entregues em um único salto a menos que 'paguem' [23:33] jrand0m, poderíamos rodar imap sobre isso facilmente? [23:33] absolutamente [23:33] impressionante [23:33] imapd com um i2ptunnel apontando para ele, com um i2ptunnel no cliente apontando para o destination desse tunnel [23:34] e motores de busca do freenet :) [23:34] ftp ou vários mensageiros instantâneos não-jabber vão dar problemas... [23:34] certo, coisas que exigem duas conexões são mais complexas [23:34] jrand0m: hashcash no i2p? [23:34] Vou te importunar sobre isso quando isso acabar. [23:34] hashcash no i2p? legal. [23:34] estamos nos adiantando! ah tá, quem liga.. QUAKE + IIP!!!!!! [23:34] desculpa, I2p :) [23:34] lol dm [23:35] Nós que temos CPUs fracas ficamos nervosos quando alguém diz hashcash, mas como medida anti-spam eu entendo. [23:35] dm: Isso é realmente se adiantar demais. [23:35] * mihi é jabber:schierlm@a-message.de ;) [23:35] sim, ChZEROHag - Destination == public signing key (DSA) + public encryption key (ElGamal) + certificate (either null or hashcash(keys)) [23:35] o i2p tunnel é estático ou dinâmico no lado do cliente? [23:35] beefbroth: no momento é tudo estático. mas você poderia usar um proxy socks como dest. ;) [23:35] Myself248> Estou recebendo um sun ultra1 animal pelo correio em algumas semanas. se uma máquina de 160 MHz consegue, qualquer um consegue [23:35] bem. hashcash não deveria ser algo terrível nem para CPUs pequenas. só se você quiser fazer algo um zilhão de vezes vai notar. [23:36] beefbroth: pode ser dinâmico. [23:36] as aplicações potenciais dos 'frutos baixos' aqui são muito impressionantes [23:36] certo, mihi [23:36] “eleventy”. heh [23:36] os frutos baixos são essencialmente apps 'normais' da internet, mas de forma anônima [23:36] certo? [23:36] certo [23:36] sim [23:36] (quake) [23:37] 0.1 os executa com segurança, 0.2 os executa anonimamente, 0.3 os executa de forma escalável, 0.4 os executa de forma não suscetível a coleta [23:37] (estamos @ 0.1 agora) [23:37] o que você quer dizer com não suscetível a coleta? [23:37] Desculpe, o que é 'suscetível a coleta' mesmo? [23:37] dm: Infelizmente fomos atrasados o suficiente para que, depois de mais de 30 anos, tempo real ainda não seja 'normal' [23:37] Ufa. Eu esperava que alguém perguntasse isso. ;) [23:37] registrável [23:37] colheita significa que um atacante ativo pode rodar um router, descobrir muitos outros routers ("colher" eles), e mandar os capangas arrombarem suas portas [23:38] ah, como dá para fazer com gnutella. :) [23:38] capangas tipo serviços secretos [23:38] certo [23:39] ah, entendi. [23:39] ok, mas é isso, esse é o microrroteiro. [23:40] agora, estou sendo estúpido chamando isso de 0.x em vez de 0.0.x? 1.0 deveria ser 'perfeita' ou deveria ser funcional e segura? [23:40] jrand0m, e veremos a .4 quando? [23:40] 0.4 provavelmente está a 2 semanas [23:40] * jrand0m vai tirar cerca de uma semana de folga em meados de outubro porque vai receber visitas [23:40] *** Saiu: dm (EOF do cliente) [23:40]