EOS源码框架剖析

eos项目(v1.4.4)主要可以分为以下八个模块:

  1. 编译模块
  2. 主程序模块
  3. 依赖库模块
  4. 插件模块
  5. 智能合约模块
  6. 测试模块
  7. Docker工具模块
  8. 文档说明模块

EOS主目录结构

1、编译模块

eos项目的整体编译、依赖库下载、代码编译等功能,依托于一个完整的脚本体系,主要包括以下三部分:

  • eos/eosio_build.sh
  • eos/scripts
  • eos/CMakeModules

1.1、eos/eosio_build.sh

eos/eosio_build.sh是eos项目的主编译脚本,通过运行这个脚本,就可以实现对eos项目的一键编译,脚本运行过程中主要测试了编译所需的硬件与软件环境是否满足要求以及显示编译结果

 

1.2、eos/scripts

eos/scripts目录中包含了项目编译所需的其他脚本文件,其中:

  • abi_to_rc目录、abigen.sh和abi_is_json.py共同负责将C++语言编写的智能合约编译成.abi文件,再将.abi文件编译成可执行文件;
  • eosio_build_前缀的脚本文件分别是针对不同系统的编译子脚本;
  • eosio-tn_前缀的脚本负责自动化运行,关闭节点。

1.3、eos/CMakeModules

由于eos项目是基于CMake等工具编译的,所以eos/CMakeModules中主要包含CMake编译所需要使用的一些配置信息。

cotire.cmake是加快编译速度的cmake文件。

doxygen.cmake可以将代码中的一些注释生成相关文档。

FindGperftools.cmake包含了性能分析相关的配置。

FindGperftools.cmake检测当前机器是否可以生成wasm32。

installer.cmake提供安装的相关配置信息。

wasm.cmake文件提供wasm相关的配置信息。

2、主程序模块

eos项目的主程序源代码位于eos/program目录下,包含6个基本功能组件:

  • eos/program/nodeos
  • eos/program/cleos
  • eos/program/keosd
  • eos/program/eosio-abigen
  • eos/program/eosio-launcher
  • eos/program/eosio-blocklog

 

2.1、nodeos

eos/program/nodeos是eos项目的核心程序源代码,可以配置不同插件来运行不同类型节点。该进程主要负责提供区块生产,封装API接口和本地开发的功能;

2.2、cleos

eos/program/cleos是eos项目中与nodeos之间交互信息的命令行工具cleos的源代码,编译后与nodeos公开的REST API进行信息交互。

2.3、keosd

eos/program/keosd是eos项目中的内置钱包程序,配合钱包相关插件通过HTTP接口或RPC API与cleos进行通信,完成账户创建,转账等基本钱包功能

 

2.4、eosio-abigen

eos/program/eosio-abigen是eos项目的智能合约编译器源代码(用于生成智能合约的.abi文件)

 

2.5、eosio-launcher

eos/program/eosio-launcher是eos项目的P2P网络组成启动器源代码,该部分简化了nodeos节点组网的流程。

 

2.6、eosio-blocklog

eos/program/eosio-blocklog是eos项目的区块日志相关的源代码。

3、依赖库模块

eos项目的运行依托于许多依赖库,这些依赖库的基本信息位于eos/libraries目录中,包括:

  • eos/libraries/abi_generator
  • eos/libraries/appbase
  • eos/libraries/builtins
  • eos/libraries/chain
  • eos/libraries/appbase/fc
  • eos/libraries/chainbase
  • eos/libraries/egenesis
  • eos/libraries/utilitiles

3.1、abi_generator

eos/libraries/abi_generator包含了智能合约编译器所需的依赖文件,可以说编译器的主要代码就是位于这个目录中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值