本文主要讨论Web3的Interaction Layer及其两种主要工作方式:使用第三方节点服务提供商和运行自己的节点。通过介绍各自的优缺点,以及相关成本分析,帮助读者理解在开发去中心化应用时,更适合哪种方式。文中提供了一些节点服务的实例和比较,最终强调了选择的灵活性与依据。
Web3 快速回顾
除非你一直生活在岩石底下,否则你很可能已经通过博客文章、新闻报道或其他来源接触过 Web3 这个术语。相信我,Web3 正在颠覆我们现有的互联网。
Web3 是无服务器互联网的愿景的最终实现,即 去中心化网络。一个用户可以掌控自己数据、身份和命运的互联网。
Web3 技术栈看起来大致是这样的:
本文重点讨论交互层,特别是在 EVM 基于的区块链方面。
原因:因为你正在开始 Web3 开发周期,你需要了解这层的重要性,它是由谁提供的,我是否需要它,等等。
有两种方法可以操作交互层:
你可能已经猜到,这两种选择各有优缺点。90% 的 dapp 开发是使用选项 2;但是在这个主题上没有进行过多分析。
本文的目标是让你了解优缺点,然后帮助你决定是否跟随大众或突破束缚。
选项 1:使用节点服务提供者
provider.getBalance(0x)
等调用都是通过这里完成的。为了更好地理解,以下表格列出了一些最受欢迎的节点提供者和他们的功能。
节点服务提供者
更多信息,请查看这个 页面
使用上述服务提供者的优点
缺点
选项 2:运行自己的节点。
运行自己的节点意味着你的服务器存储整个区块链。你可以选择自己的节点是否在将数据添加到区块链之前验证每一个区块(是的,我们在谈论挖矿,在以太坊区块链中的工作量证明)。
虽然运行自己的节点可以被视为良好的实践,但由于其成本和安装过程所需的时间,它并不被推荐。
互联网上存在多种客户端,允许你基于各种编程语言(如 Go、Rust、Typescript 等)运行自己的节点。
一些客户端示例
以太坊节点客户端
使用上述服务提供者的优点
缺点
像 Infura 和 Alchemy 这样的提供者提供免费层以使用他们的服务。显然,在“免费层”下,你可以进行的 API 调用数量是有限的。目前,Infura 允许每天进行 100,000 个请求,而 Alchemy 允许 3 亿个请求。
当然,上述数字并不小,应当适用于任何形式的初步开发;测试;教程等。但一旦你上线一个 DAPP,很容易超出上述限制,你就要面对来自 Infura 或 Alchemy 的费用。
根据近期的记录,Uniswap 平均每天发送约 3000 万请求,Akropolis 发送 200 万请求,而 Sushiswap 均匀发送大约 2500 万请求。
现在有很多结构安排。例如,如果我们正在设计一个 DAPP,我们不会公开我们的 API 端点,因此,当我们的用户连接到我们的 DAPP 时,他们的钱包连接到一个服务提供者。因此,请不要马上担心上述数字。
然而,平均而言,我们发现如果你维持一个后台以分析你的智能合约数据、性能和各种其他因素,你肯定会看到每月~ 200 美元的成本。
方面 1:财务(可衡量的因素)
运行自己的节点所需的硬件要求:
根据上述要求,平均情况下,我们了解到这大约需要 ~600 美元每月。
方面 2:人力成本
通常需要你的工程师花费每天至少 30 分钟来监控节点的性能;我们也预计偶尔会出故障,因此需要更多的时间投入。这大约会让我们每月花费 ~ 1,200 美元。
运行自己的节点大约需要 \$22K / 年 的成本,而使用第三方服务提供者的成本大约为 \$2,400 / 年。
使用服务提供者可以简化过程并节省整个耗时的步骤。然而,可靠性和其他一些因素确实使得运行自己的节点值得考虑。
就这样!现在你已经了解了优缺点。也许,现在显而易见的是,世界上大多数 dapp 开发者为何选择第三方服务提供者。
然而,你需要明白,两种方法各自扮演着重要的角色,最终只有你可以确定哪种方法最适合你。
我们非常想知道你的想法;我们乐于学习,因此如果你认为我们遗漏了什么;非常乐意知道。
作者(欢迎反馈):Amateur-Dev 和 Pari Tomar
- 原文链接: medium.com/buildbear/web...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!