# Web 3.0 架构不仅是去中心化的，更是模块化的

By [W3.Hitchhiker](https://paragraph.com/@w3hitchhiker) · 2022-04-25

---

作者：Xiang｜W3.Hitchhiker

一、Web 2.0 架构
------------

**Web2.0应用以去中心交易所 Binance 为例**，Binance 允许用户去交易各种代币。

Binance是一个 Web 2.0 应用程序，架构听起来很简单，但实际上在开发中，需要进行大量的工作。

用户需要通过网络运营商来使设备联网，然后打开浏览器，输入币安的域名，通过 http 协议去访问币安的网站。

Binance 需要用户通过手机或者邮箱来进行注册并登录该平台。

然后币安自己需要一个地方来存储像用户注册信息，交易额度，成交历史，挂单等的基础数据。而这些都需要搭建一个数据库用来存储，并且要不断地更新。

其次，后端代码语言（像 Node.js, Java, or Go）决定了 Binance 的所有的业务逻辑。需要一个搭建服务器部署后端跑后端的逻辑。例如，当新用户注册、交易，挂单会发生什么情况？

还有，像前端代码语言(JavaScript, HTML, and CSS )决定了 Binance 的 UI 逻辑。需要一个搭建服务器部署到前端跑前端的交互逻辑。例如，网站是什么样子的？当用户与页面上的每个按键交互时会发生什么？

当你在 Binance 上写交易时，这些所有的东西都会整合起来进行联动。你与它的前端互动，前端和后端交互，后端再与它的数据库交互。所有这些代码都托管在中心化服务器上，并通过互联网浏览器反馈给用户，而中心化服务器的所有控制权在 Binance 的手上。

这是对当今大多数 Web 2.0 应用程序的工作原理的一个简单总结，当然实际会更为复杂。

二、Web 3.0 架构
------------

**Web 3.0 应用以 Uniswap 为例**，Uniswap 是去中心交易所，允许自由添加并交易各种代币。

Uniswap是一个 Web 3.0 应用程序，架构听起来很复杂，但实际开发实现很简单。

首先，用户要通过设备来进行联网，需要通过网络服务商，类似电信，移动之类。（**去中心化的网络服务商，物联网：Helium**）

然后，用户访问程序要通过浏览器或者操作系统（**去中心化的浏览器或操作系统：Brave**）

用户访问程序要通过浏览器与服务端交互，这一操作需要通过协议来支持（传统是 http，新的可由 **IPFS** 来替代，通过内容寻址）

Uniswap需要用户通过私钥，钱包去登录（**类似插件，钱包等：Metamask、Tokenpocket、Math**、**Brave钱包**），此外统一的 DID 也是未来的一个方向（**类似 ENS 等**）

钱包需要连接区块链的节点，这时会需要节点的服务器来提供，这也就需要对应区块链的节点，或者由 **Infura/Alchemy** 这种专业的节点服务提供商来进行。（**去中心化的节点服务提供商也是一个趋势：Pocket**）

Uniswap 网站是什么样子的，当用户与页面上的每个按键交互时会发生什么？还是JavaScript，HTML 和 CSS 之类的前端代码语言实现 Uniswap 的 UI 逻辑。

但 Web3 可以不需要自己搭建服务器部署跑前端的交互逻辑。这些前端的数据可以保存在去中心化的存储网络中。（如 **Filcoin、SWARM、AR** 等）

以下是 Uniswap 的官方的 IPFS 链接，此方案不需要搭建前端服务器，用户同样可以正常使用。

    ipfs://bafybeiagkgmmhux6fswdoedmwqqsvt5arjivl35wuk25jljb2yqgn7njgu/#/swap
    

以上的链接，可以看到是由 ipfs:// 开头的，所以需要支持解析ipfs的浏览器才能打开（**Brave、Opera**）

并且该链接不是人类可读的，所以又需要域名服务，把对应的域名映射到该链接，例如uniswap.eth。（**去中心化的域名服务：IPNS、ENS 等**）

当然 IPFS 也只支持兼容 Http 的网关去访问。

[https://uniswap.eth.link/#/](https://uniswap.eth.link/#/)

当网站访问量高的时候，需要更加灵活的带宽市场 —— CDN 加速网络。（**CDN 服务、IPFS**、**Filecoin 检索市场**）

Uniswap 通过区块链智能合约语言 solidity 等实现，决定了 Uniswap 的所有的业务逻辑。因为是跑在 EVM 环境内，所以 Uni 不需要自己搭建服务器部署后端跑业务逻辑（**支持智能合约的区块链、ETH 等**）。

但交易所需要展示的，肯定不只是业务逻辑，也需要展示币价的历史价格曲线，交易额度等。这些历史数据并不能通过智能合约获取。假设项目方需要展示的话，仍然需要自己搭建服务器，跑一个节点，通过链上的数据，筛选出来保存到 Uni 自己的数据库。所以 Web3 需要一个链数据索引的解决方案。（**链数据索引平台 Graph** ）

The Graph 就提供了一个链数据索引方案，可以方便用户查询数据。在 The Graph 中，你可以定义哪些智能合约需要索引、哪些事件与函数调用需要监听，包括调用时、产生时的状态，也可以规定如何将传入的事件转化为前端逻辑可处理的。

链上数据的保存会由专门的 Graph 索引挖矿节点保存，该索引节点将提供 API 供用户页面端调用，项目方不需要搭建服务器，只有索引节点需要搭建服务器来跑索引数据挖矿节点。

通过索引区块链数据，The Graph 可以让我们在应用逻辑中查询链上数据，并且几乎不会出现延迟的情况。

例如 Uniswap 交易信息的呈现就是通过 The Graph 生成的。

[https://info.uniswap.org/#/](https://info.uniswap.org/#/)

如果 Uniswap 想呈现的更多，把链下的币价数据也在链上呈现出来，这时就需要打通链下链上数据的桥梁（**去中心化的预言机：chainlink**）。

按照以上的开发逻辑，Uniswap 相当于发布了一个 Web 3.0 的应用，但实际实现的成本比开发币安交易所的成本低非常多，因为：

1.  **Uniswap 不需要用户绑定邮箱，绑定手机，可以直接通过钱包登录，Uni 自身也不需要保存**
    
2.  **Uniswap 可以不需要搭建前端服务器，用户可通过 IPFS 或 AR 存储前端页面进行访问**
    
3.  **不需要搭建后端服务器。后端逻辑是跑在智能合约上**
    
4.  **不需要搭建数据库，历史数据与数据库操作通过 TheGraph 来实现**
    

**专业的人去做专业的事，Uniswap 只需做好、设计好自己的逻辑，其他逻辑由模块化 Web3 基础设施去支撑。**

这样 Uniswap 不仅仅实现了完全的去中心化，也是 Web3 模块化的一个简单的应用案例。

Web3 的核心是能去信任化交互价值，模块化的发展不仅能做到去信任化，还能提高运行的效率，模块化的趋势会应用到各行各业。

前文所说的是 Web3 网络架构的模块化，提高了 Web3 的生成力效率，那怎么提高 Web3 生产关系的效率（Web2 的生产关系主要以公司为主，**Web3 的生成关系就是 DAO，DAO 的模块化也是未来的趋势**）。DAO 又依赖于区块链，区块链本身也正在走向模块化，同理元宇宙，游戏等等都是如此。

模块化时代到来将带来更高的效率，更好的服务，W3Hitchhiker 将持续跟进 crypto 的模块化之路。

**_本文内容系W3.Hitchhiker 原创，如需转载请标明出处。以上内容仅供参考、交流，不构成投资建议。如存在明显的理解或数据的错误，欢迎反馈。_**

_商务合作：_[_wave667788@outlook.com_](http://mailto:wave667788@outlook.com/)

---

*Originally published on [W3.Hitchhiker](https://paragraph.com/@w3hitchhiker/web-3-0)*
