10.Vorlesung - Prof. Dr. Christian Baun
Transcription
10.Vorlesung - Prof. Dr. Christian Baun
Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud 10.Vorlesung Cluster-, Grid- und Cloud-Computing Hochschule Mannheim Dr. Christian Baun wolkenrechnen@gmail.com 30.11.2011 Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 1/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Wiederholung vom letzten Mal Grid-Computing Definitionen Klassifikation Unterscheidungen Middleware-Systeme UNICORE Globus Toolkit gLite XtreemOS dCache Grid-Projekte EGEE EGI D-Grid Grid-Computing vs. Cloud-Computing Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 2/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Heute Peer-to-Peer (P2P) Grundlagen Einsatzgebiete Zentralisiertes P2P Napster Pures bzw. reines P2P Gnutella Version 0.4 Hybrides P2P Gnutella Version 0.6 FastTrack BitTorrent Verteilte Hashtabelle Bitcoins P2PTV Wuala P2P und Cloud Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 3/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Peer-to-Peer – Grundlagen Ein Peer-to-Peer-System ist ein Verbund gleichberechtigter Knoten Knoten werden als Peers bezeichnet Knoten machen sich gegenseitig Ressourcen zugänglich Jeder Knoten ist gleichzeitig Client und Server Geeignet, um dezentral organisierte Arbeitsumgebungen aufzubauen Andy Oram A Peer-to-Peer system is a self-organizing system of equal, autonomous entities (peers) which aims for the shared usage of distributed resources in a networked environment avoiding central services. Schreibweise Eine einheitliche Schreibweise existiert nicht. Häufig wird Peer-to-Peer auch P2P oder Peer-2-Peer (mit oder ohne Bindestriche) geschrieben Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 4/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Einsatzgebiete von Peer-to-Peer Austausch von Daten (File Sharing) Überwiegender Einsatz als Tauschbörsen Ziel: Verteilung großer Datenmengen möglichst schnell an viele Benutzer Problem von Urheberrechtsverletzungen Zukünftige Verbesserungen sind besonders im Bereich der Anonymisierung zu erwarten Anwendungen: BitTorrent, Napster, Gnutella, Kazaa, Overnet Kommunikation und Zusammenarbeit Instant Messaging Systeme für Textnachrichten und Chat Sicherer und anonymer Datenaustausch (Freenet) Kostengünstige und hochverfügbare Groupware (Groove) Anwendungen: ICQ, AIM, MSN, Jabber, Freenet, Groove, usw. Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 5/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Napster Napster war der Pionier des File-Sharing Entwickelt von Shawn Fanning (Student in Boston) Aktiv von Juni 1999 bis Juli 2001 Napster war zentralisiertes P2P Napster enthielt zentralisiertes Indexing Clients laden ihre Dateiliste auf den Napster-Server Clients befragen den Index-Server und erhalten eine vollständige Anbieterliste Datenaustausch erfolgte unmittelbar zwischen den Peers Ab Dezember 1999: Massive juristische Probleme mit der Musikindustrie und Künstlern 2001: Napster hat 77 Millionen Benutzer Juli 2001: Napster wird abgeschaltet Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 6/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Napster (Häufiges Bild aus jenen Tagen. . . ) Bildquelle: Wikipedia Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 7/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Client-Server im Vergleich zu zentralisiertem P2P Was sind die Vor-/Nachteile von zentralisiertem P2P im Vergleich zu Client-Server? Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 8/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Vor- und Nachteile von zentralisiertem P2P Vorteile: Peers kommunizieren direkt miteinander Server hat nur wenige Aufgaben Sehr gute Erweiterbarkeit Jeder weitere Peer verursacht nur wenig Last auf dem Server Ausfall einzelner oder mehrerer Peers kann dem Netzwerk und der Verfügbarkeit der Dienste nichts anhaben Zentralisierte Dienste bieten eine hohe Leistung Zentralisierter Dienst ist ein bekannter Einstiegspunkt Neue Peers können leicht Teil des Systems werden Nachteile: Server verursachen Kosten (Strom, Stellfläche, Administration,. . . ) Ohne die zentralisierten Dienste funktioniert das System nicht Zentralisierte Dienste sind immer ein Angriffspunkt Juristische Angriffsfläche Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 9/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Gnutella Entwickelt von Justin Frankel und Tom Pepper bei Nullsoft (Winamp) Quellcode unter der GNU General Public License (GPL) März 2000: Erste Version Grund für die Entwicklung Steigende Probleme von Napster 1999/2000 Klagen der Musikindustrie Napster verwendete Server zur zentralisierten Indexierung Zentrale Server machen angreifbar! Ziel: Entwicklung einer Alternative, die ohne Server auskommt AOL – Eigentümer von Nullsoft – zog die Software zurück Aber wenn der Quellcode schon mal unter der GPL freigegeben ist. . . Bekannte Clients: LimeWire, Morpheus, Shareaza, BearShare Gnutella ist heute ein Synonym für das Protokoll und weniger für eine spezielle Software Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 10/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Gnutella Protokoll Version 0.4 http://rfc-gnutella.sourceforge.net/developer/stable/index.html Alle Peers sind gleichberechtigte Teilnehmer im Netzwerk Es gibt keine zentralisierten Dienste (Server) =⇒ reines/pures P2P Jeder Peer muss mindestens einen weiteren Knoten kennen Jeder Peer verwaltet eine Liste von ihm bekannten Peers Jeder Peer ist mit maximal 5 weiteren Peers aktiv verbunden Suchaufträge sendet jeder Peer an alle mit ihm aktiv verbunden Peers Weiterleitungen nennt man Hops Maximal 7 Hops pro Suchauftrag Nachteile: Suchanfragen dauern sehr lange Netzwerk wird mit Suchanfragen geflutet Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 11/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Reines P2P im Vergleich zu reinem P2P P2P ohne dedizierte Server bezeichnet man als reines oder pures P2P Was sind die Vor-/Nachteile von reinem P2P? Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 12/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Vor- und Nachteile von reinem/purem P2P Vorteile: Keine Abhängigkeit von Servern Peers kommunizieren direkt miteinander Keine zentralen Angriffspunkte System (Netzwerk) ist kaum zu zerstören Ausfall einzelner oder mehrerer Peers kann dem Netzwerk und der Verfügbarkeit der Dienste nichts anhaben Höhere Selbstbestimmung der Benutzer Bei Client-Server muss bei steigender Anzahl von Clients auch die Serverleistung steigen Kein Administrationsaufwand, da keine Server Nachteile: Schwieriger Einstieg Es muss mindestens ein Peer bekannt sein Suchanfragen sind eine starke Belastung für das Netzwerk Listen von Daten und Peers müssen verteilt werden (hoher Overhead) Beispiele für Reines P2P: Gnutella (Version 0.4) und Freenet Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 13/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Technische Dateils von Gnutella 0.4 (1) Das Protokoll von Gnutella 0.4 arbeitet mit TCP/IP-Verbindungen Verbindungsaufbau Als Verbindungsanfrage sendet der neue Client: GNUTELLA CONNECT/0.4\n\n Will der gewünschte Peer antworten, sendet er: GNUTELLA OK\n\n Danach können Gnutella-Nachrichten ausgetauscht werden Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 14/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Technische Dateils von Gnutella 0.4 (1) Aufbau von Gnutella-Nachrichten: Identifikation (16 Byte) Descriptor ID. Identifikation des sendenden Peers Funktionscode (1 Byte). Payload Descriptor. Kann sein: 0x00 0x01 0x40 0x80 0x81 = = = = = Ping (Existenz anderer Knoten erkunden) Pong (Antwort auf eine Ping-Nachricht) Push (Dateien herunterladen) Query (Suchen im Gnutella-Netzwerk) Query Hit (Antwort auf eine Query-Nachricht) TTL (1 Byte). Gibt an wie viele Hops ein Paket machen darf Wird bei jedem Schritt im Netzwerk um 1 dekrementiert Ist der Wert 0, wird die Nachricht verworfen. Hops (1 Byte). Zähler für die Hops Wird bei jedem Schritt im Netzwerk um 1 inkrementiert Datenlänge (4 Byte). Payload Length. Länge der Nutzdaten in Bytes Bestimmt, wo die Nachricht aufhört und eine neue anfängt Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 15/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Nachrichten von Gnutella 0.4 (1) Das Protokoll Gnutella 0.4 kennt 5 Nachrichten Ping Pong Query QueryHit Push Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 16/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Nachrichten von Gnutella 0.4 (2) Die Existenz anderer Knoten wird durch die Ping-Nachricht erkundet Ping enthält keine weiteren Informationen Hat ein Knoten eine Ping-Nachricht empfangen, kann er mit einer Pong-Nachricht antworten Die Antwort (Pong-Nachricht) enthält folgende Felder: Port und IP-Adresse des antwortenden Peers Anzahl der Dateien, die öffentlich heruntergeladen werden können Summe aller Kilobytes der verfügbaren Dateien Die Query-Nachricht dient zum Suchen im Gnutella-Netzwerk Die Query-Nachricht enthält folgende Felder: Kleinste Download-Bandbreite (in KB/sec), die der anfragende Peer akzeptieren will (0 für jede beliebige Bandbreite) Suchzeichenkette, meist Dateinamen, die Wildcards * enthalten dürfen Quelle: http://krum.rz.uni-mannheim.de/inet-2004/sess-404.html Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 17/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Nachrichten von Gnutella 0.4 (3) Die QueryHit-Nachricht enthält die Antwort auf eine Query-Nachricht Die QueryHit-Nachricht enthält folgende Felder: Anzahl der Dateien, für die die Anfrage zutrifft Port und IP-Adresse des antwortenden Peer Download-Bandbreite (in KB/sec), die der antwortenden Peer bieten kann (≥ der verlangten Download-Bandbreite) Für jede gefundene Datei: Index, Dateigröße in KB und Dateiname Information, ob sich der antwortende Peer hinter einer Firewall befindet Identifikation des antwortenden Peers Vendor Code zur Unterscheidung verschiedener Gnutella-Implementierungen. z.B. BEAR = BearShare, GNUC = Gnucleus, LIME = LimeWire, RAZA = Shareaza, MRPH = Morpheus Hat ein Peer keine passenden Dateien, erzeugt er keine QueryHit-Nachricht Quelle: http://krum.rz.uni-mannheim.de/inet-2004/sess-404.html Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 18/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Transport von Dateien bei Gnutella 0.4 Zum Transport von Dateien verwendet Gnutella das HTTP 1.0 Protokoll Die HTTP-Verbindung wird unabhängig vom Gnutella-Netzwerk direkt zwischen Client und Server aufgebaut Die IP-Adresse und Portnummer steht in der QueryHit-Nachricht HTTP GET wird verwendet, um eine Datei, die durch eine QueryHit-Antwort spezifiziert ist, herunterzuladen GET / get / < Index in QueryHit >/ < DateiName >/ HTTP /1.0\ r \ n Connection : Keep - Alive \ r \ n Range : bytes =0 -\ r \ n User - Agent : Gnutella \ r \ n \r\n Der antwortende Peer (Server) sendet die Datei via HTTP HTTP 200 OK \ r \ n Server : Gnutella \ r \ n Content - type : application / binary \ r \ n Content - length : xxx \ r \ n \r\n < xxx Bytes Dateiinhalt > Problem: Was ist, wenn sich der Server hinter einer Firewall befindet? Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 19/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Nachrichten von Gnutella 0.4 (4) Die Push-Nachricht dient dem Herunterladen von Dateien, wenn der Server sich hinter einer Firewall befindet Die Push-Nachricht enthält folgende Felder: Identifikation des anbietenden Peers (Empfänger der Nachricht) Port und IP-Adresse des anfragenden Peers Index der gewünschten Datei Anders als bei HTTP GET, bei dem der Client die TCP/IP-Verbindung zum Server aufbaut, baut hier der Server die Verbindung zum Client auf Der Server schickt einen GIV-Header GIV < Index >: < PeerID >/ < DateiName >\ r \ n Darauf stellt der Client seine HTTP GET-Anfrage GET / get / < Index >/ < DateiName >/ HTTP /1.0\ r \ n ... HTTP 200 OK \ r \ n ... Quelle: http://krum.rz.uni-mannheim.de/inet-2004/sess-404.html Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 20/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Weiterleitung (Routing) von Gnutella-Nachrichten (1) Für jede Nachricht wird das TTL-Feld dekrementiert (erniedrigt) Ist der Wert des TTL-Felds 0, wird die Nachricht verworfen Für jede Nachricht wird das Hops-Feld inkrementiert (erhöht) Erkennt der Peer, dass eine Nachricht innerhalb eines (kurzen) Zeitraums, erneut eingetroffen ist, verwirft er die Nachricht Dient zur Schleifenerkennung (Loop Detection) Eingehende Ping- und Query-Nachrichten werden mit einer Pong- bzw. einer QueryHit-Nachricht beantwortet Pong-Nachrichten enthalten die IP-Adresse QueryHit-Nachricht enthalten die IP-Adresse und eine Liste der Treffer Eingehende Ping- und Query-Nachrichten werden an alle Verbindungen (außer der eingehenden) weiter geleitet, falls der Wert von TTL > 0 ist Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 21/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Weiterleitung (Routing) von Gnutella-Nachrichten (2) Eingehende Pong- und QueryHit-Nachrichten werden nur auf der Verbindung weitergeleitet, von der die entsprechenden Ping- bzw. Query-Nachrichten kamen Andernfalls werden sie verworfen Push-Nachrichten werden nur in der Verbindung weitergeleitet, von der eine entsprechende QueryHit-Anfrage beantwortet wurde Andernfalls werden sie verworfen Quelle: http://krum.rz.uni-mannheim.de/inet-2004/sess-404.html Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 22/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Reines P2P hat Grenzen Netzwerkbelastung von reinem P2P lässt das System bei einer hohen Anzahl von Peers unbenutzbar werden Langsam Netzwerkoverhead hoch Alternative: Zentralisierte Dienste mit dedizierten Servern Nicht erwünscht Alternative: Hybrides Peer-to-Peer Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 23/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Hybrides P2P: Gnutella Protokoll Version 0.6 Unterscheidung der Knoten in Blattknoten (Leaf Nodes) und Ultrapeers Jeder Blattknoten ist mit maximal 3 Ultrapeers verbunden Jeder Ultrapeer ist mit maximal 16 weiteren Ultrapeers und 16 Blattknoten verbunden Jeder Suchauftrag macht nur maximal 4 Hops Neues Protokoll: Query Routing Protocol (QRP) – Suchanfragen Leitungsprotokoll Kurzfassung des QRP Jeder Blattknoten schickt seinem Ultrapeer eine Liste der Namen innerhalb der Dateinamen der angebotenen Dateien Suchanfragen werden nur an Peers weitergeleitet, bei denen die Liste der Namen erfolgversprechend ist Die Ultrapeers tauschen die Namenslisten untereinander aus Hybrides P2P realisiert eine Art dynamischen, zentralisierten Dienst Vorteile von reinem P2P bleiben erhalten Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 24/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Gnutella: Ultrapeers und Blattknoten Quelle: Jörg Eberspächer und Rüdiger Schollmeier. First and Second Generation of Peer-to-Peer Systems (2005). LNCS 3485 Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 25/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud FastTrack (Protokoll von KaZaA) Das FastTrack-Protokoll basiert auf dem Gnutella Protokoll 0.6 Supernodes agieren als vorübergehende Indexserver für langsamere Peers Skalierbarkeit des Netzwerks wird dadurch erhöht Ablauf: In der Client-Software ist eine Liste von IPs einiger Supernodes enthalten Client versucht eine Verbindung mit diesen bekannten Supernodes herzustellen Wurde ein Supernode erreicht, ruft der Client die Liste von derzeit aktiven Supernodes ab Client sucht sich einen Supernode aus, dem er eine Liste der angebotenen Dateien hochlädt und über den er sämtliche Suchanfragen stellt Der Supernode kommuniziert mit weiteren Supernodes, um Suchanfragen der Clients zu erfüllen Wurde eine gesuchte Datei gefunden, baut der Client eine direkte Verbindung zur Quelle auf, und die Datei wird über HTTP übertragen Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 26/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Peer-to-Peer (File-Sharing) Netzwerke – kleine Auswahl Peer-to-Peer Netzwerk Clients Ares Blubster FileSpree Filetopia Gnutella Ares Blubster FileSpree Filetopia AquaLime, BearShare, FileNavigator, FreeeWire, Gnucleus, LimeWire, Phex, Shareaza, Xolox Ultra Direct Connect, DC++. Koala DC eDonkey2000, eMule Morpheus, KaZaA, KaZaA Lite, Grokster, iMesh Napster, Shuban, File Navigator, Rapigator, Spotlight, StaticNap, SunshineUN, Swaptor, WinMX OpenNap Overnet, eDonkey2000, MLDonkey Piolet MinMX Freenet, Entropy, Frost Entropy, Frost, Freenet WASTE Direct Connect eDonkey2000 FastTrack OpenNap Overnet Piolet MinMX Freenet Entropy WASTE Quelle: http://www.umkc.edu/is/security/p2p_explanation.asp Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 27/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud BitTorrent System zur schnellen Verteilung großer Datenmengen Entwickelt von Bram Cohen Juli 2001: Erste Version Im System selbst kann man nicht nach Daten suchen Will ein Peer eine oder mehr zusammenhänge Dateien herunterladen, benötigt er die passende Torrent-Datei Enthält die IP-Adressen der Tracker, Dateigröße und eine Liste von Prüfsummen von Segmenten Torrent-Dateien sind nur wenige KB groß und werden überwiegend auf speziellen Webseiten gesammelt und angeboten (z.B. The Pirate Bay) Ein Tracker verwaltet für jeden Torrent eine Liste von Peers, die Teile der Datei besitzen Ein BitTorrent-Client erhält vom Tracker diese Liste Mit der Liste kann der Client (Peer) nun direkt bei den anderen Peers mit Teilen der gesuchten Datei anfragen Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 28/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud BitTorrent (2) Chunks: Segmente einer Datei Schwarm: Menge der Peers, die am gleichen Torrent interessiert sind Seeds: Peers, die den kompletten Torrent besitzen Diese Peers laden nichts mehr herunter, sondern verteilen lediglich Leechs: Peers, die noch nicht den kompletten Torrent besitzen Diese Peers laden von anderen Peers herunter Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 29/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud BitTorrent (3) Ist der Tracker nicht mehr verfügbar, ist die Torrent-Datei nutzlos Ohne funktionierenden Tracker kann keine aktuelle Liste mit Seeds und Leechs bezogen werden Mit Hilfe dieser Liste können die Leechs bei anderen Seeds und Leechs nach fehlenden Chunks anfragen Will man selbst etwas anbieten, muss man einen Tracker betreiben und die passende Torrent-Datei anbieten/verteilen Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 30/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud BitTorrent in Cloud-Infrastrukturen BitTorrent ist eine hocheffiziente Lösung zur Verteilung großer Datenmengen Ein Beispiel, wo große Datenmengen möglichst rasch übermittelt werden müssen, ist das Verteilen von Images auf die physischen Knoten in Cloud-Infrastrukturen Das CERN betreibt einen virtuellen Cluster auf Basis von OpenNebula Cluster wird mit bis zu 16.000 virtuellen Maschinen dynamisch erweitert Maximal 400.000 Rechenjobs können in annehmbarer Zeit vom LSF-Scheduler verarbeitet werden Verteilung der Images und Daten im Cluster am besten via BitTorrent Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 31/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud P2P Zusammenfassung Quelle: Jörg Eberspächer und Rüdiger Schollmeier. First and Second Generation of Peer-to-Peer Systems (2005). LNCS 3485 Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 32/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud BitTorrent nun auch ohne Tracker BitTorrent nun auch ohne Tracker 19.5.2005 Bram Cohen, bzw. mittlerweile die Firma BitTorrent Inc., hat eine neue Version der Peer-to-Peer-Software BitTorrent veröffentlicht, die ohne Tracker auskommt. Die Verteilung von Dateien über BitTorrent soll damit deutlich einfacher werden, schließlich kommt die Version 4.1.0, die als Beta vorliegt, ohne die entsprechende Server-Software aus. So ganz kommt BitTorrent dabei zwar nicht ohne Tracker aus, die neue Version macht aber jeden Client zu einem leichtgewichtigen Tracker. Ein Protokoll auf Basis des Kademlia-Algorithmus, das somit verteilte Hash-Tabellen (Distributed Hash Table, DHT) nutzt, erlaubt den Clients einen effizienten Austausch von Kontaktinformationen anderer Peers. Wer Dateien über BitTorrent verteilen will, hat dabei künftig die Wahl zwischen dem herkömmlichen System mit Tracker und einer Trackerless“-Variante. Festgelegt wird dies beim ” Generieren der Torrent-Datei, die die Download-Informationen enthält und beispielsweise über eine Webseite verteilt wird. (Jens Ihlenfeld) Quelle: http://www.golem.de/0505/38130.html Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 33/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Verteilte Hashtabelle – Distributed Hash Table (DHT) Datenstruktur, mit der die Speicherorte von Dateien in einem P2P-System gespeichert werde können Ziel: Dezentralisierte und effiziente Datenspeicherung und -lokalisierung Jeder Speicherknoten entspricht einem Eintrag in der Hashtabelle Positive Eigenschaften der DHT Selbstorganisation: Keine manuelle Konfiguration nötig Ausfall, Beitritt und Austritt einzelner Knoten wird verkraftet Skalierbarkeit: Das System funktioniert auch mit vielen Knoten Möglichst gleichmäßige Datenspeicherung über die vorhandenen Knoten Lastenverteilung: Gleichmäßige Verteilung der Schlüssel auf den Knoten Fehlertoleranz: Auch wenn Knoten ausfallen oder das System verlassen Robustheit: Auch wenn Knoten versuchen das System zu stören DHTs werden auch in großen verteilten Speicherlösungen wie Amazon Dynamo und in verteilten Suchmaschinen wie YaCy (http://yacy.net) verwendet Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 34/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Verteilte Hashtabelle – Distributed Hash Table (DHT) Man unterscheidet DHTs nach dem Speicherschema Direct Storage Die Daten werden direkt innerhalb der DHT abgelegt Nur für Daten <1 kB geeignet, da das System sonst unflexibel wird Indirect Storage In der DHT werden nur Verweise auf die Daten vorgehalten Bekannte DHT-Implementierungen sind Chord und Kademlia Bekannte Software die DHT verwendet: Aktuelle BitTorrent-Clients (u.a. Azureus, BitComet, KTorrent, rTorrent, µTorrent), eDonkey2000 Overnet, Freenet (anonymer Datenspeicher), LimeWire, MLDonkey (Overnet und Kademlia),. . . Schlüssel? Im Folgenden wird häufig von Schlüsseln gesprochen Ein Schlüssel kann so ziemlich allen Arten von Ressourcen zugewiesen sein Häufig sind Schlüssel Dateien oder Prozessen zugewiesen Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 35/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Streuwertfunktionen – Hashfunktionen Abbildung, die von einer größeren Eingabe eine kleinere Zielmenge (den Hashcode, Hashwert oder die Prüfsumme) erzeugt Der Name stammt vom englischen to hash = zerhacken“ ” Eine gute“ Hashfunktion liefert für unterschiedliche Eingaben auch ” unterschiedlichen Ausgabewerten Der Hashwert einer Datei ist mit einem Fingerabdruck vergleichbar Hashcodes verwendet man u.a. um Übertragungsfehler zu erkennen In der Kryptologie werden Hashfunktionen zum Signieren verwendet Bekannte (und gute“) Hashverfahren sind MD5 und SHA-1 ” Diese Verfahren sind praktisch kollisionsfrei =⇒ Die Wahrscheinlichkeit von doppelten Einträgen ist minimal MD5 erzeugt 128-Bit-Prüfsummen SHA-1 erzeugt 160-Bit-Prüfsummen $ md5sum f o l i e n _ c g c _ v o r l e s u n g _ 0 9 _ W S 1 1 1 2 . pdf 6 d56fd409d2a19108b465852847023c5 $ sha1pass f o l i e n _ c g c _ v o r l e s u n g _ 0 9 _ W S 1 1 1 2 . pdf $4$ZBzAMGff$inCNpYGkPnh3o9ES6mn106qnnbY$ Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 36/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Verteilte Hashtabelle – Kurzfassung Mit einer Hashfunktion werden den Ressourcen Schlüssel in einem linearen Wertebereich (Schlüsselraum) zugewiesen Den Schlüsselraum kann man sich als Ring vorstellen Die Ressourcen werden in den Schlüsselraum gehasht Ziel: Der Schlüsselraum soll möglichst gleichmäßig über die Knoten der Knotenmenge verteilt werden Vorgehen: Die Knoten werden in den Schlüsselraum des gleichen Rings gehasht Dafür ist ein eindeutiges Merkmal (z.B. die IP-Adresse) nötig Der für eine Ressource zuständige Knoten ist nun der Knoten, der ausgehend von der Ressource im Uhrzeigersinn am nächsten dran ist Fällt dieser Knoten aus, ist der im Uhrzeigersinn nächste erreichbare Knoten verantwortlich Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 37/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Verteilte Hashtabelle – Arbeitsweise von Chord Protokoll zur Implementierung eines verteilten Lookup-Service Ein Lookup-Service ist ein Dienst um Daten zu suchen Für jeden Knoten und jeden Schlüssel wird mit einer Hashfunktion (z.B. SHA-1) eine m-Bit (häufig 160 Bit) lange ID berechnet Es können sich maximal 2m Knoten im System befinden Die Knoten sind in einem Ring angeordnet =⇒ Chord Ring Ein Schlüssel k wird dem Knoten n zugewiesen, dessen ID ≥ der ID des Schlüssels k ist Dieser Knoten wird Nachfolger (Successor) von k genannt Chord bietet folgende Funktion: Finde für Schlüssel k den zuständigen Knoten n Das soll möglichst effizient geschehen n ist der Nachfolger (Successor) Schlüsselverteilung im Chord Ring Quelle: http://sarwiki.informatik.hu-berlin.de/Chord Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 38/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Arbeitsweise von Chord – Lineare Suche Einfachste Form der Suche nach einem Knoten: Lineare Suche Jeder Knoten n kennt dabei nur seinen Nachfolgeknoten n0 (Successor) Wird eine Suchanfrage an einen Knoten gerichtet, prüft dieser, ob sein Nachfolgeknoten für den angefragten Schlüssel zuständig ist Die Anfrage wird so lange an den jeweils nachfolgenden Knoten weitergereicht, bis das Ziel erreicht ist Voraussetzung: Jeder Knoten kennt seinen Nachfolgeknoten Das ist in einem Ring gegeben Aber: Die lineare Suche ist nicht effizient Länge des Suchpfades wächst linear zur Anzahl der Knoten Lineare Suche im Chord Ring Quelle: http://sarwiki.informatik.hu-berlin.de/Chord Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 39/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Arbeitsweise von Chord – Binäre Suche Skalierbare Form der Suche nach einem Knoten: Binäre Suche Dabei sind weitere Informationen über den Chord-Ring nötig Jeder Knoten verwaltet eine Tabelle mit Verweisen auf m Knoten m ist die Anzahl der Bits der verwendeten IDs Die Verweise nennt man Chord Finger und die Tabelle Fingertable Fingertable von Knoten n = 8 Eintrag 1 2 3 4 5 Start Knoten 9 10 12 16 24 11 11 14 17 1 Die Tabelle hat 5 Einträge, weil m die Länge der ID in Bit ist und m = 5 Finger im Chord Ring Der Start-Wert des i-ten Eintrags der Tabelle auf Knoten n ist n + 2i−1 Der Knoten-Wert des Eintrags zeigt auf den ersten Knoten, der auf n in einem Abstand von mindestens 2i−1 folgt Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 40/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Arbeitsweise von Chord – Fingertablle und Suchanfragen Aufbau der Fingertablle: Der letzte Eintrag der Tabelle zeigt auf einen Knoten, der mindestens eine halbe Umrundung des Chord-Rings entfernt liegt Der vorletzte Eintrag der Tabelle zeigt auf einen Knoten, der mindestens eine viertel Umrundung entfernt ist usw. Mit jedem Hop kann die Distanz zum Ziel halbiert werden Darum ist die maximale Pfadlänge einer Suchanfrage O(log N) Hops Bei einer Suchanfrage an Knoten n nach Schlüssel k wird zunächst der nächstgelegene Vorgänger des Schlüssels gesucht, den Knoten n kennt Dabei wird die Fingertablle von unten nach oben durchsucht, bis der erste Eintrag i gefunden wird, dessen Knoten nicht zwischen n und k liegt Der Eintrag i + 1 ist der nächstgelegene Vorgänger von k, den n kennt Die Suche wird mit Hilfe dieses Knotens fortgesetzt Das wiederholt sich, bis der Knoten gefunden ist, dessen Successor für k zuständig ist Quelle: http://sarwiki.informatik.hu-berlin.de/Chord Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 41/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Arbeitsweise von Chord – Beispiel Fingertablle von Knoten n = 8 Beispiel: Es wird eine Suchanfrage nach einem Schlüssel mit der ID 3 an Knoten 8 gerichtet Eintrag 1 2 3 4 5 Start Knoten 9 10 12 16 24 11 11 14 17 1 Die Tabelle hat 5 Einträge, weil m die Länge der ID in Bit ist und m = 5 Knoten 8 sucht den ihm nächstgelegenen, bekannten Vorgängerknoten von Schlüssel 3 (Knoten 1) und richtet die Anfrage an diesen Anmerkung: Man kann im Ring nicht rückwärts suchen! Knoten 1 stellt fest, dass sein Nachfolgeknoten (Knoten 4) für Schlüssel 3 zuständig ist Quelle: http://sarwiki.informatik.hu-berlin.de/Chord Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 42/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Arbeitsweise von Chord – Beispiel von Tanenbaum (1) Beispiel: Schlüssel 26 aus Knoten 1 auflösen Knoten 1 schaut in seiner Fingertabelle nach Schlüssel 26 26 ist größer als der Wert des letzten Eintrags (18) in der Fingertabelle Die Anfrage wird an Knoten 18 weitergeleitet Knoten 18 wählt Knoten 20, da Knoten 20 < Schlüssel 26 ≤ Knoten 28 Knoten 20 wählt Knoten 21, da Knoten 21 < Schlüssel 26 ≤ Knoten 28 Knoten 21 wählt Knoten 28, da dieser für Schlüssel 26 zuständig ist Die Adresse von Knoten 28 wird an Knoten 1 gesendet Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 43/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Arbeitsweise von Chord – Beispiel von Tanenbaum (2) Beispiel: Schlüssel 12 aus Knoten 28 auflösen Knoten 28 schaut in seiner Fingertabelle nach Schlüssel 12 Knoten 28 wählt Knoten 4, da Knoten 4 < Schlüssel 12 ≤ Knoten 14 Knoten 4 wählt Knoten 9, da Knoten 9 < Schlüssel 12 ≤ Knoten 14 Knoten 9 wählt Knoten 11, da Knoten 11 < Schlüssel 12 ≤ Knoten 14 Knoten 11 wählt Knoten 14, da dieser für Schlüssel 12 zuständig ist Die Adresse von Knoten 14 wird an Knoten 28 gesendet Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 44/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Arbeitsweise von Chord – Eintritt neuer Knoten (1) Will ein Knoten in den Ring eintreten, braucht er einen Einstiegspunkt In der Regel verwendet man bekannte Knoten (Well-Known-Knoten) Die ID des neuen Knotens wird berechnet Dafür wird die Hashfunktion üblicherweise auf die IP-Adresse oder MAC-Adresse angewendet Danach setzt der neue Knoten eine Suchanfrage am Einstiegsknoten ab Der neue Knoten sucht seinen Nachfolger Der neue Knoten setzt seinen Nachfolger-Zeiger Danach informiert er seinen Nachfolger über seine Existenz Der Nachfolger überprüft, ob die ID des neuen Knotens größer ist als die ID des alten Vorgängers und passt dann seinen Vorgänger-Zeiger an Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 45/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Arbeitsweise von Chord – Eintritt neuer Knoten (2) Bei der periodischen Ausführung des Stabilisierungsprotokolls erkennt der alte Vorgänger, das der neue Knoten sein Nachfolger ist und passt seinen Nachfolger-Zeiger an Danach informiert er den neuen Knoten, das er sein neuer Nachfolger ist Der neue Knoten passt darauf hin seinen Vorgänger-Zeiger an Der Ring ist nun wieder in einem stabilen Zustand Der neue Knoten muss noch seine Fingertabelle erstellen Dafür setzt der neue Knoten für jeden Eintrag eine Suche ab Einfacher ist es die Fingertabelle des direkten Nachfolgers zu kopieren Dessen Tabelle unterscheidet sich nur wenig von der des neuen Knotens Das Stabilisierungsprotokoll wird die Tabelle aktualisieren Die Korrektheit der Fingertabelle ist nur für die Dauer der Suche, nicht aber für die Korrektheit des Suchergebnisses ausschlaggebend Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 46/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Arbeitsweise von Chord – Stabilisierung (1) Das Stabilisierungsprotokoll hat 3 Aufgaben: 1 2 3 Neue Knoten im System bekannt machen Struktur des Rings erhalten Fingertabellen der Knoten aktualisieren Das Stabilisierungsprotokoll besteht aus drei Schritten und verwendet drei Funktionen 1 2 3 stabilize() =⇒ Nachfolger prüfen notifiy() =⇒ Vorgänger prüfen fix_fingers() =⇒ Fingertabelle aktualisieren In regelmäßigen Abständen (z.B. 30 Sekunden) wird das Stabilisierungsprotokoll durchgeführt Auch während der Stabilisierung und wenn Einträge in Fingertabellen falsch sind, funktioniert die lineare Suche im Ring Das Suchen geht dann nur langsamer Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 47/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Arbeitsweise von Chord – Stabilisierung (2) 1 stabilize() =⇒ Nachfolger prüfen Jeder Knoten prüft, ob er noch der Vorgänger seines Nachfolgers ist Ist das Ergebnis negativ, existiert ein neuer Knoten zwischen beiden Der neue Knoten wird zum Nachfolger Danach wird dem neuen Knoten via notifiy() mitgeteilt, das der aufrufende Knoten sein Vorgänger ist 2 notifiy() =⇒ Vorgänger prüfen Jeder Knoten überprüft, ob. . . der bisherige Vorgänger nicht mehr verfügbar ist oder die ID des aufrufenden Knotens zwischen der ID des bisherigen Vorgängers und der eigenen ID liegt In beiden Fällen, wird der aufrufende Knoten der neue Vorgänger 3 fix_fingers() =⇒ Fingertabelle aktualisieren Setzt für jeden Eintrag der Fingertabelle eine Suche nach dessen Start-Wert ab Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 48/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Bitcoins – Geld auf P2P-Basis Bitcoin ist elektronisches Geld, das dezentral erzeugt wird Die Menge an Bitcoins hat in der Software eine feste Obergrenze Der letzte Block (Nr. 6.929.999) aus dem Bitcoins generiert werden können, sollte um das Jahr 2140 generiert werden Dann bleibt die Gesamtzahl der Bitcoins bei ca. 21 Millionen stehen Aktuell (Stand Juli 2011) existieren ca. 6,7 Millionen Bitcoins Quelle: http://blockexplorer.com/q/totalbc Das Wachstum wird alle 4 Jahre halbiert Ein Bitcoin kann auf acht Dezimalstellen unterteilt werden Damit ist 0,00000001 BTC der kleinste Wert Die Anzahl existierender Bitcoins ergibt sich aus der Anzahl an Blöcken multipliziert mit dem Münzwert eines Blocks Der Münzwert für jeden der ersten 210.000 Blöcke beträgt 50 BTC Der Münzwert für jeden der nächsten 210.000 Blöcke ist 25 BTC Der Münzwert für jeden der nächsten 210.000 Blöcke ist 12,5 BTC, usw. Dadurch steigt die Anzahl der existierenden Bitcoins immer langsamer Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 49/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Bitcoins – Geldbeutel (Wallet-Datei) Jeder Benutzer der Bitcoin-Software erhält eine Wallet-Datei /home/Benutzername/.bitcoin/wallet.dat In dieser Datei befindet sich ein öffentlicher und ein privater Schlüssel Der öffentliche Schlüssel dient als Bitcoin-Adresse zum Senden und Empfangen von Bitcoins Der private Schlüssel autorisiert die Transaktionen Die Adressen enthalten keinerlei Informationen über seinen Besitzer Zum besseren Austausch gibt es eine lesbare Form von 33 Zeichen Jede neue Generierung eines Schlüsselpaares gleicht einem neuen Konto Somit kann jeder Benutzer theoretisch unendlich viele Konten besitzen Ein großer Vorteil von Bitcoin: Es fällt keine Transaktionsgebühr an Theoretisch wäre eine Überweisung von 0,00000001 BTC möglich Der Einfachheit halber hat man sich auf die zweite Stelle hinter dem Komma als kleinste, verträgliche Einheit geeinigt Guter Artikel: Florian Hofmann, Jörn Loviscach. Virtuelles Vermögen. c’t 17/2011. S.74-79 Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 50/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Bitcoins – Anonymität von Transaktionen (Überweisungen) Zahlungen sind bedingt anonym Eine Zahlungsadresse kann den Empfänger nicht identifizieren Die Anonymität ist vergleichbar mit herkömmlichem Bargeld Wurde eine Überweisung ausgeführt, erzeugt der Bitcoin-Client automatisch eine neue Bitcoin-Adresse Man sollte für jede Transaktion eine andere Adresse verwenden, damit es unmöglich wird, Geldbewegungen nachzuvollziehen Die Statusanzeige gibt Auskunft, mit wie vielen Peers man verbunden ist, wie viele Blöcke bereits abgearbeitet wurden und wie viele Überweisungen bisher getätigt bzw. entgegengenommen Bildquelle: http://kalingeling.wordpress.com/2010/12/19/bitcoin-tutorial/ wurden Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 51/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Bitcoins – Transaktionen (Überweisungen) Die Validierung der Überweisungen findet durch die Knoten statt Alle Transaktionen werden in Blöcken gespeichert und von allen angeschlossenen Clients blockweise ständig überprüft und bestätigt Jeder Client hat Zugriff auf den aktuellen und alle erzeugten Blöcke Der Client holt beim Start alle zwischenzeitlich erstellten Blöcke Zahlungen können durchgeführt werden, obwohl ein Client offline ist Abgesendete Transaktionen werden in den aktuell vom Netzwerk bearbeiteten Block geschrieben und von allen Clients überprüft Das verhindert doppelte Ausgaben Geht der Empfänger online, lädt er sich alle Blöcke aus dem Netz Taucht in einem der Blöcke eine ihm zugeordnete Adresse auf, und ist die damit verbundene Transaktion bereits von mehreren anderen Clients bestätigt worden, so schreibt er den Betrag dem eigenen Konto gut Der Kontostand wird erhöht, und die Transaktion in der Liste der Überweisungen (http://blockexplorer.com) aufgeführt Wurde die Transaktion noch nicht bestätigt, wird der Betrag unter Vorbehalt aufgelistet und erst dann gutgeschrieben, wenn mehrere Blöcke lang die Transaktion überprüft werden konnte Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 52/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Bitcoins erstellen/errechnen Ein Problem von Geld allgemein ist die initiale Verteilung von Guthaben Als neues Zahlungsmittel genießt Bitcoin anfangs kein Vertrauen Man kann Bitcoins u.a. via Paypal kaufen, aber wer will das schon Der Rücktausch wird von keiner Stelle garantiert Man kann Blöcke mit Bitcoins selbst erstellen/errechnen Bestandteile eines Blockes sind: Die Prüfsumme des vorherigen Blockes Alle in einem bestimmten Zeitraum durchgeführten Transaktionen Eine einmalig verwendete Sicherheitsnummer Um einen Block abzuschließen (zu lösen!), muss ein Bitcoin-Client eine vom System festgelegte Prüfsumme erraten (Brute Force!) Der Block wird als gelöst gekennzeichnet und ein neuer Block gestartet Der Client erhält als Belohnung den Wert des Blocks gutgeschrieben Man braucht fast 1 Jahr um mit einer CPU einen Block zu berechnen Mit Hilfe einer aktuellen GPU geht es mehr als 100 mal schneller Eine Möglichkeit ist Pool-Mining Mehrere Clients arbeiten zusammen und teilen sich den Erlös Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 53/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Was kann man mit Bitcoins machen Es existieren Dienstleister Bitcoins in e, $, oder Lindendollars tauschen Der Tauschkurs wird vom jeweiligen Dienstleister festgelegt Hier regelt sich der Markt selbst Eine Liste von Unternehmen und Dienstleistern, die Bitcoins akzeptieren findet sich hier: https://en.bitcoin.it/wiki/Trade Eine Auswahl: Dienstleister Angebot Webseite Mt. Gox Silk Road Wuala Bitcoin-Tauschbörse anonymer Marktplatz Onlinespeicher http://mtgox.com http://silkroadmarket.org http://wuala.com/bitcoin Gavin Andresen verschenkt 0,0001 BTC an an jeden Besucher: https://freebitcoins.appspot.com Satoshi Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008 http://www.bitcoin.org/bitcoin.pdf Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 54/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Gefahren/Probleme mit Bitcoins Auch ein Hacker-Geld bzw. Anarcho-Geld ist nicht frei von Angriffen Juni 2011: Symantec entdeckt einen auf Bitcoins spezialisierten Trojaner Infostealer.Coinbit sucht die Wallet-Dateien auf einem Rechner um sie zu stehlen Der Trojaner schickt die Dateien per E-Mail auf einen polnischen Server Von dort können sich die Cracker die Datei herunterladen und dann selbst nutzen Lösung: Die Wallet-Datei verschlüsseln Juni 2011 Einem Benutzer werden 25.000 BTC (Wert ca. e500.000) gestohlen 19.Juni 2011 Der Bitcoin-Tauschbörse Mt. Gox werden ca. 60.000 Zugangsdaten und Email-Adressen gestohlen und veröffentlicht Ergebnis: Es kam zu hohen Kursverlusten Zeitweise fiel der Wert eines BTC von $17.5 bis auf wenige Cent Verschiedene Tauschstellen setzten den Bitcoin-Handel kurz nach den Ereignissen bei Mt. Gox zeitweise aus Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 55/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Fernsehen über das Internet übertragen Das Verteilen von TV-Signalen über das Internet erzeugt hohe Kosten Ideal: Verteilung nach dem Gießkannenprinzip (Broadcasting) an alle Teilnehmer, Dabei ist die Bandbreite, die ein Kanal blockiert, von der Zuschauerzahl unabhängig Voraussetzung ist eine Multicast-fähige Netzwerkinfrastruktur auf dem kompletten Weg vom Anbieter bis zum Empfänger Das ist im Internet nahezu unmöglich Multicasting existiert bislang nur in geschlossenen IPTV-Systemen (z.B. T-Home) Realität im Internet: Anbieter müssen jedem Benutzer einen eigenen Datenstrom bereitstellen (Unicasting) bereitstellen Interessantes Konzept: Übertragung von Fernsehsignalen via P2P Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 56/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Fernsehen über P2P Beim P2P-Streaming leitet jeder Benutzer, während er seinen Datenstrom herunterlädt, gleichzeitig diesen Strom an einen oder mehrere andere Benutzer weiter Jeder Benutzer trägt zur verfügbaren Downstream-Bandbreite bei Das Verfahren skaliert sehr gut Je mehr Peers sich an der Verteilung beteiligen, desto besser ist die Verfügbarkeit und Zuverlässigkeit P2P-TV-Systeme sind quasi Echtzeit-Versionen von BitTorrent Will ein Benutzer einen bestimmten Kanal sehen, erfragt der Client beim Index-Server (Tracker) die Adressen der Peers, die den Kanal verbreiten Der Client stellt dann Verbindungen zu diesen Peers her, um das kontinuierliche Downstreaming einzuleiten Der Tracker speichert die Adresse des neu hinzugekommenen Peers als potenzielle Quelle für weitere Benutzer, die den Kanal anschauen möchten Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 57/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Fernsehen über P2P in der Realität – Zattoo Zattoo (japanisch für Gedränge, Gewühl, Gewimmel) http://zattoo.com Legales P2P-Streaming Client-Software für Linux, MacOS X und Windows Beim Verbindungsaufbau prüft der Dienst, in welchem Land sich der Benutzer befindet Wegen der Senderechte muss garantiert werden, dass Fernsehprogramme nur im jeweils zulässigen Territorium empfangbar sind Finanzierung über Werbung, die in Umschaltpausen eingeblendet wird Umschalten dauert ca. 5 Sekunden Bild ist ca. 20 Sekunden zeitverzögert Sommer 2009: Umstieg auf Web-Client Zattoo basiert nicht mehr auf P2P, sondern verwendet Flash-Streams =⇒ Bessere Qualität Bildquelle: http://freie-software.blogspot.com Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 58/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Fernsehen über P2P in der Realität – Joost Gegründet 2006 von Niklas Zennström und Janus Friis Beide sind die Gründer von Skype und Kazaa 2007: $45 Millionen Risikokapital Legales P2P-Streaming Angebot: Streaming von Sendern und einzelnen Filmen/Serien Problem: Ausstrahlungsrechte müssen für alle Länder regelmäßig neu verhandelt werden http://www.joost.com Client-Software für MacOS X und Windows Finanzierung über Werbung Dezember 2008: Wechsel zu einem ausschließlich Web-Seiten-basierten Dienst mit Flash Bildquelle: http://www.gizmodo.com.au Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 59/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Weitere ehemals bekannte Projekte, die gescheitert sind Babelgum http://www.babelgum.com P2P-Client von 2007 bis März 2009 Konzept ähnlich wie Joost Problem: Zu wenige hochwertige Inhalte Bildquelle: http://www.nettv.cc BBC iPlayer http://www.bbc.co.uk/iplayer/ Die BBC wollte ab 2003/4 mit einem auf P2P basierenden Client ihre Archive frei zugänglich machen Lange Entwicklungszeit Erst ab Oktober 2005 war der Dienst verfügbar Dezember 2008: Wechsel vom P2P-Modell zu HTTP-Downloads Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 60/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Existierende Projekte Miro Media Player http://www.getmiro.com Früher Democracy Player Freier P2P-Client (freie Software) Benutzer können automatisch Videos von abonnierten Kanälen herunterladen PPLive, QQlive und UUSee http://www.pplive.com http://live.qq.com http://www.uusee.com Proprietäre P2P-Systeme aus China Zielen alle primär auf den asiatischen Markt Von PPLive existieren deutsche und englische Versionen http://www.chip.de/downloads/PPLive_17375588.html Octoshape http://www.octoshape.com Proprietärer P2P-Client u.a. DW-TV (Deutsche Welle) verwendet Octoshape Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 61/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Gründe für das Scheitern von P2P-Streaming-Projekten (1) Benutzer können im Gegensatz zu Plattformen wie YouTube keine eigenen Videos hochladen Anbieter bieten ausschließlich professionelles Material an Das Material muss für jedes Land, in dem es empfangbar ist, lizenziert werden Ohne eine große Zahl von Benutzern haben die Anbieter keine starke Verhandlungsposition gegenüber den Rechteinhabern Ohne eine große Zahl von Benutzern haben die Anbieter keine Chance sich über Werbung zu refinanzieren Die Installation einer Client-Software nur zum Betrachten von Videoströmen ist in Zeiten von YouTube schwer vermittelbar Ein dedizierter Client muss für viele Betriebssysteme und Hardwareplattformen entwickelt und gepflegt werden Der Entwicklungsaufwand ist hoch Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 62/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Gründe für das Scheitern von P2P-Streaming-Projekten (1) Die Entwicklungen waren bislang meistens proprietär Ein offenes Protokoll kann besser optimiert werden, ist aber wegen der Rechte schwer vermittelbar Zeitverzögerungen beim Einschalten und Umschalten werden von den Benutzern als störend empfunden Diese Zeitverzögerungen sind aber prinzipiell nicht vermeidbar Uploadgeschwindigkeit der meisten Benutzer ist deutlich geringer als die Downloadgeschwindigkeit Besonders bei DSL ist die Uploadgeschwindigkeit häufig um den Faktor 1:10 oder sogar 1:20 niedriger Schränkt die Möglichkeiten der Weiterverteilung durch die Peers ein Lösungsmöglichkeit: Leistungsstarkes CDN zur Unterstützung der Verteilung CDN = Content Distribution Network Die Knoten des CDN agieren als Supernodes Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 63/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Wuala – Kombination aus P2P und Cloud (1) Wuala ist ein Dienst, der Onlinespeicher anbietet Entwicklung der ETH Zürich Seit März 2009 gehört Wuala zum Unternehmen LaCie Wuala nutzt eigene Server und ein P2P-Netzwerk aus Rechnern freiwilliger Benutzer, die lokalen Speicherplatz gegen Onlinespeicher tauschen möchten Über diese Ressourcen legt Wuala eine Art Speicher-Cloud Jeder Benutzer erhält kostenlos 1 GB Speicherplatz Möchte ein Benutzer mehr Speicherplatz, kann er diesen käuflich erwerben oder lokalen Speicherplatz im Tausch zur Verfügung stellen Bedingung für den Tausch: Der Computer, auf dem Wuala läuft, muss mindestens 4 Stunden pro Tag online sein Formel: lokaler Speicher ∗ Onlinezeit-Faktor = Onlinespeicher Beispiel: Ein Benutzer bietet 10 GB lokalen Speicher und sein Rechner ist 6 Stunden online, also 25% der möglichen täglichen Zeit =⇒ 10 GB ∗ 0, 25 = 2, 5 GB Onlinespeicher Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 64/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Wuala – Kombination aus P2P und Cloud (2) Benutzer können lokalen Speicherplatz von mehreren Rechnern freigeben, um selbst mehr Onlinespeicher zu erhalten Alle Daten werden vor dem Upload in die Wuala-Cloud fragmentiert und mit einem 128-Bit AES-Algorithmus verschlüsselt Fragmente werden redundant in der Wuala-Cloud verteilt Wuala sichert alle Fragmente mindestens einmal auf eigenen Servern in Europa Daten bleiben immer erreichbar, auch wenn alle P2P-Knoten offline sind Wer keinen lokalen Speicherplatz tauschen kann oder will, kann Onlinespeicher kaufen. Ab 10 GB für e19 pro Jahr Client-Software ist Freeware (nicht Open Source) und verfügbar für Linux, Mac OS X und Windows Neben der Java-Client-Software gibt es eine REST API Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 65/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Aktuellste Entwicklung bei Wuala Wuala bietet nur noch Online-Speicher in der Cloud an Mit dem Update auf sein neues Speichersystem Hirslanden“ streicht der Online-Speicher-Anbieter ” Wuala die Möglichkeit, eigenen, lokalen Speicherplatz gegen Online-Speicher einzutauschen. Bereits eingetauschter Speicherplatz kann laut der Ankündigung noch weitere zwölf Monate kostenlos genutzt werden, anschließend will Wuala den betroffenen Anwendern Rabatte beim Kauf einräumen. Zudem akzeptiert Wuala als Bezahlung für zusätzlichen Speicherplatz auch die virtuelle Währung Bitcoins. Das Unternehmen empfiehlt daher den bisherigen Speicherplatz-Tauschern, sich an der Generierung von Bitcoins zu beteiligen. Zu den weiteren Neuerungen zählen die Erweiterung des kostenlosen Speicherplatzes von bisher 1 auf 2 GByte, die Verschlüsselung mit AES-256, inkrementelles Hochladen, mehrere parallele Downloads sowie Dateigrößen von bis zu 100 GByte (Reiko Kaps) Quelle: c’t 2011, Heft 23, S.48 Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 66/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud P2P-Weg der verteilten Datenhaltung in Clouds Der P2P-Gedanke kann helfen, virtuelle Cluster mit gemeinsamem Datenbestand in EC2-kompatiblen Infrastrukturen aufzubauen Verschiedene Möglichkeiten der Cloud-basierten Datenspeicherung Instanzspeicher (blockbasiert, nicht persistent) EBS-Volumen (blockbasiert, persistent) S3-Buckets (objektbasiert, persistent) Es existieren auch Datenbankdienste Diese Dienste spiele hier keine Rolle. Sie sind primär für Spezialanwendungen geeignet, da sie tabellenorientiert arbeiten Block- und objektbasierte Speicherdienste sind universeller einsetzbar Ein EBS-Volumen kann immer nur an eine EC2-Instanz angehängt sein EBS-Volumen kann man mit verteilten Dateisystemen wie Ceph, GlusterFS, PVFS2 oder HDFS verbinden Diese Dateisysteme arbeiten vollständig verteilt (=⇒ P2P) Ceph, GlusterFS und HDFS bieten sogar interne Redundanz Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 67/68 Zentralisiertes, reines und hybrides P2P Verteilte Hashtabelle Bitcoins P2PTV P2P und Cloud Nächste Vorlesung Nächste Vorlesung: 7.12.2011 Dr. Christian Baun – 10.Vorlesung Cluster-, Grid- und Cloud-Computing – Hochschule Mannheim – WS1112 68/68