mirror of
https://codeberg.org/postscriptum/devzone.org.ua.git
synced 2026-02-18 22:02:41 +00:00
87 lines
No EOL
13 KiB
Markdown
87 lines
No EOL
13 KiB
Markdown
# twister - децентралізована платформа мікроблогів
|
||
|
||
[twister](http://twister.net.co/) (*твістер*, пишеться саме в нижньому регістрі) - це альтернативна пірингова платформа мікроблогів, створена на базі технологій BitTorrent і Bitcoin у 2013 році [@miguelfreitas](https://github.com/miguelfreitas/twister-core) як альтернатива колишньому централізованому сервісу twitter.com
|
||
|
||
У 2020 році, розробник платформи [припинив](http://twister.net.co/archives/617) її супровід, але оскільки мережа є децентралізованою, вона все ще продовжує функціонувати у своєму первинному стані, хоча кількість користувачів значно знизилась і наразі мережа близька до колапсу.
|
||
|
||
Дана стаття носить історично-інформаційний характер, і створена більше для зацікавлених у децентралізованих мережах користувачів з базовим досвідом програмування мовою C++ та адміністрування Linux, а ніж рядових споживачів сучасного контенту. Також нижче я не описуватиму весь досвід, оскільки наразі працюю над [книгою](https://twisterarmy.github.io/book/) у форматі документації [mdBook](https://devzone.org.ua/topic/introduction-mdbook-documentation) (англійською мовою), яку планую також в релізі перекласти українською.
|
||
|
||
## Принцип роботи
|
||
|
||
Як згадувалось вище, ядро twister (`twister-core`) по своїй суті є форком `bitcoin-core` з видаленням фактору цифрової валюти як такої, а блокчейн приведено до моделі схожої з [Namecoin](https://uk.wikipedia.org/wiki/Namecoin) - де користувачі зберігають свої дані, замість платіжних транзакцій. Оскільки мережа twister не має власної валюти, мотивація майнингу передбачала рекламні повідомлення у якості "нагороди". Окрім рекламних повідомлень майнерів, блокчейн зберігає мета дані DHT контенту користувачів у часовому порядку та прийняті майнерами запити на їх реєстрацію з рою (swarm).
|
||
|
||
Таким чином, і реєстрація і користування для кінцевого користувача задумувалось зробити безкоштовними і такими, що не потребуватимуть жодних обчислювальних потужностей, окрім хіба що, обчислення хешів торентів самих повідомлень (як це працює у звичайному біт-торент клієнті).
|
||
|
||
## Випробовування часом
|
||
|
||
Звісно, десять років - це не той термін, по якому можна робити висновки, хоча у просторі ІТ й цього часу буває достатньо: у зв'язку зі своєю не прибутковістю та не спекулятивністю, майнинг від самого початку відбувався силами ентузіастів а рекламні повідомлення - містили пусті за змістом дублікати тексту, лише задля підтримки цієї мережі небайдужими користувачами.
|
||
|
||
Більшість критики була об'єктивною ще від релізу цієї платформи:
|
||
* відсутність анонімізації, що ставило під сумнів можливість використання цієї платформи у країнах з цензурою без додаткових обгорток;
|
||
* низький рівень стійкості до спам атак на мережу - у зв'язку з цим був різкий пік сквотингу юзернеймів, з подальшими намаганнями виправити вразливість на швидкоруч; оскільки атака була здійснена невідомим користувачем, лише задля тестів, ймовірно вона була зупинена лише ним самим а не вирішенням фундаментальних недоліків архітектури;
|
||
* повідомлення користувачів зберігаються у DHT, щоб зробити блокчейн мінімально "легким" з іншого боку, багато контенту просто втрачено з часом, оскільки блокчейн містить лише мета дані (info-hash) і щоб повідомлення зберігалось на іншому пірі, цей пір (користувач) повинен бути підписаним фоловером.
|
||
|
||
В ті роки, мав місце певний "бум" децентралізованих рішень, зокрема з'являлись і такі проекти як OpenBazaar та ZeroNet. Останній, окрім мікроблогінгу, дозволяв хостити свої веб-сторінки у децентралізованому форматі (по типу того, як це було згодом реалізовано в IPFS). Деякі користувачі перебрались на ZN, інші віддавали перевагу більш захищеним платформам накшталт RetroShare.
|
||
|
||
У свій час, я теж переключився на інші заняття та коли повернувся - помітив що з усього рою, лишилась буквально пара користувачів. Ще через декілька років, вже не вдавалось під'єднатись, оскільки майже [всі сервісні DNS](https://twisterarmy.github.io/network) були офлайн.
|
||
|
||
## Як спробувати
|
||
|
||
Наразі, мабуть з великим запізненням, спільнотою розробляється [пакунок Flatpak](https://github.com/twisterarmy/twister/releases/download/0.1.0/twister.flatpak), мабуть це самий простий спосіб запустити twister в сандбокс-режимі, щоб просто подивитись що це таке. Варто зауважити, що при користуванні Flatpak, клієнт падатиме при спробі запустити функцію майнингу, все інше наче працює добре.
|
||
|
||
Для тих, хто хоче нативно зібрати повністю робоче ядро під свою систему, напишу коротеньку інструкцію для Linux (на базі [матеріалу з книги](https://twisterarmy.github.io/book/twister-core/twisterarmy/build-on-linux)), оскільки мережа все ще жива і можливо буде комусь цікавою у якості постійної іграшки.
|
||
|
||
Наразі є дві опції встановлення: [офіційний twister-core](https://github.com/miguelfreitas/twister-core) та [twister-core від спільноти](https://github.com/twisterarmy/twister-core). Різниця полягає лише в тому, що останній має додаткові DNS вузли для ініціалізації та підтримку IPv6, тобто є більш конективним. Замініть адресу репозиторію у прикладі нижче - вашим вибором!
|
||
|
||
### Системні залежності
|
||
|
||
**Debian / Ubuntu**
|
||
|
||
``` bash
|
||
sudo apt install git autoconf automake build-essential libtool\
|
||
libboost-all-dev libssl-dev libdb++-dev libminiupnpc-dev
|
||
```
|
||
|
||
**Fedora**
|
||
|
||
``` bash
|
||
sudo dnf install git autoconf automake libtool make\
|
||
boost-devel openssl-devel libdb-cxx-devel miniupnpc-devel
|
||
```
|
||
|
||
### Збірка
|
||
|
||
Даний приклад підходить для встановлення на `localhost`, при використанні архітектури `amd64`, тому кроки спрощено.
|
||
|
||
1. Ядро ([twister-core](https://github.com/twisterarmy/twister-core))
|
||
- `git clone https://github.com/twisterarmy/twister-core.git`
|
||
- `cd twister-core`
|
||
- `./autotool.sh`
|
||
- `./configure`
|
||
- `make`
|
||
2. Клієнт: застосунок не має GUI, тому ставимо Web-UI ([twister-html](https://github.com/twisterarmy/twister-html))
|
||
- `mkdir ~/.twister`
|
||
- `echo -e "rpcuser=user\nrpcpassword=pwd\nrpcallowip=127.0.0.1" > ~/.twister/twister.conf` - однією командою створюємо стандартний файл конфігурації для Web-UI; для локального запуску вузла, складні логін/пароль не потрібні
|
||
- `chmod 600 ~/.twister/twister.conf`
|
||
- `git clone https://github.com/twisterarmy/twister-html.git ~/.twister/html`
|
||
3. Запуск
|
||
- `./twisterd`
|
||
- відкриваємо у браузері [http://127.0.0.1:28332](http://127.0.0.1:28332)
|
||
* вказуємо стандартні `user` і `pwd` (спадкова реалізація оригінального Bitcoin RPC API)
|
||
* далі з'являється діалог вітання із запрошенням перейти на сторінку мережі, де відбуватиметься завантаження блокчейну.
|
||
|
||
### Користування
|
||
|
||
Коли завантажиться блокчейн, можна спробувати зареєструвати вільний юзернейм (який буде записано в кінець цього ж блокчейну, тобто коли будь який майнер отримає ваш запит і включить його до блоку). Після створення юзера, зберігаємо згенерований приватний ключ, він знадобиться тільки для доступу до акаунту з іншого пристрою або для подальшого бекапу.
|
||
|
||
Реєстрація займатиме деякий час. Також, з урахуванням поточного онлайну, деякий час (пара хвилин або навіть годин чи днів) може зайняти ініціалізація DHT процесів, тримайте це діло увімкненим допоки [на сторінці мережі](http://127.0.0.1:28332/network.html) не засвітиться зелений індикатор.
|
||
|
||
У списку останніх користувачів, спробуйте знайти активного та щось йому написати. Або напишіть у свою стрічку вітання.
|
||
|
||
## Перспективи
|
||
|
||
Не стану давати оцінку суб'єктивним поглядом на подальші перспективи цього проекту, оскільки мережа twister є повністю децентралізованою і жодним чином не залежить від моїх висновків. Особисто, мені - вона подобається, на відміну від централізованих сервісів, у тому числі Fediverse, де по суті інстанси є такими само сервер-орієнтованими платформами, але з більш сучасним форматом агрегації (ActivityPub замість RSS).
|
||
|
||
Дана мережа обіцяла колапсувати ще п'ять років тому: деякі юзери раз на рік надсилають свій меседж про існування і зникають ще на стільки само. Тим не менше, вона існує у власному вимірі, і коли всі монітори пишуть офлайн, через деякий час виявляється що до неї ще можна під'єднатись.
|
||
|
||
Якщо вам подобаються різні екзотичні проекти по типу twister, та ви бажаєте підтримати дану пірингову мережу - доєднуйтесь до користування, щоб продовжити її функціонування - мабуть, в тому і суть роботи по справжньому не залежних соціальних платформ! |