NexBridge 是一个从零到一构建的工业级双向跨链桥基础设施演示项目。它并非简单的“管理员发币”工具,而是完整实现了底层密码学签名防伪造、去中心化监听中继缓冲,并配套了极致美学的 Glassmorphism Web3 交互前端。
项目由早期 Hardhat 框架深度重构为 Foundry,获得了极致的编译执行速度与安全性验证深度。为 DeFi 与跨链互操作性提供了一套高度可扩展、极具参考价值的开源实现。
- 🔄 极致双向流转: 支持自 Sepolia 锁定 -> Arbitrum 铸造,以及平滑的反向销毁与提款路径。
- 🛡️ 对等体强认证 (Peer Authentication): 深层防护机制。不仅验证签名,更在哈希底层绑定双向信任遥控地址 (
Trusted Remotes),彻底断绝伪造恶意合约骗取授权签名的风险。 - 🔐 严密重放保护 (Replay Protection): 原生集成防重放字典状态,按交易哈希级(TxHash)唯一落盘,斩断双花操作。
- 🏎️ Node.js 全异步中继 (Relayer): 高容错后台守护进程,支持指数退避重试 (Exponential Backoff)、异常捕获防挂死及多链并发监听。
- 🎨 超跑级可视化交互: 基于 React + Vite 的下一代 DApp 前端,内置以太坊 Ethers v6 接口,MetaMask 网络自动感知与极速切链,操作如丝般顺滑。
sequenceDiagram
participant User as 👤 User
participant ChainA as ⛓️ Chain A (Sepolia)
participant Relayer as 🤖 Relayer (Node.js)
participant ChainB as ⛓️ Chain B (Arbitrum)
User->>ChainA: 1. Lock Tokens (Emit `Locked` Event)
activate ChainA
ChainA-->>Relayer: 2. Listen & Catch `Locked` Hash
deactivate ChainA
activate Relayer
Relayer->>Relayer: 3. Verify Tx & Local Process Cache
Relayer->>Relayer: 4. Sign Message (ECDSA + Peer Address)
Relayer->>ChainB: 5. Submit `Mint` Transaction
deactivate Relayer
activate ChainB
ChainB->>ChainB: 6. Require(Signer == Validator)
ChainB->>ChainB: 7. Require(Source == TrustedRemote)
ChainB-->>User: 8. Tokens Minted on Target Chain
deactivate ChainB
📦 NexBridge
┣ 📂 src # 智能合约源码
┃ ┣ 📜 Token.sol # Omni-Chain ERC20 资产
┃ ┣ 📜 Lock.sol # 跨链保险箱枢纽合约
┃ ┗ 📜 Mint.sol # 跨链通证铸造与销毁合约
┣ 📂 test # 测试驱动开发目录
┃ ┗ 📜 Crosschain.t.sol # 基于 Foundry 的全覆盖测试 (包含恶意拦截测试)
┣ 📂 script # 工程化部署与运维脚本
┃ ┣ 📜 Deploy.s.sol # 自动一键部署流水线
┃ ┗ 📜 InitRemotes.s.sol# Peer Authentication 多链通讯桥梁锚定
┣ 📂 scripts # Node.js 离线业务逻辑集群
┃ ┣ 📜 relayer.js # 双向监听与调度守护进程
┃ ┗ 📜 test-*.js # P2P 全链路集成冒烟测试
┗ 📂 frontend # Web3.0 现代前端 App
┣ 📜 src/App.jsx # Ethers v6 交互状态机
┗ 📜 src/App.css # Next-Gen Glassmorphism UI 呈现
请确保你的本地已安装配置好 Foundry 和 Node.js。
# 1. 安装 Foundry Solidity 依赖
forge install
# 2. 安装 Relayer 执行依赖
npm install
# 3. 启动唯美前端界面
cd frontend
npm install
npm run devforge build
forge test -vv(温馨提示:通过 .env 管理你的 API keys 和部署者凭证)
# 第一阶段:智能合约上链 (Sepolia & Arbitrum)
source .env &&
export DEPLOY_MODE=BIDIRECTIONAL &&
export TOKEN_NAME=TokenA &&
export TOKEN_SYMBOL=TKA &&
forge script script/Deploy.s.sol --rpc-url $SEPOLIA_RPC --broadcast
source .env &&
export DEPLOY_MODE=BIDIRECTIONAL &&
export TOKEN_NAME=TokenB &&
export TOKEN_SYMBOL=TKB &&
forge script script/Deploy.s.sol --rpc-url $ARBITRUM_SEPOLIA_RPC --broadcast
# 第二阶段:提取终端合约地址,更新至仓库 .env 文件
# 第三阶段:组建对等体信任网 (Trusted Remotes Identity)
source .env && forge script script/InitRemotes.s.sol --rpc-url $SEPOLIA_RPC --broadcast
source .env && forge script script/InitRemotes.s.sol --rpc-url $ARBITRUM_SEPOLIA_RPC --broadcast# 启动后台监听服务,守护模式实时搬运通讯
npm run relayer打开 👉 http://localhost:5173 即可通过 MetaMask 与你建立的全新跨链网络交互。 无需繁琐配置,前端将向你呈现极致丝滑的跨链响应流程。
- 这个开源 Demo 致力于降低区块链工程师入门顶级跨链基础设施机制的门槛。
- 提交 PR 前请确保
forge test的覆盖与通过率。 - License: MIT