先看官方的一張圖:node
EOS編譯完成以後會有三個部分:app
1.cleos:這個實際上是一個命令集合,能夠經過命令來管理錢包,以及和區塊部分進行交互。框架
2.nodeos:這個是區塊的核心也是EOS的服務部分。模塊化
3.keosd:這個就是管理錢包的部分。插件
官方說是使用什麼石墨烯的框架結構,其實我並不瞭解石墨烯的框架,我就用本身現有的知識給你們解釋吧。首先EOS的框架使用模塊化的方式管理,使用插件管理。本人如今主要看的是nodeos,因此就用nodeos這個核心模塊來講吧。調試
它的入口在./programs/nodeos/main.cpp,代碼以下:blog
app().set_version(eosio::nodeos::config::version);string
app().register_plugin<history_plugin>();it
auto root = fc::app_path();io
app().set_default_data_dir(root / "eosio/nodeos/data" );
app().set_default_config_dir(root / "eosio/nodeos/config" );
if(!app().initialize<chain_plugin, http_plugin, net_plugin, producer_plugin>(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.運行