Hacker News new | past | comments | ask | show | jobs | submit login
Beaker – An experimental P2P browser (beakerbrowser.com)
159 points by pfraze on Dec 19, 2016 | hide | past | favorite | 33 comments

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

2 http://pfrazee.github.io/blog/what-is-the-p2p-web

3 https://youtu.be/pi-kreA52oI

Why don't you use ipfs as the backend? The dat protocol and ipfs seem to share similar goals.

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?

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.

Great work, making the web fun and easy to use is a fantastic goal.

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.

Rewarding swarm behavior in the network instead of punishing it!

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?

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...

> 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.

I was curious about IPFS support as well. The docs mention it near the bottom: https://beakerbrowser.com/docs/index.html

Sounds like you need the IPFS daemon running for it to work.

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

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.

You are correct that Dat does not offer anonymity. The primary use case for Dat is with scientific and public data. In Dat, a user will only connect with peers trying to share the same dataset, meaning a user will never get data they didn't ask for on their computer.

However, we are concerned and thinking about how to improve reader privacy - which is the main need for anonymity in the Dat: https://datproject.org/blog/2016-12-18-p2p-reader-privacy.

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/)

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.

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?

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.

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 ) 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.

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.

Keep tuned for Peerweb, which is a full web stack p2p platform that my company is working on.

Peerweb is able to handle fully dynamic sites (of course backend stuff still needs to reach your own server) and offer rich controls for optimally distributing popular-resource pools.

Unlike Beaker, our resource updating protocol is push-based (with active preload bundling analytics) and doesn't use polling, so we have much less client-side overhead. It also doesn't require a new browser, just a simple DNS change.

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?

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

2 twitter.com/pfrazee

3 https://beakerbrowser.com/docs/index.html

Plan to release a binary for other operating systems?

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

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

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

Do you support non-macOS operating systems?

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!)

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

Didn't Opera do this years ago?

You might be thinking of Opera Unite: http://www.operasoftware.com/press/releases/general/opera-un...

Didn't use p2p but allowed hosting own content.

It's dead since long though.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact