Kurze Zusammenfassung
Anwesend: jrand0m, dm, Dellammo, mihi, moi, mihi-backup, dm_backup, wilde, shardy
Besprechungsprotokoll
[23:01] <jrand0m> Tagesordnung [23:01] <jrand0m> 0) Willkommen [23:01] <jrand0m> 1) 0.2-Status [23:01] <jrand0m> 2) WWW-Proxy [23:01] * dm denkt nach. [23:02] <dm> oh, Meeting? [23:02] <jrand0m> 3) phttprelay [23:02] <jrand0m> 4) i2ptunnel [23:02] <jrand0m> 5) Installation [23:02] <dm> sorry. [23:02] <jrand0m> 6) iip-Feature-Wunsch [23:02] <jrand0m> 7) ??? [23:02] <jrand0m> 0) Willkommen [23:02] <jrand0m> hi. [23:02] <jrand0m> Meeting 62? Ist das so? [23:02] <Dellammo> hi [23:02] <jrand0m> (kein Grund zur Sorge, dm, wir können dir vergeben) [23:02] <mihi> hi jrand0m [23:02] <dm> hi mihi [23:02] * mihi denkt schon [23:03] <jrand0m> 1) 0.2-Status [23:03] * jrand0m hatte in letzter Zeit eine heftige Feature-Creep-itis, daher sind für den 0.2-Release noch etwa 30 Minuten Code zu schreiben übrig. [23:04] <jrand0m> aber dann werden wir unabhängig von NAT, Firewall oder HTTP-Proxy zuverlässig laufen und kommunizieren können. [23:04] * dm hat gerade I2PSecureRemoteShell 1.0 erstellt [23:04] <dm> cool jr! [23:05] <jrand0m> alles ist funktionsfähig, das Einzige, was noch fehlt, ist ungenutzte Datenbankeinträge nach N Minuten ablaufen zu lassen (Standard wahrscheinlich 5) [23:05] <jrand0m> die Kommunikation über NAT/Firewall/HTTP-Proxy läuft über den PHTTP-Transport. Er ist langsam, aber zuverlässig. [23:05] <dm> wie funktioniert das? Welche Ports verwendet es? [23:06] <jrand0m> es sendet die Nachricht an ein erreichbares PHTTP-Relay, das die Nachricht speichert, und der Empfänger fragt dann alle N Sekunden nach Nachrichten ab [23:06] <jrand0m> da gibt es VIEL, was man auf dieser Seite noch abstimmen und verbessern kann, und genau das ist Tagesordnungspunkt 3 :) [23:06] <dm> Wofür steht das P? [23:06] <jrand0m> Polling HTTP [23:06] <dm> ok, danke. [23:07] <jrand0m> Ich werde nach dem Meeting auch die "kludges"-Seite im Wiki aktualisieren, um die Sachen zu vermerken, die noch schräg sind [23:07] <jrand0m> (zum Beispiel, dass eine Lease-Änderung während der Kommunikation noch nicht behandelt wird) [23:08] <jrand0m> der andere Punkt ist Tagesordnungspunkt 5 - Installation. Also wie wir die Installation von router/sdk/tunnel/etc handhaben sollten [23:08] <jrand0m> ok, das war’s zum 0.2-Status [23:08] <jrand0m> 2) WWW-Proxy. [23:09] <jrand0m> moi hatte eine richtig coole Idee zum Browsen von WWW-Sites innerhalb von I2P. [23:09] <jrand0m> willst du erklären, was Sache ist, moi? [23:09] * jrand0m rückt dich ins Rampenlicht *** moi is ~someone@anon.iip (someone) *** on channels: #freenet #anonymous #iip #iip-dev *** on irc via server anon.iip (Official IIP ) *** moi has been idle 9 minutes, signed on at Thu Jan 01 01:00:00 1970 [23:10] <moi> nun [23:10] <moi> ich modifiziere gerade einen HTTP-Proxy und verwende mihis tunnel [23:10] <moi> so dass du auf (Link: http://i2p/BASE64KEYHERE)http://i2p/BASE64KEYHERE gehen kannst [23:10] <moi> letztlich würde dort der Naming-Server sein-- [23:11] <dm> cool [23:11] *** Signoff: mihi (Ping timeout) [23:11] <moi> du musst den ersten langen Schlüssel einfügen, aber danach solltest du technisch gesehen Links folgen können, glaube ich [23:11] <Dellammo> also eine interne Webseite oder eine Seite außerhalb von i2p? [23:11] <dm> löst i2p auf localhost auf? [23:11] <moi> also könnte jemand ein i2p Google aufsetzen und von dort aus weitermachen.... vielleicht [23:12] <mihi-backup> !thwap dm. [23:12] <mihi-backup> ein Proxy... [23:12] <jrand0m> zur Sicherheit sollte der Proxy für alle Hosts außer (Link: http://i2p/)http://i2p/ mit 404 antworten [23:12] <dm> ups! [23:12] <moi> guter Punkt [23:12] <dm> den Teil hatte ich übersehen [23:12] <mihi-backup> obwohl ein einfaches Servlet auch nett wäre [23:12] <jrand0m> hmm? [23:13] *** mihi (~mihi@anon.iip) has joined channel #iip-dev [23:13] <jrand0m> hmm, da könnte es ein Problem geben. [23:13] <jrand0m> würde das HTTP 1.0 oder 1.1 verwenden? [23:14] <mihi> falls der Server einen Host:-Header anfordert? [23:14] <jrand0m> [d. h., hätte es einen Host:-Header?] [23:14] <jrand0m> genau [23:14] * mihi wünscht sich etwas [23:14] <moi> ich frage mich, ob wir den Proxy das ausblenden lassen können [23:14] <jrand0m> wenn der ausgehende tunnel des Servers immer auf demselben Host ist, ist das ok [23:14] <jrand0m> du kannst den Proxy-Host: auf 127.0.0.1 setzen [23:15] *** dm_backup (~as@anon.iip) has joined channel #iip-dev [23:15] <jrand0m> aber dann musst du den tunnel auf demselben Host wie den Server laufen lassen. Kein großes Problem, da es nicht fürs allgemeine normale Web-Browsing gedacht ist [23:15] <jrand0m> oder? [23:15] *** Signoff: dm (Ping timeout) [23:16] * moi hatte noch nicht so tief darüber nachgedacht [23:16] <mihi> wenn du den Server auf deiner eigenen Kiste laufen lässt, kannst du i2p auch auf localhost oder so aliasen. [23:16] <dm_backup> müssen die Leute jetzt Webserver betreiben? [23:16] <jrand0m> dm_backup> das ist nur für Leute, die das wollen. [23:16] *** dm_backup is now known as dm [23:16] <Dellammo> wie ich [23:16] <dm> ja, ich meine für dieses (Link: http://i2p)http://i2p Dingens [23:17] <mihi> wenn du Inhalte bereitstellen willst, ja. [23:17] <mihi> aber du musst auch im guten alten WWW einen laufen lassen, um Inhalte bereitzustellen. [23:18] <Dellammo> warum? [23:18] <dm> Hmmm, vielleicht sollte ich eine P2P-App für I2P bauen. [23:18] <jrand0m> eine Filesharing-App über i2p wäre der Hammer. [23:18] <dm> ja, sorry, Filesharing. [23:19] <moi> ich denke, es wäre möglich, dass jemand einen OpenNap-Server in Verbindung mit i2ptunnel betreibt [23:19] <jrand0m> ja. [23:19] <jrand0m> (obwohl ein natives i2p p2p eine bessere Performance hätte) [23:19] <mihi> aber die Downloads werden schwierig. [23:20] <mihi> keine Möglichkeit, zum richtigen Host zu gelangen, da alle localhost sind ;) [23:20] <dm> Warten wir erst mal, bis wir PING über i2ptunnel laufen sehen. [23:20] * Dellammo ist verwirrt – reden wir über einen Proxy, der nicht i2ptunnel ist und mit dem man auf Webserver zugreifen kann, die intern im i2p Netzwerk sind, indem man '(Link: http://i2p/')http://i2p/' eintippt? [23:20] <jrand0m> vielleicht einfach ein schlichter FTP-Client, der für i2p ausgelegt ist? [23:20] <dm> (nicht wörtlich ping) [23:20] <mihi> jrand0m: FTP braucht 2 Ports... [23:20] <jrand0m> ausgelegt, um über i2p zu laufen. [23:21] <jrand0m> eine allgemeine Dateiübertragungs-App, nicht speziell das FTP-Protokoll [23:21] <mihi> dann ist es kein FTP. [23:21] <mihi> ATalk ;) [23:21] <jrand0m> (unter Ausnutzung größerer Nachrichtengrößen) [23:21] <dm> Kampf der Weisen! [23:21] <jrand0m> heh [23:21] <moi> Dellammo: im Moment musst du für jede Website/Destination, die du besuchen willst, einen i2ptunnel erstellen. Wir denken darüber nach, einen Proxy-Server zu verwenden, der für jede Site dynamisch einen i2ptunnel aufbaut. [23:22] <jrand0m> (so ungefähr) [23:22] <jrand0m> du wirst nicht spezifisch einen i2ptunnel verwenden wollen. [23:22] <jrand0m> du wirst das i2ptunnel-Protokoll verwenden und Nachrichten direkt senden wollen, nicht über TCP/IP-Sockets. [23:23] <jrand0m> mihi> irgendeine Vorstellung, wie lange es dauern würde, die Protokoll-Funktionalität aus i2ptunnel herauszulösen, damit andere Apps Daten an einen i2p tunnel senden können? *** mihi is mihi@anon.iip (mihi) *** on channels: #iip-dev #iip #headlines #german #freenet-opn #freenet #fredisdead #frazaa @#fiw #anonymous *** on irc via server anon.iip (Official IIP ) *** mihi has been idle 3 minutes, signed on at Thu Jan 01 01:00:00 1970 *** mihi-backup is ~mihi@anon.iip (mihi) *** on channels: #iip-dev *** on irc via server anon.iip (Official IIP ) *** mihi-backup has been idle 12 minutes, signed on at Thu Jan 01 01:00:00 1970 [23:25] <mihi> gibt es da überhaupt umfangreiche Protokoll-Funktionalität? I2PTunnelRunner kann so wie er ist verwendet werden. [23:25] <mihi> du musst nur die Client-Klasse an deine Bedürfnisse anpassen. [23:25] <jrand0m> hmm, nicht wirklich - i2ptunnelRunner verwendet einen Socket [23:26] <jrand0m> das ist eine reine Java-App, die eine Nachricht ("HTTP GET /\n\n") erzeugen und an einen ausgehenden I2PTunnel senden will [23:27] <jrand0m> wir wollen den Client, der den Proxy kontaktiert, nicht auf einen neuen Port umleiten, um sich mit dem neu instanziierten I2PTunnel zu verbinden (da es keinen Weg gäbe, für Links von dieser Site wieder zurückzuwechseln) [23:28] <jrand0m> aber vielleicht wäre es einfach, I2PTunnelRunner auf die Verwendung eines InputStream umzustellen (alles, was er nutzt, ist socket.getInputStream) ... [23:28] <jrand0m> aber dann brauchen wir immer noch die Listening-Seite [23:28] *** Signoff: mihi (Ping timeout) [23:28] <jrand0m> d'oh [23:28] * jrand0m hofft, dass der Backup nicht gleich rauspingt... [23:28] <dm> der Backup wird auch sterben, pass auf! [23:29] <mihi-backup> ;) [23:29] <jrand0m> w00t [23:29] <mihi-backup> [23:25] <jrand0m> hmm, nicht wirklich - i2ptunnelRunner verwendet einen Socket [23:29] <mihi-backup> [23:25] <mihi> ups, stimmt. und ihr wollt das komplett ohne Sockets machen? [23:29] <mihi-backup> [23:25] <mihi> dann bleibt von i2ptunnel nicht viel Code übrig. Das meiste ist fürs Handling der Sockets. [23:29] <mihi-backup> [23:26] <mihi> am besten beim Protokoll bleiben und es selbst implementieren (baue die Messages w/ the static method in i2ptunnel.java) [23:29] <mihi-backup> [23:28] <mihi> HTTP bräuchte nicht so viele Threads. Lass einfach einen Reader über die eingehende Nachricht laufen, bis ein doppeltes Return kommt, und schick dann dein Zeug raus. [23:30] <jrand0m> ah 'k. danke [23:30] <jrand0m> moi> tu sabes? [23:30] <mihi-backup> bezüglich Umschalten von I2PTunnel auf einen InputStream. Wozu? Du bekommst darauf nichts mehr, nachdem du die Anfrage geparst hast. [23:31] * moi denkt [23:31] <dm> toi thinks [23:31] <mihi-backup> vergiss einfach den Tunnelrunner. ;) [23:31] <jrand0m> stimmt, ich dachte nur daran, dass I2PTunnel und der HTTP-Proxy denselben Code verwenden - I2PTunnel würde socket.getInputStream() nutzen, der HTTP-Proxy würde new ByteArrayInputStream("GET / \n\n".getBytes()) verwenden [23:31] *** mihi (mihi@anon.iip) has joined channel #iip-dev [23:32] * moi muss das später im Detail durchgehen [23:32] <mihi-backup> aber das wird dazu führen, dass der Runner ein "Connection closed" sendet, wenn der String gesendet ist. [23:32] <mihi-backup> da der Stream endet. [23:32] <jrand0m> genau, das ist normales HTTP [23:33] <mihi-backup> vergiss den Runner einfach, sagte ich ;) [23:33] <jrand0m> 'k [23:33] <mihi-backup> jrand0m: nein. Die Verbindung wird geschlossen, wenn die Antwort da ist, nicht wenn die Frage raus ist. [23:33] <jrand0m> ach ja [23:33] <jrand0m> ;) [23:36] <jrand0m> cool, moi, wir können das später durchgehen. [23:36] <jrand0m> ok, das war Tagesordnungspunkt 2). Jetzt zu 3) [23:36] <moi> ok [23:37] <jrand0m> 3) phttprelay [23:37] <jrand0m> phttp relay ist eine Reihe von Servlets, die in einer .war-Datei verpackt sind [23:38] <jrand0m> es läuft out of the box auf Windows / der Sun-JVM, aber ich musste Jetty hacken, damit es mit Kaffe läuft [23:38] <mihi> make .peace not .war [23:39] * jrand0m stöhnt [23:39] <dm> man kann .war-Dateien ohne einen J2ee Server ausführen? [23:39] <dm> gut zu wissen. [23:39] <jrand0m> .war-Dateien laufen in jedem Servlet-Container - tomcat, apache w/ mod_jk, jetty, etc [23:40] <jrand0m> wir werden wollen, dass ein paar Leute das auf Maschinen mit öffentlich erreichbaren IP-Adressen laufen lassen, aber sie sind nur für Leute nötig, die keine öffentlich erreichbaren Adressen haben (wie ich) [23:41] <mihi> welche Ports musst du umleiten, wenn du ohne das durch ein nat willst? [23:41] <jrand0m> die Implementierung ist ebenfalls sehr rudimentär - es braucht Limits dafür, für wie viele router es relayt, wie viele Nachrichten es puffert, wie lange, bevor es ein Timeout gibt, etc [23:41] <jrand0m> nur den I2NP TCP port [23:41] <jrand0m> (oder den I2NP UDP port) [23:41] * mihi weiß nicht, ob sein nat UDP forwarding erlaubt [23:42] * jrand0m weiß auch nicht, ob mihis nat das tut [23:43] <jrand0m> im Moment ist zum Beispiel mein Laptop nur über PHTTP erreichbar, und der router meines Servers ist über PHTTP, TCP und UDP erreichbar. wenn mein Laptop eine Verbindung zum router des Servers über TCP aufbaut, kann er Nachrichten über TCP senden. aber wenn mein Laptop das nicht zuerst tut, muss der Server Nachrichten über PHTTP senden [23:44] <jrand0m> der Code liegt in i2p/code/apps/phttprelay/ für alle mit Servlet-Erfahrung, die an einer kleinen App herumhacken wollen [23:45] <jrand0m> (es sollte auch transparent mit https sowie normalem http funktionieren) [23:45] <jrand0m> ich werde das PHTTP-Protokoll ganz bald dokumentieren. :) [23:45] *** Signoff: mihi (Ping timeout) [23:45] <jrand0m> ok, das war’s zu Punkt 3) phttprelay [23:45] <jrand0m> 4) i2ptunnel [23:46] <jrand0m> wir haben schon eine Menge besprochen. Falls mihi (oder sonst jemand) noch etwas dazu hat, können wir zu 5) weitergehen [23:46] *** wilde (~anon@anon.iip) has joined channel #iip-dev [23:46] <jrand0m> hola wilde [23:47] <jrand0m> ok. damit zu Punkt 5 :) [23:47] <jrand0m> 5) Installation [23:48] <jrand0m> um 0.2 rauszubekommen und darüber hinaus, denke ich an ein paar ant scripts. [23:48] <jrand0m> oder sollten wir ein anderes Open Source Installation system verwenden? [23:48] <jrand0m> hat jemand Erfahrungen / Meinungen dazu? [23:49] <Dellammo> hmm [23:50] <jrand0m> Ant hat den Vorteil, dass es mit dem Build-System vereinheitlicht ist, plattformunabhängig ist und headless laufen kann. [23:50] <wilde> hey [23:50] <jrand0m> aber es erfordert Ant (was Java erfordert). und es hat keine GUI [23:51] <Dellammo> mir fallen viele Installationsprogramme für windows ein... ich weiss nicht wie viele gpl sind [23:51] <jrand0m> ja, ich habe eine lizenzierte InstallAnywhere Enterprise installation, aber das ist schlecht für open source [23:51] <jrand0m> NSIS ist open source, hat aber so seine Eigenheiten. [23:51] <dm> dumme Frage: ist ant in java enthalten? [23:52] <jrand0m> nö. [23:52] <jrand0m> oh, obwohl wir ein GCJ'ed ant verteilen KÖNNTEN [23:52] <dm> alles klar, dann muss es mit eclipse gekommen sein. [23:52] <jrand0m> (zu nativen Code kompiliert) [23:52] <jrand0m> definitiv dm. [23:52] <jrand0m> apache macht ant (ant.apache.org) und es ist apache lizensiert. [23:52] <jrand0m> oh, igitt. [23:52] * jrand0m hat gerade den Satz gelesen, den ich geschrieben habe) [23:53] <jrand0m> gpl ist nicht apl freundlich, laut der FSF [23:53] <jrand0m> wir können ant wahrscheinlich nicht vertreiben. [23:53] <dm> können wir nicht einfach ein script? was muss getan werden damit es installiert wird? [23:53] <jrand0m> aber wir können es benutzen. [23:53] <jrand0m> gar nicht viel. ein skript ist ok. [23:53] <jrand0m> aber wollen wir eine .bat und eine .sh, etc. [23:54] *** shardy (~shardy@anon.iip) has joined channel #iip-dev [23:54] <dm> was umfasst eine installation, ein paar fragen? [23:54] <jrand0m> einen java installer zu schreiben um die installation plattformunabhängig zu machen ist übertrieben, also sollten wir idealerweise ein bestehendes installationssystem benutzen [23:54] <jrand0m> ja, ein paar Fragen [23:54] <jrand0m> die Installationsziele, die ich vorsehe: [23:54] <Dellammo> bekommen wir ein schickes neues logo? wer arbeitet daran? [23:54] <jrand0m> install-router [23:55] <jrand0m> install-www-tunnel, install-www-proxy, install-sdk, install-cvs-tunnel, update-seednodes [23:55] <moi> warum nicht InstallAnywhere verwenden? wenn der code offen ist ist das was zählt [23:55] * jrand0m denkt, DU bist Dellammo :) [23:55] <jrand0m> InstallAnywhere ist nicht open source. [23:55] * Dellammo macht sich an die Arbeit [23:56] <dm> ein skript würde wahrscheinlich reichen im moment, aber ich denke man sollte vorausplanen. [23:56] <jrand0m> (kostet etwa 4k euro / sitz) [23:56] <jrand0m> richtig. also für morgen schreibe ich wahrscheinlich einfach ant scripts, aber wir müssen uns ein system anschauen [23:56] *** Signoff: wilde (Ping timeout) [23:56] <jrand0m> wenn also jemand dabei helfen kann, wäre das klasse :) [23:57] <dm> ah okay, ich dachte an shell scripts. [23:57] <moi> einige der package manager könnten das bei den linux installs machen [23:57] *** wilde (~anon@anon.iip) has joined channel #iip-dev [23:57] <jrand0m> verschiedene installer für unterschiedliche plattformen zu verwalten ist eine PITA [23:59] <dm> java installer? Warum ist es eine PITA? [23:59] <jrand0m> ein java installer wäre großartig [23:59] <mihi-backup> pain in the a**e [23:59] <mihi-backup> ups, sorry... [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> einen maßgeschneiderten installer in java zu schreiben ist möglich, aber es ist bevorzugt ein existierendes framework zu benutzen. aber wenn du dich freiwillig meldest einen maßgeschneiderten installer zu schreiben unterstütze ich dich! [00:00] <dm> mihi hat gerade einen epileptischen Anfall. [00:00] * mihi-backup verpasst dm mit einer großen Forelle ein paar Schellen [00:00] <dm> Weißt du was... [00:01] <dm> Wenn du irgendwann Zeit hast, die genauen Schritte für eine Installation aufzuschreiben, schreibe ich einen java installer. [00:01] <mihi-backup> dm: lies das ant script ;) [00:01] <jrand0m> word dm. sobald ich das ant ding am laufen habe dokumentiere ich’s für dich [00:01] <dm> fair genug, wir werden sehen ob ich das ant script verstehe sobald es da ist. [00:02] *** Signoff: wilde (Ping timeout) [00:02] <Dellammo> jrand0m, i2p I2P i^2p or I^2P ? [00:02] * jrand0m hat ein paar Kritzeleien mit einem großen I, einer 2 und einem großen P, alle übereinandergelegt... [00:03] <Dellammo> hmm [00:03] *** wilde (~anon@anon.iip) has joined channel #iip-dev [00:03] *** mihi (~mihi@anon.iip) has joined channel #iip-dev [00:03] <jrand0m> ok, das war 5) Installation [00:03] <jrand0m> 6) iip-Feature-Wunsch [00:04] <jrand0m> jemand kam hier rein mit der Bitte um automatisches Nickdiebstahl-Erkennen [00:04] <jrand0m> im Grunde: Wenn jemand einen Nick registriert hat, kann niemand diesen Nick behalten, es sei denn, er ist identifiziert [00:04] <jrand0m> nop oder sonstwer, der iip dev gemacht hat - Gedanken? [00:04] * jrand0m findet, das wäre ein großartiges Feature [00:05] * Dellammo zeichnet ein Illuminati-Auge mit einem Verbotsschild (wie beim Rauchverbot) darüber [00:05] <jrand0m> heh [00:05] <dm> Vielleicht mache ich auch ein I2P logo... für den gui teil meines installers ;) [00:05] *** Signoff: wilde ((null)) [00:05] <Dellammo> lasst uns alle welche machen, damit wir nicht an einem miesen logo hängenbleiben [00:05] <mihi> jrand0m: frag mids - er pflegt trent. [00:06] <mihi> der trent source ist übrigens in cvs [00:06] <Dellammo> das logo ist der wichtigste teil jeder aktivität [00:06] <jrand0m> definitiv Dellammo. [00:06] * dm entstaubt Corel Draw... [00:06] <dm> Mann ich liebe Corel Draw. [00:07] <jrand0m> ok, das war’s zu 6) [00:07] <jrand0m> 7) ??? [00:07] <jrand0m> irgendwelche Fragen / Gedanken / Frisbees/ Zehennägel? [00:07] <dm> Gedanke: Hoffe es funktioniert. [00:08] <jrand0m> heh [00:08] * jrand0m auch. [00:09] <mihi> jrand0m: mach weiter so! [00:09] <dm> ja, weiter so. [00:09] <jrand0m> gute Arbeit? du hast den Code offensichtlich nicht gesehen ;) [00:09] <dm> Liebe deinen Code, außer den blendenden Unterstrichen. [00:09] <dm> blinding...bleeding..etc.. [00:09] <jrand0m> heh, Instanzvariablen haben _, sodass wir nie this.var = var; machen müssen [00:10] <jrand0m> ok... 68 Minuten... wenn ich das noch eine Minute länger hinauszögern kann... [00:10] <jrand0m> w00t [00:10] * jrand0m *baf*t das Meeting.