是时候直面Infura的中心化问题,并从中找到解决之道。
编者按:11月24日,以太坊基础设施开发公司ConsenSys(MetaMask和Infura开发主体)于11月23日在官网上更新了其隐私政策,声明MetaMask将在默认RPC为Infura的情况下收集用户信息。这一政策更新引发市场强烈反响,Infura过于中心化问题再次被摆到台前。本文为区块律动于今年3月4日撰写的《是时候正式面对Infura带来的「中心化」问题了》和《除了Infura,还有哪些API项目可用?》两篇文章集合,前篇文章阐明了当前Infura这一重要基础设施面临的中心化问题及风险,后篇文章则盘点了5个Infura替代方案。
3 月 4 日,有用户在社交媒体表示自己在委内瑞拉无法使用 MetaMask 钱包,查明原因,发现是 API 服务商 Infura 出现了问题。
Infura 回应,在配合美国和其他司法管辖区的新制裁指令而改变某些配置时,错误地配置了些许设置,导致部分地区服务中断。而作为 Infura 的本家并使用 Infura 服务的 MetaMask 也因此次错误出现了问题。导致部分地区用户短时无法访问 MetaMask。
这已经是 Infura 第 N 次出现问题导致以太坊生态受到影响了。虽然这个问题从多年前就被讨论过,但如今面对以太坊不可同日而语的超级生态,有些问题应该重新引起关注。尤其在动荡期间,因为国家间的问题导致被标榜为「去中心化」的 Web3.0 世界也开始有了准入门槛,实在汗颜。
我们并没有否认 Infura 的重要价值,只是如果我们可以尝试通过其他方式,是不是可以缓解这个问题呢?
Infura 是什么?
专业一点讲,Infura 是一种 IaaS(Infrastructure as a Service)产品,目的是为了降低访问以太坊数据的门槛。通俗一点讲,Infura 就是一个可以让你的 DApp 快速接入以太坊的平台,不需要本地运行以太坊节点。
从程序员的角度讲,Infura 就是一个 Web3 供应商,背后是负载均衡的 API 节点集群。
再简单一点理解,Infura 就是一个公开的以太坊节点,可以看到以太坊整条链上的所有数据。这个节点的优势在于,Infura 是对外服务的,项目方或者交易平台其实完全可以自己部署节点,实现的功能和 Infura 完全一样,但是很麻烦,成本高。于是 Infura 的服务就有了市场。
在整个以太坊网络中,需要一种能够降低进入门槛并简化对以太坊数据访问的实用程序。其中最重要的是基础架构即服务(IaaS)产品,而在这方面较为领先的则是 Infura,它为跨行业的开发人员,DApp 团队和企业提供了一套工具,可将其应用程序连接到以太坊网络和其他去中心化平台。
Infura 是由开发者 Michael Wuehler 开发的以太坊基础设施,最开始时处于独立运营状态。在 2019 年被 ConsenSys 全资收购,变为其下业务部门。在推出之初 Infura 是免费使用的。随后推出了订阅服务,收费标准在每月 50 美元至 1000 美元不等。不过对于需求较小的开发者或者项目而言,Infura 还是十分友好的。开发者可以免费在 Infura 中创建 3 个项目,每日使用 Infura 的 API 服务提交 10 万次请求。
Infura 有什么用?
Infura 首席系统工程师 Nicola Cocchiaro 说:「我们的使命是促进以太坊的访问及其提供的机会。」他们确实已经实现了这个使命,远超预期。
以太坊许多知名的项目(MetaMask,Aragon,Gnosis,OpenZeppelin 等)都利用 Infura 的 API 将其应用程序连接到以太坊网络。作为以太坊生态中最大的 API 提供方,Infura 的存在的确让开发者方便了不少。
Infura 基础设施最著名的部分是托管的以太坊客户端网络,通过客户端兼容的 JSON-RPC,在 HTTPS 和 WSS 之上支持主网和测试网。以太坊节点只是 Infura 栈的一部分,同时他们还有 IPFS 的服务,不过在生态与以太坊天差地别,关注度自然也没那么大。
采用 Infura 的项目和公司
在 Infura 的官方网站上,律动发现有很多我们熟知的公司和项目都利用了 Infura 服务。例如,以太坊轻钱包 MetaMask 使用 Infura 的零客户端方式,连接 Infura 的远程基础设施,以服务超过数百万的用户。(律动注:MetaMask 除了使用 Infura 服务之外,也运行了自己的节点)
对于像谜链猫这种更看重可扩展性的项目来说,Infura 会与整个生态系统的开发人员合作,以保持网络的平稳运行。
当然,还有很多交易平台也采用了 Infura 的服务,例如 Upbit、Bithumb 等。其中也不乏一些去中心化协议,如 0x 和 MyCrypto 等都依赖 Infura 向以太坊主网广播交易数据和智能合约。
Infura 官网列出的一些客户案例
对于过于依赖 Infura 的担忧
目前以太坊全网节点 6300 个,Infura 曾经在 2018 年表示过,通过 Infura 接入以太坊网络的节点数占总节点数的 5-10%。随着维护节点的成本越来越大,这个比例现在只会更多。
这不是 Infura 第一次出现问题,2020 年 11 月,Infura 没有运行最新版本的 Geth 客户端,而某些特殊的交易触发了这个版本的客户端的 bug,随后 Infura 宕机了。
这被认为是 The DAO 后最严重的一次以太坊事故,虽然不是以太坊网络的问题,但当时 Infura 宕机造成的连锁反应几乎可以认为以太坊网络短时瘫痪:主流交易平台无法充提 ERC-20 的 Token,MetaMask 无法使用等等。
小问题也不断,今年 2 月,OpenSea、Uniswap 等平台又出现了问题,原因是 Infura 的流量激增宕机了。Infura 显然已经成为了这栋市值 3200 亿美元大厦的地基。
早在 2018 年,就已有开发者对于 Infura 表示出了担忧。Parity Technologies 的一位以太坊开发者 Afri Schoedon 表示,以太坊网络不能依赖 Infura 来处理每天 100 亿次请求。Schoedon 认为,过度依赖 Infura 将增加协议的中心化。
而除了项目方或者用户自己搭建节点,我们还有不少其他项目可以选择,比如 Alchemy,或者呼声甚高的 Pocket Network 等等,虽然不会让 Infura 的故障问题影响完全消失,但至少可以缩小。
我们并不是否定 Infura 的价值,Infura 对以太坊非常重要,但如果,有更多的节点激励方案,或者降低节点运行成本的解决方法出现,以太坊会更加完美,甚至要完美过 ETH2.0。
盘点5个Infura替代方案
QuikNode
自己搭建以太坊节点需要解决的问题较多,如安全问题、网速问题以及存储空间问题,QuikNode 作为一个区块链开发平台,可以通过直接提供全节点来解决这些问题。它曾获 Reddit 联合创始人领投的 530 万美元融资,又在去年 10 月完成 Tiger Global 领投的 3500 万美元融资。
QuickNode 为用户的应用程序和 DApps 提供弹性和专用节点的服务,也就是应用程序编程接口(API),可查询区块链数据并促进操作去中心化应用程序,与 Infura 类似,降低了访问以太坊数据的门槛。
不过需要注意的是 QuickNode 提供的不是共享的公共节点,而是专用节点。只接受用户 DApp 的调用,提高了区块链访问性能。其目前支持 11 个区块链,有 BSC、Bitcoin、Solana、Optimism、Fantom、Terra、Arbitrum、Gnosis、Polygon、Ethereum 与 Celo。
Alchemy
Alchemy 是一款被广泛使用的 blockchain API。Alchemy 的超级节点服务被 Ethereum, Polygon, Arbitrum, Optimism, Flow 和 Crypto.org 所采用。该服务提供了广泛的 API 支持,让开发者可方便的通过一个节点获得多种功能,包括 JSON-RPC 支持,同时提供了在区块链上运行世界级应用程序所需的强大的可靠性、数据正确性和弹性。
在 Alchemy 官网的介绍上,一个简短的概括性总结是「使用专用分布式系统扩展每个节点功能,并使用专有的协调器服务维护实时数据正确性。」而将之换成广大互联网用户更熟悉的概念,可将 Alchemy 的愿景理解为这一个 blockchain 版本的 AWS、阿里云。
正如在 Web2 中,开发者租用 AWS 可免去服务器维护、运维等一系列的烦恼一样。Alchemy 也未开发者提供了一个基础的去中心化架构,将不同类型的数据分离到特殊的数据存储中,提高速度和可靠性,也就是说,用更少的工程资源就可以在链上构建应用程序,和亚马逊的 AWS 很相似。
OpenSea 联合创始人 Alex Atallah 曾盛赞 Alchemy:「使用自己的节点或容易出错的服务意味着在无关紧要的问题上浪费宝贵的工程时间。Alchemy 的可靠性、速度和支持令人惊叹。」
除了主要服务以外,Alchemy 还提供了多种多样的其他服务,如开发解决方案、一体化监控仪表盘、Web 3.0 推送服务等。
Pocket Network
Pocket Network 也是一个服务于 Web3 的去中心化 API 协议。基于 Pocket DAO 指导着协议的长期发展,它提供了一个由全节点供需端所组成的双边市场,一端为应用程序,另一端为运行全节点基础设施供应商。
其 Token 为 POKT,开发者可根据自身需求质押 POKT,从而获得 API 服务,不需要使用其服务时则可随时取出质押 Token,不过为调动 POKT 的流动性,Pocket 又发布了 wPOKT,吸引其他应用的加入。
其由数万个分布式节点共同运行网络,不存在中心化服务器和单点故障,也就是说即使为开发者提供服务的一个节点故障了,也会有其他节点继续提供服务,由此,提供了一个容错率较高、低成本且灵活 API 服务的解决方案。
Moralis
Moralis 是一个 Web3 开发中间件,它为开发者提供了可扩展的后端基础设施,让用户专注于应用程序的前端。与链上交互的一系列复杂过程均可通过 Moralis 简单的完成,以此来节约开发成本并提高链上交互功能的可靠性。
与其他竞品类似,Moralis 也为开发者提供了链上警报推送、智能合约监控等功能。目前,Moralis 支持
Ethereum,BSC,Polygon,Solana 和 Elrond 等多条网络。开发者基于 Moralis 可快速开发跨链 DApp。
此外,Moralis 还为一般的 DApp 开发提供了其他出色的工具。一些示例包括对 IPFS 的原生支持、跨链兼容性以及对开发人员的大力支持。Moralis 博客还提供出色的指南,供你查看并更好地了解 Moralis 用户的可能性。
目前,已有 SuperFarm、1inch、Chainlink、utrust、Covalent 等产品接入了 Moralis 的服务。
Bware Labs
Bware Labs 是一个分布式 API 基础设施初创公司,在建立一个基于多链订阅式的 API 平台,在区块链 API 消费者和节点提供商之间提供了一个接口,允许企业和开发人员执行对多个集成区块链的数据请求。
在开始,所有基础设施需求将由 Bware Labs 自身的服务器提供,其表明这可以全面了解合作伙伴的需求,还可以在接受第三方节点提供商之前调整基础设施。不过当有足够多的第三方节点提供商加入时,其自身大部分节点将退出,从而转变为监控角色。
Bware Labs 在 2 月 23 日其披露完成了 600 美元的融资。其团队成员多由前 Ankr 开发人员构成,部分成员还曾在 Google 任职。
其 Token 简称 BWR,可用于从平台委托节点提供商从而赚取利润、质押、参与协议治理,以及从验证者处获得奖励,目前暂未披露分配数据。