Web3:我应该使用Infura / Alchemy还是运行一个节点?

  • BuildBear
  • 发布于 2022-03-24 15:34
  • 阅读 32

本文主要讨论Web3的Interaction Layer及其两种主要工作方式:使用第三方节点服务提供商和运行自己的节点。通过介绍各自的优缺点,以及相关成本分析,帮助读者理解在开发去中心化应用时,更适合哪种方式。文中提供了一些节点服务的实例和比较,最终强调了选择的灵活性与依据。

Web3 快速回顾

除非你一直生活在岩石底下,否则你很可能已经通过博客文章、新闻报道或其他来源接触过 Web3 这个术语。相信我,Web3 正在颠覆我们现有的互联网。

Web3 是无服务器互联网的愿景的最终实现,即 去中心化网络。一个用户可以掌控自己数据、身份和命运的互联网。

Web3 技术栈看起来大致是这样的:

  • 网络层 — 即 Blockchain,后台
  • 交互层 — 即节点提供者,区块链世界的 AWS
  • 去中心化应用 — 访问 Web 3.0 的客户界面,“应用”

本文重点讨论交互层,特别是在 EVM 基于的区块链方面。

原因:因为你正在开始 Web3 开发周期,你需要了解这层的重要性,它是由谁提供的,我是否需要它,等等。

有两种方法可以操作交互层:

  1. 使用第三方服务提供者:如:Infura,Alchemy,QuickNode,或者
  2. 运行自己的节点客户端:如,Geth

你可能已经猜到,这两种选择各有优缺点。90% 的 dapp 开发是使用选项 2;但是在这个主题上没有进行过多分析。

本文的目标是让你了解优缺点,然后帮助你决定是否跟随大众或突破束缚。

选项 1:使用节点服务提供者

  • 如其名,节点服务提供者在后台为你运行节点客户端,因此你无需自己动手。它的每个客户端都可以参与“使用”该节点(显然,这是共享的)。听说过规模经济吗?!是的,这就是现在的情况。
  • 这些服务提供者通常提供一个 API 密钥,你可以用它与节点进行通信。是的,你所有的 provider.getBalance(0x) 等调用都是通过这里完成的。
  • 使用这些节点通常是即插即用,可以通过他们的 SDK。
  • 目前有多种节点提供者,如 Alchemy、Infura、QuickNode 提供这些服务。

为了更好地理解,以下表格列出了一些最受欢迎的节点提供者和他们的功能。

节点服务提供者

更多信息,请查看这个 页面

使用上述服务提供者的优点

  1. 易于使用;只需通过其自身的 SDK 或其他 Web3 JS 库即插即用
  2. 即时可用
  3. 提供备份选项(如果一个节点失败,另一个节点可以启动)
  4. 提供技术支持团队
  5. 无需维护节点软件的麻烦;与节点相关的风险
  6. 成本分摊 {稍后再谈}

缺点

  1. 对第三方的依赖(这是不是与区块链精神正好相反)
  2. 成本(可能是,也可能不是?)

选项 2:运行自己的节点。

运行自己的节点意味着你的服务器存储整个区块链。你可以选择自己的节点是否在将数据添加到区块链之前验证每一个区块(是的,我们在谈论挖矿,在以太坊区块链中的工作量证明)。

虽然运行自己的节点可以被视为良好的实践,但由于其成本和安装过程所需的时间,它并不被推荐。

  • 完全节点同步 可能需要差不多一个 或两个月 来下载整个区块链
  • 轻节点同步 可能需要几个 星期

互联网上存在多种客户端,允许你基于各种编程语言(如 Go、Rust、Typescript 等)运行自己的节点。

一些客户端示例

以太坊节点客户端

使用上述服务提供者的优点

  1. 你是自己命运的主人。再也不需要 API 密钥,不再需要购买套餐,API 调用限制等

缺点

  1. 成本
  2. 维护

让我们谈谈成本(财务成本和时间成本)

使用第三方服务提供者的成本

像 Infura 和 Alchemy 这样的提供者提供免费层以使用他们的服务。显然,在“免费层”下,你可以进行的 API 调用数量是有限的。目前,Infura 允许每天进行 100,000 个请求,而 Alchemy 允许 3 亿个请求。

当然,上述数字并不小,应当适用于任何形式的初步开发;测试;教程等。但一旦你上线一个 DAPP,很容易超出上述限制,你就要面对来自 Infura 或 Alchemy 的费用。

根据近期的记录,Uniswap 平均每天发送约 3000 万请求Akropolis 发送 200 万请求,而 Sushiswap 均匀发送大约 2500 万请求

现在有很多结构安排。例如,如果我们正在设计一个 DAPP,我们不会公开我们的 API 端点,因此,当我们的用户连接到我们的 DAPP 时,他们的钱包连接到一个服务提供者。因此,请不要马上担心上述数字。

然而,平均而言,我们发现如果你维持一个后台以分析你的智能合约数据、性能和各种其他因素,你肯定会看到每月~ 200 美元的成本

运行自己的节点的成本

方面 1:财务(可衡量的因素)

运行自己的节点所需的硬件要求:

  • 至少 2TB 的 SSD (是的,我们很前瞻,并计划运行完全节点)
  • 4GB 内存(哦,别用 2GB 的内存来苛待自己)
  • 24*7 连接互联网
  • Intel NUC,7th 核心或更高(x86 处理器)

根据上述要求,平均情况下,我们了解到这大约需要 ~600 美元每月

方面 2:人力成本

通常需要你的工程师花费每天至少 30 分钟来监控节点的性能;我们也预计偶尔会出故障,因此需要更多的时间投入。这大约会让我们每月花费 ~ 1,200 美元

结论

运行自己的节点大约需要 \$22K / 年 的成本,而使用第三方服务提供者的成本大约为 \$2,400 / 年

使用服务提供者可以简化过程并节省整个耗时的步骤。然而,可靠性和其他一些因素确实使得运行自己的节点值得考虑。

就这样!现在你已经了解了优缺点。也许,现在显而易见的是,世界上大多数 dapp 开发者为何选择第三方服务提供者。

然而,你需要明白,两种方法各自扮演着重要的角色,最终只有你可以确定哪种方法最适合你。

我们非常想知道你的想法;我们乐于学习,因此如果你认为我们遗漏了什么;非常乐意知道。

作者(欢迎反馈):Amateur-DevPari Tomar

  • 原文链接: medium.com/buildbear/web...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
BuildBear
BuildBear
https://medium.com/buildbear