Dweb:使用 Beaker 从浏览器服务网络

在本系列文章中,我们将介绍一些探索网络去中心化或分布式可能性的项目。这些项目与 Mozilla 无关,其中一些项目重写了我们对网络浏览器的认知规则。它们的共同点是:这些项目都是开源的,并开放参与,并与 Mozilla 的使命保持一致,即保持网络对所有人开放和可访问。

到目前为止,我们已经介绍了 分布式社交信息流以去中心化的方式共享文件,以及一些面向开发人员的新工具。今天,我们想介绍一些与众不同的东西:想象一下,如果网络是分布式的,那么整个浏览器体验会是什么样子……Beaker 浏览器正是这样做的!Beaker 是一个团队的宏伟愿景,他们正在从上到下证明分布式网络的可行性。请欣赏 Beaker 联合创始人 Tara Vancil 的这篇文章。– Dietrich Ayala


Blue Link Labs 和 Beaker

我们是 Blue Link Labs,一个由三人组成的团队,致力于使用 Dat 协议 和一个名为 Beaker 的实验性点对点浏览器来改进网络。

Blue Link Labs team

我们致力于 Beaker 的开发,因为发布和共享是网络精神的核心,但是要发布自己的网站,甚至只是共享一个文档,都需要知道如何运行服务器,或者能够支付他人为你运行服务器。

因此,我们自问:“如果能够直接从浏览器共享网站会怎么样?”

dat://这样的点对点协议使得普通用户的设备可以托管内容,因此我们在 Beaker 中使用dat://来实现从浏览器发布的功能,这样,网站的作者和访问者都可以帮助托管其文件,而不是使用服务器。这有点像 BitTorrent,但它是针对网站的!

架构

Beaker 使用分布式的点对点网络来发布网站和数据集(有时我们称之为“dats”)。

dat://网站的地址使用公钥作为 URL,并且每个
添加到dat://网站的数据都会附加到一个签名的日志中。访问dat://
网站的访客可以通过跟踪器或 DHT 找到彼此,然后在彼此之间同步数据,既充当下载者也充当上传者,并检查数据在传输过程中是否被篡改。

a basic illustration of the dat:// network

从本质上讲,dat://网站与https://网站并没有太大区别——它是一组文件和文件夹,浏览器根据 Web 标准对其进行解释。但是,dat://网站在 Beaker 中是特殊的,因为我们添加了 点对点 Web API,这样开发人员就可以执行读取、写入和监视dat://文件以及构建点对点 Web 应用等操作。

创建 P2P 网站

Beaker 使任何人都可以轻松地一键创建一个新的dat://网站(请参阅我们的 教程)。如果您熟悉 HTML、CSS 或 JavaScript(即使只是一点点!),那么您就可以准备发布您的第一个dat://网站了。

开发人员可以通过查看我们的 API 文档 或阅读我们的 指南 来开始。

此示例显示了一个网站自身编辑以创建和保存新 JSON 文件。虽然此示例是人为编造的,但它演示了在dat://网站中存储数据、用户配置文件等的常见模式——应用数据无需发送到服务器,而是可以存储在网站本身中!

// index.html

Submit message

<script src="index.js"></script>

// index.js

// first get an instance of the website's files
var files = new DatArchive(window.location)

document.getElementById('create-json-button').addEventListener('click', saveMessage)

async function saveMessage () {
var timestamp = Date.now()
var filename = timestamp + '.json'
var content = {
timestamp,
message: document.getElementById('message').value
}

// write the message to a JSON file
// this file can be read later using the DatArchive.readFile API
await files.writeFile(filename, JSON.stringify(content))
}

了解更多

我们始终很高兴看到人们使用dat://和 Beaker 构建的内容。我们尤其喜欢看到有人构建个人网站或博客,或者看到他们尝试使用 Beaker 的 API 来构建应用。

点对点 Web 上有很多东西可以探索!

关于 Tara Vancil

Tara 是 Beaker 浏览器 的联合创始人。此前,她在 Cloudflare 工作,并参加了 Recurse Center

更多 Tara Vancil 的文章……


8 条评论

  1. Ibon

    不错的文章:以人为中心的科技(而不是“云”科技)非常有趣! :)

    2018年8月23日 03:53

  2. Pseudo Blüm

    我真的很喜欢您关于 dweb 的系列文章,但我不得不说,我对它们之间的关系感到有点困惑。

    它们(beaker、zeronet、webTorrent、bitTorrent 等)是否都只使用了相同的 P2P 原理,或者它们之间存在比这更大的关联性。

    例如,如果可以通过 beaker 查看 zeronet 网站,或者是否可以通过 webTorrent 以某种方式检索 dat:// 网站,我将对此感兴趣。

    感谢您撰写这些精彩的文章
    Pseudo Blüm

    2018年8月23日 13:04

    1. Tara Vancil

      嗨,Pseudo!

      >  我不得不说,我对它们之间的关系感到有点困惑

      我认为本系列文章旨在突出 P2P 领域的不同项目,因为即使它们使用不同的底层技术,但它们通常具有相似的目标,并使用相似的技术来实现这些目标。

      这就像http://ftp://之间的区别。它们有一些共同点,但它们的使用方式不同,并且支持不同的功能。Beaker 仅支持dat://,并且dat://与 WebTorrent 有一些共同点,但归根结底,它们是不同的协议。

      随着 dweb/p2p web 上所有这些实验的进行,看看 5 年后它会是什么样子将会很有趣 :-)

      2018年8月29日 10:49

  3. Thorsten

    A)dat://https://一样安全吗?
    B)使用这项技术,像 YaCy 这样的搜索引擎可以成为浏览器/浏览器扩展的一部分吗?如果我们只需运行足够多的 Firefox 就可以绕过谷歌等,那将非常棒。在不参考外部数据库的情况下获得推荐也可以极大地改善我们留下的数据轨迹。

    2018年8月28日 06:31

    1. Tara Vancil

      嗨,Thorsten!感谢您的提问。

      > dat://https://一样安全吗?

      我尝试谨慎使用“安全”一词,因为它可以被解释为许多不同的含义,但为了回答您的具体问题,是的,dat://https://具有相同的安全相关特性。

      1. 像https://一样,使用dat://传输的数据经过身份验证。这意味着当我访问dat://URL 时,我知道我下载的文件在传输过程中没有被篡改。
      2. 像https://一样,数据在传输过程中被加密。因此,如果有人在窥探您的网络流量,他们只会看到加密的内容,而不是原始数据。

      > 使用这项技术,像 YaCy 这样的搜索引擎可以成为浏览器/浏览器扩展的一部分吗?

      有可能!但很难确定。我们熟悉 YaCy,并将继续关注他们的工作 :-)

      2018年8月29日 10:17

  4. John

    这真的非常棒!!!

    我尝试了一下,印象非常深刻!(我只是错过了久违的书签栏……)

    据我所知,这是基于 Chromium 的,对吧?
    最好看到它基于 Firefox(或者甚至在 QtWebEngine 中……即使它也是基于 Chromium 的……只是不是“谷歌”的东西)。

    很高兴看到 Mozilla 在 Firefox 中拥有类似的技术 :)

    继续努力 :)

    2018年9月10日 10:32

    1. Tara Vancil

      嘿,John!我很高兴您尝试了 Beaker!我们一直在考虑添加一个合适的书签栏,但您知道事情是怎么样的,路线图和待办事项列表会迅速增长 :-)

      是的,Beaker 是使用 Electron 构建的,Electron 是基于 Chromium 的。我们认为在不同的引擎上构建 Beaker 会很棒,但目前,Electron 是唯一一个使我们这样的小团队能够构建浏览器的工具。干杯!

      2018年9月10日 13:09

  5. pawel

    嗨,
    您能否为我提供更多信息
    A)内容是如何索引和搜索的?
    B)如果我的笔记本电脑断电,并且没有人拥有我的页面的副本,会发生什么?读者是否会收到信息,告知此内容尚不可用,但可能很快就会出现?
    C)如果我的页面存在多个版本,是否有信息表明您可能看到的是过时的数据?其他对等节点如何意识到可能存在新版本,作者能否控制这一点,或者至少列出所有副本及其版本?

    谢谢

    2018年9月17日 01:09

本文的评论已关闭。