Pushimi i ekzistencës së Nitter, një frontend alternativ i lirë për Twitter

Eksemplari i fundit publik i Nitter u bërë i papërdorshëm. Projekti Nitter zhvilloi një frontend të lirë për qasje në X.com/Twitter pa imponimin e JavaScript-it, analizës, gjurmuesve dhe shërbimeve të treta. Më 31 janar, u ndal shpërndarja e tokeneve që përdoren në Nitter për organizimin e qasjes në përmbajtjen në X.com. Më 26 shkurt, skadoi koha e jetës së tokeneve të fundit të shpërndara më parë, duke çuar në ndalimin e plotë të funksionimit të Nitter.

Pas blerjes nga Elon Musk, Twitter (tani e quajtur X) filloi të implementonte një kompleks masash teknike dhe organizative të orientuara drejt monetizimit agresiv të platformës, e cila më parë konsiderohej si e papërfitueshme. Ndër ndryshimet ishte realizimi i tarifimit për informacionin e marrë nga çdo llogari (u vendosën kufijtë për lloje të ndryshme llogarish — 10000 për mbajtësit e "pullës blu" të paguar, 1000 për ata normalë, 500 për ata të rinj normalë); llogaritë "e zhvilluesve" u kaluan në kategorinë e paguara me kufij që përshtaten për nxjerrje masive të të dhënave (scraping); u ndal shpërndarja e informacionit për përdoruesit pa llogari.

Si justifikim, u tha publikisht (2023-07-01) se këto ishin «masat emergjente të përkohshme», të lidhura me faktin se ngarkimi automatizuar i të dhënave nga botët çon në përkeqësimin e shërbimit për përdoruesit e zakonshëm. Më parë (2023-04-19) kishte insinuata ndaj Microsoft-it, që lidhen me përdorimin e paligjshëm të të dhënave të Twitter-it për trajnimin e AI. Më vonë (2023-11-17), vendosja e kufizimeve u justifikua me premtimin e Musk për të luftuar kundër botëve.

Nitter ishte një projekt për zhvillimin e një softueri për mbrojtjen nga ndjekja e përdoruesve të Twitter-it, të cilët nuk dërgojnë mesazhe, por vetëm lexojnë materiale, duke u ofruar atyre një sit alternativ për të parë Twitter, pa pasur nevojë për një llogari dhe pa aktivizuar JavaScript. Ky softuer faktikisht është një skrajper dhe ndërmjetës që, në vend që të ruajë të dhënat në një DB, ua dërgon ato përdoruesve përfundimtarë (përveç kësaj, disa të dhëna shërbimi ruhen në Redis).

Kështu që softueri Nitter:

  • technically ishte pikërisht ai tip i softuerit, me të cilin drejtoria e Twitter-it shpalli një luftë aktive;
  • ishte një nga programet e pakta që zhvilloheshin aktivisht për të fituar akses në të dhënat e publikuara në Twitter, e cila e bënte atë tërheqëse për t'u përdorur si një modul për skrepingun në kuptimin më të ngushtë të fjalës — mbledhjen e të dhënave përmes anashkalimit të ndërfaqeve zyrtare për këtë;
  • ekzemplarët publikë të Nitter vetë u bënë objekte për skreping, çka çoi në faktin që disa ekzemplarë implementuan një variant të vetin të kapçes (1 kërkesë shtesë POST, e cila është specifike për çdo ekzemplar).

    Gjatë analizës së mënyrave për të vazhduar funksionimin në kushtet e reja, u zbuluan RSS dhe disa pikë këputjesh në syndication.twitter.com, të cilat përcillnin informacion për përdoruesit e pa regjistruar në format JSON dhe përdoreshin për integrim me rrjete të tjera sociale. Për një kohë, Nitter merrte informacion përmes këtyre ndërfaqeve, por ato gjithashtu u mbyllën. Pas kësaj, u gjet një mënyrë për të përdorur "llogaritë mysafir", të cilat kishin privilegje leximi. Një nga llojet e "llogaritave mysafir" ishte e destinuar për t'u përdorur në pajisje të internetit të gjërave me shfletues të reduktuar.

    Por Nitter përdori një lloj tjetër "llogaritash mysafir", që aplikonin OAuth në vend të Cookie, regjistroheshin përmes API dhe duket se përdorej nga aplikacioni për Android. Ky lloj llogarie ka kufizime prej 500 kërkesash në API brenda 15 minutash, dhe "regjistrimi" i saj lidhet me adresën IP (nga një IP mund të regjistrohet një "llogari mysafir" brenda 24 orëve, por një "llogari" e regjistruar mund të përdoret nga adresa të tjera IP).

    Këto "akountet" (tokenet e aksesit) ishin funksionale për 30 ditë. Në atë kohë, një zgjidhje e duhur për problemin e regjistrimit masiv të akounteve të përkohshme do të ishte crowdsourcing regjistrimin e tyre nga përdoruesit, duke përdorur diçka të ngjashme me Bibliogram (një skript përdoruesi që merr tokenin e mysafirit nga përdoruesi dhe e transmeton atë në një instancë publike).

    Në fund të janarit, X ndaloi lëshimin e këtyre tokenëve. Eliminimi i mënyrës së fundit të aksesit e vendosi Nitter në vështirësi si një shërbim publik falas shumëpërdorues, duke e shpallur autorin Nitter të vdekur.

    Disa instanca u mbyllën menjëherë pas kësaj, të tjera modifikuan kodin për të kursyer rreptësisht përdorimin e tokenëve ekzistues, veçanërisht duke u fokusuar në përdorimin e tyre për marrjen e listave të tweet-eve nga akountet, duke lëshuar mesazhe gabimi për çdo gjë tjetër. Më 26 shkurt, koha e jetës së tokenëve të fundit të mysafirit skadoi, duke shkaktuar ndërprerjen e funksionimit të të gjitha instancave publike. Megjithatë, në tracker-in e defekteve po diskutohet për mënyrat që ndërlidhen ndonjëherë me akountet e mysafirëve.

    Një nga zgjidhjet themelore të problemit mund të ishte zëvendësimi i Twitter-it duke krijuar një shërbim alternativ dhe të decentralizuar mbi bazën e ActivityPub dhe IPFS, ku identifikuesi kryesor i çdo mesazhi është CID-i i tij në IPFS. Mund të përfytyrohet një strukturë e shumëfishtë si kjo:

  • Të dhënat, të publikuara fillimisht në shërbimin federativ si në platformën kryesore, dhe të pasqyruara në IPFS.
  • Të dhënat, të publikuara në Twitter nga vetë përdoruesit, por që janë pasqyruar në llogaritë e tyre në platformën federative me një zgjerim të shfletuesit dhe nga aty - në IPFS.
  • Të dhënat, të cilat përdoruesit i kanë shkarkuar nga Twitter duke përdorur funksionin e shkarkimit, dhe i kanë ngarkuar në Fediverse + IPFS përmes funksionit të ngarkimit masiv.

    Të dhënat e pikës 3 megjithatë nuk zgjidhin problemin e mos pjesëmarrjes së përdoruesve të Twitter në programin e zëvendësimit të Twitter-it.

    Për çdo identifikues postimi në çdo platformë të centralizuar, mund të jetë e dobishme të mbahet shfaqja e tij në IPFS CID, e cila funksionon si një cache, duke lejuar që pa e ditur vetë tekstin e postit, por me njohjen e identifikuesit të tij të centralizuar, të zbulohet identifikuesi i tij decentralizuar. Gjatë gjenerimit të URI në IPFS (çka mund të bëhet pa e ngarkuar në të vërtetë), teksti i postit kalon një kanonizim, i cili përfshin vendosjen e të dhënave në një kontenier të bazuar në HTML me meta të dhëna të lexueshme nga mahnia, normalizimin e Unicode, konvertimin në UTF-8, zëvendësimin e karaktereve ndarëse me vende të thjeshta, dhe zëvendësimin e të gjitha lidhjeve në postime në këtë dhe platforma të tjera që kalojnë përmes një procedure të ngjashme, me URI në IPFS.

    Çdo platformë ka një dokument të lexueshëm nga makina që përshkruan rregullat e kanonikizimit të postimeve, duke përfshirë shumë shërbime, lidhjet e të cilave zëvendësohen me IPFS URI në postimet e kësaj rrjeti. Çdo postim në çdo rrjet kanonizohet sipas rregullave të kanonikizimit të postimeve në atë rrjet, të cilat janë në fuqi në momentin që egziston data e postimit. Gjatë kanonikizimit, nëse në postim ka një lidhje në një postim në njërin nga platformat e zëvendësuara, realizimi nxjerr nga lidhja një identifikues të qendruar dhe verifikon praninë e tij në indekset besuese.

    Nëse ndodhet në indeks, realizimi përdor identifikuesin dekentrali të indekseve. Nëse mungon, realizimi kërkon postimin në lidhje, e kanonizon atë dhe formon një identifikues që mund të vendoset në indekse. Realizimi nuk është i detyruar të vendosë postimin e kërkuar në një rrjet dekentral. Realizimi mund të verifikojë saktësinë e identifikuesit në indeks duke riprodhuar lokal procesin. Realizimi i indeksit është i detyruar të verifikojë saktësinë e gjenerimit të identifikuesve duke riprodhuar lokal procesin.

    Kyçet e këtij procesi të përcaktuar do të mundësojnë gjenerimin e lidhjeve të pandryshueshme për përmbajtjen, madje edhe për tweet-et, të cilat aktualisht nuk marrin pjesë në programin e zëvendësimit të Twitter. Kur disa nga to fillojnë të ngarkojnë tweet-et e tyre në IPFS, algoritmi do të gjenerojë identifikues të njëjtë me ata që tashmë përdoren në lidhjet për to, me kusht që indeksi të përmbajë përfaqësime korrekte dhe vetë përmbajtja të mos ketë ndryshuar.

    Burimi: opennet.ru

  • Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster