# Граблі соціального P2P

Це мій особистий висновок в контексті соціальних платформ, які у свій час мали на меті створити "вільний інтернет" для вільних людей, зокрема - такі вже сьогодні мертві проєкти як twister, OpenBazaar, ZeroNet та інші. А можливо завтра - не так давно анонсована перша стабільна версія децентралізованої Git платформи Radicle.

## BitTorrent / DHT

Нічого революційного за останні роки еволюції пірингових технологій не відбулось. Мабуть, єдиним напівживим піринговим напрямком, все ще лишається обмін великими файлами через BitTorrent / DHT засобами UPnP, що дозволяє клієнтові користуватись шириною каналу, а серверу - балансувати трафік на піках, допоки пір не отримає своє та не закриє додаток, видаливши потім і сам файл.

## Залежність від сервісних вузлів

Трекери, сіди, ноди ретрансляції...

Ніхто за дарма не буде обслуговувати серйозний об'єм даних. Звісно, можна знайти "не мамонта", хто вірить в щось, паразитувати на його ноді, деякий час..

Підняв віддалену ноду Radicle для експерименту на мотивації стати сідом, а та з'їла все вільне місце на диску. Можливо, є певна опція, щоб лімітувати простір чи зберігати якісь фрагментовані дані (pieces), але тоді для мережі потрібна більша кількість вузлів, що забезпечать її 100% покриття. Тут я вже мовчу про оверхед системних даних, що стосуються актуалізації даних (CRUD) і мережевої роботи самого рою.

Якщо мені потрібен повноцінний сервер з виділеним IP, то питання: чому просто не поставити собі Gitea?

## Очікування пірів

В пірингових мережах завжди доводиться чекати когось на роздачу, яка відбувається, коли вже й не потрібно. Або ж знову таки орендувати сервер VPN, щоб спробувати знайти контент в заблокованих глобальним фаєрволом локаціях. Хоча на практиці, IP "не сервісних" вузлів змінюється так швидко, що й VPN не є панацеєю. В сучасному світі прогрес не стоїть на місці, люди користуються мобільним інтернетом, а той еволюціонує для балансування навантажень між різними станціями, генеруючи тони мертвих через годину IP.

З цієї ж причини, багато даних просто втрачається. Якщо ви хочете загубити на рандомному і цілком тимчасовому пірі шматок опублікованих даних, p2p - вдалий вибір.

## BlockChain

Тут здавалось би, рішенням може стати BlockChain, але це веде у ті само ворота, коли об'єм даних розростається а вартість зберігання зростає. При цьому, сама технологія блокчейн доволі чутлива до консенсусу: будь які зміни останнього вимагають згоди від усіх учасників та оновлення ними локальних копій програмного забезпечення, що не рідко спонукає до фрагментування форками.

Іноді я навіть не знаю, що витратніше для процесору: періодичний майнинг чи постійна актуалізація DHT. Багато p2p платформ використовують для своєї роботи і BlockChain і окремий сервер(и) DHT, а ще SSL інтерфейс для останнього і сервер UPnP. Відповідно це піднімає вимоги до вашого знову ж таки виділеного серверу, бо на локальному, без добровольців-садомазохістів мережа просто не працюватиме. А ті, на практиці, онлайн не довго, бо знаходять собі нову забаву, що вимагає 100% віддачі ресурсів попередньої.

## Mesh

Іншим цікавим напрямком, є оверлейні мережі типу Yggdrasil, що використовують піринг для побудови автоматизованого роутингу. Здебільшого вони зручні в ситуаціях, коли з якихось причин, протокол UPnP не доступний або певний порт блокується провайдером. Але й тут, подібно до VPN, потрібні вихідні вузли, тобто є залежніть від когось, а цей хтось - по суті, звичайний сервер.

На мою думку, потреба в оверлейних мережах відпаде з інтеграцією ISP протоколу IPv6, що дозволить кожному отримати свою виділену адресу і закрити це питання разом з його надлишковою інфраструктурою.

## Висновки

Таким чином, поки хтось не оформить 5-10 серверів початковою вартістю хоч в одну акцію GitHub (в контексті Radicle), воно просто не функціональне, при всій моїй лояльності до напрямку p2p.

Вже яку тисячу разів я стаю на ці граблі: ну немає ніякої свободи у цьому, суцільні обмеження, купа зайвого трафіку, обчислень і власного часу. Воно класно тільки тим, що зручно реплікується по хешу, але знову таки якщо задача децентралізувати то простіше руками чи скриптом розкидати на client/server.

Все одно розподілені/анархічні ноди потребують сервер у якійсь цілком собі монархічній країні. Ще раз нагадування собі про те, що "втекти" кудись вирішує питання, у кращому випадку, тільки на деякий час.

Сама пірингова технологія, все ще може бути корисною у спеціалізованих сферах, для яких власне вона і розроблялась. Додаткові можливості з повітря не беруться, а свої громадянські права і свободу - досі потрібно виборювати, на жаль.