去中心化架构
Red Devils 是红魔区块链 DApp,技术栈为 Solidity、Hardhat、React、Spring Boot。本篇拆解四层架构、核心设计原则与关键流程,帮助你理解一个去中心化生态如何连接钱包、铸造 NFT、兑换代币并发放奖励。
01四层架构总览
Red Devils 整体划分为四层:前端交互层、中间服务层、合约与链上层、数据索引层。链上合约是核心事实来源,前端通过钱包与合约直接交互,中间服务与索引层负责辅助用户体验。
前端交互层(React)DApp UI · 钱包连接 · 铸造 / 兑换 / 奖励交互
▼
中间服务层(Spring Boot)索引服务 · 事件监听 · 数据聚合 · 辅助查询
▼
合约与链上层(Solidity / Hardhat)注册 · NFT 铸造 · USDT/RMAB 兑换 · 奖励
▼
数据索引层链上事件解析 · 交易记录 · 代币与 NFT 索引
前端交互层
基于 React 构建的 DApp 前端,负责钱包连接、页面渲染与用户交互。通过 Web3 库(如 ethers.js / web3.js)与合约交互,签名与授权均在用户钱包中完成。
中间服务层
基于 Spring Boot 的后端服务,负责链上事件监听、数据索引与聚合查询。它不持私钥、不代签交易,仅提供辅助性的数据服务,核心资金逻辑全在链上。
合约与链上层
用 Solidity 编写、Hardhat 部署与测试的核心合约,是注册、NFT 铸造、USDT/RMAB 兑换与奖励发放的事实来源。所有资金与状态变更都在链上完成。
数据索引层
解析链上事件生成可查询的数据视图,供前端展示交易记录、持有 NFT、奖励累积等,提升用户体验的同时保持与链上状态一致。
02核心设计原则
| 原则 | 含义 | 落地体现 |
|---|---|---|
| 链上优先 | 核心资产与状态以链上合约为准 | 注册 / 铸造 / 兑换 / 奖励均在合约执行 |
| 去中心化托管 | 用户私钥由个人钱包持有,平台不托管 | 所有操作由用户钱包签名 |
| 最小权限 | 仅向必要合约授予必要授权 | 逐次授权、最小额度 |
| 可审计 | 链上逻辑公开可查 | 合约源码与交易均可审计 |
| 前后端分离 | 前端 / 后端 / 链上逻辑解耦 | React + Spring Boot + Solidity 分层 |
底层逻辑
去中心化的核心在于「链上优先」:资金的转入转出、NFT 的归属、奖励的发放都记录在链上,任何一方都无法单方面篡改。中间服务只做辅助,不掌握资金控制权。
03关键流程
铸造 NFT 流程
用户点击铸造React 前端发起请求
▼
钱包签名用户确认铸造交易
▼
调用 Mint 合约校验注册状态与费用 → 铸造 NFT
▼
事件上链Mint 事件写入区块
▼
索引更新Spring Boot 监听事件更新持有列表
USDT / RMAB 兑换流程
用户提交兑换选择方向与金额
▼
授权代币approve 汇率合约使用代币
▼
调用兑换合约执行兑换、更新余额
▼
上链完成兑换结果写入区块
04安全边界
| 边界 | 说明 |
|---|---|
| 私钥边界 | 私钥仅存在于用户钱包,前端与后端均不接触 |
| 资金边界 | 资金流转全部经链上合约,平台无法单方挪用 |
| 授权边界 | 采用最小授权,不默认授予无限额度 |
| 数据边界 | 核心状态以链上为事实来源,索引层仅作展示 |
📌 免责声明
本技术文档仅供参考,非投资建议,自担风险。去中心化交互存在不可逆与安全问题,请在使用前充分理解架构与风险。