reklama

SyncNet: První webový prohlížeč pro BitTorrent Wide Web

Představte si, že budete surfovat na stránkách, které nehostuje žádný klasický server, ale sama komunita na tisících počítačů. Uvažuje o tom The Pirate Bay a umí to první prototyp SyncNet.

Loni na podzim začaly na internet poprvé prosakovat informace, podle kterých provozovatelé známého bittorrentového katalogu The Pirate Bay uvažují o tom, že opustí veřejný internet a začnou svůj katalog surfařům zprostředkovávat naprosto novým a opravdu unikátním způsobem.

Namísto webových stránek umístěných na klasickém internetovém serveru, který může kdejaká autorita snadno blokovat a odstřihnout, by programátoři vyvinuli prohlížeč, který se nepřipojí k žádnému centrálnímu webovému serveru, ale namísto toho si katalog Pirátské zátoky stáhne přímo z bittorrentové sítě. Pokud se skrze populární P2P mohou šířit soubory, proč by to nešlo i s webovými stránkami?

Klepněte pro větší obrázek
The Pirate Bay v P2P systému: Hlavní server (seed) nabízí rychlý přístup ke kopii webu, kterou si mohou klienti stáhnout. Pokud však tuto autoritu třeba úřady zablokují, její místo zastoupí samotná propojená komunita.

Pokud by někdo něco podobného opravdu vymyslel a uvedl do praxe, takto hostovaný web by byl téměř nezničitelný. Poskytovatel internetu by nemohl zablokovat jeho IP adresu a doménu, poněvadž by web nic podobného neměl. Byl by hostovaný na stovkách a tisících počítačů se stovkami a tisíci IP adres. Namísto domény z centrálně spravovaného DNS systému by byl dostupný skrze unikátní klíč, který odpovídá právě jednomu balíku dat v bittorrentové síti, nebo skrze nějaký vlastní DNS systém, který by fungoval zcela nezávisle na klasických registrátorech domén.

Jedinou zbraní proti podobnému systému by byla snad jen masivní analýza DPI – tedy deep packet inspection – a blokování celé bittorrentové komunikace jako takové.

BitTorrent Sync

Na papíře podobná myšlenka zcela decentralizovaného World Wide Webu vypadá přinejmenším zajímavě, ale jak by to fungovalo v praxi? The Pirate Bay zatím nic nepředstavil, se svou troškou do mlýna však přispěchal jistý Jack Minardi, který pracuje v harvardské laboratoři Lewis Lab, kde se zabývá vývojem nových 3D tiskáren a jejich ovladačů.

Minardimu se myšlenka decentralizovaného webu zalíbila natolik, až si napsal vlastní prototyp webového prohlížeče, který ke stahování stránek používá právě BitTorrent. Program se jmenuje SyncNet a nejzajímavější je na něm to, že se skládá jen z několika málo poměrně stručných zdrojových kódů v Pythonu.

Minardiho webový prohlížeč je natolik jednoduchý hlavně díky tomu, že k veškerému přenosu dat používá aplikační rozhraní již existujícího programu BitTorrent Sync. O něm jsme už na Živě.cz psali, v rychlosti tedy zrekapituluji, co všechno umí.

BitTorrent Sync je ve vší stručnosti něco jako Dropbox, data ze složky na počítači se ovšem nesynchronizují na webový disk, ale skrze P2P spojení rovnou na jiný spuštěný počítač. Vše se realizuje skrze bittorrentový protokol a ke spárování dvou počítačů se používá unikátní textový klíč – secret.

Klepněte pro větší obrázek Klepněte pro větší obrázek
BitTorrent Sync a jeho webové rozhraní (k dispozici je i desktopová aplikace). Znám secret složky na cizím počítači, takže mohu nastavit synchronizaci se složkou na tom svém. Na druhém obrázku je patrné, že kopie této složky je na čtyřech různých počítačích (seedech), takže může být synchronizace rychlejší a více jištěná.

DHT

Pokud si tedy na počítač nainstalujete BitTorrent Sync, vyberete si prostě libovolnou složku a vygenerujete k ní zmíněný klíč. Textový kód se posléze uloží do systému DHT (Distributed Hash Table), který má za úkol zjistit, k jakému počítači v síti náleží který klíč. Pokud si tedy BitTorrent Sync nainstaluje někdo druhý na opačně straně zeměkoule a bude znát váš klíč, skrze DHT a bittorentový P2P systém se oba počítače spojí a složky se začnou synchronizovat.

Princip DHT tabulek a unikátních klíčů není nikterak nový a používá je hromada programů. V klasickém BitTorrentu se s nimi setkáváte u takzvaných magnetických linků. Takový odkaz může mít třeba tuto podobu:

magnet:?xt=urn:btih:e3811b9539cacff680e418124272177c47477157

Pokud budete používat bittorrentový klient s podporou magnetických linků a vložíte do něj tuto zvláštní adresu, odehraje se vlastně úplně stejný scénář jako u aplikace BitTorrent Sync. Klient se zeptá DHT systému, kdo všechno má data (torrent) s jedinečným identifikátorem (klíčem) e3811b9539cacff680e418124272177c47477157, následně se s nimi spojí a začne od nich stahovat soubory – v tomto případě se jedná o ISO obraz Ubuntu 13.10. Magnetický link tedy k životu nepotřebuje žádný trackerový server jako v dřevních dobách BitTorrentu a fanoušci kryptoměn už jistě přikyvují, že na identickém dcentralizovaném modelu funguje i Bitcoin a všechny jeho klony.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Magnet linky v klasickém BitTorrentu. Klient se skrze DHT podíval, kdo má na BitTorrentu ISO obraz Ubuntu s tímto identifikátorem, a začal jej od nich stahovat.

WWW skrze BitTorrent

Pokud jste v bittorrentovém světě dostatečně zběhlí, omlouvám se za naprosto elementární vhled do jeho technologií, bylo to ale velmi podstatné, poněvadž se konečně dostávám k tomu, jak vlastně funguje SyncNet. Decentralizovaný systém WWW Jacka Minardiho nedělá nic jiného než to, že synchronizuje webové stránky jako jakékoliv jiné adresáře v aplikaci BitTorrent Sync. Dělá to ale potichu a na pozadí skrze API.

Minardiho klasický web je dostupný na adrese http://jack.minardi.org. Jack ovšem celý web stáhl do adresáře na počítači a pro složku nastavil synchronizaci skrze BitTorrent Sync. Správce synchronizace umožňuje vygenerovat plnohodnotný klíč pro oboustrannou synchronizaci, ale stejně tak klíč pouze ke čtení. Pokud někomu dáte ten druhý, stáhne se mu do počítače obsah, pokud jej ale změní, nijak se to neprojeví u ostatních. To může udělat pouze primární majitel složky.

Klepněte pro větší obrázek
Umístil jsem své webové stránky do složky a vygeneroval pro ni klíč pouze ke čtení. Teď jej mohu publikovat třeba někde na webovém fóru a každý, kdo jej zadá do prohlížeče SyncNet, si web stáhne, zobrazí a bude sloužit jako zdroj (seed) pro ostatní.

Předpokládám, že už chápete celou magii. Namísto klasické DNS domény se v prohlížeči SyncNet používá právě tento klíč ke čtení a pro navigaci běžná adresářová struktura statického webu. Minardiho web je tedy dostupný na adrese B4KWMK3VBJSH35YZMS7ZEMSQ6XNVBHALY.

Pokud ji zadáte do SyncNetu, ten se na pozadí spojí s aplikací BitTorrent Sync a skrze ni si do speciální složky stáhne sdílený adresář, který se následně zobrazí v prohlížeči. Pokud bude v adresáři třeba index.html, zobrazí se rovnou webová stránka. Oproti klasickému surfování se P2P model liší hlavně v tom, že se ke klientovi musí stáhnout celý web, který může mít klidně i několik desítek MB, čili si surfař počká.

Klepněte pro větší obrázek
Zadal jsem do SyncNetu klíč (secret), na pozadí se synchronizovala složka s webem a ten se zobrazil v prohlížeči

Model decentralizovaného webu, případně tomu můžeme říkat třeba BitTorrent Wide Web, má pochopitelně jednu klíčovou nevýhodu. Jelikož se zde neuplatňuje klasická oboustranná komunikace s webovým serverem, nemůže být webová stránka dostatečně interaktivní. Neumí například odeslat formulář, poněvadž ho nemá kam odeslat. Veškerou interakci může provádět pouze Javascript a výhradně jen nad daty, která se stáhla do počítače. Komunikace je jednoduše pouze jednostranná.

Klepněte pro větší obrázek Klepněte pro větší obrázek
Synchronizovaný adresář a jeho zobrazení v prohlížeči, pokud chybí spouštěcí index.html

Webové fórum takovým způsobem tedy hostovat nemůžete, s blogem by to už ale bylo relativně snazší. Každý článek by byl jako v dřevních dobách internetu uložený v samostatném statickém HTML souboru, nebo byste použili nějaký software, který by články ukládal do textové databáze třeba ve formátech XML, JSON aj. O samotné zobrazení v cíli by se pak postaral zmíněný Javascript, který by v tomto případě mohl zprostředkovat i vyhledávání v archivu.

A jak by se dostaly nové články k surfaři? No přeci úplně jednoduše. Při každé změně synchronizované složky by se upravený soubor začal šířit na všechny propojené počítače a surfař by po dalším načtení stránky uviděl její novou podobu. Čím více lidí by si stránky synchronizovalo, tím více by bylo v systému seedů, tedy těch, kteří drží aktuální a kompletní verzi adresáře, a mohli by jej šířit dalším zájemcům, kteří vloží do adresního řádku ten správný klíč.

Klepněte pro větší obrázek
SyncNet funguje, ale jedná se o prototyp, nikoliv o hotový produkt pro běžné používání. Bez alespoň elementární znalostí Pythonu a občasných úprav zdrojového kódu se tedy neobejdete.

Podobným způsobem by nakonec mohla fungovat i ona alternativní Pirátská zátoka. Web by byl statický, o vyhledávání by se staral Javascript v prohlížeči a jediné, co by se průběžně aktualizovalo ze sítě, by byla „pouze“ obří databáze magnetických linků na torrenty.

SyncNet je nyní ve fázi prototypu, který má za úkol zjistit, jestli je vlastně celý mechanizmus opravdu použitelný. K jeho spuštění tedy potřebujete alespoň základní znalost práce s Pythonem, skript totiž vyžaduje stažení hromady dodatečných knihoven. Nakonec si budete muset zažádat i o klíč pro vývojáře, který vám vůbec umožní komunikovat s aplikačním rozhraním programu BitTorrent Sync.

Další potenciální subsíť šedé zóny internetu

Podstatné je ale to, že to opravdu funguje a také příslib dalšího vývoje. Výhledově by chtěl totiž Jack Minardi celé dílo přetavit v doplněk pro klasické prohlížeče, takže byste mohli bittorrentové stránky otevírat přímo ve Firefoxu nebo třeba Chromu.

Posledním velkým úkolem bude podpora nějakého systému doménových jmen (DNS), aby surfaři nemuseli zadávat do adresního řádku divokou spleť znaků unikátního klíče, ale naopak třeba adresu ve formě sync://mojestranka.bt. Vlastní DNS by Minardi vybudoval nad distribuovaným systémem Colored Coins, To je už ale zase jiný příběh, který je nad rámec tohoto článku.

Ať už SyncNet zapadne jako další z mnoha bláznivých experimentů, nebo se kolem něj rozroste komunita, jak se to před lety podařilo Toru, Jack Minardi komunitě jasně ukázal, že model decentralizovaného – a tedy velmi těžce blokovatelného – World Wide Webu za určitých okolností opravdu může fungovat.

Témata článku: Software, Web, Technologie, Internet, Torrent, BitTorrent, SE, Pirate Bay, Pirate, Jack, Magnet, Secret, Browser, Harvard, Lewis

37 komentářů

Nejnovější komentáře

  • vrrrrr 7. 2. 2014 16:30:26
    Mimo jiné problémy mě napadl jeden tak trochu o praktičnosti- Bittorrent...
  • r3c1d1v15t 6. 2. 2014 23:41:15
    prepiste to niekto pls do C++ aby som nemusel instalovat Python.
  • Rudidlo 6. 2. 2014 22:20:36
    Vzhledem k tomu, že většina současně provozovaných webů jsou aplikace na...
reklama
Určitě si přečtěte

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

** V Brně byl velký výpadek služeb UPC ** Důvodem je překopnutý páteřní kabel ** V některých lokalitách služby stále nefungují

5.  12.  2016 | Jakub Čížek | 100

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

** Zmizí klasické vyhledávače ** Budeme programovat buňky ** Kvantové počítače překonají šifry

6.  12.  2016 | Jakub Čížek | 34

ASUS ZenBook 3 se začal prodávat v Česku. Je ve všem lepší než MacBook, ale bude to stačit?

ASUS ZenBook 3 se začal prodávat v Česku. Je ve všem lepší než MacBook, ale bude to stačit?

** Novinka od Asusu míří přímo proti MacBooku od Applu ** Nabídne daleko více výkonu za stejné peníze

2.  12.  2016 | David Polesný | 145

11 tipů na dobrý stolní počítač: od základu po herní mašiny

11 tipů na dobrý stolní počítač: od základu po herní mašiny

** Postavte si stolní počítač! Máme pro vás 11 vzorových sestav s rozpisem komponent ** Většina tipů cílí na hráče, věnujeme se ale i základnímu PC a počítačům na střih videa ** Nadělte si nový počítač třeba pod stromeček

5.  12.  2016 | Adam Kahánek | 73


reklama