本文回顾了以太坊早期浏览器Mist的失败,分析了其存在的问题,例如启动速度慢和数据访问能力弱。文章提出了改进方案,即保持节点持续同步,并引入Khedra组件,将节点转化为功能完善的本地优先应用服务器数据库,从而实现去中心化应用的愿景。
正如它过去的样子,正如它可能的样子,正如它未来可能的样子
我第一次听说 Ethereum 是在 2015 年末。几周后,我听说了 Mist 浏览器 [ 1, 2]。
真是个噩梦。
幸运的是,那时我已经深陷其中,愿意忍受任何痛苦来使用“可编程区块链”。一年前,我读过关于比特币的文章以及关于“抽象出可编程性”的讨论,因此 Ethereum 非常有意义。
但不合理的是,为什么我必须经历如此多的痛苦才能使用它。
脑海中浮现出那句老话“我们还处于早期阶段”。但是,我的意思是,我们到底能有多早?
这就像进入伊甸园,却被标语牌拦住,上面写着“施工期间,请原谅我们的外观”。我就像,“上帝,这里发生了什么?你的花园太糟糕了。”
Ethereum 上的 Mist(通往 Ethereum 伊甸园的入口)“太早了”
Mist 可以做得更好吗?现在重新复活 Mist 是否为时已晚?
本文展示了三个时序图,并对每个图进行了简短的描述。这些图分别名为“Mist 过去的样子”、“Mist 本应的样子”和“Mist II:书呆子的复仇”。
我们讨论了(除其他因素外)最终导致 Mist 死亡的两个主要问题。我们认为,Mist 的死亡预示着构建真正去中心化和真正私有应用程序的死亡。但现在还为时不晚。
我们认为 Mist 至少存在两个从一开始就注定失败的问题:
还存在其他问题,例如安全问题以及缺乏用于构建桌面应用程序的 Electron 的合适替代方案,但以上两个是主要面向用户的问题。(我们已经使用“ Wails”(一种有效且易于使用的 Electron 替代方案)来构建 TrueBlocks Browse。去看看。)
在本文的其余部分中,我们将描述三个时序图,显示 Mist 如何工作、它本来可以如何工作以及如果重新构想它可能会如何工作。
我们的第一个图显示了 Mist 如何工作的一种风格化(可能略有不准确——已经有一段时间了)的视图。请参阅下面的编号注释,它们与图像中的黑色圆圈相对应。
早在 2016 年或 2017 年,Mist 这样运行是有原因的(担心该节点会压垮用户的机器),但我们认为这不再是真的。我们知道这一点是因为我们已经在我们自己的笔记本电脑上看到了 Erigon 节点运行。你不相信我?这是证明。
Mist 失败的最紧迫的原因是其启动时间极慢且数据访问贫乏。必须不断同步节点,并且 RPC 必须是实际的数据库。
Mist 本可以做的一件简单的事情是将 Geth 节点作为服务安装。其他桌面应用程序(例如 Docker 或 1-Password)也可以这样做。
我将这种类型的应用程序称为“长时间运行的进程”,因为它在机器启动时启动并运行直到机器关闭。其他人称其为“守护进程”或“服务”。这是软件保持与不断传入的数据同步的_必须_工作的方式。
以下时序图显示了 Mist 可能的工作方式以及它如何解决这两个问题中的第一个问题。请注意下图中的黑色圆圈。它们与后面的编号注释相对应。
为什么 Mist 如此重要?为什么直接针对点对点数据网络运行本地优先软件很重要?有什么大不了的?
直接、不受限制、无需许可地访问区块链数据至关重要,原因有很多:速度、详细程度、18 位小数的精度、没有“提供商”因此没有审查、完美的隐私以及接近零成本。这些事情是 Ethereum 精神的核心。在当前系统中,这些事情都不可用。通过 Web 2.0 数据提供商(包括远程访问 RPC)访问数据会破坏我们所说的非常重视的每件事。
另一个关键方面(至少对我而言)是,去中心化的区块链网络应该从 Web 2.0 生态系统的强大势力中“夺取”权力。(这些势力永远不会将权力还给我们,因为我们只是客气地要求他们——我们必须在未经允许的情况下“夺取”回来,而无需请求)。这就是构建比特币的书呆子所做的事情。他们从强者手中夺取了权力。
这不是 Ethereum 今天的工作方式。
如果你愿意,你可以对自己撒谎,但我们正在构建的系统不是无需许可的。如果人们不运行本地节点和使用无需许可的本地应用程序,则该系统不是去中心化的。该系统不快。它不便宜(它可能是免费的,但你要通过侵犯隐私来支付)。而且——在我看来——它也不有趣。
这就是为什么我呼吁复活 Mist。这是“书呆子的复仇”。我们必须在他们再次夺取权力之前,从强者手中“夺取”权力。
最终图仅展示了 Mist(或任何去中心化桌面应用程序)可能工作的一种愿景。
我们引入了一个名为 Khedra(发音为“kay-drah”)的新组件,它是一个独立的“守护进程”,但它可以作为可选的守护进程组件合并到节点软件中。
Khedra(这是其名称背后的历史)解决了上述两个问题中的第二个问题。Khedra 将节点变成一个适当的数据库。它通过提供一个索引、缓存和监视层来扩展节点,该层与节点软件并行运行。
Unchained Index 和 Khedra 在许多地方都得到了很好的解释 [ 1, 2, 3]。我们不会在这里深入探讨。
对于此最终图,下面的带编号的注释与此图中的黑色圆圈相对应。
如果我们想要 dApp 这样做,它们可以如何工作的一个神话般的“伊甸园”
Mist 的基本假设是,去中心化的本地应用程序必须运行本地节点,这是完全正确的。如果没有本地节点,你的应用程序不可能去中心化。
Mist 的实现失败了,因为伊甸园正在建设中。必须将节点作为长时间运行的进程运行。必须对节点上的数据进行索引——最小化,以便它继续在小型机器上运行。应仅监视和缓存最终用户直接感兴趣的地址。
现在应该重新审视我们生活在人间天堂的愿望了。你想住在伊甸园吗?我想。
如果我们想要它,我们就可以拥有它——我们所要做的就是以这种方式构建它——以这种方式夺取它——有目的地。
TrueBlocks 的资金来自个人资金和 Ethereum 基金会的赠款(2018 年、2022 年、2024 年)、Optimism Retro PGF(2022 年、2023 年)、Moloch DAO(2021 年)、Filecoin/IPFS(2021 年)、Consensys(2019 年)以及我们可爱的 GitCoin 捐赠者。
如果你喜欢这篇文章并希望支持我们的工作,请使用 ETH 或任何代币捐赠给我们的 GitCoin 赠款。如果你是 Optimism 徽章持有人,请在未来的 Retro 轮中投票支持我们的项目。或者直接向我们的 trueblocks.eth 或 0xf503017d7baf7fbc0fff7492b751025c6a78179b 发送小费。
我已经与许多人讨论过复活 Mist 的想法。这些对话是粗略的、不频繁的且记录不完整。我们邀请你加入我们。下面(和上面)是一些……非常粗略的……编辑得很糟糕的……语无伦次的想法。这是一个开始,无论好坏,你都必须从某个地方开始。
在下文中,我们假设有一种双管齐下的方法——一种是“朝着节点方向”开发,这意味着它试图改进或扩展 RPC。另一种是朝着用户方向发展,这意味着必须鼓励用户、开发人员和社区更深入地思考像 Mist 这样的想法。
朝着节点方向
chifra scrape
、chifra export
、chifra list
和其他工具来解决“缺少索引”的问题。朝着用户方向
■ 便利性——本地优先的 dApp 必须易于安装、运行和维护,
■ 速度——本地优先的应用程序可以比 Web 应用程序快 100 倍,
■ 准确性——这种速度允许更深入的数据提取,从而允许每 12 秒进行 18 位小数的对账,
■ 隐私——没有第三方 API 来窥探你的钱包。
■ 重点——通往用户的道路是通过开发人员,
■ 解决方案——通过 Unchained Index 和 TrueBlocks-Core(一个有据可查的 SDK)提高 RPC 的功能和 UX,增加了构建新应用程序的机会。
■ trueblocks-browse——是使用我们的 SDK、Khedra 和 Unchained Index 的本地优先 dApp 的一个示例。
■ 示例和教程——包括 视频教程 可用,
■ 自动代码生成有助于生成健壮、有据可查的代码
■ 在整个项目中保持一致、有据可查的代码,
■ 以其他语言创建 SDK(我们已经有实验性的 Python 和 Typescript SDK)。
协作
■ 制作潜在 dApp 的“愿望清单”(Dao 管理器、Staking 管理器等)
■ 直接资助“本地优先”的开发人员
■ 为“本地优先”的开发人员提供赠款
■ 赞助黑客马拉松奖品
■ EF (Buidl-Guidl, Portal Network, Sourcify)
■ Rotki
■ Rick Dudley
■ Pocket Network
■ Otterscan — Willian
■ 节点软件团队:Erigon (GoLang), Geth (GoLang), Reth (可扩展)
■ 二层网络与一层网络一样(如果不是更多)需要索引,
■ 如果有任何真正去中心化的未来的希望,任何此类索引都应标准化。
■ Uniswap — Ken Ng
■ Optimism (Test-In-Production)
■ 其他朋友:Giveth, Gitcoin, Hopr
/完毕
- 原文链接: tjayrush.medium.com/mist...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!