Building planetable.xyz
在 9 月的这个功能更新中,Planet 加入了对另外一个区块链域名的支持:
点击上面的域名,就可以注册属于你自己的 .bit 域名。(利益申明:这是一个带有 referral 信息的链接,如果你通过上面这个链接注册,那么我会收到返佣。)
.bit 也支持将 Planet 生成的 IPNS 设置为域名上分布式网站内容源。
与 ENS 不同的是,.bit 在设置网站内容源的时候,不需用户再次支付 gas。.bit 对此的解释是两个原因:
- .bit 的注册费用中已经包括了一定数量的后续操作所需要的 gas 费。
- .bit 所依赖的区块链 Nervos Network 的设计让计算类型的任务的 cost 较低。
所以,大家目前正在访问的这个博客,现在也有了一个 .bit 域名 olivida.bit,并且可以通过 .bit 的 dWeb Public Gateway 访问了:
Planet 的 Follow 功能,现在也可以支持 .bit 地址了:
eth.limo 是一个很特别的项目。最早是从 vitalik.eth 在 Gitcoin 的捐赠记录中了解到这个项目的存在。当时 eth.link 过期事件还没有发生,因此可以对比两个项目的性能。eth.limo 在大部分时间都更快,更稳定。
两个项目做的是同一件事情:通过在互联网上设置一个特殊的代理服务器,让任何浏览器都可以通过 HTTP 方式访问到 IPFS 上的内容。如果没有这样的代理服务器项目,那么需要客户端浏览器内置 IPFS 节点,比如像 Brave 和 Planet 的做法。而 eth.limo 的实现方式就是,如果你在任意设置了 contenthash 的 ENS 上加上 .limo,那么就可以在普通浏览器里打开,比如:
- vitalik.eth.limo
- planetable.eth.limo
- zh.gamedb.eth.limo (是的,eth.limo 对 ENS 的二级域名也可以支持)
现在 eth.limo 项目入选了最新 Gitcoin 的 Grants Round 15。所以现在如果你在 Gitcoin 上支持这个项目,那么项目还可以收到来自 Gitcoin 的机构的匹配支持。
在他们的路线图描绘几件接下来会做的事情。其中我个人觉得最有趣是:
🔵 Privacy first traffic analysis and reporting - view how many requests your ENS dwebsite has received.
可以看到脱敏之后的流量分析。如果到时候使用流程是用自己钱包登录,然后就可以看到钱包里的所有 ENS 在 eth.limo 上的流量,那对 dWebsite 的搭建者也会是一个很好的激励。
🌎 Decentralizing the LIMO infrastructure through a community run CDN.
结合 Roadmap 中的其他条目,大概率会有一个可以在自己本地电脑上部署的 eth.limo,并且可以和全世界的其他节点结合成为一个全球加速的 CDN。
完整的 Roadmap 可以在项目主页上看到:
https://gitcoin.co/grants/4760/ethlimo-your-privacy-focused-ens-ipfs-gateway
我们会在之后的版本更新中,为这篇文档中提到的配置方式提供图形界面。
目前如果你希望稍微降低 Planet 内置的 IPFS 的资源占用,那么可以打开这个位置的配置文件:
~/Library/Containers/xyz.planetable.Planet/Data/Library/Application Support/ipfs/config
上面路径中的 ~
的意思是用户的 Home Directory。
在这个文件中搜索 HighWater
,然后你会看到这样的一组默认配置:
- HighWater: 900
- LowWater: 600
你可以试着把这对值改低一些,比如改到:
- HighWater: 200
- LowWater: 100
这样会降低 IPFS 在运行时的连接数,也就降低了资源消耗。但是这样的代价是,某些情况下,在 P2P 网络上寻找全新内容的速度可能会降低。
为什么说是某些情况下呢,因为如果你要寻找的内容,你已经掌握它具体所在的节点位置,那么是可以通过 peering 和 pinning 的方式让内容快速同步的,同时并不需要维持很高的 peers 数量。关于 peering 和 pinning 能带来的诸多有趣可能性,我会在之后的另外一篇文章中介绍。
Planet 的核心功能之一,是一个静态网站生成器。所以,用 Planet 做网站,是可以支持全站模版替换的。在这篇文章里,我们会向你介绍目前系统的内置模版,及如何制作自己的新模版。
内置模版
在目前的版本中,Planet 有两个内置模版:
Plain
外观简洁,尽量贴近操作系统原生 look-n-feel 的模版,支持自动切换 Light/Dark 模式。Planet 如果有新的媒体格式支持,那么 Plain 模版会最先更新,提供对新的媒体格式的支持。比如之前的更新中,对视频和音频,及附件下载的支持。
- GitHub https://github.com/Planetable/SiteTemplatePlain
- Demo Site https://olivida.eth.limo/
8-bit GameDB
一个 8-bit 风格的模版。一些新的前端技术会在这个实验性的模版中使用。比如目前这个模版中的很多组件,就是用 Vanilla JS Web Component 实现的。GameDB 模版在获得新的媒体格式支持方面会比 Plain 模版稍微慢一周。
制作自己的模版
如果你希望制作自己的新模版,那么目前我们推荐的步骤是:
- 打开 Planet 的数据目录:
~/Library/Containers/xyz.planetable.Planet/Data/Documents/Planet/Templates
- 复制其中的 Plain 模版的目录到一个新的目录
- 打开新目录中的
template.json
文件,编辑其中的 name 字段,给你的新模版一个新名字 - 然后在下次启动 Planet 之后,就可以看到和选择这个新模版了。
编辑和预览模版
如果你改动了自己的新模版的 HTML / JS / CSS,想要快速预览的话,我们推荐的做法是:
安装来自 The Iconfactory 的 WorldWideWeb,这是一款非常简单好用的静态网站 HTTP 服务器。它可以快速将任意目录的内容以 HTTP 方式提供服务。
在安装完 WorldWideWeb 之后,你会在右键点击 My Planet 时在 Develop 菜单下看到新选项:Open in WorldWideWeb
然后 WorldWideWeb 就可以在 localhost 上预览你的 Planet 的新模版构建的网站。每次你做了修改时,只需要在 Develop 菜单下 Rebuild,然后就可以通过 WorldWideWeb 提供的 localhost 上的服务预览更改。
此外,你可以通过 Planet 的 Tools 菜单下的 Template Browser 看到目前你本地的 Planet 所安装的所有模版:
这个关于 Planet 的 Template Engine 模版引擎的文档会在未来持续更新。
WorldWideWeb 是来自图形设计公司 The Iconfactory 的一款简单好用的 HTTP 服务器。
这个名字 WorldWideWeb 致敬了世界上第一个 HTTP 服务器,也就是当年跑在 Tim Berners-Lee 的 NeXT 电脑上的那个。因此你也可以在 WorldWideWeb 的 Help 页面看到当年的那台机器的样子。
WorldWideWeb 的工作方式非常简单:选择一个文件夹,然后 WorldWideWeb 就会在 8080 端口上启动,然后访问本地机器的 8080 端口就可以看到那个目录里的网站。
在刚刚发布的 Planet 0.8.2 版本更新里,我们加入了对 WorldWideWeb 的支持。如果你的 Mac 上有安装 WorldWideWeb,那么现在当你右键单击自己的 Planet 时,会在 Develop 菜单下看到一个 Open in WorldWideWeb 的新选项,然后就可以用 WorldWideWeb 打开你自己的 Planet 构建的静态网站。
这样的用途是?如果你在开发自己的 Planet 模版,那么配合新的 Develop 菜单的 Rebuild 功能,每次你在自己的模版中改动了什么的时候,就可以方便地马上看到改动之后的效果了。
你可以从 App Store 免费下载 WorldWideWeb:
这是 Planet 的第二个功能更新,版本号 0.8.0,发布于 2022 年 8 月 13 日。这次的更新的代码来自于以下贡献者:
下面的链接是从 0.7.0 到 0.8.0 版本之间的所有改动的更新日志:
https://github.com/Planetable/Planet/compare/release-0.7.0...release-0.8.0
下面是这个版本里带来的新功能和改进。
Plausible.io 数据统计
Plausible.io 是一个开源的数据统计平台,创始团来自欧洲。现在 Planet 支持在 Info 面板中填入 Plausible 的 domain 和 API token,这样就可以通过 Plausible.io 看到有多少人访问过你的 Planet。
比如下面的链接是 olivida.eth 的访问数据例子:
https://plausible.io/olivida.eth.limo
另外一个例子,Plausible.io 官方网站的流量:
https://plausible.io/plausible.io
Plausible.io 的实现方式是尊重隐私的。这个平台不会收集个人信息,甚至都没有使用 cookie。因此不需要在使用 Plausible.io 的页面上弹出 cookie banner。
我们会在未来的版本更新中加入对 self-hosted 版本的 Plausible 的支持。
博客 Podcast 和附件支持
现在你可以在撰写内容时,选择附加一个音频文件,或者是直接将音频文件拖拽到写作窗口中。之后在发布时,页面上就会出现一个音频播放器。
在本篇博客的内容中,就附加了一段音频内容。这是我在 5 月份 Planet 上线之前,和 枫言枫语播客 录制的。里面分享了关于 Planet 在制作过程中的一些思考。
如果是在 0.8.0 之后版本的 Planet 客户端中访问这样的带有音频的内容,那么在工具栏中会看到一个耳机按钮,点击之后就会启动一个全局的音频播放器去播放内容中所携带的音频内容。得益于这个全局播放器的存在,播放时切换查看的文章内容,播放不会被打断。
我们会在未来的版本中继续优化这个全局音频播放器的使用体验。
如果你将其他格式的文件,比如 PDF 或者 DMG 之类拖拽进入写作窗口,那么这样的内容在发布之后,会在 0.8.0 的客户端中显示为附件。访客可以点击工具栏中的附件图标就可以下载。
内置模版的细节改进
Planet 目前内置了两个网站模版用于切换样式。
在这次的更新中,我们为这两个模版加入了众多的细节改进:
- 对音频内容的支持
- 针对视频和图片内容的 CSS 样式优化
- 在顶部区域,从内容页面返回到首页的链接
- 在 iOS 移动设备上访问时的 safe-area 问题
- Plain 主题首页对 Dark Mode 的支持
模版的功能完备是 Planet 的重要部分。所有的内置模版和 Planet App 一样,也都是开源软件,所以如果你发现任何模版相关的问题,也可以通过 GitHub Issues 甚至 PR 的方式反馈给我们:
- https://github.com/Planetable/SiteTemplatePlain
- https://github.com/Planetable/SiteTemplate8bit
接下来,我们会在 2022 年 8 月发布关于如何自己构建新模版的详细文档。
下面这个项目是来自开发者 Fledge Shiu 的一个有意思的模版,实现了中文竖排的效果:
https://github.com/FledgeXu/Vertical
然后这里是一个用 8-bit 模版的关于经典老游戏的博客:
内置 go-ipfs 版本升级
Planet 内置的 go-ipfs 版本从 0.12 升级到了 0.14。从 0.13 版本开始,上游 Protocol Labs 将 go-ipfs 项目更名为了 kubo,所以之后我们如果需要在文档中提到 go-ipfs,我们会使用它的新名字 kubo。
由于 kubo 的版本升级,会在 Planet 启动时有一个迁移仓库的操作。如果你的本地 IPFS repo 的文件数量较大,那么这个迁移可能会需要一些时间,让它跑一会就好。
我们会在未来的版本中提供更多针对本地 IPFS repo 的图形界面管理功能。
RSS 订阅器相关的细节改进
其实从 Planet 的第一个发布版本开始,这个软件就是带有 RSS 订阅功能的。但是因为一些细节还不够好用,所以我们之前没有公开宣布过这个功能的存在。
在这次的 0.8.0 更新中,我们针对 RSS 订阅的很多细节功能做了改进和测试,所以现在我们可以有一些信心来邀请你试用一下。
这里有一些有趣的 RSS 订阅源:
- Low Tech Magazine: 一个完全靠太阳能驱动的网站,所以阴天的时候可能会断线。
- YouTube 上的 Deep Look 频道:各种有趣动物的 4K 科普视频
很多会持续更新内容的网站,很可能都带有 RSS 订阅地址,一个例子就是 YouTube 上的各类 Channel 的首页。你可以尝试直接把网址填入到 Follow Planet 那里,如果内容源上确实存在 RSS 地址,那么就可以用 Planet 订阅。
如果你在使用 RSS 订阅功能的过程中遇到问题,欢迎反馈到下面这些社区渠道:
- Telegram 上的 Planet 中文用户群
提醒相关的细节改进
我们在这次更新中进一步改进了 Local Notification 的工作方式。现在如果你收到了订阅的 Planet 的内容更新提醒,那么点击 Notification 就可以直接跳转到这篇文章。
其他细节改进
- 更换了 Markdown 渲染引擎,现在 Planet 可以输出和 GitHub Flavored Markdown 完全一致的结果,同时也解决了之前由于使用 Ink 渲染所带来的一些 crash 问题。
- 现在在查看文章时,如果执行了任何的下载相关的操作,那么这些操作可以正常工作了,并且可以从一个新的 Download Manager 窗口中看到下载进度。之前的版本中由于缺乏对 WKDownloadDelegate 的实现而导致了下载相关的操作没有反应。
- 改进了对 DNSLink 加载内容的支持。值得注意的是,如果你希望以 DNSLink 方式订阅一个 IPFS 上的网站,那么需要在 Follow Planet 窗口使用 planet 协议,比如这样去输入域名
planet://zu1k.com
。 - 从 Planet 发布的 IPNS 记录的 TTL 时间从 1 周调整到了 1 年。但 IPNS 记录在节点上的存在时间,依然取决于很多其他因素。所以,如果你希望保持你的 IPNS 记录有效,那么至少每周打开 Planet 运行一段时间,就肯定没有问题的。关于 IPNS 及 Pinning 这几个复杂而又重要的技术细节,我们会在接下来的一篇博客里详细介绍。
以上是本次 0.8.0 更新里的主要新功能和改进。如果你在使用中遇到问题,可以从以下社区渠道向开发者反馈或者寻求社区协助:
- V2EX 上的 Planet 节点
- Telegram 上的 Planet 中文用户群
如果你十分确定遇到了软件实现上的 bug,那么可以通过 GitHub Issues 向我们描述如何复现 bug,我们会尽快调查和解决。
- GitHub 上的 Planet 项目
这是 Planet 的第一个功能更新,版本号 0.7.0。
视频发布
现在在发布文章时,可以为文章附加一条视频。效果就像现在你看到的这篇一样。如果你现在在用的屏幕支持 HDR(比如新款 14 和 16 MacBook Pro 的屏幕),你会注意到这个视频是 HDR 的。
数据存储优化
我们对 App 底层的数据架构做了一次比较大的重构,来解决在上个月初次发布的版本中遇到的一些问题。在有了这个新的数据层之后,整个 App 的性能会有一个明显的提升。比如之前在打开 Unread 时可能会感受到的延迟现在消失了。如果你在升级之后遇到任何和数据相关的问题,可以到这个 Telegram 群寻求开发者支持 https://t.me/+5bl7FIsxeChlOWIz
另外就是,现在 App 在检查到新的内容更新时,会发送本地通知。我们会继续增强和 Notification 有关的功能的使用体验。
增强的 ENS 支持
最近我们发现了一个性能很好的 ENS Gateway——ETH.LIMO,然后我们把 App 里如果用传统浏览器打开 ENS 链接的地方都换成了这个。这样如果你需要把自己发布在 ENS 上的内容发给没有安装 Planet 也没有在使用 Brave 的朋友,那么你可以使用类似下面这样的连接:
在过去几年的时间里,有这么几件事情让我印象深刻。
Microsoft 收购了 Wunderlist。基于 Wunderlist 推出了 Microsoft To Do,但是却并没有 Wunderlist 的所有功能。比如一直都没有评论功能。后来 Microsoft 宣布会在 2020 年 5 月彻底关闭 Wunderlist。Wunderlist 的创始人 Christian Reber 试图买回公司,但是却没有得到回应。
Atlassian 宣布之后将只会提供云版本的 Jira,不会再出售新的 Jira on-premise 的授权。也就是说,以后就不会再有可以跑在自己服务器上的 Jira 了。
Google 宣布会终止一直免费的自建域名版本 Gmail。如果要继续使用,那么请绑定信用卡。收费模式是每用户每月 6 美元起。
大公司的这些决定让我作为他们曾经的用户,而不得不去花额外的时间和资源,寻找替代方案、改变使用习惯。而有些产品,虽然有不错的替代方案——比如 Linear 是很好的 Jira 替代品,但我不知道如果什么时候 Linear 被一家大公司收购,然后大公司关闭 Linear?那我之前在 Wunderlist 和 Jira server 关闭时所经历的一切无奈就会被迫又经历一次。
于是所有的这些事情,都促成了我后来在很长一段时间内的思考——自己接下来新产生的那些创作及创作过程,到底应该放在一个什么样的地方?
上周(2022 年 6 月初)的 Planet 是第一个提供了公开下载链接的版本。里面出现了一些我们在之前更小范围测试时,没有发现的问题。其中最尴尬的一些 crash 问题,已经在 2022 年 6 月 12 日的 0.6.16 里修复。这件事情刚刚开始,重要的是之后用稳定的节奏,把计划中的事情一件一件全部交付。
那么,后续的计划是什么?这里大概说一下。
- 视频和音频。在传统的 Web 2.0 场合,视频和音频是一种「上传」体验。而将来在 Planet 里,应该只是一件拖拽进来,加上描述,然后发布之后放在那里就好的体验。
- 评论和 Web Ping。
- 移动版本。具体细节还在设计中。但考虑到不太可能会让手机来运行 IPFS 的服务器(网络流量消耗和电池都是问题),所以一种可能的实现方式是 Planet 的 Desktop 版本提供一个 API,然后手机来连接这个 API。现在有 Tailscale 和 ZeroTier 这样的技术可以让手机在任意网络上都和家里的电脑保持内网直连状态,因此如果能够实现这样的一种卫星式的体验,应该会很有意思。
- 更多更强更美的页面主题。Planet 内部在渲染每一个网站时,使用了一套基于 Jinja 语法的模版系统。借助这套模版系统,每一个 Planet 都有可能可以使用完全个性化的设计。
我们会在后续发布详细的模版设计相关的文档。但是如果你是经验丰富的前端工程师,想提前试试的话,那么可以在菜单里 Tools -> Template Browser 找到模版浏览器,然后在 Template Item 上右键 Reveal in Finder。每一个 Template 都在一个自己的文件夹,你可以把文件夹复制一份,改个名,然后里面的 template.json
的元信息也改一改,就可以做自己的模版了。剩余的文件结构并不复杂,一看就明白。如果你机器上安装了 Visual Studio Code,那么可以直接右键 Open in VSCode
:
要支持一个完整的模版设计系统,会需要很多的支持变量(variables),不过这不会是一件很复杂的事情。我们会尽快把这件事情补齐。
IPNS 是 IPFS 生态中的一个重要组件,全称是 InterPlanetary Name System,一个去中心化的类似域名的系统。
这里是 IPNS 的官方介绍:
内容寻址是 IPFS 找到内容的最基础的方式。但是会有一个问题是,内容 ID 其实是内容的 hash。因此如果内容本身如果发生了任何变化,那么 hash 也会变。所以如果是用内容 ID(CID)来绑定给 ENS 的话,每更新一次博客就去烧 gas 重新设置 ENS 的 Content Hash,在现有的 gas fee 情况下,就太贵了。
而 IPNS 可以解决这个问题。每一个 IPNS 类似加密货币的钱包,会有一对 public key 和 private key。public key 就是 IPNS 的对外的地址,而 private key 可以用来修改这个对外地址所对应的 CID。
因此,当你用 IPNS 来绑定给 ENS 作为 Content Hash 的时候,完整的链条是这样的:
ENS -> IPNS -> CID
其中 ENS 到 IPNS 这层绑定,会需要一次性的 gas 费。
IPNS 到 CID 这一层,是免费的。
这样我们就可以实现用 IPFS 更新内容之后,ENS 上的网站也就能够动态更新,同时只需要消耗一次性的 gas 费。
比如本站的 IPNS 地址是:
k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk
然后绑定到了 olivida.eth 这个 ENS 域名上。
在所有支持 IPFS + ENS 生态系统的应用中,你可以使用上面的 IPNS 地址或者 ENS 找到同样的内容。
目前 Planet 还处在一些非常大的变化中,因此时不时备份你的 IPNS key 是非常有必要的。在 0.6.* 版本中备份的操作方式是侧栏中选中自己的 Planet,然后从 Tools 菜单中按 Export Planet。
如果你之前曾经尝试过去用 IPFS 发布一些东西给别人访问,那么你很可能已经体会过这个技术的慢。比如 ipfs.io 上的各种超时。
因为这个技术的底层是 DHT,也就是类似 BitTorrent 和电驴下载的那种 P2P 技术。如果你曾经用过 BitTorrent 的 DHT 下载,你肯定也经历过刚开始下载的时候,漫长的找节点的过程。及就算是找到了节点之后,各种连不上或者没速度。作为使用同样基础技术的 IPFS,这些问题也同样存在于 IPFS。
所以,如果使用场景场景是发布一些东西,然后让用户去浏览器中通过 ipfs.io 这样的 Public Gateway 去加载,那么很有可能就卡在那里直接卡超时了。Web 2.0 时代的 HTTP 已经被优化到了极致,但是 Public Gateway 的架构决定了那些优化到了 P2P 网络上并不完全适用。
但是,当你在用本地电脑作为 IPFS 节点时,依然是可以有一些技术手段对发布性能进行优化的。
端口转发
你可以把你的公网 IP 的 4001 端口转发到你运行 Planet 的本地电脑上。
IPv6 的入流量
如果你的运营商提供 IPv6 并且你知道怎么设置 IPv6 防火墙,那么你可以在防火墙上打开外部对 4001 端口的访问。
UPnP
如果你的路由器支持 UPnP,那么打开 UPnP 支持可以允许 IPFS 节点更好地进行 P2P 通讯。
4001 端口是 IPFS 的 peer 流量端口,上面的所有操作是只读的。在公网上打开这个端口不会造成安全问题。但是部分入侵检测系统可能会抱怨,比如 UniFi Network 的 IDS 系统就会报告这个端口上有异常。
Planet 是一个开源的 macOS 原生 App,让你可以直接从自己的电脑上发布一个网站或者博客到 IPFS,并且这个网站或者博客可以绑定到一个 ENS 域名(比如 .eth 结尾)上。因为 IPFS 和 ENS 都是去中心化的,所以你发布的这个网站也是去中心化的。其他人可以通过这个 App 来 follow 你最新的更新,你的更新可以直接到达你的观众,不依赖一个中心化的云。
目前这个 App 还处在一个非常早期的阶段,还有很多实现上的问题。我们会在后续继续更新。如果你之前玩过 IPFS 或者 ENS,那么你可能会想要试试这个完全的 GUI 体验的发布方案。
开始使用
在 App 第一次启动时,会自动 follow 下面的这两个 ENS:
- vitalik.eth - Ethereum 的创始人之一
- planetable.eth - Planet 项目的博客
点击主界面下方的加号,就可以创建自己的 Planet。在创建并写了第一个篇文章之后,你的 Planet 就会被发布为一个 IPNS。右键点击侧栏里你的网站,选择 Copy IPNS。然后你就会在剪贴板中获得像这样的一串东西:
k51qzi5uqu5dgbfw2poynnynor8h9kqqoxmzdrxy4h4wnzx1x5p4n40ijtosxk
然后你把这串 IPNS 发给其他 Planet 用户,他们就可以收到来自你的更新了。
你用 Planet 发布的网站,也可能可以通过各种 Public Gateway 访问,比如这是你当前正在阅读的这篇文章在各个 Gateway 上的地址(URL 拼接规则是 Public Gateway 域名 + /ipns/ + Planet.ipns + / + Article.UUID):
绑定 ENS
你可以把 Planet 发布出来的 IPNS 设置为你的 ENS 域名的 Content Hash。这类似于在传统 DNS 中设置一条 A 记录。
打开 app.ens.domains 然后在 Content 处填入你刚才获得的 IPNS,记得在前面加上协议 ipns://
,就像下面截图中这样:
注意因为设定 Content Hash 会是一个 ENS 合约上的操作,所以这一步会有 gas 费。但是之后你在 Planet 里发布新的内容,你的 IPNS 不会发生改变,也不会再有 gas 费的问题。
在完成了 ENS 绑定之后,也可以直接用类似下面这样的地址通过 Public Gateway 打开你的 ENS:
在原生支持 IPFS 的 Brave 浏览器里,你甚至可以用 ipns://olivida.eth 这样的地址直接打开你用 Planet 发布的网站。
记得在 Brave 设置中将 Method to resolve IPFS resources 设置为 Brave local IPFS node,这样你才可以通过真正的去中心化方式访问。
因为目前 Planet 还处在一些非常大的变化中,因此时不时备份你的 IPNS key 是非常有必要的。在 0.8+ 版本中备份的操作方式是侧栏中选中自己的 Planet,然后从右键菜单中选择 Export Planet。
一些已知问题
由于 IPFS 的 DHT 本质,虽然你用 Planet 发布出来的 IPNS 可以通过 IPFS 的 Public Gateway 访问,但是第一次的速度可能会非常缓慢,甚至打不开。
当你把 IPNS 发给其他人,让其他人 follow 你时,你的 App 必须处于打开状态,否则别人无法获得内容。当然,如果你熟悉 IPFS 的特性,那么你可以用 Pin 的方式加速和解决这个问题。关于 Pin 的优化,我们会在之后的文档中详细解释。每一个 follower 的获取更新时,也会做一个 pin 操作。因此如果一个内容的访问者越多,那么在 IPFS 网络中的性能也就会越好。
你的网站内容每次更新时,所有 follow 你的人在获得更新时大概会是一个分钟级别的延迟。
目前 Planet 里有一些地方允许你用 Public Gateway 去测试打开你发布的内容。我们目前使用的 Public Gateway 是 dweb.link,之后这个地方会变成一个可以更改的选项。
另外值得说明的是,由于 IPFS 的 DHT 本质,所以是可以看到一条内容可以通过哪些 IP 提供服务。就像你通过 BitTorrent 下载时,你的 IP 也会被其他节点看到。
开源及下载
Planet 的最新版本会在 planetable.xyz 的首页或者我们的 GitHub 项目首页提供。
如果你遇到了什么问题,或者是想要新功能,可以在 GitHub 上以创建 issue 的方式提给我们。
或者加入我们在 Telegram 上的中文用户群:
按照两个月之前的计划,在 2022 年 6 月 1 日这天上线了 planetable.xyz
这一年一直在想的就是,如果我能够有机会,把一个 idea 给完整地执行出来会怎样。现在这个机会就这样正在实现中,我很感激走过来的每一步。
如果每一个细节背后,都能够有足够的思考和设计,那结果就不会是一个赶着上线的垃圾,而是在很多年之后,你甚至都会想去高清重制它。
我们生活在这样的一个千兆网络、高速 SSD、多核 CPU 逐渐变成日常用品的时代。未来已经到来,只是没有均匀分布。Planet 就是这个时代的一种全新的互联网内容创作和分发的试验。