
Beaker – An experimental P2P browser - pfraze
https://beakerbrowser.com/
======
pfraze
Hey all. This is the second time I'm submitting Beaker. First time was back in
august.[1]

Since then, we've done a lot to improve the browser and build on the ideas.
I've written about the P2P Web here[2], and there's a talk at the Web 1.0
conference[3] that goes into more depth if you're still curious.

Happy to answer any questions. Architecture/scaling, privacy, FOSS on the Web,
etc.

1
[https://news.ycombinator.com/item?id=12270762](https://news.ycombinator.com/item?id=12270762)

2 [http://pfrazee.github.io/blog/what-is-
the-p2p-web](http://pfrazee.github.io/blog/what-is-the-p2p-web)

3 [https://youtu.be/pi-kreA52oI](https://youtu.be/pi-kreA52oI)

~~~
teaearlgraycold
When you re-host a website, do updates to the original site get pushed to your
computer for you to re-host? If not, are you notified?

~~~
pfraze
Each Dat is controlled by an append-only log. When you swarm a dat, you poll
for updates to the log via UDP, which is low cost. (I think Mafintosh may have
put in a push mechanism too.) So yes, you are notified. That's why Beaker is
able to do live reloading.

------
kennysmoothx
The idea of decentralizing websites has always seemed great to me. Specially
when big-name sites are taken down like TPB and KAT and "clones" are released
and you're never sure of the authenticity of the clones and who is running and
profiting from them.

I know torrent sites may seem shortsighted, but thats just an example of
websites in constant threat of being shut down. Journalism sites such was
WikiLeaks can benefit huge from decentralization as well.

~~~
maxt
Rewarding swarm behavior in the network instead of punishing it!

------
niftich
In your previous submission you hinted at multiprotocol support, mainly for
IPFS, but I don't see that here -- only references to the Dat protocol. Did
that effort get cancelled or am I just not finding the info?

When you say you use (among others) 'Kademlia Mainline Distributed Hash' for
discovery, are you referring to _the_ Mainline BitTorrent DHT, or just a
different instance of it, operating on the same principles?

How are you resilient against sybil attacks?

Did you end up forking Electron?

~~~
pfraze
Good questions

> Did that effort get cancelled or am I just not finding the info?

I've paired the focus down to Dat, yes. IPFS is still supported but Dat's my
main focus. I may write a post later.

> the Mainline BitTorrent DHT, or just a different instance of it, operating
> on the same principles?

Yes, _the_ Mainline DHT.

> How are you resilient against sybil attacks?

Dat sites are singly-owned and signed by private keys. The DHT network has all
the same issues that BitTorrent has always had [1]. We use fallback networks
that are less distributed (a custom DNS server) but we'll need to evolve that
solution

> Did you end up forking Electron?

No, thankfully! I've been working with GitHub via PRs. They added the feature
most needed so far, proper process-level sandboxing, so hopefully a fork won't
be necessary.

1 [https://security.stackexchange.com/questions/80933/how-
can-t...](https://security.stackexchange.com/questions/80933/how-can-the-
sybil-attack-be-used-on-a-p2p-system-that-implements-dht)

~~~
wesleytodd
> No, thankfully! I've been working with GitHub via PRs. They added the
> feature most needed so far, proper process-level sandboxing, so hopefully a
> fork won't be necessary.

Do you have a link to the issue where this was fixed/discussed? I searched for
it last week and couldn't find it.

------
kodablah
See also the fork[0] that works with Maidsafe. Unlike Dat, Maidsafe claims to
offer anonymity. Although I have not kept up recently, I believe neither the
fork nor the Maidsafe network are ready for prime time, but both are
promising. This is especially true for doing bidirectional communication and
other things more dynamic websites require.

Thanks to the beaker dev for abstracting the backend!

0 - [https://github.com/joshuef/beaker](https://github.com/joshuef/beaker)

~~~
wyager
I don't know about the details of modern maidsafe operation, but when I went
to a talk by them a few years back at a Bitcoin conference in DC, they were
100% full of it. All talk, no substance. I asked a few pointed questions wrt.
Sybil attacks and their responses were so bad that a few of the knowledgeable
people (including some Bitcoin-qt devs) present couldn't help but laugh. It
was very transparently some sort of investor money grab. I would take anything
they say with a serious grain of salt.

------
RockyMcNuts
Interestingly, and possibly confusingly, there's a different project called
Beaker Notebook which is polyglot Jupyter notebooks that let you switch back
and forth between different languages, R, Julia, Python, Scala, and they all
share data, write one cell in python and the next in Julia, and then send jobs
to Spark clusters. ([http://beakernotebook.com/](http://beakernotebook.com/))

------
fergie
This stuff is flying under the radar at the moment, but all the peer-to-peer
magic coming out of the dat project has the potential to completely
democratise the web.

------
philfrasty
Like the idea. One thought: if somebody hosts a site on how to build a bomb I
(as a p2p user) do also distribute said site automatically?

~~~
filiwickers
Nope! You only join the network for sites that you browse or create. You'll
never connect to a site automatically.

Additionally, you have to explicitly opt-in to re-hosting another site. You'll
never upload data unless you tell beaker to host a site.

------
marknadal
Very exciting! Although I have a stupid question... Does this only work for
static websites? I work on a P2P database (Open Source Firebase,
[https://github.com/amark/gun](https://github.com/amark/gun) ) but wouldn't
Beaker cause web apps (not static sites) to break, even if they are using a
P2P browser based DB? I'd be interested in working together to make sure these
things go hand in hand (getting a WebRTC connection to Beaker, etc.), let me
know.

~~~
pfraze
Yeah, Dat only transfers static bundles of files. Think of them as SPAs that
are disconnected from a host. You can have them connect out to Web services,
or use APIs built into the browser.

------
effisfor
This looks lovely. I'm new to P2P applications beyond file sharing and would
like to raise awareness about the new resilient web being built. Not just in
terms of protocols and applications, but also energy resilience and air-gapped
encrypted inputs. Would love to have a chat about Beaker and its place in a
wider movement.

I guess this is science communication stuff, rather than talking through the
technicals, my background is design.

pfraze, is there a recommended resource for communicating the players and
ideas on the resilient web, placing Beaker in its respective place and laying
out the benefits in a friendly way for laypeople?

~~~
pfraze
You can reach me at #dat or #beakerbrowser in freenode, in the Beaker mailing
list [1], and on Twitter [2]. We're going to be writing about the concepts and
architectures over the next couple months, and there are links to blogposts on
the rightnav of the docs [3]. We'll announce new posts on the mailing list.

1 [https://groups.google.com/forum/#!forum/beaker-
browser](https://groups.google.com/forum/#!forum/beaker-browser)

2 twitter.com/pfrazee

3
[https://beakerbrowser.com/docs/index.html](https://beakerbrowser.com/docs/index.html)

------
finid
Plan to release a binary for other operating systems?

~~~
pfraze
Yes definitely, it's just a matter resources. By 1.0, we'll have automated
builds for Windows and presumably Debian/Ubuntu.

------
angry-hacker
Would be nice if you gather emails so you get notified when you release
binaries for others systems. Sign me up for Debian!

~~~
pfraze
Join the mailing list, I'll make announcements there!
[https://groups.google.com/forum/m/#!forum/beaker-
browser](https://groups.google.com/forum/m/#!forum/beaker-browser)

------
BuuQu9hu
Do you support non-macOS operating systems?

~~~
pfraze
Yes, but you'll have to build from source right now. We don't have the
resources to maintain multiple platform builds right now.

(Sorry about that, I know it's a pain!)

------
LukeB42
Obligatory:
[https://github.com/psybernetics/synchrony](https://github.com/psybernetics/synchrony)

------
Fr0ntBack
Like most attempts to revolutionise the web I don't think that this project
will succeed, but I hope to be proved wrong.

------
robertlagrant
Didn't Opera do this years ago?

~~~
Zitrax
You might be thinking of Opera Unite:
[http://www.operasoftware.com/press/releases/general/opera-
un...](http://www.operasoftware.com/press/releases/general/opera-unite-
reinvents-the-web)

Didn't use p2p but allowed hosting own content.

It's dead since long though.

