Beaker:去中心化的读写浏览器
互联网的最佳未来可能是点对点。Beaker 浏览器提供了一个初步的展望。
当蒂姆·伯纳斯-李发明万维网时,他设想了一个单一的软件包,允许每个人在互联网上创建和阅读页面。在过去的几年里发生了很多事情,但这个想法开始回归。
许多网络的创始人现在意识到,他们最初的目的并非是为了建立一个由少数大型企业主导的网络,这些企业依靠收集用户的海量数据来卖给广告商。
Beaker 浏览器项目正在创建一个去中心化的点对点网络浏览器,如果成功,它可以将网络归还给用户。让我们探索一下这是如何实现的!
指导原则Beaker 浏览器是通往网络和互联网未来可能性的桥梁。您今天可以使用 Beaker 像任何其他基于 Chromium 的浏览器一样浏览网络。更重要的是,您还可以使用 Beaker 创建和支持一个新的、去中心化的、无服务器的互联网。
Beaker 浏览器使用名为 Dat 的点对点网络协议来创建去中心化的网络平台。网站通过人们像 BitTorrent 那样进行“播种”来传播。当关注关于去中心化网络的新闻和讨论时,您经常会听到区块链作为底层基础。Beaker 团队认为,区块链协商和“工作量证明”要求不必要地减慢了网络速度。在对等方之间建立“信任社区”比试图完全消除信任要好。
中心化服务器、互联网服务提供商和网络托管公司限制了用户相互协作以建设更美好世界的选择。康卡斯特、AT&T 和有线电视公司试图结束网络中立原则,以缩小用户一直以来自主进行的内容选择范围。与此同时,Facebook、亚马逊、谷歌和其他大型内容公司试图将我们锁定在各自的围墙花园中,说服我们他们拥有我们所需的一切内容。无需访问开放的互联网。这场企业冲突的双方都这样做是为了最大化自身利润。
用户应该得到更好的,Linux 用户想要所有的选择。
解释 DatDat 项目 将自身描述为“模仿 Git、BitTorrent 和互联网的最佳部分,Dat 协议是一种用于在分布式网络中同步文件和数据的点对点协议。”
Dat 最初是一个文件共享协议,旨在允许用户存储和共享加密文件,而无需使用像 Dropbox 这样的中心化服务。使用 Dat 桌面应用程序,您可以使系统上的任何文件夹都使用 Dat 协议。该文件夹中的每个文件都用私钥加密。Dat 还允许存储在网络上共享的每个文件的版本信息。
安装 Beaker安装 v0.8 版本 Beaker 的简单方法是访问 https://beakerbrowser.com/download 并获取 AppImage。您也可以在这里获取适用于 Mac 和 Windows 的浏览器。要保持领先,请从 GitHub 获取并编译最新源代码:https://github.com/beakerbrowser/beaker。
注意:Beaker 是一个 64 位应用程序。如果您运行 32 位 Linux,那么目前您运气不佳。
如果您尚未使用 AppImage 安装软件,您可能会发现这个过程令人愉快。只需使镜像文件可执行即可。然后,您可以从 shell 或 GUI 文件管理器运行它。Beaker 将询问是否与您现有的桌面环境集成,将其添加到您的应用程序启动器以便于访问。
Beaker 基于 Chromium,因此用户界面应该相当熟悉。默认起始页 (beaker://start/) 具有搜索对话框和一组默认的固定书签。点击这些链接将使您很好地了解 Beaker 项目和点对点网络。请注意,右键单击页面上的任何元素都会提供“检查元素”选项以打开开发者工具。现在您已准备好浏览。

图 1. 在默认的 Beaker://start 页面上了解更多关于 Beaker 和点对点网络的信息。
注意:本文中的屏幕截图取自 openSUSE Leap 15 上的 Beaker。
使用 Beaker 浏览点对点网络在 Beaker 中输入任何标准网址都会像在另一个浏览器中一样显示,所以这没什么特别有趣的。当您查看基于 Dat 的页面时,您开始看到通往未来的桥梁。
首先访问基于 HTTPS 的 Take a Tour 介绍页面。在地址栏的右侧,您会看到此页面有 P2P 版本可用。单击该按钮以查看页面的 Dat 版本。页面显示应与 HTTPS 站点相同。区别是细微的。HTTPS 站点上的锁定图标被共享图标替换;单击该图标可获得指向 GitHub 上 Beaker wiki 的指针以获取更多信息。由于此页面同时支持 Dat 和 HTTP,您也会看到反向的“转到 HTTP/S 版本”按钮。
播种站点像 BitTorrent 和 Dat 这样的点对点网络依赖于个人之间相互共享文件。您不需要服务器来包含所有内容,只需要一些愿意帮助的人。在 Beaker 地址栏的右端,您会看到另一个共享图标,其中显示当前正在与您共享此站点的对等站点的数量。单击该图标,您可以加入点对点网络,也称为“群”。默认情况下,您只在访问时共享页面。该框会告诉您页面大小。您可以使用滑块选择更长的时间段来播种页面:一天、一周、一个月或永久。

图 2. 当您在计算机上播种此站点时,保持该站点在线。
当您播种站点时,Beaker 会将页面的只读副本存储在您的 /home 目录中(在 openSUSE 中,它位于 .config/Beaker Browser 中)。播种的站点也会进入 Beaker 的库,以及您创建的站点。然后,您可以搜索您的库以查找相关内容。
获取关于站点的更多信息单击共享站点计数旁边的三个垂直点菜单以访问有关站点的海量详细信息。选择“查看源代码”选项。
您可能首先注意到的是地址栏中页面的 Dat 链接。这是一个 64 个字符的公钥标识符,永远不会改变。该链接加密正在传输的每个文件,控制对存档文件的访问,并包含版本历史记录。创建 Dat 链接的人创建(并存储)该链接/内容的私钥。这使得 Dat 链接比通过 HTTPS 传输的 IP 地址更安全。附带好处:您无需说服系统管理员启用新的 IP 协议来识别网络上的计算机。我们已经看到了从 IPv4 到 IPv6 的过渡到目前为止的情况。
“文件”选项卡连接与页面内容相关的所有内容。单击“播种”以将站点传播到其他位置。单击“制作可编辑副本”以下载站点(或其部分)的副本进行编辑。
单击“网络”选项卡以识别还有谁在播种该站点。您可以使用此页面查看哪些 IP 地址正在共享,并使用 Swarm Debugger 查看这些共享站点是否可信和值得信赖。
单击“关于”选项卡以获取站点描述和浏览器角落中 Favicon 的可下载副本。
使用 Beaker 创建去中心化站点当蒂姆·伯纳斯-李发明网络时,他的浏览器也可以编写和编辑页面。Beaker 的创始人 Paul Frazee 最初希望他的浏览器以相同的方式工作。他很快意识到,今天的大多数 Web 开发人员都有自己喜欢的编辑器。Beaker 仍然提供编辑器,但您也可以从任何编辑器导入 Web 文件以创建网站。

图 3. 创建和编辑点对点网站。您也可以共享文件!
在 Beaker 中创建基于 Dat 的网站
- 创建您的内容。
- 打开 Beaker。
- 从地址栏右侧的“汉堡”菜单中,选择“新建”→“空项目”。
- Beaker 加载一个库页面,其中包含 dat.json 文件和 .datignore 文件。
- 单击“标题”字段以将“无标题”替换为对您的读者来说更令人难忘的名称。
- 通过单击“标题”左侧的图标来选择 Favicon。从菜单中的项目中选择,或从您的系统上传图标。
- 单击“+”并选择“导入文件”或“导入文件夹”以将您的内容、脚本和样式文件添加到项目文件夹中。
- 可选:为您的网站设置本地目录。转到“设置”并单击“设置本地文件夹”。默认情况下,您的站点存储在您 /home 目录中的“Sites”文件夹中,项目标题为 (my-website)。单击铅笔图标以选择另一个目录。选择现有目录时要小心,因为它将成为加密文件夹。Beaker 将在您的文件管理器中打开所选目录。
- 可选:如果您愿意,单击“新建+”以创建新的项目文件夹或文件。添加文件会在浏览器内打开编辑器。
- 可选,但推荐:Beaker 建议您创建一个 README 文件来描述您的站点 - 您是谁,为什么这个站点在这里,读者将从中获得什么以及想到的任何其他内容。单击“README”按钮,Beaker 会添加一个 README.md 文件,就像您在 GitHub 项目文件夹中看到的那样。您可以使用 Markdown 代码来格式化文件。Beaker 会自动将 Markdown 文件读取到 HTML 中。如果您愿意,可以使用 Markdown 创建所有内容。
这些文件仅在您准备好与世界(或其中的一部分)共享站点时才保留在您的系统中。只要您选择,就可以继续在项目文件夹中编写和编辑文件。在“设置”页面上更改项目标题和 Favicon。
Fork 现有站点现在您已经制作了您的网站,并且您想确保每个人都能看到它。我说的“每个人”是指“看不到 Dat 链接的人”。问题是,如果您在 Firefox 中输入 dat://beakerbrowser.com,浏览器可能会显示 Google 搜索页面。结果中包含 https://beakerbrowser.com,您开始想知道这是怎么回事。如果您已经安装了 Beaker,Firefox 会建议使用 Beaker 打开 Dat 链接。
Beaker 支持 /.well-known Web 约定,您可以设置它来创建站点的 HTTPS 版本。一种简单的方法是从 beakerbrowser.com 复制一些已共享的文件。方法如下
- 打开 Beaker 浏览器 Dat 站点。
- 播种站点。Beaker 会将站点的文件下载到您的库中。
- 单击垂直点并选择“制作可编辑副本”。
- 将 .well-known 文件夹中的文件(或只是全部下载)的“可编辑副本”复制到您的项目文件夹中。
- 查看 .well-known 文件夹中的文件。如果其中有对 beakerbrowser.com 的引用,请将其更改为您的站点名称。
Beaker 开发人员 Tara Vancil 这样描述底层发生的事情
使您的站点公开Beaker 利用 DNS 身份验证并结合 /.well-known 约定来启用 dat:// 短名称。当您在 Beaker 中访问 dat://taravancil.com 时,它会向 https://taravancil.com/.well-known/dat 发送请求,并期望找到一个看起来像这样的文件:dat://6dff5cff6d3fba2bbf08b2b50a9c49e95206cf0e34b1a48619a0b9531d8eb256/TTL=3600
由于 Beaker 可以信任 DNS 解析,因此 Beaker 可以信任 dat://taravancil.com 应该指向 dat://6dff5cff6d3fba2bbf08b2b50a9c49e95206cf0e34b1a48619a0b9531d8eb256。
要使您的新站点对读者可用,您真正需要做的就是将您站点的 Dat 链接发送给其他人。
有趣的事实:您可以共享库中的任何文件,包括 Beaker AppImage!
在社交媒体上分享您的链接也将开始产生流量。
您现在是 P2P 网络的一部分!
请注意,您的网站仅在 Dat 文件在线时才在线。除非其他人正在播种您的站点,否则当您的计算机关闭时,它也会关闭。因此,鼓励您的对等方永久播种。解决此限制的一种方法是 Hashbase.io,“点对点网络的托管”。
资源以及如何参与 Beaker 浏览器Beaker 仍然是一个处于起步阶段的项目。Dat 稍微领先一些,但这两个项目都需要一些帮助。以下是一些您可以参与的方式
- 首先使用浏览器并将问题报告给 GitHub。
- 加入 Freenode 上的 #beakerbrowser 聊天。
- 访问 explore.beakerbrowser.com 查看一些重要的 P2P 站点,以便浏览、学习和播种。它包含在 Beaker 起始页的默认书签中。
- 创建您自己的新 Dat 站点并共享它。如果您已经有一个站点,请考虑在 Dat 上镜像它。
- 如果您有更高级的编码技能,Paul Frazee 每周日在他的 YouTube 频道上主持一次直播编码课程。那里还有许多其他有用的视频。
- Beaker API 为开发人员提供工具来制作应用程序以增强浏览器。