11月11日,当互联网圈都在感叹双十一的时候,区块链圈子里经历了一次小恐慌,是因为以太坊生态内的一个API服务商的技术问题,而导致了使用Infura服务的钱包、交易所或者其他工具出现了与以太坊连接不畅的情况。这影响了钱包、交易所等需要链上调用的业务。例如ETH及ERC20代币充提币等。
此次据用户反馈出现问题的包含币安、Upbit、Bithumb以及MetaMask等。事情发生后,Infura更新报告称,已经为受影响的组件提供了额外的在线处理能力,并在继续分析导致宕机的根本原因。系统恢复操作正在进行中。
Infura是一种IaaS产品,目的是为了降低访问以太坊数据的门槛。
对于开发者来说,Infura是一个可以让你的dApp快速接入以太坊的平台,不需要本地运行以太坊节点。Infura背后是负载均衡的API节点集群。有针对以太坊Infura有一系列的开发套件。
虽然方便了各平台与以太坊交互,但如果其IaaS产品上出了问题,也就意味着产品无法正常处理业务。
但还是归因于项目方本身对于支持以太坊业务安全性的思考。即使有很多明星项目使用Infura,但技术逻辑上的中心化,依旧是不能分摊风险的。
作为管理资产的产品,最好的是保证功能随时可用且高效。尤其对于交易所来说,能否提币从技术上看虽然简单,但这些在搞不懂技术的用户来看,会涉及平台的信誉问题。所以文章开头说到的小恐慌,不能充提币转账是诱因。
在这一次的考验中,大部分自建节点与以太坊网络交互的交易所、钱包经受住了考验,其中包含火币、BitMex、HBTC、MXC、Lbank等,另外Cobo、Math钱包等也未受到影响,都得益于自建节点,而Cobo还有防分叉设计的节点池。
Infura的API功能宕机后,经过查证后,Infura功能宕机可能是因为以太坊发生分叉导致,而对于以太坊发生硬分叉,以太坊创始人Vitalik表示,以太坊网络没有问题,没有发生分叉,可能是一些旧的Geth客户端导致的问题。
对于以太坊发生分叉的原因,区块链搜索和分析平台Blockchair首席开发人员 Nikita Zhavoronkov发推表示,在某些时候,以太坊开发人员对代码进行了更改,导致从区块11234873(07:08 UTC)开始进行拆分。包括Blockchair、Infura 、部分矿工等在内的许多人尚未进行升级。这导致他们困在少数链上 (2小时内30个区块)。从技术上讲,这是一个未公布的硬分叉,类似的事情在7年前也曾发生。
综上来看,作为钱包、交易所以及其他工具,想要实现一个完善的资产充提转账功能,需要做好充足的准备,但这也需要承担相应的成本。
这就像一条公链,也需要多语言、多团队的多个客户端来提供稳定性。
除此之外,对于开发者来说,单个工具的安全和稳定性问题都是无法避免的。例如IDE、编译器以及VM等。
当然如果公链本身具备为dapp提供数据交互服务的部分,更加可以避免系统的单点问题,例如波卡为小型开发团队开放的平行线程。
公链作为IaaS层的基础服务设施,其实已经不仅仅单独具备IaaS的属性,其中会混入BaaS、PaaS等平台中需要的逻辑和思路。这种可以从顶层设计设计上提高有效性。而要靠做产品取胜的交易所、钱包,还是要为了资产问题准备完整的解决方案以杜绝单点问题。