·

从零构建零成本 Serverless 区块链:serverless-blockchain-network

 

"如果区块链可以像 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) {
    // 因为是单线程,这里不需要 Mutex
    if (!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-MemoryMempool, Nonce, Recent Blocks毫秒级访问,掉电丢失
L2 (Warm)DO Storage APIWorld State (Balance Trie)持久化,强一致性,高吞吐
L3 (Cold)Cloudflare KVHistorical 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-GCM
const 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-mvp
npm install

第二步:配置安全密钥

这是 Serverless 架构依然安全的秘密武器:

# 配置 IPFS 存储凭证
npx wrangler secret put PINATA_JWT
# 配置备份加密密钥
npx wrangler secret put BACKUP_ENCRYPTION_KEY

第三步:一键上云

# 部署后端 Worker
npx wrangler deploy
# 部署前端 UI
cd app && npm run build
npx wrangler pages deploy dist

就这样,一条属于你的、运行在全球 300+ 城市的区块链就上线了!






 价值与愿景

这个项目不仅仅是一个 MVP,它证明了 Web3 基础设施 Web2 化 的可行性。

  • 成本:几乎为零(对于个人开发者,Cloudflare 免费额度绰绰有余)。
  • 运维:零服务器运维 (Serverless)。
  • 安全:企业级的加密备份与恢复方案。

如果你也厌倦了为了测试一个想法而启动庞大的 Geth 节点,欢迎 Fork 这个项目,在边缘计算的浪潮中冲浪!