- Yacy
-
YaCy Aktuelle Version: 0.7
(14. Januar 2009)Betriebssystem: Plattformunabhängig (dank Java→JRE/J2SE) Kategorie: Suchmaschine, Proxy Lizenz: GPL Deutschsprachig: ja yacy.net YaCy (von Yet another Cyberspace, homophon zu engl. ya see) ist eine Suchmaschine, die nach dem Peer-to-Peer-Prinzip – kurz P2P – arbeitet. Dabei gibt es keinen zentralen Server, sondern alle Teilnehmer daran sind gleichwertig.
Jeder Peer-Betreiber kann im YaCy-Netz suchen und (optional) zum Index beitragen. Letzteres indem er einen Webcrawler losschickt oder einfach alle besuchten Seiten über den YaCy-Proxy indexieren lässt. Wenn nun irgendein anderer Peer im YaCy-Netzwerk eine Suche startet, kann er alle von anderen Peers indizierten Seiten finden, die zum Zeitpunkt der Suche online sind. Durch das dezentrale Prinzip ist YaCy resistent gegen Ausfälle.
Das Projekt YaCy wurde von Michael Christen im Jahr 2003 gegründet. [1]
Inhaltsverzeichnis
Vorteile & Nachteile
Vorteile
- Die mit YaCy aufgebaute globale Suchmaschine wäre praktisch ausfallsicher, da immer ein Teil des Netzwerks erreichbar sein wird.
- Die Internetnutzer sind durch YaCy als Suchmaschine unabhängig von Firmen, deren Ranking (das diese sich evtl. bezahlen lassen) und deren Zensur.
- Die Software ist Open Source, wurde unter der GNU General Public License veröffentlicht und ist kostenlos.
- Da die Indexierung über den Proxy am jeweiligen Client stattfindet, lassen sich somit Seiten aus dem Deep Web oder nicht öffentlichen Netzen (z.B. i2p) indexieren, die ein Crawler einer öffentlichen Suchmaschine wie z. B. Google nicht erschließen kann.
Nachteile
- Da YaCy für eine Suchanfrage andere Peers kontaktieren muss, dauert die Suche länger als bei herkömmlichen Suchmaschinen.
- Momentan sind nur relativ wenige Peers vorhanden, so dass weniger Ergebnisse gefunden werden als bei großen Suchmaschinen. Auch kann es durch den Ausfall oder die Abschaltung einzelner (großer) Peers zu weiteren Beeinträchtigungen kommen.
- Das YaCy-Protokoll funktioniert über einzelne HTTP-Requests, wodurch es eine höhere Latenz aufweist als UDP oder TCP mit dauerhaften Verbindungen.
- Die Suchanfragen werden zwar zentral nicht gespeichert, aber dafür können die durchsuchten Peers die Suchanfragen speichern. Zur verwendeten Hash-Funktion können mit einem Wörterbuch relativ einfach Hash-Listen erstellt werden.
- theoretisch könnten Spammer eigene Peers betreiben, welche Spam als Ergebnis zurückliefern. Mangels eines Trust-Modells könnte das noch nicht effektiv verhindert werden.
Das Programm
Das Herzstück der Suchmaschine ist anders als bei anderen Suchmaschinen nicht eine zentrale Seite, sondern ein Computerprogramm, das in Java geschrieben ist und daher auf fast allen Betriebssystemen läuft.
Gekoppelt mit dem P2P-System läuft ein Proxyserver, der automatisch die meisten weitergereichten Seiten indiziert. Dies findet allerdings nicht bei Seiten statt, denen via GET oder POST weitere Daten übergeben werden (z.B. Seiten in einem Login-Bereich). Somit ist sichergestellt, dass auch wirklich nur öffentlich zugängliche Daten indiziert werden.
Der Zugriff auf die Suchfunktionalität erfolgt über eben den lokal laufenden Server, in dem über eine gewohnte Suchmaske der Suchbegriff oder die Suchbegriffe eingegeben werden. Die Anzeige der Ergebnisse erfolgt hier wie gewohnt als HTML-Seite.
Weitere Funktionen
- YaCy bietet allen Nutzern der Proxyfunktion die Möglichkeit Peers über die Domain PEERNAME.yacy bzw. PEERHASH.yacyh zu erreichen. Unter www.PEERNAME.yacy kann der Nutzer eine Homepage hinterlegen, unter share.PEERNAME.yacy liegt ein Fileshare, und unter PEERNAME.yacy ist die normale Schnittstelle erreichbar. Weitere Subdomains kann der Benutzer selber anlegen, indem er einen Ordner mit dem Subdomain-Namen erstellt. Es handelt sich also um eine Art Dyndns.
- Unabhängig von der .yacy Domain, bietet YaCy Platz für eine Homepage und einen Fileshare, den man mit der aktuellen IP, oder einem Dyndns-Namen auch nicht-YaCy-Nutzern verlinken kann.
- YaCy hat eine eingebaute Nachrichtenfunktion, mit der man Textnachrichten (mit Wikicode zur Formatierung) und je nach Einstellung des Empfängers auch Dateien versenden kann.
- YaCy hat ein Wiki und einen Blog integriert.
- Es gibt eine Lesezeichenverwaltung, in dem öffentlich einsehbare und private Lesezeichen angelegt werden können.
- Es gibt die Möglichkeit für einzelne Bereiche definierte Blacklists anzulegen.
- Es existiert ein Opensearch interface. Jeder Peer stellt diesen unter http://<peer-address>:<peer-port>/opensearchdescription.xml zur Verfügung, beispielsweise http://sciencenet.fzk.de:8080/opensearchdescription.xml
Technik
Das Programm basiert auf einem Webserver, der zugleich ein caching-Proxy ist. Über den Webserver kann man auf die Benutzerschnittstelle zugreifen, um zu suchen oder den eigenen Peer zu verwalten. Der Proxy teilt seinen Code mit dem Crawler, das heißt alle besuchten Seiten, die nicht personalisiert sind werden automatisch im Index erfasst. Außerdem bietet das YaCy-Netz eigene YaCy-Domäne, die über den Proxy verfügbar sind.
Indexverteilung
Anders als bei Datei-Tauschbörsen muss das Ergebnis bei einer P2P-Suchmaschine sofort verfügbar sein. Um das zu gewährleisten, nutzt YaCy eine Verteilte Hashtabelle (VHT). Das heißt, dass alle erfassten URLs und Wörter an die Peers geschickt werden, deren Peerhash zum entsprechenden Wordhash oder Urlhash passt. Bei einer Suche funktioniert es genau andersherum: Es wird nur auf Peers gesucht, die ihrem Hash nach URLs für das Wort kennen können.
Dadurch muss nur ein Bruchteil der Peers bei der Suche kontaktiert werden, um trotzdem gute Ergebnisse zu bekommen.
Peertypen
YaCy unterscheidet vier verschiedene Arten von Peers:
- Virgin. Diese Peers kann man nicht finden, da ein Virgin-Peer keinerlei Kontakt zum Netz hat. Daher sieht man nur selber, wenn der Peer Virgin ist.
- Junior. Der Peer ist hinter einer Firewall. Andere können ihn als Junior oder potentiellen Peer sehen, sie erkennen allerdings nur, wann er sich das letzte Mal gemeldet hat, und haben keinerlei Möglichkeiten festzustellen, ob er noch online ist.
- Senior. Ein Senior kann von außen erreicht werden und ist ein vollwertiges Mitglied des YaCy-Netzes.
- Principal. Wie Senior, nur wird zusätzlich eine „Seedlist“ hochgeladen, die andere Peers zum Bootstrapping benutzen können.
Protokoll
Das Protokoll von YaCy besteht aus Text-Servlets, die der eingebaute Webserver unter /yacy/servletname.html bereitstellt. Andere Peers übermitteln via GET-Parametern Daten, und bekommen einen einfachen Text als Antwort, das genaue Format ist bei den Servlets unterschiedlich.
Bootstrapping
Beim Bootstrapping versucht YaCy das Netz mit den anderen Peers zu finden. Dazu wird zunächst nach einer Seedliste gesucht. In superseed.txt wird zunächst die URL einer Seedliste, die ein YaCy-Peer regelmäßig hochlädt, ausgesucht und diese dann heruntergeladen. In der seeds.txt stehen die Referenzen andere Peers, sodass Kontakt zum YaCy-Netz aufgenommen werden kann. Beim nächsten Start kann aus den bekannten Seeds gebootstrapt werden, und die Seedlisten sind nur nötig, wenn viele Referenzen nicht mehr gültig sind.
Literatur
- M. Christen: Peer-to-Peer: Eigenes Suchportal mit Yacy einrichten in iX 02/2008, S. 102 ff.
- M. Schlenker: Gemeinsam gegen Google in OpenSource, 01/2007, November 2006, S. 94-97
- J. Bager: Europäische Gegenströmung in c't, 2006/10, 2. Mai 2006, S.172-174 (Onlinetext)
- R. Sietmann: Wider die Monokultur. P2P-Strategien gegen die Suchmaschinen-Monopolisierung. in c't, 2005/16, 25. Juli 2005, S.52-53 (Onlinetext)
- M. Schwärze: Jedermanns Suchmaschine in: HAZ (Artikel als PDF 107kB)
- Michael Christen: YaCy - Peer-to-Peer Web-Suchmaschine in Die Datenschleuder, #84, 2005, S.54-57 (gesamtes Heft als PDF 1,7MB)
- Peter Schüler: Web-Erkundung per PC. In: c't. Eigener Webindex mit YaCy. Nr. 21, September 2008, ISSN 0724-8679, S. 180–185.
Siehe auch
- sciencenet: Eine p2p-Suchmaschine für Universitäten und Forschungseinrichtungen bzw. wissenschaftlichen Information. Sciencenet basiert auf YaCy-Technologie.
- Harvester42 Eine Meta-Meta Suchmaschine am KIT Karlsruhe, welche YaCy Technologie integriert.
Quellen
Weblinks
Wikimedia Foundation.