Récapitulatif rapide
Présents: jrand0m, dm, Dellammo, mihi, moi, mihi-backup, dm_backup, wilde, shardy
Journal de réunion
[23:01] <jrand0m> ordre du jour [23:01] <jrand0m> 0) bienvenue [23:01] <jrand0m> 1) statut 0.2 [23:01] <jrand0m> 2) proxy WWW [23:01] * dm réfléchit. [23:02] <dm> ah, réunion ? [23:02] <jrand0m> 3) phttprelay [23:02] <jrand0m> 4) i2ptunnel [23:02] <jrand0m> 5) installation [23:02] <dm> désolé. [23:02] <jrand0m> 6) demande de fonctionnalité iip [23:02] <jrand0m> 7) ??? [23:02] <jrand0m> 0) bienvenue [23:02] <jrand0m> salut. [23:02] <jrand0m> réunion 62 ? c'est ça ? [23:02] <Dellammo> salut [23:02] <jrand0m> (pas d'inquiétude dm, on peut te pardonner) [23:02] <mihi> salut jrand0m [23:02] <dm> salut mihi [23:02] * mihi pense que oui [23:03] <jrand0m> 1) statut 0.2 [23:03] * jrand0m a eu dernièrement une sévère crise de dérive des fonctionnalités, donc il reste encore environ 30 minutes de code à écrire pour la version 0.2. [23:04] <jrand0m> mais ensuite nous pourrons fonctionner et communiquer de manière fiable, quel que soit le NAT, le pare-feu ou le proxy HTTP. [23:04] * dm vient juste de créer I2PSecureRemoteShell 1.0 [23:04] <dm> cool jr ! [23:05] <jrand0m> tout est fonctionnel, la seule chose qui reste est de faire expirer les entrées de base de données inutilisées après N minutes (probablement 5 par défaut) [23:05] <jrand0m> la communication à travers NAT/pare-feu/proxy HTTP, c'est le transport PHTTP. C'est lent, mais fiable. [23:05] <dm> comment ça marche ? quels ports ça utilise ? [23:06] <jrand0m> il envoie le message à un relais PHTTP accessible, qui stocke le message, puis le récepteur vient sonder les messages toutes les N secondes [23:06] <jrand0m> il y a BEAUCOUP de choses à régler et à améliorer de ce côté, ce qui correspond au point 3 de l'ordre du jour :) [23:06] <dm> P veut dire quoi ? [23:06] <jrand0m> Polling HTTP (HTTP par sondage) [23:06] <dm> ok merci. [23:07] <jrand0m> Je vais aussi mettre à jour la page « kludges » sur le wiki après la réunion, pour noter les choses un peu bancales [23:07] <jrand0m> (comme le fait de ne pas encore gérer un changement de lease pendant une communication) [23:08] <jrand0m> l'autre point à discuter est le point 5 de l'ordre du jour - installation. alias comment nous devrions gérer l'installation du router/sdk/tunnel/etc [23:08] <jrand0m> ok, c'est tout pour le statut 0.2 [23:08] <jrand0m> 2) proxy WWW. [23:09] <jrand0m> moi a eu une idée vraiment cool pour parcourir les sites WWW internes à I2P. [23:09] <jrand0m> tu veux expliquer ce que tu proposes, moi ? [23:09] * jrand0m te met sous les projecteurs *** moi est ~someone@anon.iip (someone) *** sur les salons : #freenet #anonymous #iip #iip-dev *** sur irc via le serveur anon.iip (IIP officiel) *** moi est inactif depuis 9 minutes, connecté le Thu Jan 01 01:00:00 1970 [23:10] <moi> eh bien [23:10] <moi> je suis juste en train de modifier un proxy HTTP et d'utiliser le tunnel de mihi [23:10] <moi> pour que tu puisses aller sur (Link: http://i2p/BASE64KEYHERE)http://i2p/BASE64KEYHERE [23:10] <moi> à terme, le serveur de noms serait là-- [23:11] <dm> génial [23:11] *** Déconnexion : mihi (Délai d'attente de ping) [23:11] <moi> il faut coller la première longue clé, mais après ça tu devrais techniquement pouvoir suivre les liens je pense [23:11] <Dellammo> donc une page web interne ou une page en dehors d'i2p ? [23:11] <dm> i2p se résout vers localhost ? [23:11] <moi> donc quelqu'un pourrait monter un Google i2p, et partir de là... peut-être [23:12] <mihi-backup> !thwap dm. [23:12] <mihi-backup> un proxy... [23:12] <jrand0m> pour la sécurité, le proxy devrait renvoyer 404 pour tous les hôtes autres que (Link: http://i2p/)http://i2p/ [23:12] <dm> oups ! [23:12] <moi> bon point [23:12] <dm> j'ai raté cette partie [23:12] <mihi-backup> quoique un simple servlet serait bien aussi [23:12] <jrand0m> hmm ? [23:13] *** mihi (~mihi@anon.iip) a rejoint le salon #iip-dev [23:13] <jrand0m> hmm, il pourrait y avoir un problème. [23:13] <jrand0m> ce serait en HTTP 1.0 ou 1.1 ? [23:14] <mihi> si le serveur exige un en-tête Host: ? [23:14] <jrand0m> [alias, est-ce qu'il y aurait un en-tête Host: ?] [23:14] <jrand0m> exactement [23:14] * mihi souhaite quelque chose [23:14] <moi> je me demande si on peut faire en sorte que le proxy l'efface [23:14] <jrand0m> si le tunnel sortant du serveur est toujours sur la même machine, ça va [23:14] <jrand0m> tu peux régler le Host: du proxy sur 127.0.0.1 [23:15] *** dm_backup (~as@anon.iip) a rejoint le salon #iip-dev [23:15] <jrand0m> mais alors tu dois exécuter le tunnel sur la même machine que le serveur. ce n'est pas un gros problème, puisque ce n'est pas pour la navigation web générale [23:15] <jrand0m> hein ? [23:15] *** Déconnexion : dm (Délai d'attente de ping) [23:16] * moi n'y avait pas encore réfléchi aussi en profondeur [23:16] <mihi> si tu fais tourner le serveur sur ta propre machine tu peux aussi faire un alias d'i2p vers localhost ou quelque chose comme ça. [23:16] <dm_backup> alors les gens doivent maintenant faire tourner des serveurs web ? [23:16] <jrand0m> dm_backup> c'est seulement pour ceux qui le veulent. [23:16] *** dm_backup est maintenant connu sous le nom dm [23:16] <Dellammo> comme moi [23:16] <dm> ouais, je veux dire pour ce truc (Link: http://i2p)http://i2p [23:17] <mihi> si tu veux fournir du contenu, oui. [23:17] <mihi> mais tu dois aussi en faire tourner un pour fournir du contenu sur le bon vieux WWW. [23:18] <Dellammo> pourquoi ? [23:18] <dm> Hmmm, peut-être que je devrais construire une appli P2P pour I2P. [23:18] <jrand0m> une appli de partage de fichiers sur i2p, ça déchirerait. [23:18] <dm> oui désolé, partage de fichiers. [23:19] <moi> je pense que ce serait possible pour quelqu'un de faire tourner un serveur OpenNap conjointement avec i2ptunnel [23:19] <jrand0m> oui. [23:19] <jrand0m> (quoique un p2p i2p natif aurait de meilleures performances) [23:19] <mihi> mais les téléchargements seront difficiles. [23:20] <mihi> pas moyen d'atteindre l'hôte correct puisque tous sont localhost ;) [23:20] <dm> Attendons d'abord de voir PING tourner sur i2ptunnel. [23:20] * Dellammo est perdu : on parle d'un proxy qui n'est pas i2ptunnel et qui te permet d'accéder à des serveurs web internes au réseau i2p en tapant '(Link: http://i2p/')http://i2p/' ? [23:20] <jrand0m> peut-être simplement un client FTP conçu pour tourner sur i2p ? [23:20] <dm> (pas ping au sens littéral) [23:20] <mihi> jrand0m : ftp a besoin de 2 ports... [23:20] <jrand0m> conçu pour tourner sur i2p. [23:21] <jrand0m> une appli de transfert de fichiers générale, pas le protocole FTP à proprement parler [23:21] <mihi> alors ce n'est pas du ftp. [23:21] <mihi> ATalk ;) [23:21] <jrand0m> (en profitant de tailles de messages plus grandes) [23:21] <dm> bataille des sages ! [23:21] <jrand0m> heh [23:21] <moi> Dellammo : pour l’instant tu dois créer un i2ptunnel pour chaque site/Destination que tu veux consulter. Nous pensons utiliser un serveur proxy qui construirait dynamiquement un i2ptunnel pour chaque site. [23:22] <jrand0m> (en quelque sorte) [23:22] <jrand0m> tu ne voudras pas utiliser un i2ptunnel, à proprement parler. [23:22] <jrand0m> tu voudras utiliser le protocole i2ptunnel, et envoyer des messages directement, pas via des sockets TCP/IP. [23:23] <jrand0m> mihi> as-tu une idée du temps que cela prendrait pour factoriser la fonctionnalité de protocole hors d'i2ptunnel afin que d'autres applis puissent envoyer des données à un tunnel i2p ? *** mihi est mihi@anon.iip (mihi) *** sur les salons : #iip-dev #iip #headlines #german #freenet-opn #freenet #fredisdead #frazaa @#fiw #anonymous *** sur irc via le serveur anon.iip (IIP officiel) *** mihi est inactif depuis 3 minutes, connecté le Thu Jan 01 01:00:00 1970 *** mihi-backup est ~mihi@anon.iip (mihi) *** sur les salons : #iip-dev *** sur irc via le serveur anon.iip (IIP officiel) *** mihi-backup est inactif depuis 12 minutes, connecté le Thu Jan 01 01:00:00 1970 [23:25] <mihi> y a-t-il vraiment une grosse logique de protocole ? I2PTunnelRunner peut être utilisé tel quel. [23:25] <mihi> Tu as juste à ajuster la classe client selon tes besoins. [23:25] <jrand0m> hmm, pas vraiment - i2ptunnelRunner utilise un socket [23:26] <jrand0m> c'est une simple appli Java qui veut générer un message ("HTTP GET /\n\n") et l'envoyer à un I2PTunnel sortant [23:27] <jrand0m> nous ne voulons pas rediriger le client qui contacte le proxy vers un nouveau port pour se connecter au I2PTunnel fraîchement instancié (car il n'y aurait aucun moyen de revenir en arrière pour les liens sortant de ce site) [23:28] <jrand0m> mais peut-être que basculer I2PTunnelRunner pour utiliser un InputStream (tout ce qu’il utilise, c’est socket.getInputStream) serait facile... [23:28] <jrand0m> mais il nous faut quand même le côté écoute [23:28] *** Déconnexion : mihi (Délai d'attente de ping) [23:28] <jrand0m> zut [23:28] * jrand0m espère que le backup n'est pas sur le point de perdre la connexion pour cause de ping... [23:28] <dm> le backup va mourir aussi, attention ! [23:29] <mihi-backup> ;) [23:29] <jrand0m> w00t [23:29] <mihi-backup> [23:25] <jrand0m> hmm, pas vraiment - i2ptunnelRunner utilise un socket [23:29] <mihi-backup> [23:25] <mihi> oups, vrai. et tu veux le faire complètement sans sockets ? [23:29] <mihi-backup> [23:25] <mihi> alors il ne reste pas grand-chose du code d'i2ptunnel. la plupart sert à gérer les sockets. [23:29] <mihi-backup> [23:26] <mihi> le mieux est de s'en tenir au protocole et de l'implémenter toi-même (construis les messages avec la méthode statique dans i2ptunnel.java) [23:29] <mihi-backup> [23:28] <mihi> http n'aurait pas besoin d'autant de threads. Fais juste tourner un reader sur le message entrant jusqu'à un double retour, puis envoie ton truc. [23:30] <jrand0m> ah 'k. merci [23:30] <jrand0m> moi> tu sabes? [23:30] <mihi-backup> à propos de remplacer I2PTunnel par un input stream. pour quoi faire ? tu n'obtiendras plus rien dessus après avoir parsé la requête. [23:31] * moi réfléchit [23:31] <dm> toi réfléchis [23:31] <mihi-backup> oublie juste le tunnelrunner. ;) [23:31] <jrand0m> oui, je pensais juste garder I2PTunnel et le proxy http sur le même code - I2PTunnel utiliserait socket.getInputStream(), le proxy http utiliserait new ByteArrayInputStream("GET / \n\n".getBytes()) [23:31] *** mihi (mihi@anon.iip) a rejoint le salon #iip-dev [23:32] * moi devra repasser sur tout ça en détail plus tard [23:32] <mihi-backup> mais ça fera que le runner enverra un "Connection closed" quand la chaîne sera envoyée. [23:32] <mihi-backup> car le flux se termine. [23:32] <jrand0m> oui, ce qui est du HTTP normal [23:33] <mihi-backup> oublie juste le runner, j'ai dit ;) [23:33] <jrand0m> 'k [23:33] <mihi-backup> jrand0m : non. la connexion se ferme quand la réponse arrive, pas quand la question est partie. [23:33] <jrand0m> ah oui [23:33] <jrand0m> ;) [23:36] <jrand0m> cool moi, on pourra travailler tout ça plus tard. [23:36] <jrand0m> ok, c'est tout pour le point 2). maintenant le 3) [23:36] <moi> ok [23:37] <jrand0m> 3) phttprelay [23:37] <jrand0m> phttp relay est un ensemble de servlets empaquetés dans un fichier .war [23:38] <jrand0m> ça marche immédiatement sur la JVM Windows / Sun, mais j'ai dû bidouiller jetty pour le faire tourner avec kaffe [23:38] <mihi> fais .peace pas .war [23:39] * jrand0m gémit [23:39] <dm> on peut exécuter des fichiers .war sans serveur J2EE ? [23:39] <dm> bon à savoir. [23:39] <jrand0m> les fichiers .war tournent dans n'importe quel conteneur de servlets - tomcat, apache avec mod_jk, jetty, etc. [23:40] <jrand0m> on va vouloir que certaines personnes fassent tourner ça sur des machines avec des adresses IP publiquement joignables, mais ils ne sont nécessaires que pour ceux qui n'ont pas d'adresses publiquement joignables (comme moi) [23:41] <mihi> quels ports faut-il rediriger si tu veux passer par un nat sans ça ? [23:41] <jrand0m> son implémentation est très rudimentaire aussi - il faut des limites sur le nombre de routers pour lesquels il relaie, combien de messages il met en file, au bout de combien de temps il expire, etc. [23:41] <jrand0m> juste le port TCP I2NP [23:41] <jrand0m> (ou le port UDP I2NP) [23:41] * mihi ne sait pas si son nat autorise la redirection udp [23:42] * jrand0m ne sait pas si le nat de mihi le permet non plus [23:43] <jrand0m> en ce moment, par exemple, mon portable n'est joignable que via PHTTP, et le router de mon serveur est joignable via PHTTP, TCP et UDP. si mon portable établit une connexion au router du serveur via TCP, il peut envoyer des messages via TCP. mais si mon portable ne fait pas ça d'abord, le serveur doit envoyer les messages via PHTTP [23:44] <jrand0m> le code est dans i2p/code/apps/phttprelay/ pour quiconque a de l'expérience avec les servlets et veut bidouiller une petite appli [23:45] <jrand0m> (ça devrait aussi fonctionner de manière transparente avec https aussi bien que http simple) [23:45] <jrand0m> je documenterai le protocole PHTTP très bientôt. :) [23:45] *** Déconnexion : mihi (Délai d'attente de ping) [23:45] <jrand0m> ok, c'est tout pour le point 3) phttprelay [23:45] <jrand0m> 4) i2ptunnel [23:46] <jrand0m> on a déjà discuté pas mal de choses. à moins que mihi (ou quelqu'un d'autre) ait quelque chose à ajouter, on peut passer au 5) [23:46] *** wilde (~anon@anon.iip) a rejoint le salon #iip-dev [23:46] <jrand0m> hola wilde [23:47] <jrand0m> ok. ceci dit, point 5 :) [23:47] <jrand0m> 5) installation [23:48] <jrand0m> pour sortir la 0.2, et au-delà, je pense à quelques scripts ant. [23:48] <jrand0m> ou devrions-nous utiliser un autre système d'installation open source ? [23:48] <jrand0m> des retours / idées là-dessus ? [23:49] <Dellammo> hmm [23:50] <jrand0m> ant a l'avantage d'être unifié avec le système de build, indépendant de la plateforme, et de pouvoir tourner sans interface graphique. [23:50] <wilde> hey [23:50] <jrand0m> mais il nécessite ant (qui nécessite java). et il n'a pas d'interface graphique [23:51] <Dellammo> je peux penser à beaucoup de programmes d'installation pour Windows... je ne sais pas combien sont sous GPL par contre [23:51] <jrand0m> ouais, j'ai une licence InstallAnywhere Enterprise, mais c'est mauvais pour l'open source [23:51] <jrand0m> NSIS est open source, mais a ses subtilités. [23:51] <dm> question bête : ant est inclus dans java ? [23:52] <jrand0m> non. [23:52] <jrand0m> oh, quoiqu'on POURRAIT distribuer un ant compilé avec GCJ [23:52] <dm> d'accord, ça a dû venir avec eclipse alors. [23:52] <jrand0m> (compilé en code natif) [23:52] <jrand0m> exact dm. [23:52] <jrand0m> apache fait ant (ant.apache.org) et c'est sous licence apache. [23:52] <jrand0m> oh, beurk. [23:52] * jrand0m vient de lire la phrase que j'ai tapée) [23:53] <jrand0m> la gpl n'est pas compatible apl, d'après la FSF [23:53] <jrand0m> on ne peut probablement pas distribuer ant. [23:53] <dm> on ne peut pas juste faire un script ? qu'est-ce qu'il faut faire pour que ce soit installé ? [23:53] <jrand0m> mais on peut l'utiliser. [23:53] <jrand0m> pas grand-chose. un script suffit. [23:53] <jrand0m> mais veut-on un .bat et un .sh, etc. [23:54] *** shardy (~shardy@anon.iip) a rejoint le salon #iip-dev [23:54] <dm> en quoi consiste une installation, deux ou trois questions ? [23:54] <jrand0m> écrire un installeur java pour faire une installation indépendante de la plateforme, c'est excessif, donc idéalement on devrait utiliser un framework d'installation existant [23:54] <jrand0m> ouais, quelques questions [23:54] <jrand0m> les cibles d'installation que je prévois : [23:54] <Dellammo> on aura un nouveau logo flashy ? qui travaille là-dessus ? [23:54] <jrand0m> install-router [23:55] <jrand0m> install-www-tunnel, install-www-proxy, install-sdk, install-cvs-tunnel, update-seednodes [23:55] <moi> pourquoi ne pas utiliser InstallAnywhere ? si le code est ouvert, c'est ce qui compte [23:55] * jrand0m pense que c'EST TOI, Dellammo :) [23:55] <jrand0m> InstallAnywhere n'est pas open source. [23:55] * Dellammo s'y met [23:56] <dm> un script suffirait probablement à ce stade, mais autant penser à l'avance. [23:56] <jrand0m> (c'est environ 4k euros / poste) [23:56] <jrand0m> d'accord. donc pour demain, je vais probablement juste écrire des scripts ant, mais on doit étudier un système [23:56] *** Déconnexion : wilde (Délai d'attente de ping) [23:56] <jrand0m> donc si quelqu'un peut aider là-dessus, ce serait apprécié :) [23:57] <dm> ah ok, je pensais à des scripts shell. [23:57] <moi> certains gestionnaires de paquets pourraient faire ça sur les installations Linux [23:57] *** wilde (~anon@anon.iip) a rejoint le salon #iip-dev [23:57] <jrand0m> gérer des installeurs différents pour différentes plateformes, c'est la galère [23:59] <dm> installeur java ? Pourquoi c'est la galère ? [23:59] <jrand0m> un installeur java serait super [23:59] <mihi-backup> mal au c** [23:59] <mihi-backup> oups, désolé... [23:59] <dm> system.out.println("Please enter where you would like to install I2P") ;) [23:59] <mihi-backup> s/tln/t; s/P"/P: "/ [23:59] <mihi-backup> s/sys/Sys/ [00:00] <jrand0m> écrire un installeur personnalisé en java est possible, mais on préfère utiliser un framework existant. mais si tu te portes volontaire pour écrire un installeur personnalisé, je te soutiens ! [00:00] <dm> mihi est en train de faire une crise d'épilepsie. [00:00] * mihi-backup gifle dm un peu avec une grosse truite [00:00] <dm> voilà ce que je propose... [00:01] <dm> si tu as le temps à un moment d'écrire précisément les étapes nécessaires à une installation, j'écrirai un installeur java. [00:01] <mihi-backup> dm : lis le script ant ;) [00:01] <jrand0m> ça marche dm. une fois que j'aurai fait fonctionner le truc ant je documenterai tout pour toi [00:01] <dm> très bien, on verra si je peux comprendre le script ant une fois qu'il sera sorti. [00:02] *** Déconnexion : wilde (Délai d'attente de ping) [00:02] <Dellammo> jrand0m, i2p I2P i^2p ou I^2P ? [00:02] * jrand0m a quelques gribouillis avec un I majuscule, un 2 et un P majuscule tous superposés... [00:03] <Dellammo> hmm [00:03] *** wilde (~anon@anon.iip) a rejoint le salon #iip-dev [00:03] *** mihi (~mihi@anon.iip) a rejoint le salon #iip-dev [00:03] <jrand0m> ok, c'est 5) installation [00:03] <jrand0m> 6) demande de fonctionnalité iip [00:04] <jrand0m> quelqu'un est venu ici avec une demande de vol automatique de pseudo [00:04] <jrand0m> en gros, si quelqu'un a enregistré un pseudo, personne ne peut rester avec ce pseudo à moins d'être identifié [00:04] <jrand0m> nop ou quiconque a fait du dev iip - des idées ? [00:04] * jrand0m pense que ce serait une super fonctionnalité à avoir [00:05] * Dellammo dessine un œil illuminati avec un signe d'interdiction comme sur « no smoking » par-dessus [00:05] <jrand0m> heh [00:05] <dm> Peut-être que je ferai aussi un logo I2P... pour la partie GUI de mon installeur ;) [00:05] *** Déconnexion : wilde ((null)) [00:05] <Dellammo> faisons-en tous, comme ça on ne se retrouve pas coincés avec un logo pourri [00:05] <mihi> jrand0m : demande à mids - il maintient trent. [00:06] <mihi> le code source de trent est dans cvs au fait [00:06] <Dellammo> le logo est la partie la plus importante de toute activité [00:06] <jrand0m> tout à fait, Dellammo. [00:06] * dm dépoussière Corel Draw... [00:06] <dm> purée j'adore Corel Draw. [00:07] <jrand0m> ok, c'est tout pour le 6) [00:07] <jrand0m> 7) ??? [00:07] <jrand0m> des questions / idées / frisbees / ongles d'orteils ? [00:07] <dm> Pensée : espérons que ça marche. [00:08] <jrand0m> heh [00:08] * jrand0m aussi. [00:09] <mihi> jrand0m : continue le bon boulot ! [00:09] <dm> oui, continue. [00:09] <jrand0m> du bon boulot ? tu n'as clairement pas vu le code ;) [00:09] <dm> J'adore ton code, sauf pour les underscores aveuglants. [00:09] <dm> aveuglants... saignants.. etc.. [00:09] <jrand0m> heh, les variables d'instance ont un _, donc on n'a jamais besoin de faire this.var = var; [00:10] <jrand0m> ok... 68 minutes... si je peux faire traîner ça encore une minute... [00:10] <jrand0m> w00t [00:10] * jrand0m *baf* clôt la réunion.