Entropy Logo

HOWTO

[Home]
[Einführung]
[Schnappschüsse]
[Downloads]
[CVS]
[Kompilieren]
[HOWTO]
[Anwendungen]
[P2P]
[Mc Eliece]
[Entropy]

[en][English]

Wie installiere ich Entropy?

Das hängt davon ab... Der einfachste Weg ist es, der Anleitung für den CVS Zugang zu folgen und anschließend der Anleitung für das Compilieren. Wenn Du kein CVS benutzen willst oder kannst, ist die zweite Wahl der Download des jeweils letzten tarballs mit den Quellen. Danach gilt dann ebenfalls die Anleitung für das Compilieren von Entropy.

Was mache ich nachdem alles compiliert ist?

Wirf eine Blick in die Datei entropy.conf-dist und mache eine Kopie davon nach entropy.conf. Dort änderst Du dann die Werte, wie Du sie brauchst. Wenn Du eine permanente IP oder eine (auch dynip) Hostnamen hast, solltest Du diesen bei nodename= in der entropy.conf eintragen. Es ist nicht zwingend notwendig, aber in bestimmten Situationen hilfreich, wenn ein Node einen Namen hat. Wichtig ist, daß die in der Zeile nodeport= angegebene Portnummer (37373 ist die Standardeinstellung) von außen erreichbar ist. Das bedeutet: wenn Du hinter einer Firewall bist und/oder einen NAT Server laufen lässt (network address translation), so müssen diese den eingestellten Port auf den Rechner weiterleiten, auf dem Entropy läuft. (Bekannt unter der Bezeichnung port forwarding).

Als zweites wirf einen Blick in die Datei seed.txt-dist und mache eine Kopie davon nach seed.txt. Dort entferne von einigen oder allen Zeilen der Form IP:Port oder Hostname:Port das Kommentarzeichen '#'. Es wäre zwar ausreichend, zunächst nur einen oder wenige bekannte Nodes einzutragen, da Entropy die IPs und Ports von Nodes auch innerhalb des Netzes überträgt, aber wenn der eine (oder die wenigen) in der seed.txt eingetragenen Nodes nicht erreichbar sein sollten, würdest Du dann garkeinen Kontakt bekommen. Ausnahme: Dein Node ist (mit Namen oder fester IP) auch bei anderen Nodes in der seed.txt eingetragen. Dann wird er, früher oder später, von diesen Nodes kontaktiert werden. Das wird aber bei einem neuen Node nie der Fall sein.

Und wie starte ich Entropy?

Das ist einfach: starte einfach das run.sh Shell Skript, das im tar-Archiv war oder beim CVS checkout heruntergeladen wurde. Genausogut kannst Du das übersetzen entropy starten mit einem Aufruf von entropy -v oder entropy --verbose, damit Du siehst, was geschieht.

Beim ersten Start von Entropy werden die Datastore Dateien angelegt. Dies dauert einige Zeit, abhängig von den in der entropy.conf eingestellten Werten für storesize= und auch storedepth=. Der nächste Start wird dagegen wesentlich schneller sein.

Wenn alles nötige vorhanden war, wir das run.sh Skript (oder das entropy Binary) wieder zur Kommandozeile zurückkehren und dabei zunächst sieben geforkte Prozesse hinterlassen (peer_threads, peer_bwlimit, peer_in, peer_out, client, proxy, news). Sobald wie Verbindungen zu anderen Nodes aufgebaut werden, wird es weitere Prozesse geben: einen für jede Verbindung. Das Maximum, das man erwarten kann, sind 7 + 64 Prozesse. Dabei sind maximal 32 eingehende und 32 ausgehende Verbindungen möglich.

Die Prozesse teilen sich einen ganzen Anteil des Speichers, entweder mittels mmap (Standardeinstellung) oder mit SysV shared memory: shm; das ist eine meist etwas langsamere und weniger effektive Alternative für alte Systeme, die kein mmap implementiert haben. Aktuell ist der Bereich des shared memory zwischen Entropy-Prozessen 16MB groß. Jeder Prozess braucht auch noch etwas eigenen, nicht geshareten (privaten) Speicher. Ich würde also nicht empfehlen, Entropy auf einem System mit nur 32MB RAM (und wenigstens doppelt soviel Swap) laufen zu lassen. Du kannst es versuchen, aber ich gebe keine Garantie.

Wie halte ich das an?

Das ist ebenfalls simpel. Starte einfach das Skript stop.sh (also z.B. mit ./stop.sh) oder rufe Entropy mit dem kill Parameter auf: entropy -k oder entropy --kill. Ausführlicher geht es auch noch mit entropy -v -k; dabei wird dann die liste der gekillten Prozesse ausgegeben.

Unter bestimmten Umständen kann es passieren, daß ein Entropy Prozess länger im Speicher bleibt. Das ist zwar in den letzten Versionen bei mir nicht mehr vorgekommen, aber es mag immer noch mal passieren. Um das zu überprüfen kann man ein ps ax|grep entropy eingeben. Wenn ein entropy Prozess auch nach etlichen Sekunden noch in der Prozessliste steht, kannst Du mit einem killall -9 entropy auch diese loswerden. Das Kommando schickt ein SIGKILL an alle Entropy Prozesse, und das überleben sie nicht.

Wie ändere ich die Größe des Datastore?

Nicht. Wenigstens nicht bei der Standardeinstellung für den monolithischen Datastore (= eine oder wenige, große Dateien bestehend aus vielen kleinen Chunks). Die andere Datastore Implementierung, die mit STORE_TREE=1 im Makefile ausgewählt werden kann, unterstützt eine Änderung der Größe von einer Entropy Session zur nächsten. Wegen der Natur dieser Implementierung (Blocksizes des Filesystems) wird es immer kleine Differenzen zwischen der eingestellten und der tatsächlichen Größe geben (können). Auch stellt die STORE_TREE=1 Implementierung des Datastore bei großen Datenmengen erhebliche Anforderungen an das Caching des Filesystems, weswegen es nicht als Default ausgewählt wurde. Entropy prüft bei dieser Implementierung des Datastore alle 5 Minuten, ob die konfigurierte Größe überschritten wurde und löscht dann die ältesten oder schlecht passende Dateien.

Wenn Du Dich für die Standardeinstellung entscheidest, den monolithischen Datastore, solltest Du Dir zuerst überlegen, wieviel Festplattenplatz Du für Entropy spendieren willst und kannst. Dann gilt es noch auszuwählen, ob Du lieber wenige sehr große oder mehrere etwas kleinere Dateien willst. Mehrere kleinere haben den Vorteil, daß die Zeiten in denen je eine Datei von einem Prozess gelockt wurde kürzer sind (average locking time). Andererseits öffnet Entropy Dateien immer wieder und eine größere Anzahl Dateien bedeutet so eine höhere Auslastung des Filesystem-Caches für Dateien.

Nach diesen vielen Details hier mein Vorschlag: Wenn Du weniger als 1GB für Entropy bereitstellen willst, nimm die Standardeinstellung. Wenn Du bis zu 8GB bereitstellen willst, nimm 512MB Dateien (setze also storedepth= Anzahl der GB mal zwei; storesize=4GB -> storedepth=8). Für alles darüberliegende, wähle 1GB Dateien, setze also storedepth= auf die Anzahl der GB in storesize=. Entropy kümmert sich aber auch selbst darum, daß die maximale Dateigröße von (knapp über) 1GB pro Datei nicht überschritten wird, indem es zur Not einen höheren Wert als den für storedepth= konfigurierten wählt.


Entropy Forum - Entropy Chat - Entropy Homepage (WWW)