
🔬 Beaker Browser: eksperimentaalne partnervõrgu brauser veebiarendajatele
Mis on Beaker Browser ja miks sellest ikka veel räägitakse
Internet, nagu me seda tunneme, on üles ehitatud klient-server arhitektuurile. Sa sisestad aadressi, brauser läheb AWS-i või Cloudflare'i andmekeskuses asuvasse serverisse, toob HTML-i ja renderdab lehe. Kui server läheb rivist välja, on sait kadunud. 2016. aastal pakkus väike tiim Blue Link Labsis eesotsas Paul Frazee'ga välja alternatiivi: mis siis, kui igast kasutajast saaks tema enda server?
Nii sündiski Beaker Browser, eksperimentaalne brauser, mis põhines Electronil ja Chromiumil ning kasutas Hypercore protokolli (algselt Dat) peer-to-peer sisu avaldamiseks. Pole vaja backend'i ega hostimist: sa lood saidi otse brauseris ja teised kasutajad loovad ühenduse otse sinu arvutiga.
Projekt arhiveeriti 2022. aasta detsembris, kuid selle ideed elavad edasi. Paul Frazee'st sai Bluesky tehnoloogiajuht ja Hypercore protokoll ise areneb edasi. Altpoolt leiad, kuidas Beaker kapoti all töötas, millistele P2P API-dele olid veebiarendajatel juurdepääs ja mis saab seda tänapäeval asendada. Kui sa ehitad midagi detsentraliseeritud veebis, säästavad need õppetunnid sulle nädalaid katsetamist ja eksimist.

💡 Kiirülevaade:
Paigalda Beaker GitHubi väljalasete lehelt Windowsile, macOS-ile või Linuxile. Binaarjärgud on endiselt saadaval, eraldi hostimist pole vaja.
Klõpsa „Create New Site" ja brauser genereerib
hyper://aadressiga saidi otse sinu arvutisse. Pole vaja DNS-i, nginxi ega juurutamist.Redigeeri faile sisseehitatud koodiredaktoris ja Hyperdrive'is, jaga
hyper://aadressi teise Beakeri kasutajaga ja nad loovad sinuga otseühenduse.Projekt suleti 2022. aastal: võrk on peaaegu tühi. Töötavate Hypercore'i eksperimentide jaoks vaata Agregore'i ja Peersky Browserit.
Kuidas Beaker Browser veebi uuesti leiutas
Beaker ei olnud lihtsalt Chromiumi ümbris koos torrentitoega. See oli täisväärtuslik brauser, mis lisas veebiplatvormile uue kihi: võime lugeda ja kirjutada faile otse peer-to-peer võrku.
Kui sa külastasid saiti hyper:// protokolliga, laadis Beaker selle failid nende teiste kasutajate arvutitest, kes olid seda saiti külastanud. Pärast allalaadimist hakkasid sa ise faile jagama, kas ajutiselt, kuni leht oli avatud, või püsivalt, kui sa lubasid jagamise. See sarnanes BitTorrentiga, kuid oli otse brauserisse sisse ehitatud ja seotud veebiaadressidega.
Kuus funktsiooni, mis muutsid Beakeri paigaldamist väärt
Kohene saidi avaldamine. Sa klõpsasid „Create New Site" ja Beaker genereeris hyper:// aadressiga saidi. Sait oli koheselt võrgus saadaval; igaüks, kellel oli Beaker, sai selle avada, kui ta aadressi teadis. Pole vaja DNS-i seadistamist, nginxi ega juurutamist.
Koostööl põhinev hostimine. Mida rohkem külastajaid P2P saidile tuli, seda kiiremini see laadis, sest iga külastaja aitas sisu levitada. See vähendas autori koormust: liikluse tipphetkedel polnud vaja võimsat serverit, võrk skaleeris end ise.
P2P rakendused veebitehnoloogiaid kasutades. Beaker pakkus beaker.hyperdrive JavaScript API-t failide lugemiseks ja kirjutamiseks peer-to-peer failisüsteemi. See tähendas, et veebirakendus sai andmeid salvestada mitte serveris, vaid detsentraliseeritud võrgus ja kasutajad kontrollisid oma faile ise.
Hyperdrive'i failisüsteem. Iga sait Beakeris ei olnud lihtsalt lehtede kogum, vaid täisväärtuslik failisüsteem koos versioonihaldusega. Sa said sirvida saidistruktuuri nagu failihalduris, näha muudatuste ajalugu ja isegi teiste inimeste projekte hargida, sarnaselt GitHubile, kuid kogu veebi jaoks.
Sisseehitatud terminal. Beaker sisaldas Webtermi, käsurea keskkonda otse brauseris. Arendajad said käivitada skripte, hallata faile ja suhelda API-dega brauseriaknast lahkumata.
Lähtekoodi redaktor. Integreeritud redaktor võimaldas redigeerida saidi HTML-i, CSS-i ja JavaScripti ning näha tulemust koheselt, avatud lehega külg külje kõrval. Idee sarnaneb tänapäevastele online-IDE-dele, kuid detsentraliseeritud veebi jaoks.
Hypercore API-ga töötamine: koodinäited
Beaker lisas globaalsele window objektile beaker nimeruumi koos mitme olulise API-ga. Vaatame peamisi lähemalt; kogu kood on kontrollitud projekti dokumentatsiooni põhjal.
Hyperdrive'i failisüsteemiga töötamine
beaker.hyperdrive API võimaldas otse ligi pääseda P2P-saitide failidele. Siin on näide draivi loomisest, kirjutamisest ja lugemisest:
1 const drive = await beaker.hyperdrive.createDrive() 2 3 await drive.readdir('/') 4 await drive.writeFile('/hello.md', '# Hello, P2P web!') 5 6 const stat = await drive.stat('/hello.md') 7 console.log('Size:', stat.size, 'bytes') 8 console.log('Modified:', stat.mtime) 9 10 const content = await drive.readFile('/hello.md', 'utf8') 11 console.log(content) // '# Hello, P2P web!' 12 13 await drive.unlink('/hello.md')
Meetodid on intuitiivsed ja sarnanevad Node.js-i fs mooduliga: writeFile, readFile, stat, unlink, readdir. Erinevus on selles, et andmeid ei kirjutata kohalikule kettale, vaid peer-to-peer-võrku ning iga teine kasutaja, kellel on sellele draivile ligipääs, saab neid lugeda.
Failisüsteemi päringud
beaker.hyperdrive.query API võimaldas otsida faile mustri järgi korraga mitmelt saidilt. See avas ukse detsentraliseeritud voogudele, otsingumootoritele ja sotsiaalvõrgustikele ilma keskse serverita:
1 async function readSocialFeed(sites) { 2 return beaker.hyperdrive.query({ 3 path: '/microblog/*', 4 drive: sites.map(site => site.url), 5 sort: 'ctime', 6 }) 7 }
Üks päring ja saad ajaliselt sorteeritud nimekirja postitustest kõigi sites massiivi saitide mikroblogidest. Pole API-võtmeid, OAuthi ega serveritaristut.
Peer-to-peer-sõnumid
beaker.peersockets API pakkus otsesuhtlust saidi kasutajate vahel, sarnanedes WebSocketiga, kuid töötades Hypercore'i võrgu peal:
1 const topic = beaker.peersockets.join('chat') 2 3 topic.addEventListener('message', (e) => { 4 const message = new TextDecoder().decode(e.message) 5 console.log(e.peerId, 'says:', message) 6 }) 7 8 function sendToPeer(peerId, message) { 9 const encoded = new TextEncoder('utf-8').encode(message) 10 topic.send(peerId, encoded) 11 }
See API võimaldas ehitada detsentraliseeritud vestlusi, ühisredaktoreid ja reaalajarakendusi, kus sõnumid liiguvad otse kasutajalt kasutajale ilma vaheserverita.
Miks projekt suleti: kolm õppetundi Beaker Browserist
- detsembril 2022 arhiveeriti Beakeri repositoorium ametlikult koos Paul Frazee märkusega: „Aeg on käes." Ta siirdus Blueskysse, detsentraliseeritud sotsiaalvõrgustikku, kus AT-protokoll lahendab sarnaseid probleeme, kuid teisel tasandil.
Sulgemiseks oli mitu põhjust. Esiteks ei jõudnud P2P-veeb kunagi eksperimenteerimisest kaugemale. Tavakasutaja pole valmis kasutama brauserit, mis ei toeta laiendusi, ei sünkrooni järjehoidjaid ega tööta tuttavate saitidega ilma mööndusteta. Teiseks osutus peer-to-peer-võrgu külmkäivitusprobleem karmiks: kui saidi autor on võrgust maas ja teised külastajad ei jaga andmeid, pole sait kättesaadav. Kolmandaks osutus Chromium nišibrauseri jaoks liiga raskeks aluseks: kohandatud API-dega haru ülalpidamine nõudis ressursse, mida kolmeliikmelisel meeskonnal polnud.
Kuid Beakeri õppetunnid on väärtuslikumad kui brauser ise. Projekt näitas, et brauser võib olla mitte ainult aken veebi, vaid täisväärtuslik arenduskeskkond. Et hyper:// kui protokollil on õigus eksisteerida. Ja et detsentraliseeritud API-d (beaker.hyperdrive, beaker.peersockets) võivad olla sama mugavad kui fetch või localStorage.
Video: Beaker Browser töös
Vaadake Paul Frazee demonstratsiooni Beakerist, 2017. aasta salvestust, kus ta näitab P2P-saidi loomist reaalajas:
5 minutiga selgitab video selgemalt kui ükski sõna, kuidas kohene avaldamine töötas ja miks see idee oli võimas.
Mis edasi sai: Agregore ja teised P2P-brauserid
Beakeri vaim ei surnud. Täna jätkavad mitmed projektid detsentraliseeritud veebi brauseri ideed:

Agregore Browser on minimalistlik brauser hajusveebi jaoks, mis toetab kohe karbist välja IPFS-i, Hypercore'i ja BitTorrenti protokolle. Erinevalt Beakerist ei vea Agregore kaasa tervet Chromiumi, vaid on ehitatud kergele Electronile, keskendudes P2P-protokollidele. Veebipoe laiendused on toetatud, HTTP-saidid töötavad tavapäraselt. Projektil on üle 900 tähe GitHubis ja seda uuendatakse aktiivselt.
Peersky Browser on veel üks eksperimentaalne P2P-brauser, millel on IPFS-i, Hypercore'i ja Web3 tugi. Peersky lisab oma P2P-rakenduste komplekti (peersky://p2p/) ja keskendub integreerimisele ahelaandmetega. Projekt on Agregorest noorem, kuid areneb samas suunas: brauser kui detsentraliseeritud veebi platvorm.
Hypercore'i protokoll ise jätkab elu igast brauserist sõltumatult: see toidab Keet (P2P-videokõned protokolli loojatelt) ja teisi detsentraliseeritud rakendusi.
⁉️🤔 Korduma kippuvad küsimused
Kas Beaker Browserit saab praegu alla laadida ja käivitada?
Binaarversioonid on endiselt saadaval GitHubi väljalaskelehel Windowsile, macOS-ile ja Linuxile. Brauser käivitub, kuid P2P-võrk on praktiliselt tühi: enamik peer'e on võrgust maas, saidid pole kättesaadavad. Hypercore'i protokolliga katsetamiseks peaksite vaatama pigem Agregore'i või Keeti poole.
Jah, paigaldusfailid on endiselt GitHub Releases'is. Kuid selle paigaldamisel pole täna praktilist mõtet: Beakeri võrk on surnud, dokumentatsioon aadressil docs.beakerbrowser.com pole kättesaadav ja projekt pole alates 2022. aastast turvauuendusi saanud. Kontseptsiooni mõistmiseks piisab lähtekoodist GitHubis ja videodemonstratsioonidest.
Kuidas erines Beaker tavalisest brauserist, millel on torrent-laiendus?
Beaker oli terviklik platvorm, mitte lisandmoodul. Torrent-laiendus ainult laeb faile alla, samas kui Beaker andis saitidele JavaScript API failisüsteemi lugemiseks, kirjutamiseks, otsimiseks ja kasutajate vaheliseks otsesõnumivahetuseks. Kõik see töötas veebiplatvormi osana, mitte välise pluginana.
Tavaline brauser torrent-kliendiga võimaldab magnetlingi kaudu faili alla laadida. Beaker läks kaugemale:
hyper://protokollil sait võis otsida sisu teistelt saitidelt, kasutadesbeaker.hyperdrive.query(), ja vahetada külastajatega sõnumeid, kasutadesbeaker.peersockets. See on teine integratsioonitase: P2P ei olnud brauseri funktsioon, vaid veebiplatvormi alus.
Kas Beaker töötas tavaliste HTTP-saitidega?
Jah, täielikult. Beaker oli ehitatud Chromiumile ja avas korrektselt kõiki HTTP/HTTPS-saite. Probleem oli vastupidine: tavalised brauserid ei toetanud hyper:// protokolli, seega olid P2P-saidid 99,9% internetikasutajatele nähtamatud. See oli üks põhjusi, miks projekt ei käivitunud.
Ühilduvus oli ühesuunaline. Beakerit sai kasutada tavalise brauserina kogu veebi jaoks, kuid loodud P2P-sait oli nähtav ainult teistele Beakeri kasutajatele. Massiline kasutuselevõtt oleks eeldanud kas
hyper://tuge Chrome'is ja Firefoxis või väravaid nagu Hashbase, mis tõlkisid P2P-saidid HTTP-sse. Kumbagi ei juhtunud piisavas mahus.
Mis sai Paul Frazee'st ja Blue Link Labsi meeskonnast?
Paul Frazee'st sai Bluesky tehnoloogiajuht, detsentraliseeritud sotsiaalvõrgustik, mis on ehitatud AT-protokollile. Ühes postituses Blueskys selgitab ta, et Beakeri kogemus mõjutas otseselt AT-protokolli arhitektuuri. Blue Link Labs lakkas eksisteerimast. Projekti teine võtmeisik, Tara Vancil, kirjutas liigutava postituse "A Fond Farewell to Beaker" projekti tõusudest ja mõõnadest.
Tehniliselt ei hüljanud Frazee detsentraliseerimist, vaid liikus teisele tasandile. P2P-veebi brauseri asemel ehitab ta protokolli detsentraliseeritud sotsiaalvõrgustiku jaoks. AT-protokoll Blueskys lahendab paljusid probleeme, mis Beakeri komistama panid: puhtalt peer-to-peer asemel födereeritud mudel, selge eraldus serverite ja klientide vahel, skaleerimise tugi.
Kas Beakeri uurimisel on täna mingit mõtet?
Koodibaasina, jah. GitHubi lähtekood näitab, kuidas integreerida P2P-protokoll Electroni rakendusse, kuidas kujundada API detsentraliseeritud failisüsteemi jaoks ja kuidas ehitada brauserilaiendusi kohandatud protokollidega. Tootena, ei, kuid hariva projektina detsentraliseeritud tehnoloogiate kohta, absoluutselt.
Beakeri lähtekood esindab 6752 tähte GitHubis ja kümneid repositooriume eksperimentidega Hypercore'i protokolli ümber. P2P-tehnoloogiatest huvitatud arendajale on see arhitektuursete otsuste aardelaegas: alates kohandatud protokollide käsitlemisest Electronis kuni Hypercore'il põhinevate lisamis-päevikute ehitamiseni.
Kas 2026. aastal tasub Beakerile tagasi vaadata
Beaker Browser ei muutunud peavooluks. Kuid see näitas, et alternatiivne veebimudel on võimalik: mudel, kus kasutaja ei ole serverist eraldatud CDN-ide, koormuse jagajate ja API-väravate virnaga, vaid on ise võrgusõlm.
Beakeri ideed rändasid edasi Blueskysse, Hypercore protokoll elab edasi Keetis ja teistes projektides ning Agregore Browser jätkab katsetust mitut protokolli toetava P2P-brauseriga ka tänapäeval. Kui oled veebiarendaja ja tahad mõista, kuhu detsentraliseeritud veeb liigub, alusta Beakeri lähtekoodist GitHubis ja aktiivsest Agregore'ist.
Eksperiment ei õnnestunud, kuid idee ise osutus nakkavaks. Ja see on ehk olulisem kui turuedu.



