90 lines
4.7 KiB
HTML
90 lines
4.7 KiB
HTML
{% extends "_layout.html" %}
|
|
{% block title %}I2P Software Update Specification{% endblock %}
|
|
{% block content %}
|
|
Diese Seite wurde zuletzt im September 2010 aktualisiert und bezieht sich auf die Routerversion (I2P-Version) 0.8.
|
|
<h3>Übersicht</h3>
|
|
<p>
|
|
I2P setzt ein einfaches, aber sicheres System zur automatischen Softwareaktualisierung ein.
|
|
Die Routerkonsole lädt in regelmäßigen Abständen eine Datei mit Neuigkeiten rund um I2P von einer konfigurierbaren URL.
|
|
Für den Fall, dass der Server nicht erreichbar ist, ist eine Ersatz-URL fest einprogrammiert.
|
|
</p><p>
|
|
Der Inhalt der Neuigkeitendatei wird auf der Eingangsseite der Routerkonsole angezeigt.
|
|
Zusätzlich enthält die Datei die neueste I2P-Versionsnummer.
|
|
Wenn die Versionsnummer höher als die Routerversion ist, wird dem
|
|
Benutzer angezeigt, dass eine neue Version verfügbar ist.
|
|
|
|
</p><p>
|
|
Wenn der Router entsprechend eingestellt ist, lädt er die neue Version
|
|
herunter und installiert sie ggf. auch gleich.
|
|
</p>
|
|
|
|
<h3>Format der Neuigkeitendatei</h3>
|
|
<p>
|
|
Die Datei news.xml kann die folgenden Elemente enthalten:
|
|
</p>
|
|
<pre>
|
|
<i2p.news date="$Date: 2010-01-22 00:00:00 $" />
|
|
<i2p.release version="0.7.14" date="2010/01/22" minVersion="0.6" />
|
|
</pre>
|
|
|
|
<p>
|
|
Elemente können in XML-Kommentaren eingeschlossen werden, wenn sie nicht im Browser angezeigt werden sollen.
|
|
Die Elemente <tt>i2p.release</tt> und <tt>version</tt> sind Pflicht. Alle anderen sind optional und werden derzeit nicht verwendet.
|
|
</p><p>
|
|
Der Nachrichtenquelle wird nur insoweit vertraut, als sie angibt, ob eine neue Version verfügbar ist.
|
|
Die Aktualisierungs-URL, die Prüfsumme und alle anderen Informationen werden daraus nicht bezogen.
|
|
</p>
|
|
|
|
|
|
<h3>Format der Aktualisierungsdatei</h3>
|
|
<p>
|
|
Die digital unterschriebene Aktualisierungsdatei ist eine Zip-Datei mit einem vorangestellten, 56 Byte langen Vorspann. Als Dateiname ist <tt>i2pupdate.sud</tt> üblich.
|
|
Der Vorspann enthält:
|
|
<ul>
|
|
<li>
|
|
Eine 40 Byte lange <a href="common_structures_spec.html#type_signature">DSA-Signatur</a> und
|
|
</li><li>
|
|
Eine 16 Byte lange UTF8-Zeichenkette, die die I2P-Version angibt und falls nötig am Ende mit Nullen aufgefüllt wird.
|
|
</li></ul>
|
|
</p><p>
|
|
Die Signatur deckt nur die Zip-Datei, nicht den Versionsvorspann ab.
|
|
Die Signatur muss auf einen der fest in den Router einprogrammierten <a href="common_structures_spec.html#type_SigningPublicKey">Öffentlichen DSA-Schlüssel</a> der I2P-Projektverantwortlichen passen.
|
|
</p><p>
|
|
Beim Versionsvergleich wird [0-9]* als Hauptversion bzw. Unterversionen und '-', '_' und '.' als Trennzeichen interpretiert; alle anderen Zeichen werden ignoriert.
|
|
</p>
|
|
|
|
<h3>Laden und Installation</h3>
|
|
<p>
|
|
Der Router lädt die Aktualisierungsdatei mit Hilfe des eingebauten HTTP-Klienten und -Proxys von einer URL in einer konfigurierbaren I2P-URL-Liste.
|
|
Es sind mehrere URLs fest einprogrammiert.
|
|
Der Router überprüft, ob die Version in der Aktualisierungsdatei neuer als die installierte Version ist. Die Signatur wird selbstverständlich auch überprüft.
|
|
</p><p>
|
|
Die Zip-Datei wird im Verzeichnis <tt>$I2P</tt>, d.h. im I2P-Grundverzeichnis installiert.
|
|
</p><p>
|
|
Neuere Routerversionen unterstützen die Pack200-Komprimierung.
|
|
Dateien im Zip-Archiv, die auf .jar.pack oder .war.pack enden, werden selbsttätig in eine Jar- bzw. War-Datei dekomprimiert.
|
|
Aktualisierungsdateien, die Pack200-Dateien enthalten, haben üblicherweise die Endung ".su2".
|
|
Pack200 verkleinert die Aktualisierungsdateien um ca. 60%.
|
|
</p>
|
|
|
|
|
|
<h3>Zukünftige Verbesserungen</h3>
|
|
<ul><li>
|
|
Der Router könnte die neueste Versionsnummer mit einer HEAD-Anfrage ermitteln.
|
|
Dadurch würde verhindert, dass statt der neuen die alte Version heruntergeladen und installiert wird, weil der Aktualisierungsserver noch nichts von der neuen Version mitbekommen hat.
|
|
</li><li>
|
|
Wenn irgendwann ein neues Format für die Aktualisierungsdatei festgelegt wird, sollte die DSA-Signaturschlüssellänge erhöht werden und die Signatur die Versionsnummer einschließen.
|
|
Eine Versionsnummer für das Dateiformat wäre auch erwägenswert.
|
|
</li><li>
|
|
Das I2P-Netzwerk wird früher oder später für Aktualisierungen über HTTP zu groß werden.
|
|
Mit dem eingebauten Bittorrent-Klient, I2PSnark, kann dann die Aktualisierung verteilt durchgeführt werden.
|
|
Mit der Arbeit daran wurde 2009 begonnen; diese ruht aber, bis die Funktionalität benötigt wird.
|
|
</li><li>
|
|
Der Router-Aktualisierungsmechanismus ist Teil der (Web-) Routerkonsole.
|
|
Eine Aktualisierung von Routern, die in Kleingeräten laufen und keine Routerkonsole haben, ist zur Zeit nicht möglich (außer natürlich von Hand).
|
|
</li></ul>
|
|
|
|
|
|
|
|
{% endblock %}
|