Мрежата eDonkey

Напоследък се нагледахме на показни “антипиратски” акции на Националната служба за борба срещу обикновения потребител. Забелязвам, че модата е не само у нас – можете да прочетете навсякъде и за акцията на шведската полиция срещу The Pirate Bay. (Примерно в блога на Вени Гюроватук, тук и тук.)

Интересното е друго. Поръчителите на тези мерки просто не могат да разберат, че философията “авторските права са вид собственост” и технологиите за DRM (Digital Restrictions Management), каквито те ги виждат, са безполезни. Прави ги безполезни възможността нещата да се копират, без при това да се унищожава оригиналът. Оттам нататък, каквото и да се прави, нещата не са защитими на практика.

Накъде ще избие това ли? Новите начини на разпространение, и свободното изкуство, са една от възможностите. Има и други. Принципът “като не може да защитим произведенията, дай да плашим потребителите” е обречен да се провали – хората в един момент ще разберат, че той не работи на практика, и ще престанат да се боят. Уви – защото ще се е получил поредният ефект на лъжливото овчарче, и истината ще е блеснала за сметка на сринатия авторитет на закона и реда.

Торент технологиите са твърде лесни за вземане на мерки срещу тях. Други P2P мрежи обаче не са. Нищо чудно не след много време “праводържателите” вече да ни разрешават ползване на торент технологията, и да ни тласкат към нея, само и само за да ни изкарат от ползването на други мрежи. В което ще са ни набутали сами.

В подкрепа на това, смятам в този запис (и вероятно някои следващи) да разкажа за други P2P мрежи. Съвсем популярно, като за хора, които никога не са ги чували. И мъничко технически – за да покажа предимствата и недостатъците им.

Първата от тези мрежи ще е мрежата eDonkey.

Разликите межу eDonkey и торентите са няколко.

Като начало, програмите за работа с тях не са едни и същи. За Windows препоръчвам великолепния клиент eMule. Друг, макар и по-слаб според мен, е eDonkey. Трети е aMule, който има версия и за Linux. За Linux обаче препоръчвам “швейцарското ножче” MLDonkey – програмка, с която можете да сваляте също така торенти, а и да се свързвате и към още други мрежи. Напоследък то има версия и за Windows…

Като начало, в eDonkey няма така наречените торент файлове. В нея просто изпращате заявка за търсене до сървърите (един или повече), с които се е свързал клиентът ви (ще рече, програмата, която използвате за връзка с тази мрежа). След известно време (най-често няколко минути) вече разполагате със списък на файловете, които отговарят на условията за търсене. Избирате си от списъка каквото ви интересува (например като цъкнете върху него), и то започва да се сваля.

Откриването на сървъри е лесно – клиентът ви още при инсталирането идва със списък от най-популярните сървъри. В списъка има сървъри от различни държави, различно известни, така че шансът да са затворени всички е твърде малък. Свържете ли се дори веднъж с работещ сървър, ще можете да изтеглите от него що-годе актуален списък на повечето работещи към момента сървъри. Можете да се свържете и с повече от един сървър (даже е препоръчително).

При свързването често ще срещнете понятията “High Id” и “Low Id”. Те означават дали имате реално IP, и портовете ви за връзка с мрежата не са блокирани от файъруол (тогава сте с High Id), или сте с вътрешно IP, излизате през гейт, или пък имате файъруол, който блокира портовете на eDonkey мрежата (тогава сте с Low Id). Първият вариант е определено за предпочитане – тогава ще можете да обменяте информация с много повече хора, така че ще сваляте по-бързо. Също, някои сървъри няма да ви допуснат да се свържете с тях, ако имате Low Id… Но и да сте с Low Id, не се плашете. Пак се работи добре. 🙂

Както търсенето, така и свалянето при eDonkey e по-бавно, отколкото при торентите. Следете в списъка намерени файлове на колко места е намерен файлът – и най-вече, колко от тях са обозначени като “Available”. Файлове, които ще намерите на 10 или повече места, могат да слязат и за ден; ако местата са повече – по-бързо. Файлове, които ги има само на едно място, може и никога да не слязат – или да слязат само отчасти, и да блокират така завинаги.

Въпреки това обаче, eDonkey мрежата е просто безценен източник. Неведнъж съм се смайвал какви количества легални и полезни неща, които другаде ги няма достъпни, се намират в нея. А за нелегалните – … Не ви препоръчвам обаче да смъквате и пускате безконтролно програми – шансът да зомбирате машината си е чудесен, или по-точно ужасен. Дропери, ботове, троянски коне, backdoor-и – свалете двайсетина програмки наслуки, и и вероятно ще имате пълна колекция от всички видове malware, известни на компютърния свят. (Плюс може би още няколко неизвестни засега.) Особено висок е процентът на тези “късметчета” сред различните кракове.

Качването на файлове в тази мрежа също е по-лесно, отколкото при торент мрежите. Няма нужда да генерирате торент файлове и да ги давате някъде. Просто поставяте файла в директорията си за достъпни файлове (или обявявате дадена директория за достъпна), и толкова. Удобството е майка на успеха. 🙂
Технически също има разлики – и те са важни.

При торентите централният тракер пази (ако администраторите му са достатъчно глупави, примерно ако са в България) данни откъде е дошъл и накъде е отишъл всеки бит. Дойде ли някой любопитен, има какво да научи… В eDonkey мрежата сървърите не следят кой към кого какво прехвърля – в най-лошия случай може да се докаже, че сте търсили някой файл, но не и че сте го сваляли. (Принципно, ако някой е търсил и открил при вас даден файл, може да се докаже пък че го имате, или че сте го имали – но това е малко по-трудно.)

При eDonkey мрежата не съществува понятието “торент, валиден само за еди-кой си тракер”. Ако файл е достъпен в мрежата, той е достъпен. Ако даден сървър е отпаднал по някаква причина, хората се изместват към други сървъри, и мрежата се възстановява. Например когато полицията затвори сървърите на Razorback2 – дълго време гръбнакът на eDonkey мрежата, по-важни за нея, отколкото е The Pirate Bay за торентите – мрежата се съвзе до пълна функционалност за само няколко дни. (Ехооо, Швеция, някой прави ли си изводи?)

Най-сетне, мрежата eDonkey има една доскоро уникална надстройка – концепцията Kademlia. Ще се спра на нея по-подробно.

Сигурно вече сте се сетили, че това всъщност е познатото ви “кадемлия”. Когато чух думата, първата ми работа беше да проверя кои са авторите. Хич не се учудих, когато се оказа, че основният автор на концепцията се казва Петър Маймунков – ако и да работи в САЩ. 🙂

Идеята на тази концепция е да се направи мрежа, в която няма централни сървъри, а всеки клиент е и сървър. Нещо повече, мрежата отлично разпределя натоварвания и ресурси между членовете си. Ако нейни “възли” бъдат изведени от строя, мрежата продължава да се плете около тях. Заявките за търсене на файлове биват препредавани от един възел на друг, резултатите се връщат обратно по веригата. Най-сетне, възлите обменят информация и за други възли – достатъчно е да имате адреса дори само на един възел, чрез него ще издирите колкото други искате.

В eDonkey мрежата тази концепция е имплементирана, уви, по два различни начина – Overnet (поддържа се от eDonkey), и Kad Network (поддържа се от eMule). Двата начина са несъвместими помежду си; някои клиенти, примерно MLDonkey, поддържат и двата. Но и така вършат чудесна работа.

Базираната на Kademlia мрежа е на практика неунищожима. Дори ако успеете да изведете от строя над 90% от възлите й, тя продължава да е свързана мрежа. Съдържанието на файлове в нея може да намалее, заради многото липсващи машини; свърже ли се към нея обаче новодошъл, той за по-малко от час е напълно интегриран. Опитите “сървъри” да бъдат изваждани от нея са от точно толкова полза, колкото опитът да откриете и да убиете царицата в кошер, в който всяка пчела е царица. (В предишния запис си позволих да обсъждам антиспам система от програми, базирана на подобна топология – но това е различна тема.)

Полезна информация е, че при затварянето на Razorback2, надстройките Overnet и Kad Network бяха на практика незасегнати, и мрежата продължаваше да работи през тях. А до няколко дни се включиха и още големи сървъри, списъците се актуализираха, и системата се възстанови.

Забелязвам, че идеята харесва на създателите и на други протоколи – популярният торент клиент Azureus, например, в най-новите си версии вече поддържа нещо като “разпределен тракер” – добър аналог на безсървърните системи. Винаги съм мислел, че правилният вид намеса на държавата стимулира техническия прогрес. Който не вярва, ето му пример. 🙂

Така че, ако някой реши да ограничава свободата на обмен на информацията, като удари торент тракерите, само ще избута потребителите към по-трудни за удряне мрежи. eDonkey, заедно с Kademlia-базираните надстройки, е добър пример.

А има и други, още по-неуязвими мрежи. Но за тях – друг път. 🙂

12 Responses to 'Мрежата eDonkey'

  1. turin Says:

    Добра идея за статии, поздрави 🙂 Всъщност точно снощи си мислех аз да започна да пиша за двата ми фаворита сред мрежите – Freenet и Gnunet. Виждам – изпреварил си ме, макар и с друг тип мрежа за начало.
    Уникалното за Freenet е, че шифрира целия поток от данни. Дори и собственикът на отделния възел не може да знае какви данни минават през него. То е цяла концепция за нов вид мрежа, не само за обмен на файлове. Но ще напиша по-подробно тия дни при мен, по-специално за Freenet и Gnunet.
    eDonkey, от друга страна, се концентрира изключително върху обмена на файлове. Това, което мен винаги малко ме стряска в тези точно мрежи е, че много лесно могат да се “залеят” с грешно съдържание, защото не са изцяло разпределени – все пак има лека централизация в сървъри, а те винаги са уязвимата точка.
    Ще следя новите статии по темата, отново – добра идея 🙂

  2. peter Says:

    Преди време се бях заиграл с един друг проект, който се казва hamachi – създава криптирана виртуална мрежа между компютрите, на които е инсталиран, раздавайки по още един IP адрес. Една технология, която комбинира hamachi и bittorrent би била доста интересна – особено в нашия случай, където IP адреса взе да изземва функциите на личната карта…

  3. Григор Says:

    @turin: Следващата статия по въпроса планирам да е точно за Gnunet 🙂 Но с удоволствие бих предложил съавторство – нямам време да разуча gnunet-gtk, а друг удобен за потребители интерфейс за нея все още няма.

    Иначе, заливането с грешно съдържание е възможно дори в Gnunet, макар и да е по-трудно.

    @peter: hamachi-то определено е интересно, но е мъничко извън темата за P2P filesharing мрежите. Но мисля, че би било чудесно, ако пък ти напишеш нещичко за него. 🙂

  4. turin Says:

    @Григор: Съоавторство в блогове не знам дали ще е удобно за осъществяване, пък и ти си набрал инерция. Аз имах само принципно намерение някой ден да зачекна темата за тия две точно мрежи. Знаеш, че съм фен на “разпределеността” 🙂
    (всъщност ако имаш конкретна идея за съавторство, бих се включил:) Вчера Здравко спомена, а сега вече и чета, че Весо Колев се е заел също с темата за p2p-мрежите. Може като изхабим блогерското си перо по темата, да съберем статиите в наръчник по темата. Както пратяв сборниците с доклади от конференциите…

  5. Григор Says:

    @turin: ОК – ще имаш (дано ти имам е-майла) от мен първата чернова на статията, ще й минем няколко цикъла на допълване, и накрая ще я публикуваме едновременно. Става? 🙂

  6. turin Says:

    @Григор: Добре звучи, дано стане 🙂 Пощата ми мисля трябва да я имаш, но ако не я намериш, виж на сайта ми в линка “за мен”. (да не я публикувам в прав текст тук)

  7. nikkon Says:

    Аз ще споделя няколко думи за hamchi. Какво представлява то: когато потребител си инсталне hamchi и го пусни за първи път, автматично му се сетва ново IP и му се създава нова конекция за него. Схемата е следната, когато някои създаде стая той дефакто създажа VPN server, и всички които влезнат в тая стая са VPN клиенти т.е p2p tunneling. Повечето хора го ползват най-вече за LAN – игри. Но за да става това трябва да сте в един LAN. IP-тата които ви присвоява hamachi-servers са клас B мрежи поне така си мисля аз , макар че спрямо първия октет са А, най вероятно са разбити на подмрежи от клас B. За да играете в LAN трябва първите два октета да са еднакви X.X.Y.Z, ако не са се прави следния трик:създава се файл aliases.txt в директорията на hamachi вътре се пише следното, пример: ако моето IP e 5.10.44.34, а на мои авери 5.233.44.23,5.77.34.67 то се пише:
    5.10.44.34 5.10.44.23
    5.10.44.34 5.10.34.67
    т.е първо ващто IP ,после първите два октета на вашето IP и полседните два октета на техните.
    Тъка създавате alias на техните IP-та от вашета мрежа и спокойно могат те да се вържат кум вас все едно сте в един LAN, но все пак ви требва хубава връзка и също зависи от играта. Аз лично така играя CS i Quake III без проблеми. Надявам се на някои да съм му бил от полза !:)

  8. razorback2 Says:

    Много сте повърхностни..
    Нямали време за това, за онова.
    Аз пък нямам време да ви чета общите приказки, само замърсявате нета с бърборения.
    Като сте толкоз яки обяснете “от и до” за Kademlia-mldonkey

  9. Григор Says:

    @razorback2: Като нямаш време да ни четеш драги, защо го правиш? Че и да коментираш имаш време, гледам…

    Общите ни приказки са нужни за тези, дето не са чак толкова навътре в нещата – някой трябва да им каже, че има такова животно. Както на тебе някой някога го е казал.

    За яки пък изобщо не претендираме. Обясняваме каквото и колкото сметнем за нужно. Но ти пък, като много по-як, и както виждам с достатъчно време, би могъл да обясниш подробно. Примерно за Kademlia като базов алгоритъм, след това за различните му дефиниции като протокол (Overnet и Kad Network), а също и как точно двете са имплементирани на MLdonkey. Ако дадеш няколко примера за дописване на кода в OCaml, ще е чудесно – приятен език е…

    Имаш думата. Да видим ще напишеш ли нещо ценно и полезно за нета, дето не го замърсява – или ще се изпариш като празен чатер, поканен да свърши нещо. 🙂

  10. Lord Aggressor Says:

    Благодаря за ценните съвети на nikkon относно VPN емулацията на адресите.. никога нямаше да се сетя сам.
    А в най-новата версия на хамачи, вече дори не трябва да се създава файл aliases.txt – в right click menu-то на peer-a има специална опция за IP alias… много полезно!

    Още веднъж, сърдечни благодарности.

  11. ivan g Says:

    a az ne razbiram ot ni6to ama i ne sam se interesuval ot ni6to NO VIE NE ZNAETE NE6TATA KOITO AZ ZNAM TAKA 4E……….AKO ISKATE PI6ETE ZA DA VI RAZBERA PO TO4NO

  12. Григор Says:

    @ivan g: Ако не разбираш от нищо и не си се интересувал от нищо, ми се струва малко вероятно да знаеш неща, които ние не знаем.

Leave a Reply