Skandha Docker 部署实战:一条命令构建并运行你的私有 Bundler 节点
发布时间:2026/8/27 16:02:50 作者:尧图编辑部 阅读量:1,286

Skandha Docker 部署实战一条命令构建并运行你的私有 Bundler 节点【免费下载链接】skandhaA modular typescript implementation of ERC4337 (Account Abstraction) bundler client.项目地址: https://gitcode.com/gh_mirrors/sk/skandhaSkandha 是一个模块化的 TypeScript 实现的 EIP-4337账户抽象Bundler 客户端。本文带你用 Docker 完成 Skandha Bundler 节点的完整部署一条命令构建镜像、一条命令运行私有节点15 分钟即可拥有自己的账户抽象基础设施。部署前Skandha Bundler 是什么在 EIP-4337 账户抽象架构中Bundler打包器是连接智能合约账户与以太坊执行层的关键角色 从内存池Mempool收集用户操作UserOperation✅ 模拟并验证每个 UserOperation 的有效性 将合法操作打包成交易Bundle提交到链上 收取 Gas 费可配置受益人地址Skandha 采用 packages/ 下的 monorepo 模块化架构核心模块包括模块路径职责packages/executor/核心执行引擎内存池、验证、打包、声誉服务packages/api/RPC 接口层监听 14337 端口packages/node/P2P 网络与共享内存池packages/cli/命令行入口与 standalone 模式packages/monitoring/Prometheus 监控指标Standalone 模式的启动逻辑定义在 packages/cli/src/cmds/standalone/handler.ts它会依次完成加载配置 → 初始化 RocksDB 存储 → 启动 RPC 服务器 → 启动执行器。一键部署 Skandha Bundler4 步完成第 1 步获取源码并准备配置文件git clone https://gitcode.com/gh_mirrors/sk/skandha cd skandha cp config.json.default config.json默认配置 config.json.default 已指向 EntryPoint v0.8 地址和本地 RPC 端点是最小可用配置的起点。第 2 步编辑 config.json核心 3 个字段{ entryPoints: [ 0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108 ], relayers: [ 0x你的RELAYER私钥 ], rpcEndpoint: https://你的RPC节点地址 } 只需关注 3 个必填项entryPoints要支持的 EntryPoint 合约地址relayersBundler 打包提交交易所用的私钥主网上线前请务必备份rpcEndpoint底层执行客户端如 geth的 RPC 地址更多可选参数如beneficiary费用接收地址、bundleInterval打包间隔、useropsTTL等可参考 README.md 中的完整 Relayer 配置说明。第 3 步一条命令构建 Docker 镜像docker build -t etherspot/skandha .构建过程由 Dockerfile 驱动采用多阶段构建策略构建阶段基于oven/bun:1.2.23-alpine安装依赖并执行bun run build:all逐个编译 9 个 monorepo 子包运行阶段仅拷贝编译产物最终镜像体积小巧入口定义ENTRYPOINT指向packages/cli/bin/skandha的 bun CLI第 4 步一条命令运行私有 Bundler 节点docker run --mount typebind,source$(pwd)/config.json,target/usr/app/config.json,readonly \ -dp 14337:14337 \ etherspot/skandha standalone命令要点--mount typebind将宿主机config.json只读挂载到容器内修改配置无需重新构建镜像-p 14337:14337暴露 Bundler RPC 端口默认值定义在 packages/types/src/options/api.ts-d后台守护运行standalone以单机模式启动不启用 P2P 网络验证 Bundler 节点是否正常运行查看容器日志docker ps # 确认容器状态 docker logs -f 容器ID # 查看启动日志启动成功时你会看到 Skandha 的 ASCII 头像和Running in STANDALONE MODE字样。测试 RPC 接口节点启动后Bundler 在http://localhost:14337/rpc/提供服务curl -X POST http://localhost:14337/rpc/ \ -H Content-Type: application/json \ -d {jsonrpc:2.0,method:eth_chainId,id:1}常用 Bundler RPC 方法包括eth_sendUserOperation、eth_getUserOperationReceipt、skandha_getUserOperationGasPrice等。进阶常用 CLI 选项Standalone 模式支持丰富的启动参数定义于 packages/cli/src/options/globalOptions.ts在docker run的镜像名之后追加即可docker run --mount ... -dp 14337:14337 etherspot/skandha standalone \ --unsafeMode \ --redirectRpc \ --metrics.enable true选项作用--unsafeMode绕过 opcode 与质押验证仅限本地测试--redirectRpc将 ETH RPC 调用重定向到底层执行客户端--executor.bundlingMode manual\|auto设置打包模式默认auto--metrics.enable true开启 Prometheus 指标默认端口 8008--api.port自定义 RPC 端口⚠️安全提醒--unsafeMode会跳过安全校验切勿在主网使用生产环境请妥善保管relayers私钥建议改用环境变量注入如SKANDHA_MUMBAI_RELAYERS。本地开发网络搭配 geth-dev 测试没有测试链节点项目自带一套基于 test/geth-dev/Dockerfile 的 geth 开发链配合 test/docker-compose.yml 即可启动一个链 ID 为 1337 的本地以太坊节点并暴露 8545 端口。将config.json中的rpcEndpoint指向http://localhost:8545即可实现Bundler 节点的全本地闭环测试无需任何外部依赖。常见问题排查❓ 容器启动后立即退出多为配置错误。检查config.json是否为合法 JSON、私钥格式是否正确并查看docker logs中的报错信息如 chain id 不匹配会直接中止启动。❓ 端口 14337 被占用使用--api.port指定其他端口并同步修改-p映射。❓ 打包模式如何切换默认auto模式按bundleInterval自动打包调试时可加--executor.bundlingMode manual手动触发。总结步骤命令准备配置cp config.json.default config.json构建镜像docker build -t etherspot/skandha .运行节点docker run --mount typebind,source$(pwd)/config.json,target/usr/app/config.json,readonly -dp 14337:14337 etherspot/skandha standalone验证curl -X POST http://localhost:14337/rpc/ ...至此你的私有 Skandha Bundler 节点已经跑起来了 无论是为 dApp 提供去中心化交易通道还是研究 EIP-4337 账户抽象的工作原理这都是一条最简、可控、可复现的私有 Bundler 部署路径。【免费下载链接】skandhaA modular typescript implementation of ERC4337 (Account Abstraction) bundler client.项目地址: https://gitcode.com/gh_mirrors/sk/skandha创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考