Skip to content

kyle-meng/Crosschain-demo

Repository files navigation

🌉 NexBridge

A Production-Grade, Bidirectional Cross-Chain Bridge Architecture

Solidity Foundry React Ethers v6 License: MIT

English · 简体中文


📖 简介 (Introduction)

NexBridge 是一个从零到一构建的工业级双向跨链桥基础设施演示项目。它并非简单的“管理员发币”工具,而是完整实现了底层密码学签名防伪造、去中心化监听中继缓冲,并配套了极致美学的 Glassmorphism Web3 交互前端。

项目由早期 Hardhat 框架深度重构为 Foundry,获得了极致的编译执行速度与安全性验证深度。为 DeFi 与跨链互操作性提供了一套高度可扩展、极具参考价值的开源实现。


✨ 核心特性 (Key Features)

  • 🔄 极致双向流转: 支持自 Sepolia 锁定 -> Arbitrum 铸造,以及平滑的反向销毁与提款路径。
  • 🛡️ 对等体强认证 (Peer Authentication): 深层防护机制。不仅验证签名,更在哈希底层绑定双向信任遥控地址 (Trusted Remotes),彻底断绝伪造恶意合约骗取授权签名的风险。
  • 🔐 严密重放保护 (Replay Protection): 原生集成防重放字典状态,按交易哈希级(TxHash)唯一落盘,斩断双花操作。
  • 🏎️ Node.js 全异步中继 (Relayer): 高容错后台守护进程,支持指数退避重试 (Exponential Backoff)、异常捕获防挂死及多链并发监听。
  • 🎨 超跑级可视化交互: 基于 React + Vite 的下一代 DApp 前端,内置以太坊 Ethers v6 接口,MetaMask 网络自动感知与极速切链,操作如丝般顺滑。

🏗️ 架构概览 (Architecture)

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
Loading

📂 核心目录 (Repository Structure)

📦 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 呈现

🚀 极速上手 (Quick Start)

1. 环境准备 (Prerequisites)

请确保你的本地已安装配置好 FoundryNode.js

# 1. 安装 Foundry Solidity 依赖
forge install

# 2. 安装 Relayer 执行依赖
npm install

# 3. 启动唯美前端界面
cd frontend
npm install
npm run dev

2. 编译与单元测试 (Compile & Test)

forge build
forge test -vv

3. 多链网络部署 (Multi-Chain Deployment)

(温馨提示:通过 .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

4. 激活 Relayer 神经中枢

# 启动后台监听服务,守护模式实时搬运通讯
npm run relayer

5. 进入 NexBridge UI 进行穿梭

打开 👉 http://localhost:5173 即可通过 MetaMask 与你建立的全新跨链网络交互。 无需繁琐配置,前端将向你呈现极致丝滑的跨链响应流程。


🤝 贡献与许可 (Contributing & License)

  • 这个开源 Demo 致力于降低区块链工程师入门顶级跨链基础设施机制的门槛。
  • 提交 PR 前请确保 forge test 的覆盖与通过率。
  • License: MIT

About

NexBridge is an industrial-grade, bidirectional cross-chain bridge infrastructure demonstration built from the ground up. Beyond a simplistic "admin-mint" tool, it fully implements cryptographic signature verification, decentralized relayer buffering, and a stunning Glassmorphism Web3 frontend.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors