区块链芝士丨在以太坊上开发dApp的瓶颈和门槛有哪些?(1)
去中心化应用程序(Dapp)被广泛认为是可以为像银行业(Di-Fi)和游戏业等领域带来颠覆性创新的。但是,即使是最有创新性的解决方案,如果不能满足消费者的期望,也不会被认可。
消费者需要的是流畅和成熟的用户体验,而实现这个目标对以太坊的 Dapp 开发者来说又是一个重大挑战。
本文将概述典型的 Dapp 架构,并指出当今标准以太坊堆栈的一些固有局限性,正是这些局限性导致开发者难以打造出能有说服力用户体验。接着会介绍下以太坊基础设施领域中的一些能帮助开发者克服这些挑战的创新。
经典的以太坊 Dapp 架构
一般来说,以太坊上的 Dapp 包含三个主要部分:
- 智能合约,通常以 Solidity 编写,使用 Truffle Suite 等框架构建并部署在以太坊区块链上。
- 前端代码,用 Java 编写的。
- 后端——一般是用标准的以太坊区块链节点。前端与后端的通信一般是使用节点提供的 JSON-RPC 或 GraphQL API。
还有各种促进前端与 Eth 节点的通信的库,其中最受欢迎的是 web3.js 和 ethers.js。也还有许多其他语言(Java,Python,Rust…)的 web3 库。
自建后端节点
在以太坊的早期,开发者必须运营自己的以太坊节点。Dapp 发布了以后,他们还必须运营生产级别的节点(或节点集群)。运营区块链节点这项工作繁重,也会对开发者的效率造成负担。
节点服务(NaaS)提供商
上述的这个挑战促成了一些例如 Infura,以及相对新的 Nodesmith、Quiknode、Blockdaemon、Ethernode、Chainstack、Alchemy、CloudFlare 等公司的 “节点服务” 平台的兴起。
这些平台为开发者提供了基于云端的以太坊节点,从而节省了开发者运营节点的精力。用于开发和生产的解决方案。这些平台可为开发者分担基层操作系统和节点软件本身的系统管理,例如补丁和更新。
以太坊节点的固有局限性
即使节点服务能成功地替代开发者担任系统管理员的职责,它无法帮助开发者实现的用户体验去构建更好的 Dapp,这是因为来自节点服务的架构以及以太坊节点支持的 JSON-RPC 和 GraphQL 接口的固有局限性。