简析Web3 架构:前端、后端和数据

简介: 当谈论 Web 3.0 架构时,通常指的是 DApps,它代表去中心化应用程序。从发展历史来看,Web 2.0 架构由最熟悉的组件组成:

当谈论 Web 3.0 架构时,通常指的是 DApps,它代表去中心化应用程序。从发展历史来看,Web 2.0 架构由最熟悉的组件组成:

image.png

  • 前端:浏览器从主机服务器获取并呈现给用户的客户端应用程序。目前主流的框架包括 VueReactAngularEmber 或者其它流行框架。
  • 后端:服务器端应用程序,通常,一个应用程序会接管所有繁重的逻辑,它通过 API 与客户端交互,并使用一种流行的后端语言编写:JAVANodeJsC#GORubyPython
  • 数据库:可以是 NoSQLSQL 数据库服务器,用于存储所有客户端和服务器数据,目前最流行的数据库是 PostgresqlMongo

当然,还有更多的组件,这取决于可扩展性,但这不在本文的主题范围内。

Web 3.0 DApp中的后端

image.png

DApp 的主要区别在于去中心化,不需要集中式数据库或 Web 服务器,可以利用区块链在计算机网络之间分发应用程序。区块链将充当“状态机”,通过验证预定义规则来维护程序状态和稳定性。状态机在区块链网络的所有参与者之间传播,验证通过关于程序稳定性的共识进行存档。

后端逻辑通过智能合约实现,稍后将部署到共享状态机(区块链网络)。因此,后端驻留在点对点网络中,每个人都可以通过匹配某些标准(例如,拥有和锁定加密货币以便对更改进行投票或向程序提出建议)做出贡献。接下来看下DApp中前端是如何工作的。

Web 3.0 DApp中的前端

image.png

DApp 中前端架构主要专注于与智能合约(去中心化程序)的通信,它不同于常见的前端-后端通信。区块链网络中的每个节点都承载着程序的状态,如果要与智能合约进行通信,则必须与其中一个节点进行通信,它可能是:

  • 测试节点,如 InfuraAlchemyQuicknode
  • 或者通过自己运行状态机来设置自己的节点

启动区块链基础设施可能非常具有挑战性,尤其是想要扩展它以添加更多节点时。当用户提供时会很方便,缺点是它创建了一个集中的依赖组件。所有提供商都在实施 JSON-RPC 规范以与区块链网络进行通信。RPC 或远程过程调用,是一种请求-响应协议,它定义了允许客户端将消息发送到远程机器以执行功能并检索响应的规则。在这样的通信中,程序在客户端机器上运行,这意味着客户端不知道远程机器,所有通信都通过 HTTP 或 Web 套接字进行。

当提供商连接到区块链时,客户端能够获取有关区块链状态的信息。但是客户端如何写入区块链网络?所有写请求事务都需要使用客户端的私钥进行签名,每笔交易都会向客户收取 gas 费,这是一种加密货币,它将用于验证交易的其他节点(矿工)。

这样的提供者,如 Metamask,就像交易签署者和提供者一样。它将私钥存储在浏览器中并在客户端发出交易请求时进行签名,它还连接到区块链网络。

Web 3.0 DApp 中的数据层

image.png

由于交易 gas 费用,将数据存储在区块链中可能会非常昂贵,使用非区块链解决方案(如点对点存储的 IPFSSwarm)更为合理。

  • IPFS :一种点对点文件系统协议,允许跨机器网络存储数据,在没有流行浏览器的原生支持的情况下,IPFT 使用私有或公共网关连接到网络。
  • Swarm : 类似于 IPFT,唯一的区别是系统通过以太坊区块链网络中的智能合约维持。

为了使前端也去中心化,可以使用相同的点对点存储解决方案。

最后是为了简化查询存储在区块链或点对点网络中的数据,可以使用Graph,它将 GraphQL 查询转换为智能合约事件和点对点网关。

总结

Web 3.0 DApp 架构可能看起来相当势不可挡,确实如此,但是出现了更多旨在简化构建体验的工具,例如 hardhatthirdweb


相关文章
|
2月前
|
前端开发 JavaScript
探索现代Web应用的微前端架构
【10月更文挑战第40天】在数字时代的浪潮中,Web应用的发展日益复杂多变。微前端架构作为一种新兴的设计理念,正逐步改变着传统的单一前端开发模式。本文将深入探讨微前端的核心概念、实现原理及其在实际项目中的应用,同时通过一个简单的代码示例,揭示如何将一个庞大的前端工程拆分成小而美的模块,进而提升项目的可维护性、可扩展性和开发效率。
|
1天前
|
前端开发 NoSQL Java
【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
本文介绍了如何配置和启动基于Java的若依(RuoYi)项目,涵盖后端和前端的详细步骤。首先,准备Redis、MySQL以及IDE(如Idea和VS)。接着,通过GitHub获取代码并导入到IDE中,执行必要的SQL文件和配置数据库密码。然后,启动Redis并进行相关配置。最后,按照前端配置步骤克隆前端代码库,打开终端执行命令完成前端配置。整个过程详细记录了每一步的操作,帮助开发者顺利部署若依项目。 如果你觉得有帮助,请点赞、关注和收藏,这将是我持续分享的动力!
20 1
|
1月前
|
弹性计算 Java 关系型数据库
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
|
2月前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
234 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
1月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
99 3
|
1月前
|
前端开发 搜索推荐 安全
陪玩系统架构设计陪玩系统前后端开发,陪玩前端设计是如何让人眼前一亮的?
陪玩系统的架构设计、前后端开发及前端设计是构建吸引用户、功能完善的平台关键。架构需考虑用户需求、技术选型、安全性等,确保稳定性和扩展性。前端可选用React、Vue或Uniapp,后端用Spring Boot或Django,数据库结合MySQL和MongoDB。功能涵盖用户管理、陪玩者管理、订单处理、智能匹配与通讯。安全性方面采用SSL加密和定期漏洞扫描。前端设计注重美观、易用及个性化推荐,提升用户体验和平台粘性。
63 0
|
1月前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
|
1月前
|
弹性计算 负载均衡 安全
云端问道-Web应用上云经典架构方案教学
本文介绍了企业业务上云的经典架构设计,涵盖用户业务现状及挑战、阿里云业务托管架构设计、方案选型配置及业务初期低门槛使用等内容。通过详细分析现有架构的问题,提出了高可用、安全、可扩展的解决方案,并提供了按量付费的低成本选项,帮助企业在业务初期顺利上云。
|
2月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
70 3
|
2月前
|
消息中间件 前端开发 JavaScript
探索微前端架构:构建现代Web应用的新策略
本文探讨了微前端架构的概念、优势及实施策略,旨在解决传统单体应用难以快速迭代和团队协作的问题。微前端允许不同团队独立开发、部署应用的各部分,提升灵活性与可维护性。文中还讨论了技术栈灵活性、独立部署、团队自治等优势,并提出了定义清晰接口、使用Web组件、状态管理和样式隔离等实施策略。

热门文章

最新文章