Kademlia - это наше фсе :) Раскопал в Сети новые (для меня) подробности из истории пиринговых сетей 21 века, и хочу поделиться впечатлением.
Во-первых, как раз в текущем 2006-м году держатели авторских прав
добились выдающихся успехов в борьбе с крупнейшей пиринговой сетью - eD2K (eDonkey/eMule). В феврале бельгийская полиция
закрыла крупнейший (на тот момент) сервер eD2K Razorback2. Аргументация "у меня на сервере только ссылки, а нелегального контента вовсе нет" перестала работать - за ссылки теперь тоже сажают. В мае был
прикрыт крупнейший сервер другой файлообменной сети - bitTorrent. Наконец, в сентябре RIAA
дожала MetaMachine Inc., прекратив работу ее файлообменного сайта eDonkey - вот,
полюбуйтесь на надгробье знаменитого "ослика". По меткому выражению с одного из форумов,
По-моему все здравомыслящие люди, после событий с Razorback, перешли на kademlia, а ed2k серваки отрубили нафиг.
Таким образом, пока мы тут сравнивали преимущества и недостатки серверно-бессерверных сетей, в мировом масштабе уже
совершилась очередная революция - серверные системы файлообмена оказались слишком уязвимыми, и фактически проиграли конкуренцию своим бессерверным конкурентам.
Во-вторых, мне стало немного понятнее, что же за зверь эта самая Kademlia, и почему она так популярна. Вот здесь лежит рекомендованное разработчиками eMule
pdf-описание этого протокола (с картинками). Объяснить на пальцах, как он работает, я пока не могу (но видимо придется, если не я, то кто?), а поэтому ограничусь текущими личными впечатлениями на тему "Почему Kademlia":
1) Протокол уже реализован в сети Kad, встроенной в самый популярный пиринговый клиент eMule и являющейся там действующей альтернативой умирающей серверной сети eD2K;
2) Протокол, судя по статье Eric Ries (разработчика одной из его python-реализаций),
Kenosis and the World Free Web, оказался куда более устойчив к увеличению масштаба сети, чем его предшественники вроде Freenet;
3) Протокол (опять же судя по проекту Kenosis) позволяет реализовать bitTorrent-обмен файлами, причем написав соответствующий клиент на самом что ни на есть pure python.
Тут я хотел написать, почему я всему этому обрадовался - но потом одумался. Скажу лишь, что на мой субъективный взгляд, протокол Kademlia - хорошее приближение к требованиям ТЗ на топологию f2f сети. Его можно брать за основу и приступать уже к практическим экспериментам типа "найди f2f машину в Сети".