EOS 插件依赖关系
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++编译期反射库
-