EOS version: 1.0.5 update: 2018-06-19
EOS插件之間會有一個相互調用與依賴的關系,下面有一張個人畫的一張草圖,包含了此版本EOS所有插件相互之間的依賴關系,如下:

可以看出所有的業務關系基本上都依賴於chain_plugin和http_plugin這兩個插件,下面有一幅EOS總體框架源碼圖,可以大致瀏覽下EOS各個模塊

文件目錄說明如下:
1、contracts目錄
這個目錄包含了EOS基礎合約和示例合約,以及這些合約使用的庫:eosiolib庫、libc++庫、musl庫;
其中eosiolib庫是EOS官方編寫的庫,libc++庫、musl庫是外部庫。
2、plugins目錄
EOS采用插件化設計,這個目錄包含了EOS項目所用到的插件。
更多內容看這里: 從源碼分析,EOS的插件化設計
3、libraries目錄
這個目錄包含了具體實現代碼需要引用的基礎類庫:
-
abi-generator:生成ABI的類庫
-
appbase:application基礎類庫
-
chain、chainbase:區塊鏈基礎類庫
-
fc:通用函數庫
-
wasm-jit:WebAssembly JIT編譯庫
4、programs目錄
這個目錄包含EOS最終構建的應用程序(eos/build/programs目錄下)的源碼:
-
cleos:命令行客戶端
-
nodeos:服務端守護進程
-
keosd:錢包守護進程
-
eosio-abigen:ABI生成器
-
eosio-launcher:多節點啟動器
-
snapshot:配置創世區塊和創始相關工具的Web程序
5、governance目錄
這個目錄包含的不是源代碼,而是EOS社區治理文件,覺得比較重要,提到這里:
-
bp_agreement.md:區塊生產者需要遵守的協議
-
constitution.md:EOS憲法
6、externals目錄
這個目錄包含的是外部項目:
-
binaryen:WebAssembly編譯器和工具鏈基礎庫
-
magic_get:C++編譯期反射庫
-