"如果区块链可以像 CDN 一样运行在网络边缘,会发生什么?"
缘起:打破传统公链的沉重枷锁
提到区块链开发,你脑海中浮现的是什么?昂贵的 AWS EC2 实例?复杂的 Docker 集群?还是仅仅为了同步节点就要耗费数小时的等待?
这个项目(Blockchain-MVP)是对现状的一次技术反叛。
我们利用 Cloudflare Workers 的边缘计算能力和 Durable Objects 的强一致性特性,构建了一个真正的 Serverless 区块链。没有虚拟机,没有维护成本,只有纯粹的 V8 Isolate 性能和毫秒级的全球延迟!
核心架构:边缘之上的 "不可能三角"挑战
在传统的区块链架构中,P2P 网络和长连接是基石。但在 Serverless 环境下(如 Cloudflare Workers),最大的挑战是 Ephemeral(短暂性)。Worker 实例随用随销,没有内存常驻,没有后台守护进程。
我们是如何破局的?
1. 共识引擎:Durable Objects 的巧妙复用(The Consensus Engine)
大多数公链使用复杂的 Gossip 协议。我们反其道而行之,利用 Durable Objects (DO) 的 Global Uniqueness 特性,将其改造为共识协调器 (Consensus Coordinator)。
单线程原子性 (Single-Threaded Atomicity): JS 在 DO 中是单线程运行的。利用这一点,我们天然获得了一个全局排序器 (Global Sequencer)。所有提交的交易,无需复杂的锁机制,天然按照到达 DO 的顺序被串行化处理。
// 核心代码逻辑简述async processTransaction(tx) {// 因为是单线程,这里不需要 Mutexif (!this.verifySignature(tx)) return;this.mempool.push(tx); // 内存池操作即刻完成}PBFT-Lite 变体: 我们虽然没有 P2P 网络,但设计了一个基于 HTTP 调用的 PBFT 变体。
- Proposer: 收集交易,打包 Block Proposal。
- Validators: 独立的 Worker 实例,收到 Proposal 后验证并签名。
- Commit: 当收集到 >2/3 签名时,DO 提交区块并写入存储。
2. 存储分层:热温冷分离设计 (Tiered Storage)
为了解决区块链膨胀问题,我们设计了三级存储架构:
| 存储层级 | 技术选型 | 用途 | 特点 |
|---|---|---|---|
| L1 (Hot) | DO In-Memory | Mempool, Nonce, Recent Blocks | 毫秒级访问,掉电丢失 |
| L2 (Warm) | DO Storage API | World State (Balance Trie) | 持久化,强一致性,高吞吐 |
| L3 (Cold) | Cloudflare KV | Historical Blocks, Receipts | 最终一致性,低成本,无限容量 |
3. 被动式出块 (Passive Block Production)
不同于 Bitcoin 的主动挖矿,我们采用 "Request-Driven" 模式。
- Alarm API: 利用 DO 的 setAlarm 功能,仅在有交易积压或达到时间阈值(如 10s)时唤醒 Worker 出块。
- Cost Saving: 系统闲置时(空块),CPU 占用几乎为 0,真正做到“按需付费”。
安全架构:构建 "不可篡改" 的防线
在 Serverless 环境下,数据安全尤为关键。我们引入了 web3 领域的 Pinata (IPFS) 作为异地灾备中心,并设计了一套严密的加密闭环。
1. 端到端加密备份 (E2EE Backup)
不仅仅是简单的上传。我们在 Worker 内部实现了流式加密:
// 使用 Web Crypto API 实现原生性能的 AES-256-GCMconst iv = crypto.getRandomValues(new Uint8Array(12));const key = await crypto.subtle.importKey(..., env.BACKUP_ENCRYPTION_KEY, ...);const encrypted = await crypto.subtle.encrypt({ name: "AES-GCM", iv }, key, stateData);
关键点:密钥(BACKUP_ENCRYPTION_KEY)仅存在于 Cloudflare 的加密环境变量中,从未离开过受信任的执行环境 (TEE-like)。上传到 IPFS 的只有密文。
2. 反回滚机制 (Anti-Rollback Protection)
区块链最怕的是"分叉"或"回滚"。我们在恢复逻辑中植入了CID 锁定:
- 系统 KV 中维护一个
backup_index,记录了最新的备份 CID。 - 恢复校验: 当管理员尝试恢复数据时,后端会强制校验提交的 CID 是否匹配 Index 中的最新记录。
- 结果: 即使攻击者获得了旧的备份文件和密钥,也无法将链状态回滚到过去来通过双花攻击获利。
技术亮点清单
- ✅ PBFT-like 共识:验证节点投票签名机制(模拟)。
- ✅ 账户模型 (Account Model):兼容以太坊风格的地址和 Nonce 管理。
- ✅ 抗排查管理后台:内置在 React 前端的全功能 Admin 面板,支持状态监控、节点管理、手动备份。
- ✅ 灾难恢复工具:配备专用 CLI 工具 (scripts/restore.js),支持从 IPFS 拉取数据并本地安全解密恢复。
极速部署指南
想拥有自己的区块链?只需要 3 步:
第一步:克隆与配置
git clone https://github.com/coolapijust/serverless-blockchain-network.git;cd blockchain-mvpnpm install
第二步:配置安全密钥
这是 Serverless 架构依然安全的秘密武器:
# 配置 IPFS 存储凭证npx wrangler secret put PINATA_JWT# 配置备份加密密钥npx wrangler secret put BACKUP_ENCRYPTION_KEY
第三步:一键上云
# 部署后端 Workernpx wrangler deploy# 部署前端 UIcd app && npm run buildnpx wrangler pages deploy dist
就这样,一条属于你的、运行在全球 300+ 城市的区块链就上线了!
价值与愿景
这个项目不仅仅是一个 MVP,它证明了 Web3 基础设施 Web2 化 的可行性。
- 成本:几乎为零(对于个人开发者,Cloudflare 免费额度绰绰有余)。
- 运维:零服务器运维 (Serverless)。
- 安全:企业级的加密备份与恢复方案。
如果你也厌倦了为了测试一个想法而启动庞大的 Geth 节点,欢迎 Fork 这个项目,在边缘计算的浪潮中冲浪!