Das Kefk Network Wiki befindet sich im Testbetrieb.


YaCy

Aus Kefk.

Wechseln zu: Navigation, Suche
YaCy
Entwickler: Michael Christen
Aktuelle Version: 0.51
(21. März 2007)
Betriebssystem: Plattformunabhängig (dank JavaJRE/J2SE)
Kategorie: SuchmaschineProxy
Lizenz: GPL
Deutschsprachig: ja
Website: yacy.net

YaCy (von Yet another Cyberspace) 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.

Dabei kann jeder Peer-Betreiber im YaCy-Netz suchen, und wenn er möchte zum Index beitragen, indem er einen Webcrawler losschickt, oder einfach alle Seiten, die er besucht über den YaCy-Proxy indexieren lassen. Wenn nun irgendein anderer Peer im YaCy-Netzwerk eine Suche startet, kann er alle Seiten finden, die andere Peers indiziert haben, die zum Zeitpunkt der Suche online sind. Durch das dezentrale Prinzip ist YaCy ausfallsicher.

Inhaltsverzeichnis

Vorteile & Nachteile

Vorteile

  • Die mit YaCy aufgebaute globale Suchmaschine ist 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 Filterung (und gar evtl. 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 erschliessen kann.

Nachteile

  • Da YaCy für eine Suchanfrage viele andere Peers kontaktieren muss, dauert die Suche länger als bei herkömmlichen Suchmaschinen.
  • Im Moment sind nur wenige Peers vorhanden, so dass weniger Ergebnisse gefunden werden als bei großen Suchmaschinen.
  • Da nicht jeder Peer den gesamten Index speichern kann, kann es durch Ausfall oder Abschaltung einzelner (großer) Peers zu Beinträchtigungen des Gesamtindex kommen. Dieser Nachteil ist um so stärker je weniger Peers sich aktiv am YaCy-Netzwerk beteiligen.

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 das normale Interface erreichbar. Weitere Subdomains kann der User selber anlegen, indem er einen Ordner mit dem Subdomainnamen 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.

Technik

Das Programm basiert auf einem Webserver, der zugleich ein caching-Proxy ist. Über den Webserver kann man auf das User-Interface 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-Domains, die über den Proxy verfügbar sind.

Indexverteilung

Anders als bei Datei-Tauschbörsen muss das Ergebnis bei einer P2P-Suchmaschine sofort da sein. Um das zu gewährleisten, nutzt YaCy einen Distributed Hashtable (DHT). 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. 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)

Weblinks

Wikipedia
Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort YaCy, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation.
Persönliche Werkzeuge