The Architecture of a Web 3.0 application

支 持 本 站: 捐赠服务器等运维费用,需要您的支持!

The Architecture of a Web 3.0 application

笔记:

Web 3.0应用程序也被称之为 "DApps",因为它是一种分布式技术,
所以基础设施、计算资源、数据、交易数据、历史、认证和其他架构组件、库和中间件必须采用centralized分散/分布式技术,
而不应该是decentralized集中式的。



支 持 本 站: 捐赠服务器等运维费用,需要您的支持!

1 前端层与传统的网络应用程序类似,但它应该被托管在IPFS或SWARM的分布式存储之上,
而不是在AWS、Azure或内部的服务器上。 不过貌似这不是必须的

2 业务逻辑层完全留给区块链。 所以它将是一个部署在以太坊虚拟机(Ethereum Virtual Machine, EVM)之上的智能合约smart contracts程序(Solidity或Vyper开发语言)。

业务逻辑层的计算资源需要建立在以太坊区块链的专用节点上。
这可能相当复杂,但有许多第三方服务供应商,如Infura、Alchemy、Quicknode等可以使用,这样就极大方便了开发者着手。

3 前台层需要通过一个第三方服务提供商(Provider)与业务逻辑层通信。 通信协议将是JSON-RPC。
如果只想读取数据将不需要对通信进行签名,
但如果你想写数据到区块链就需要签名,此时可以使用签名服务的Metamask。
基本上,DApp要求用户输入他们的私钥,并将签署的交易发送到区块链上。
Metamask将用户的私钥存储在浏览器中,每当前端需要用户签署交易时,它就会调用 Metamask

4 因为Ethereum异常昂贵,我们不可能每次更新状态时都把所有东西都存储在区块链上。 因此建议使用区块链外的分布式存储,如IPFS或Swarm。
在实践中,IPFS和Swarm是通过Infura和Pinata使用的。

5 FE的Web3.js库是从区块链加载数据的有效手段。 它还能够监听数据的更新事件。
然而由于其功能有限,建议使用 "The Graph "技术。
"The Graph"是建立在区块链,通过索引区块链数据、使用GraphQL作为IF,其灵活性高,延迟性能也不错。

6 Ethereum很贵,而且伸缩性极差,所以引入了侧链技术。

我们可以使用Polygon、Optimistic Rollups and zkRollups这些侧链在区块链外处理交易,并只在存储交易数据时才把它提交至区块链。
这将带来快速的处理和低廉的成本。

7 开发者需要有一个开发环境框架来开始工作,有一个很好的选择叫Hardhat。
"Hardhat Network "使构建、部署、测试和调试代码变得容易。

支 持 本 站: 捐赠服务器等运维费用,需要您的支持!

发布时间: