其实没有那么复杂
相信关心 EOS 系统的同学肯定见过下面这张蓝图。对,目前只是一个蓝图,而且以 BM 的尿性,肯定在心理已经把这张图改的面目全非了(比如图中的 eosd 早就改名了)。所以这张图只能作为未来 EOS 发展方向的参考而已,目前的 EOS 还远没有这么复杂和完善。
了解系统架构之前我们先看看目前 EOS 系统的主要组成部分:
-
nodeos
: EOS 系统的核心进程,也就是所谓的“节点”。运行时可以配置插件:-
producer_plugin
(见证人插件):见证人必须使用这个插件,普通节点不需要。 -
wallet_plugin
(钱包插件):使用这个插件就可以省去 keosd 钱包工具。 -
wallet_api_plugin
(钱包接口插件):给钱包插件提供接口。 -
chain_api_plugin
(区块链接口插件):提供区块链数据接口。 -
http_plugin
(http 插件):提供 http 接口。 -
account_history_api_plugin
(账户历史接口):提供账户历史查询接口。
-
-
cleos
:本地的命令行工具,通过命令行与真人用户交互,并与节点(nodeos)的 REST 接口通信。是用户或者开发者与节点进程交互的桥梁。 -
keosd
:本地钱包工具。非节点用户存储钱包的进程,可以管理多个含有私钥的钱包并加密。
本地单节点测试系统
本地单节点的情况下,仅需要 nodeos
和 cleos
,不需要 keosd
,因为用节点的钱包插件管理私钥即可。这一个节点就是区块链的全部,所有的数据均储存在单一节点中。所以下图中的“BlockChian”只是一个概念,所有的出块工作全都在 nodeos
中搞定。
本地多节点测试系统
本地多节点测试系统就更接近真实的区块链网络了,只是运行在同一台计算机中。各个程序各司其职,keosd
管理私钥,cleos
连接用户与节点,nodeos
作为节点出块。
公共测试网络
公共测试网络的架构与即将上线的 EOS 主网基本相同,只是缺少了 100 个后备节点,有 21 个主节点。用户通过 cleos
连接到 nodeos
, nodeos
再连接到区块链网络(其他nodeos
)。
EOS 初期主网络
如果近期没有大的变化,EOS 即将上线的主网络就是 21主节点 + 100 后备节点的架构。
(图片来自或修改自 EOS 官方)