Fuel Core:用 Rust 搭建的模块化区块链执行层
文章目录
- Fuel Core:用 Rust 搭建的模块化区块链执行层
Fuel Core:用 Rust 搭建的模块化区块链执行层
Fuel 是一个模块化执行层项目,专注于为区块链提供高性能的交易处理能力。它的核心客户端 fuel-core 用 Rust 编写,目前在 GitHub 上拿到了超过 56000 个 Star。
fuel-core 是 Fuel 网络的客户端实现,负责节点运行、区块生产和交易执行。目前 Fuel Ignition 主网、Testnet 和 Devnet 统一使用 0.48.1 版本。
它解决了什么问题
传统单体区块链把执行、共识和数据可用性耦合在一起,扩展受限。Fuel 采用模块化架构,将执行层独立出来,专门优化交易吞吐量和执行效率。fuel-core 就是这个执行层的具体实现。
通过 GraphQL 接口,外部可以向节点提交交易和查询数据。交易执行器默认采用即时出块模式,状态持久化到 RocksDB。开发调试时也可以切换为内存数据库,重启后状态不保留。
部署方式
fuel-core 提供了几种运行方式,适合不同场景。
预编译二进制文件适合快速启动节点,不需要本地编译环境。从源码构建的话,需要安装 cmake、clang 等依赖,还需要添加 wasm32-unknown-unknown 编译目标。项目也提供了 Docker 镜像和 Kubernetes 部署配置,一条命令就能拉起服务:
docker build -t fuel-core . -f deployment/Dockerfile本地开发网络的启动也很简单,编译后直接运行即可:
./target/debug/fuel-core run --db-type in-memory默认绑定 GraphQL 服务到 127.0.0.1:4000,可以接收交易提交和数据查询。
开发相关
项目用 xtask 作为构建工具,运行cargo xtask build会自动完成编译和 GraphQL schema 重新生成。测试通过 ci_checks.sh 脚本执行,覆盖了完整的 CI 检查流程。
macOS 用户需要注意文件描述符限制,RocksDB 在默认值下可能报错,需要手动调高 ulimit。数据库格式升级后如果遇到列族打开失败,清掉本地数据目录即可恢复。
Fuel 的模块化思路给区块链扩展提供了一个可行方向。fuel-core 作为执行层的核心组件,代码质量扎实,部署流程清晰,适合对区块链基础设施感兴趣的开发者深入了解。
核心组件,代码质量扎实,部署流程清晰,适合对区块链基础设施感兴趣的开发者深入了解。
