先看官方的一张图:
EOS编译完成之后会有三个部分:
1.cleos:这个其实是一个命令集合,可以通过命令来管理钱包,以及和区块部分进行交互。
2.nodeos:这个是区块的核心也是EOS的服务部分。
3.keosd:这个就是管理钱包的部分。
官方说是使用什么石墨烯的框架结构,其实我并不了解石墨烯的框架,我就用自己现有的知识给大家解释吧。首先EOS的框架使用模块化的方式管理,使用插件管理。本人现在主要看的是nodeos,所以就用nodeos这个核心模块来说吧。
它的入口在./programs/nodeos/main.cpp,代码如下:
app().set_version(eosio::nodeos::config::version);
app().register_plugin();
auto root = fc::app_path();
app().set_default_data_dir(root / "eosio/nodeos/data" );
app().set_default_config_dir(root / "eosio/nodeos/config" );
if(!app().initialize(argc, argv))
return INITIALIZE_FAIL;
initialize_logging();
ilog("nodeos version ${ver}", ("ver", app().version_string()));
ilog("eosio root is ${root}", ("root", root.string()));
app().startup();
app().exec();
这个是程序的主要部分,主要做来如下部分:
1.配置信息,就是你做本地的存储数据和配置文件的位置,你可以在运行的时候设置参数重新设置,默认是在:~/Library/Application Support/eosio/nodeos
2初始化插件,可以看到这里初始化的插件有:chain_plugin http_plugin net_plugin producer_plugin
3.初始化log,为以后的跟踪和调试做准备
4.startup,这个主要做的也是去启动各个插件,也会调用各个插件的startup
5.运行