Diese Seite wurde zuletzt im August 2010 aktualisiert und bezieht sich auf die Routerversion (I2P-Version) 0.8.
<h3>Allgemeines</h3>
I2P ist auf Zusatzprogramme (<i>Plugins</i>) vorbereitet und sorgt dadurch nicht nur für eine unkomplizierte Installation zusätzlicher I2P-Anwendungen, sondern erleichtert auch dem Programmierer die Arbeit.
<p>
Es gibt mittlerweile Zusatzprogramme zum dezentralen Mailverkehr und für Blogs, IRC-Klienten, verteilte Datenspeicherung und mehr.
<p>
Die Vorteile für I2P-Nutzer und Anwendungsprogrammierer sind:
<ul>
<li>
Einfache Verteilung von Anwendungen
<li>
Macht die Entwicklung neuer Funktionalität und das Einbinden neuer Bibliotheken möglich, ohne dass sich die Größe der i2pupdate.sud erhöht
<li>
Einfacher Zugang zu großen oder spezialisierten Anwendungen, die keine Chance auf Aufnahme in das I2P-Basispaket haben
<li>
Kryptographisch signierte und überprüfte Anwendungen
<li>
Die automatische Aktualisierung von Anwendungen - genau wie beim I2P-Router.
<li>
Bei Bedarf ein separates Erstinstallations- und Aktualisierungspaket, um die Größe der zu ladenden Aktualisierungspakete klein zu halten
<li>
Ein-Klick-Installation von Anwendungen. Der Benutzer muss nicht mehr die Dateien wrapper.config und clients.config manuell bearbeiten.
<li>
Trennung von Anwendungsverzeichnissen und dem Installationszerzeichnis $I2P
<li>
Automatische Prüfung der I2P-Version, Java-Version und bestehender Anwendungsversion
<li>
Automatisches Hinzufügen eines Links zu der Anwendung in der Routerkonsole.
<li>
Automatischer Start von Anwendungen und automatische Anpassung des Java-Klassenpfads, ohne Neustart von I2P
<li>
Automatisches Hinzufügen und Start von Webanwendungen in der Jetty-Instanz der Routerkonsole
<li>
Erleichtert den Aufbau von Programmsammlungen („App Store“)
<li>
Ein-Klick-Deinstallation
<li>
Sprach- und Gestaltungspakete für die Konsole
<li>
Detaillierte Informationen über Anwendungen in der Routerkonsole
<li>
Auch Nicht-Java-Anwendungen werden unterstützt
</ul>
<h4>Benötigte I2P-version</h4>
0.7.12 oder höher
<h4>Installation</h4>
Um ein Zusatzprogramm zu installieren und zu starten, muss der Installationslink (Endung .xpi2p) kopiert und unten auf der Seite <ahref="http://127.0.0.1:7657/configclients.jsp#plugin">configclients.jsp in der Routerkonsole</a> eingefügt werden. Dann ist auf „Zusatzprogramm installieren“ zu klicken.<br/>
Nachdem ein Zusatzprogramm installiert und gestartet ist, erscheint in den meisten Fällen ein entsprechender Link im Übersichtskasten in der Routerkonsole (oben links).
<p>
Um ein Zusatzprogramm auf die neueste Version zu bringen, klickt man einfach auf den Knopf „Aktualisieren“ auf der Seite
Weiterhin wird ein Blick in die Quelltext bereits bestehender Zusatzprogramme empfohlen.
Manche Zusatzprogramme wurden speziell als Beispielprogramme geschrieben.
<p>
<b>Programmierer gesucht!</b>
Zusatzprogramme eignen sich gut, um sich besser mit I2P vertraut zu machen oder neue Funktionalitäten zu realisieren.
<h3>Einstieg</h3>
Um aus einer bestehenden Anwendung ein Zusatzprogramm zu erstellen, ist das Skript makeplugin.sh aus dem
<ahref="http://stats.i2p/cgi-bin/viewmtn/branch/head/browse/i2p.scripts/plugin/makeplugin.sh">Zweig i2p.scripts in Monotone</a> nötig.
<h3>Bekannte Probleme</h3>
Beachte: Im Router laufende Zusatzprogramme unterliegen <b>KEINEN</b> weiteren Sicherheitsmechanismen - sie sind weder untereinander noch vom Router abgeschirmt.
<ul>
<li>
Aktualisierungen eines Zusatzprogramms auf neue Versionen werden nicht erkannt, wenn das Zusatzprogramm Jar-Dateien (keine War-Dateien) enthält und es bereits läft.
In dem Fall ist ein Neustart des Routers nötig, weil der Klassencache geleert werden muss und das im laufenden Betrieb nur mit Tricksereien geht.
<li>
Die automatische Aktualisierung und Prüfung auf neue Versionen ist nicht implementiert.
<li>
Der Stoppknopf wird auch dann angezeigt, wenn es gar nichts zu stoppen gibt.
<li>
Zusatzprogramme, die in einer eigenen JVM laufen, legen ein Verzeichnis namens logs in $CWD (also dem Arbeitsverzeichnis) an.
<li>
Im Urzustand sind als einzige Signaturschlüssel die von jrandom und zzz enthalten (dieselben Schlüssel wie die für die Routeraktualisierung). Neue Signierer werden automatisch hinzugefüt und der neue Signaturschlüssel automatisch akzeptiert - es gibt keine zentrale Signaturschlüsselverwaltung.
<li>
Beim Löschen eines Zusatzprogrammes wird das Verzeichnis nicht immer gelöscht, vor allem unter Windows.
<li>
Wird ein Zusatzprogramm, das mit Pack200 komprimiert ist und Java 1.6 benötigt, unter Java 1.5 installiert, so erscheint die Fehlermeldung „Zusatzprogramm ist korrupt.“
<li>
Gestaltungs- und Übersetzungszusatzmodule sind ungetestet.
<li>
Das automatische Starten lässt sich nicht immer deaktivieren.