原文地址
Web 3.0 架构可能比较混乱,但我们会把理解弄清楚
内容
介绍
当我们谈论Web 3.0架构时,我们指的是DApps, 它代表去中心化应用程序。从历史上看,Web 2.0架构由我们最熟悉的组件组成:
- 前端——浏览器从主机服务器获取并呈现给用户的客户端应用程序。通常用 🅰️ Angular、 ⚛️ React和任何其他流行的框架编写;
- 后端——服务器端应用程序(在某些情况下——无服务器,意味着存储在云中)。通常,一个应用程序会接管所有繁重的逻辑,包括管理数据库。它通过 API 与客户端交互,并使用一种流行的后端语言编写:JAVA、NodeJs、C# 、GO、 Ruby、Python。
- 数据库——它可以是NoSQL或SQL数据库服务器。基本上存储所有客户端和服务器数据。最流行的数据库是Postgresql和Mongo。
当然,还有更多的组件,这取决于可扩展性,但这不在我们的主题之内。主要问题是 Web 2.0 和 Web 3.0 之间有什么区别?
Web 3.0 DApp 中的后端层
DApp的主要区别在于去中心化。您不需要集中式数据库或 Web 服务器,您可以利用区块链在计算机网络之间分发应用程序。区块链将充当“状态机”🤖——通过验证预定义规则来维持程序状态和稳定性。状态机在区块链网络的所有参与者之间传播,并通过关于程序稳定性的共识来存档验证。
后端逻辑通过智能合约实现,稍后将部署到共享状态机(区块 链网络)。因此,后端驻留在点对点网络中,每个人都可以通过匹配某些标准来做出贡献(例如,拥有并锁定加密货币以便对更改进行投票或对程序提出建议)。但是前端如何工作呢?
Web 3.0 DApp 中的前端层
DApp的主要前端架构专注于与智能合约(去中心化程序)的通信。而且它会不同于常见的前后端通信。
区块链网络中的每一个节点都承载着程序的状态,如果要与智能合约进行通信, 就必须与其中一个节点进行通信,可以是:
启动区块链基础设施可能非常具有挑战性,尤其是当您想要扩展它以添加更多节点时。当用户提供时会很方便,缺点是它创建了一个集中的依赖组件。
所有提供商都在实施JSON - RPC规范以与区块链网络进行通信。RPC或远程过程调用 — 是一种请求-响应协议,它定义了允许客户端将消息发送到远程机器以执行功能并检索响应的规则。在这样的通信中,程序在客户端机器上运行,这意味着客户端不知道远程机器。所有通信都通过HTTP或Web Sockets进行。
当提供商连接到区块链时, 客户端能够获得有关区块链 状态 的信息。但是客户端如何写入区块链网络呢? 所有的写 请求交易都需要使用客户端的私钥进行 签名。每笔交易都将花费客户一笔gas 费用,这是一种加密货币,它将去欣赏验证交易的其他节点( 矿工)。
这样的提供者,如Metamask,就像一个交易 签名者和提供者。它将私钥存储在浏览器中,并在客户端发出交易请求时进行签名,并连接到区块链网络。
Web 3.0 DApp 中的数据层
💡 这是你的数据,拥有它!
由于交易 gas 费用,将数据存储在区块链中可能会非常昂贵,使用非区块链解决方案(如点对点存储——IPFS或Swarm )更为合理。
IPFS — 是一种点对点文件系统协议,允许您跨机器网络存储数据。没有流行浏览器的原生支持,IPFT 使用私有或公共网关连接到网络。
Swarm——类似于 IPFT,唯一的区别是系统通过以太坊区块链网络中的智能合约来维持。
为了使您的前端也去中心化,您可以使用相同的点对点存储解决方案。
最后,为了简化查询存储在区块链或对等网络The Graph中的数据。它将 GraphQL 查询转换为智能合约事件和点对点网关。
结论
Web 3.0 DApp架构可能看起来非常庞大🤯。是的,但是出现了更多旨在简化构建体验的工具,例如hardhat ****和thirdweb 。