
🔬 Beaker Browser: kokeellinen vertaisverkkoselain verkkokehittäjille
Mikä on Beaker Browser ja miksi siitä yhä puhutaan
Internet sellaisena kuin me sen tunnemme rakentuu asiakas-palvelin-arkkitehtuurin varaan. Kirjoitat osoitteen, selain hakee HTML:n joltain palvelimelta AWS:n tai Cloudflaren konesalista ja renderöi sivun. Jos palvelin kaatuu, sivusto katoaa. Vuonna 2016 Blue Link Labsin pieni tiimi, jota johti Paul Frazee, ehdotti vaihtoehtoa: mitä jos jokaisesta käyttäjästä tulisi oma palvelimensa?
Näin syntyi Beaker Browser, kokeellinen Electroniin ja Chromiumiin pohjautuva selain, joka käytti Hypercore-protokollaa (alun perin Dat) vertaisverkkosisällön julkaisuun. Ei taustajärjestelmää, ei hostausta: luot sivuston suoraan selaimessa, ja muut käyttäjät yhdistävät suoraan tietokoneellesi.
Projekti arkistoitiin joulukuussa 2022, mutta sen ideat elävät. Paul Frazeesta tuli Blueskyn CTO, ja itse Hypercore-protokolla kehittyy edelleen. Alta näet, miten Beaker toimi konepellin alla, mitä P2P-rajapintoja web-kehittäjillä oli käytössään ja mikä voi korvata sen tänä päivänä. Jos rakennat jotain hajautetussa webissä, nämä opit säästävät sinulta viikkojen kokeilun ja erehdyksen.

💡 Pikakatsaus:
Asenna Beaker GitHubin release-sivulta Windowsille, macOS:lle tai Linuxille. Binäärikäännökset ovat yhä saatavilla, erillistä hostausta ei tarvita.
Klikkaa "Create New Site", ja selain luo sivuston, jolla on
hyper://-osoite, suoraan koneellesi. Ei DNS:ää, nginxiä eikä deployausta.Muokkaa tiedostoja sisäänrakennetulla koodieditorilla ja Hyperdrivella, jaa
hyper://-osoite toiselle Beaker-käyttäjälle, ja hän yhdistää suoraan sinuun.Projekti suljettiin vuonna 2022: verkko on lähes tyhjä. Toimivia Hypercore-kokeiluja varten tutustu Agregoreen ja Peersky Browseriin.
Miten Beaker Browser keksi verkon uudelleen
Beaker ei ollut pelkkä Chromium-kuori torrent-tuella. Se oli täysiverinen selain, joka lisäsi web-alustaan uuden kerroksen: kyvyn lukea ja kirjoittaa tiedostoja suoraan vertaisverkkoon.
Kun vierailit hyper://-protokollaa käyttävällä sivustolla, Beaker latasi sen tiedostot niiden tietokoneilta, jotka olivat aiemmin vierailleet kyseisellä sivustolla. Latauksen jälkeen aloit itse jakaa tiedostoja joko väliaikaisesti sivun ollessa auki tai pysyvästi, jos otit jaon käyttöön. Se muistutti BitTorrentia, mutta oli rakennettu suoraan selaimeen ja sidottu web-osoitteisiin.
Kuusi ominaisuutta, jotka tekivät Beakerista asentamisen arvoisen
Välitön sivuston julkaisu. Klikkasit "Create New Site", ja Beaker loi sivuston, jolla oli hyper://-osoite. Sivusto oli heti saatavilla verkossa; kuka tahansa Beakerin omistava pystyi avaamaan sen, jos tiesi osoitteen. Ei DNS-määrityksiä, nginxiä eikä deployausta.
Yhteisöllinen hostaus. Mitä enemmän P2P-sivustolla oli kävijöitä, sitä nopeammin se latautui, koska jokainen kävijä auttoi sisällön jakelussa. Tämä kevensi tekijän kuormaa: liikennepiikkien aikana ei tarvittu tehokasta palvelinta, verkko skaalautui itsestään.
P2P-sovellukset web-teknologioilla. Beaker tarjosi beaker.hyperdrive-JavaScript-rajapinnan vertaisverkon tiedostojärjestelmän lukemiseen ja kirjoittamiseen. Tämä tarkoitti, että web-sovellus pystyi tallentamaan dataa ei palvelimelle vaan hajautettuun verkkoon, ja käyttäjät hallitsivat omia tiedostojaan.
Hyperdrive-tiedostojärjestelmä. Jokainen Beakerin sivusto ei ollut vain joukko sivuja vaan täysiverinen tiedostojärjestelmä versiointeineen. Pystyit selaamaan sivuston rakennetta kuin tiedostonhallinnassa, näkemään muutoshistorian ja jopa forkkaamaan toisten projekteja, samaan tapaan kuin GitHubissa mutta koko webille.
Sisäänrakennettu pääte. Beaker sisälsi Webtermin, komentorivi-ympäristön suoraan selaimessa. Kehittäjät pystyivät ajamaan skriptejä, hallitsemaan tiedostoja ja käyttämään rajapintoja poistumatta selainikkunasta.
Lähdekoodieditori. Integroitu editori antoi sinun muokata sivuston HTML:ää, CSS:ää ja JavaScriptiä ja nähdä tuloksen välittömästi, rinnakkain avoimen sivun kanssa. Idea muistutti nykyaikaisia verkko-IDE:itä, mutta hajautetulle webille.
Työskentely Hypercore-rajapinnan kanssa: koodiesimerkkejä
Beaker lisäsi beaker-nimiavaruuden globaaliin window-objektiin useilla keskeisillä rajapinnoilla. Käydään läpi tärkeimmät; kaikki koodi on tarkistettu projektin dokumentaatiosta.
Hyperdrive-tiedostojärjestelmän käyttö
beaker.hyperdrive-rajapinta tarjosi suoran pääsyn P2P-sivustojen tiedostoihin. Tältä näytti aseman luominen, kirjoittaminen ja lukeminen:
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')
Metodit ovat intuitiivisia ja muistuttavat Node.js:n fs-moduulia: writeFile, readFile, stat, unlink, readdir. Ero on siinä, että dataa ei kirjoiteta paikalliselle levylle vaan vertaisverkkoon, ja kuka tahansa muu käyttäjä, jolla on pääsy tähän asemaan, voi lukea sen.
Tiedostojärjestelmän kysely
beaker.hyperdrive.query-rajapinta mahdollisti tiedostojen haun mallin perusteella useilta sivustoilta samanaikaisesti. Tämä avasi oven hajautetuille syötteille, hakukoneille ja sosiaalisille verkostoille ilman keskitettyä palvelinta:
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 }
Yksi kutsu, ja saat ajan mukaan lajitellun listan julkaisuista kaikkien sites-taulukon sivustojen mikroblogeista. Ei API-avaimia, ei OAuthia, ei palvelininfrastruktuuria.
Vertaisverkkoviestit
beaker.peersockets-rajapinta tarjosi suoran viestinnän sivuston käyttäjien välillä, samankaltaisesti kuin WebSocket, mutta Hypercore-verkon päällä:
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 }
Tämä rajapinta mahdollisti hajautettujen chattien, yhteistyöeditorien ja reaaliaikaisten sovellusten rakentamisen, joissa viestit kulkevat suoraan käyttäjältä käyttäjälle ilman välittäjäpalvelinta.
Miksi projekti lopetettiin: kolme oppia Beaker-selaimesta
- joulukuuta 2022 Beakerin repositorio arkistoitiin virallisesti Paul Frazeen viestillä: "Aika on tullut." Hän siirtyi Blueskyhin, hajautettuun sosiaaliseen verkostoon, jossa AT-protokolla ratkaisee samankaltaisia ongelmia eri tasolla.
Sulkemiselle oli useita syitä. Ensinnäkin P2P-verkko ei koskaan edennyt kokeiluvaihetta pidemmälle. Keskivertokäyttäjä ei ole valmis käyttämään selainta, joka ei tue laajennuksia, ei synkronoi kirjanmerkkejä eikä toimi tuttujen sivustojen kanssa ilman varauksia. Toiseksi vertaisverkon kylmäkäynnistysongelma osoittautui karuksi: jos sivuston tekijä on offline-tilassa eivätkä muut vierailijat jaa sisältöä, sivusto ei ole saatavilla. Kolmanneksi Chromium osoittautui liian raskaaksi perustaksi niche-selaimelle: räätälöityjen rajapintojen sisältävän fork-version ylläpito vaati resursseja, joita kolmen hengen tiimillä ei ollut.
Mutta Beakerista saadut opit ovat arvokkaampia kuin selain itse. Projekti osoitti, että selain voi olla muutakin kuin ikkuna verkkoon, se voi olla täysiverinen kehitysympäristö. Että hyper://-protokollalla on oikeus olla olemassa. Ja että hajautetut rajapinnat (beaker.hyperdrive, beaker.peersockets) voivat olla yhtä käteviä kuin fetch tai localStorage.
Video: Beaker-selain toiminnassa
Katso Paul Frazeen esittely Beakerista, vuoden 2017 tallenne, jossa hän näyttää P2P-sivuston luomisen reaaliajassa:
Viidessä minuutissa video selittää selvemmin kuin mikään sanallinen kuvaus, miten välitön julkaiseminen toimi ja miksi idea oli voimakas.
Mitä seurasi: Agregore ja muut P2P-selaimet
Beakerin henki ei kuollut. Nykyään useat projektit jatkavat hajautetun verkon selaimen ideaa:

Agregore Browser on minimalistinen selain hajautetulle verkolle, joka tukee IPFS-, Hypercore- ja BitTorrent-protokollia suoraan. Toisin kuin Beaker, Agregore ei raahaa mukanaan koko Chromiumia vaan on rakennettu kevyen Electronin päälle keskittyen P2P-protokolliin. Selain tukee verkkokaupan laajennuksia, ja HTTP-sivustot toimivat normaalisti. Projektilla on yli 900 tähteä GitHubissa ja sitä päivitetään aktiivisesti.
Peersky Browser on toinen kokeellinen P2P-selain, jossa on IPFS-, Hypercore- ja Web3-tuki. Peersky tuo mukanaan oman P2P-sovelluskokoelmansa (peersky://p2p/) ja keskittyy integraatioon ketjudatan kanssa. Projekti on Agregorea nuorempi mutta kehittyy samaan suuntaan: selain hajautetun verkon alustana.
Hypercore-protokolla itse jatkaa elämäänsä selaimista riippumatta: se toimii Keetin (protokollan tekijöiden P2P-videopuhelut) ja muiden hajautettujen sovellusten moottorina.
⁉️🤔 Usein kysytyt kysymykset
Voiko Beaker Browserin ladata ja käynnistää nyt?
Binäärikoontiversiot ovat yhä saatavilla GitHubin releases-sivulla Windowsille, macOS:lle ja Linuxille. Selain käynnistyy, mutta P2P-verkko on käytännössä tyhjä: useimmat vertaiset ovat offline-tilassa, sivustot eivät ole saatavilla. Hypercore-protokollan kokeiluihin kannattaa katsoa sen sijaan Agregorea tai Keetiä.
Kyllä, asennustiedostot ovat yhä GitHub Releasesissa. Mutta sen asentamisessa ei ole tänä päivänä käytännön järkeä: Beaker-verkko on kuollut, dokumentaatio osoitteessa docs.beakerbrowser.com ei ole saatavilla, eikä projekti ole saanut tietoturvapäivityksiä vuoden 2022 jälkeen. Konseptin ymmärtämiseen riittävät lähdekoodi GitHubissa ja videoesittelyt.
Miten Beaker erosi tavallisesta selaimesta, jossa on torrent-laajennus?
Beaker oli kokonainen alusta, ei lisäosa. Torrent-laajennus vain lataa tiedostoja, kun taas Beaker antoi sivustoille JavaScript-rajapinnan tiedostojärjestelmän lukemiseen, kirjoittamiseen, hakuun ja suoraan viestintään käyttäjien välillä. Kaikki tämä toimi osana verkkoalustaa, ei ulkoisena liitännäisenä.
Tavallisella selaimella ja torrent-asiakkaalla voi ladata tiedoston magnet-linkin kautta. Beaker meni pidemmälle:
hyper://-sivusto pystyi hakemaan sisältöä muilta sivustoilta käyttäenbeaker.hyperdrive.query()-funktiota ja vaihtamaan viestejä vierailijoiden kanssabeaker.peersockets-rajapinnalla. Tämä on eri integraation taso: P2P ei ollut selaimen ominaisuus vaan verkkoalustan perusta.
Toimiko Beaker tavallisten HTTP-sivustojen kanssa?
Kyllä, täysin. Beaker oli rakennettu Chromiumin päälle ja avasi oikein kaikki HTTP/HTTPS-sivustot. Ongelma oli päinvastainen: tavalliset selaimet eivät tukeneet hyper://-protokollaa, joten P2P-sivustot olivat näkymättömiä 99,9 prosentille internetin käyttäjistä. Tämä oli yksi syy siihen, miksi projekti ei lähtenyt lentoon.
Yhteensopivuus oli yksisuuntaista. Beakeria pystyi käyttämään tavallisena selaimena koko verkkoon, mutta luomasi P2P-sivusto näkyi vain muille Beakerin käyttäjille. Massakäyttöönotto olisi vaatinut joko
hyper://-tukea Chromeen ja Firefoxiin tai yhdyskäytäviä kuten Hashbase, jotka käänsivät P2P-sivustot HTTP:lle. Kumpikaan ei toteutunut riittävässä mittakaavassa.
Mitä tapahtui Paul Frazeelle ja Blue Link Labsin tiimille?
Paul Frazeesta tuli Blueskyn teknologiajohtaja, AT-protokollalle rakennetun hajautetun sosiaalisen verkoston. Bluesky-julkaisussaan hän kertoo, että Beaker-kokemus vaikutti suoraan AT-protokollan arkkitehtuuriin. Blue Link Labs lakkasi olemasta. Projektin toinen avainhenkilö, Tara Vancil, kirjoitti koskettavan kirjoituksen "A Fond Farewell to Beaker" projektin nousuista ja laskuista.
Teknisesti Frazee ei hylännyt hajauttamista vaan siirtyi eri tasolle. P2P-verkon selaimen sijaan hän rakentaa protokollaa hajautetulle sosiaaliselle verkostolle. Blueskyn AT-protokolla ratkaisee monia ongelmia, joihin Beaker kompastui: federoitu malli puhtaasti vertaisverkon sijaan, selkeä erottelu palvelinten ja asiakkaiden välillä, skaalautuvuuden tuki.
Onko Beakerin tutkimisessa mitään järkeä tänä päivänä?
Koodipohjana, kyllä. GitHubin lähdekoodi näyttää, miten P2P-protokolla integroidaan Electron-sovellukseen, miten suunnitella rajapinta hajautetulle tiedostojärjestelmälle ja miten rakentaa selainlaajennuksia mukautetuilla protokollilla. Tuotteena ei, mutta opetusprojektina hajautetuista teknologioista ehdottomasti.
Beakerin lähdekoodi edustaa 6 752 tähteä GitHubissa ja kymmeniä repositorioita kokeiluineen Hypercore-protokollan ympärillä. P2P-teknologioista kiinnostuneelle kehittäjälle tämä on arkkitehtonisten ratkaisujen aarreaitta: mukautettujen protokollien käsittelystä Electronissa Hypercore-pohjaisten append-only-lokien rakentamiseen.
Kannattaako Beakeriin katsoa taaksepäin vuonna 2026
Beaker Browserista ei tullut valtavirtaa. Mutta se osoitti, että vaihtoehtoinen verkkomalli on mahdollinen: malli, jossa käyttäjää ei erota palvelimesta pino CDN:iä, kuormantasaajia ja API-yhdyskäytäviä, vaan hän on itse verkon solmu.
Beakerin ideat siirtyivät Blueskyhyn, Hypercore-protokolla elää Keetissä ja muissa projekteissa, ja Agregore Browser jatkaa kokeilua moniprotokollaisella P2P-selaimella tänäkin päivänä. Jos olet web-kehittäjä ja haluat ymmärtää, mihin hajautettu web on menossa, aloita Beakerin lähdekoodista GitHubissa ja aktiivisesta Agregoresta.
Kokeilu ei onnistunut, mutta itse idea osoittautui tarttuvaksi. Ja se on ehkä markkinamenestystä tärkeämpää.



