Secure Scuttlebutt - p2p сацыяльная сетка, якая працуе і ў афлайне

Скаттлэт - слэнгавае слова, распаўсюджанае сярод амерыканскіх маракоў, якое пазначае чуткі і плёткі. Node.js распрацоўшчык Дамінік Тарр, які жыве на ветразніку ў берагоў Новай Зеландыі, выкарыстаў гэтае слова ў назове p2p сеткі, прызначанай для абмену навінамі і асабістымі паведамленнямі. Secure Scuttlebutt (SSB) дазваляе дзяліцца інфармацыяй, выкарыстоўваючы толькі эпізадычны доступ да сеткі Інтэрнэт ці нават пры поўнай яго адсутнасці.

SSB працуе ўжо некалькі год. Функцыі сацыяльнай сеткі можна пратэставаць пры дапамозе двух настольных прыкладанняў.пэчворк и Patchfoo) і прыкладанні для Android (шматверш). Для гікаў ёсць ssb-git. Вам цікава як працуе offline-first p2p сетка без рэкламы і без рэгістрацыі? Прашу пад кат.

Secure Scuttlebutt - p2p сацыяльная сетка, якая працуе і ў афлайне

Для функцыянавання Secure Scuttlebutt дастаткова двух кампутараў, злучаных у лакальную сетку. Прыкладанні на аснове пратаколу SSB рассылаюць шырокавяшчальныя UDP паведамленні і змогуць аўтаматычна знайсці адзін аднаго. Пошук вузлоў у Інтэрнэт крыху больш складаны, і да гэтага пытання мы вернемся праз некалькі абзацаў.

Уліковы запіс карыстальніка ўяўляе сабой сувязны спіс усіх яго запісаў (часопіс). Кожны наступны запіс утрымоўвае хэш папярэдняй і падпісваецца зачыненым ключом карыстача. Адкрыты ключ з'яўляецца ідэнтыфікатарам карыстальніка. Выдаленне і рэдагаванне запісаў немагчыма ні самім аўтарам, ні кімсьці яшчэ. Уладальнік можа дадаваць запісы ў канец часопіса. Астатнія карыстальнікі - чытаць яго.

Прыкладанні, змешчаныя ў адной лакальнай сетцы, бачаць адзін аднаго і аўтаматычна запытваюць у суседзяў абнаўленні ў якія цікавяць іх часопісах. Не мае значэння, з якога менавіта вузла вы спампоўваеце абнаўленне, т.к. сапраўднасць кожнага запісу вы можаце праверыць пры дапамозе адкрытага ключа. Пры сінхранізацыі не адбываецца абмену якой-небудзь асабістай інфармацыяй акрамя адчыненых ключоў якія цікавяць вас часопісаў. Па меры таго, як вы будзеце пераключацца паміж рознымі WiFi/LAN сеткамі (дома, у кафэ, на працы), копіі захаваных у вас лакальна часопісаў будуць аўтаматычна перадавацца на прылады іншых карыстальнікаў, якія знаходзяцца з вамі побач. Гэта падобна на тое, як працуе «сарафаннае радыё»: Вася расказаў Машы, Маша - Пеці, а Пеця - Валянціне. Істотнае адрозненне ад «сарафаннага радыё» ў тым, што пры капіяванні часопісаў інфармацыя ў іх не скажаецца.

"Быць у кагосьці ў сябрах" тут набывае канкрэтны фізічны сэнс: мае сябры захоўваюць копію майго часопіса. Чым больш у мяне сяброў, тым даступней мой часопіс для іншых. У апісанні праколу напісана, Што дадатак Patchwork сінхранізуе часопісы, якія знаходзяцца на адлегласці да 3 крокаў (сябры сяброў сяброў) ад вас. У большасці выпадкаў гэта дазваляе чытаць доўгія дыскусіі са мноствам удзельнікаў, знаходзячыся ў афлайне.

Часопіс карыстальніка можа змяшчаць запісы розных тыпаў: публічныя паведамленні, аналагічныя запісам на сцяне ВКонтакте, асабістыя паведамленні, зашыфраваныя адкрытым ключом атрымальніка, каментары да запісаў іншых карыстальнікаў, лайкі. Гэта адкрыты спіс. Малюнкі і іншыя аб'ёмныя файлы не змяшчаюцца ў часопіс напрамую. Замест гэтага ў яго запісваецца хэш файла, пры дапамозе якога гэты файл можна запытаць асобна ад самога часопіса. Бачнасць каментароў для аўтара зыходнага паведамлення не гарантуецца: калі паміж вамі няма дастаткова кароткага шляху з агульных сяброў, то такіх каментароў вы, хутчэй за ўсё, не ўбачыце. Такім чынам, нават калі ваены ўпячкі зробяць спробу захапіць ваш пост, то, калі гэта былі не вашыя сябры ці сябры сяброў сяброў, вы нічога не заўважыце.

Secure Scuttlebutt не першая p2p сетка і нават не першая p2p сацыяльная сетка. Імкненне мець зносіны без пасярэднікаў і выйсці са сферы ўплыву вялікіх кампаній існуе даўно, і ў яго ёсць некалькі відавочных чыннікаў. Карыстальнікаў раздражняе навязванне буйнымі гульцамі правіл гульні: мала хто жадае бачыць на сваім экране рэкламу ці быць забаненным і чакаць некалькі дзён адказу ад службы падтрымкі. Бескантрольны збор асабістых дадзеных і перадача іх трэцім асобам, якая прыводзіць, у канчатковым выніку, да таго, што гэтыя дадзеныя часам прадаюцца ў даркнеце, зноў і зноў нагадвае аб неабходнасці пабудовы іншых спосабаў узаемадзеяння, дзе карыстач атрымліваў бы большы кантроль над сваімі дадзенымі. І сам бы нёс адказнасць за іх распаўсюджванне і захаванасць.

Добра вядомыя дэцэнтралізаваныя сацыяльныя сеткі, такія як Дыяспара або Мастадонт, і пратакол матрыца не з'яўляюцца аднарангавыя, паколькі ў іх заўсёды ёсць кліенцкая і серверная частка. Замест агульнай базы дадзеных Facebook вы можаце абраць ваш «хатні» сервер, на якім будуць размешчаны вашы дадзеныя, і гэта ўжо вялікі крок наперад. Аднак, у адміністратара вашага «хатняга» сервера ўсё яшчэ ёсць шмат магчымасцяў: ён можа дзяліцца вашымі дадзенымі без вашага ведама, выдаляць ці блакаваць ваш уліковы запіс. Акрамя таго, ён можа страціць цікавасць да падтрымкі сервера і не папярэдзіць пра гэта вас.

У Secure Scuttlebutt таксама ёсць вузлы-пасярэднікі якія палягчаюць сінхранізацыю (яны завуцца "пабы"). Аднак выкарыстанне пабаў апцыянальна, а самі яны - узаемазаменныя. Калі звыклы вам вузел недаступны, вы можаце скарыстацца іншымі, нічога не страціўшы, паколькі поўная копія ўсіх вашых дадзеных заўсёды ў вас. Вузел-пасрэднік не захоўвае незаменных дадзеных. Паб, калі вы яго папытаеце, дадасць вас у сябры і пры злучэнні будзе абнаўляць сваю копію вашага часопіс. Калі з ім злучацца вашыя падпісчыкі, яны змогуць загрузіць вашыя новыя запісы, нават калі вы ўжо адключыліся. Для таго, каб паб стаў з вамі сябраваць, вы павінны атрымаць инвайт у адміністратара паба. Часцей за ўсё гэта можна зрабіць самастойна праз вэб-інтэрвейс (спіс пабаў). Калі вы атрымаеце бан ва ўсіх адміністратараў пабаў, то ваш часопіс будзе распаўсюджвацца апісаным раней спосабам, г.зн. толькі сярод тых, з кім вы сустракаецеся асабіста. Перадача абнаўленняў на флэшцы таксама магчыма.

Хоць сетка працуе даўнавата, у ёй няшмат людзей. Па падліках André Staltz, распрацоўніка Android-прыкладанні шматверш, у чэрвені 2018 у яго лакальнай базе было каля 7 тысяч ключоў. Для параўнання, у Diaspora больш за 600 тысяч, у Mastodon – каля 1 мільёна.

Secure Scuttlebutt - p2p сацыяльная сетка, якая працуе і ў афлайне

Інструкцыя для пачаткоўцаў знаходзіцца тут. Асноўныя крокі: усталяваць дадатак, стварыць профіль, атрымаць инвайт на сайце паба, скапіяваць гэты инвайт у дадатак. Можна падключаць некалькі пабаў адначасова. Трэба будзе назапасіцца цярпеннем: сетка працуе нашмат павольней, чым Facebook. Лакальны кэш (тэчка .ssb) хутка вырасце да некалькіх гігабайт. Цікавыя пасты зручна шукаць па хэш-тэгах. Пачынаць чытаць можна, напрыклад, з Дамініка Тарра ( @EMovhfIrFk4NihAKnRNhrfRaqIhBv1Wj8pTxJNgvCCY=.ed25519 ).

Усе выявы — з артыкула André Staltz "An off-grid social network" і яго твітара.

Карысныя спасылкі:

[1] Афіцыйны сайт

[2] пэчворк (дадатак для Windows/Mac/Linux)

[3] шматверш (дадатак для Android)

[4] ssb-git

[5] Апісанне пратакола («Scuttlebutt Protocol Guide — How Scuttlebutt peers find and talk to each other»)

Крыніца: habr.com

Дадаць каментар