Prestanak postojanja Nittera, slobodnog alternativnog frontend-a za Twitter

Posljednji javni primjerci Nittera postali su neupotrebljivi. Projekt Nitter razvio je slobodni frontend za pristup X.com/Twitteru bez nametanja JavaScript-a, analitike, tragača i vanjskih servisa. 31. siječnja prestala je isporuka tokena koji se koriste u Nitteru za organizaciju pristupa sadržaju na X.com. 26. veljače isteklo je vrijeme trajanja posljednjih ranije izdanih tokena, što je dovelo do potpunog prestanka rada Nittera.

Nakon kupnje od strane Ilona Muska, Twitter (sada preimenovan u X) počeo je provoditi niz tehničkih i organizacijskih mjera usmjerenih na agresivno monetiziranje platforme koja je ranije smatrana gubitničkom. Među promjenama uvedena je naplata podataka koje svaki račun dobiva (postavljeni su limiti za različite vrste računa — 10.000 za vlasnike plaćene 'plave kvačice', 1.000 za obične, 500 za nove obične); računi 'programera' prebačeni su u kategoriju plaćenih s limitima pogodnim za masovno prikupljanje podataka (scraping); prestala je isporuka informacija korisnicima bez računa.

Kao opravdanje javno se tvrdilo (2023-07-01) da su to 'privremene hitne mjere', povezane s time što automatizirano učitavanje podataka botovima dovodi do pogoršanja usluge za obične korisnike. Prije toga (2023-04-19) bilo je insinuacija prema Microsoftu, vezano uz to da ova kompanija ilegalno koristi podatke s Twittera za obuku AI-a. Kasnije (2023-11-17) uvođenje limita opravdano je obećanjem Muska o borbi protiv botova.

Nitter je bio projekt za razvoj softvera koji štiti korisnike Twittera od praćenja, koji ne šalju poruke, već samo čitaju sadržaj, pružajući im alternativnu stranicu za pregled Twittera koja ne zahtijeva ni račun ni uključen JavaScript. Ovaj softver praktički je scraper i posrednik koji umjesto pohranjivanja podataka u bazu podataka šalje ih krajnjem korisniku (neki službeni podaci ipak se keširaju u Redis-u).

Tako je Nitterov softver:

  • tehnički bio upravo onaj tip softvera s kojim je vodstvo Twittera najavilo aktivnu borbu;
  • bio je jedan od rijetkih aktivno razvijanih softvera za pristup podacima objavljenim na Twitteru, što je pridonijelo njegovoj privlačnosti kao modulu za skrejping u užem smislu te riječi — prikupljanje podataka zaobilazeći službene sučelje.
  • javne instance Nittera same su postale objekt skrejpinga, što je dovelo do toga da su neke instance implementirale vlastitu varijantu captcha (1 dodatni POST zahtjev, specifičan za određenu instancu).

    Kao rezultat analize alternativnih putova za nastavak rada u novim uvjetima, otkriveni su RSS i neki ulazni točke na syndication.twitter.com, koje su davale informacije neovjerenim korisnicima u JSON formatu i korištene su za integraciju s drugim društvenim mrežama. Nitter je neko vrijeme dobivao informacije putem tih sučelja, ali su i ona kasnije zatvorena. Nakon toga, pronađen je način korištenja "gostujućih računa" s privilegijama za čitanje. Jedna vrsta "gostujućih računa" bila je namijenjena korištenju na uređajima interneta stvari s ograničenim preglednicima.

    No, Nitter je koristio drugu vrstu "gostujućih računa" koji su koristili OAuth umjesto kolačića, registrirali su se putem API-ja i očito su korišteni od strane Android aplikacije. Ova vrsta računa ima limite od 500 zahtjeva prema API-ju u razdoblju od 15 minuta, a njihova "registracija" vezana je uz IP-adresu (s jednog IP-a može se registrirati jedan "gostujući račun" tijekom dana, ali već registrirani "račun" može se koristiti s drugih IP adresa).

    Takvi "računi" (pristupni tokeni) bili su operativni tijekom 30 dana. U to vrijeme adekvatno rješenje problema masovne registracije privremenih računa moglo bi biti crowdsourcing njihova registriranja od strane korisnika, koristeći nešto slično Bibliogramu (korisnički skript koji uzima gostujući token od korisnika i predaje ga javnoj instanci).

    Krajem siječnja X je prestao izdavati takve tokene. Ukidanje posljednjeg načina pristupa potpisalo je kraj Nittera kao javnog besplatnog višekorisničkog servisa, zbog čega je autor izjavio da je Nitter mrtav.

    Dio instanci nakon toga odmah se zatvorio, drugi su izmijenili kod kako bi strogo uštedjeli na korištenju postojećih tokena, posebno s prioritetnim korištenjem za dobivanje popisa tweetova računa, sa slanjem poruka o grešci za sve ostalo. 26. veljače, vrijeme trajanja posljednjih gostujućih tokena isteklo je, zbog čega su sve javne instancije prestale funkcionirati. Ipak, u bug-trackeru se raspravlja o načinima koji se nekako odnose na gostujuće račune.

    Jedno od radikalnih rješenja problema moglo bi biti zamjena Twittera stvaranjem alternativne decentralizirane usluge temeljenom na ActivityPub i IPFS, gdje je glavni identifikator svake poruke njen IPFS CID. Može se zamisliti sljedeća višeslojna konstrukcija:

  • Podaci, izvorno objavljeni u federativnoj usluzi kao na glavnoj platformi, te odraženi u IPFS-u.
  • Podaci, objavljeni na Twitteru od strane samih korisnika, ali pomoću pregledničke ekstenzije odraženi u njihovim računima na federativnoj platformi, a odatle — u IPFS.
  • Podaci koje su sami korisnici preuzeli s Twittera koristeći funkciju preuzimanja, i prenijeli u Fediverse + IPFS putem funkcije masovnog prenosa.

    Podaci iz 3. točke, međutim, ne rješavaju problem neangažiranosti korisnika Twittera u programu zamjene Twittera.

    Za svaki identifikator posta na svakoj centraliziranoj platformi moglo bi biti korisno održavati njegovo prikazivanje u IPFS CID-u, koji služi kao cache, omogućujući bez poznavanja samog teksta posta, ali uz poznavanje njegovog centraliziranog identifikatora, saznati njegov decentralizirani identifikator. Pri generiranju URI u IPFS-u (što se može učiniti bez stvarnog učitavanja), tekst posta prolazi kroz kanonizaciju, koja se sastoji od stavljanja podataka u kontejner temeljen na HTML-u s mašinski čitljivim metapodacima, normalizaciju unicode-a, konverziju u UTF-8, zamjenu razmaknih znakova jednostavnim jednim razmakom, i zamjenu svih poveznica na postove na ovoj i drugim platformama koje prolaze kroz sličnu proceduru, na URI u IPFS.

    Svaka od platformi ima mašinski čitljiv dokument koji opisuje pravila kanonizacije postova, uključujući mnoge servise čije se veze zamenjuju IPFS URI-jem u postovima te mreže. Svaki post u svakoj mreži kanonizuje se prema pravilima kanonizacije postova u toj mreži koja su na snazi u trenutku kada je post datiran. Tokom kanonizacije, ako post sadrži vezu na post u jednoj od zamenjenih platformi, implementacija izvlači centralizovani identifikator i proverava njegovo prisustvo u pouzdanim indeksima.

    U slučaju da je u indeksu, implementacija koristi decentralizovani identifikator iz indeksa. Ako nije prisutan, implementacija zahteva post putem veze, kanonizuje ga i formira identifikator koji može staviti u indekse. Implementacija nije obavezna da postavljeni post stavi u decentralizovanu mrežu. Implementacija može proveriti tačnost identifikatora u indeksu putem lokalne reprodukcije procesa. Implementacija indeksa mora proveriti tačnost generisanja identifikatora putem lokalne reprodukcije procesa.

    Ovakav deterministički proces omogućava generisanje nepromenljivih veza na sadržaj čak i za tvitove čiji posteri još uvek ne učestvuju u programu tvitternotifikacije. Kada deo njih bude postavljao svoje tvitove u IPFS, algoritam će generisati za njih identifikatore identične onima koji se već koriste u vezama ka njima, pod uslovom da indeks sadrži tačna prikazivanja i da se sam sadržaj nije promenio.

    Izvor: opennet.ru

  • Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster