EOS体系结构
EOSIO 平台提供了许多组件和库,用于操作区块链节点、收集区块链数据、与这些节点交互以及构建智能合约。主要组件是 nodeos(节点 + EOSIO = nodeos)。这是 EOSIO 的核心节点守护进程,可通过插件配置来运行节点。使用实例包括区块生产、专用 API 端点和本地开发。Cleos(CLI + EOSIO = cleos)是一个与 nodeos 交互的命令行界面,可以向区块链发送命令和操作。Cleos 还能与 keosd(key + EOSIO = keosd)交互,keosd 是一个本地组件,能安全地存储 EOSIO 密钥。
这些组件之间的基本关系如下图所示:
Nodeos
Nodeos 是 EOSIO 的核心节点守护进程。Nodeos 负责处理区块链数据持久层、点对点网络和合约代码调度。对于开发环境,Nodeos 可以让您建立单节点区块链网络。Nodeos 通过插件提供多种功能,这些插件可在启动时通过命令行参数或配置文件启用或禁用。
Cleos
cleos 是一种命令行工具,可与 nodeos 公开的 REST API 接口。您还可以使用 cleos 部署和测试 EOSIO 智能合约。
Keosd
keosd 是一个密钥管理器守护进程,用于存储私钥和签署数字信息。keosd 提供了一个安全的密钥存储介质,用于在相关钱包文件中加密密钥。keosd 守护进程还定义了一个安全飞地,用于签署由 cleos 或第三方库创建的交易。
- 注:可以使用钱包应用程序接口访问 keosd,但需要注意的是,keosd 只适用于本地轻客户端应用程序。
EOSIO.CDT
EOSIO.CDT 是 WebAssembly (Wasm) 的工具链,也是一套便于为 EOSIO 平台编写合约的工具。除了是一个通用的 WebAssembly 工具链外,还提供了针对 EOSIO 的优化,以支持构建 EOSIO 智能合约。这个新工具链是围绕 Clang 7 构建的,这意味着 EOSIO.CDT 拥有 LLVM 目前的大部分优化和分析功能。
EOSJS
使用 EOSIO RPC API 与基于 EOSIO 的区块链集成的 Javascript API SDK。