EOS支持层(program,libraries,tests,Docker)

阅读更多
支持层包括主程序模块,依赖库模块,测试层模块,Docker工具模块,文档说明模块

主程序模块:源代码位于eos/program目录下,包含6个基本功能组件
1.nodeos:EOS项目的核心程序源代码,可以配置不同插件来运行不同类型节点.该进程主要负责提供区块生产,封装API接口和本地开发的功能

2.cleos:EOS项目中与nodeos之间交互信息的命令行工具cleos的源代码,编译后与nodeos公开的REST API进行信息交互

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

4.eosio-abigen:EOS项目的智能合约编译器源代码(用于生成智能合约的.abi文件)

5.eosio-applesedemo:EOS项目中公私钥生成与数字签名生成组件的源代码,主要为EOS项目提供密码学(采用ECDSA算法中的secp256r1)支持,其中main.cpp为该工具的核心主函数,r1_signature_compactor为数字签名功能描述文件,sign.sh为生成应用程序包applesedemo.app并对其进行签名的自动化脚本

6.eosio-launcher:EOS项目的P2P网络组成启动器源代码,该部分简化了nodeos节点组网的流程

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

2.appbase:提供了一个用于从一组插件构建应用程序的基本框架.该模块负责管理插件的生命周期,并确保所有插件按正确的顺序进行配置,初始化,启动和关闭.该依赖库包含5个主要特征,即动态指定要加载的插件,自动加载依赖插件,插件可以指定命令行参数和配置文件选项,程序正常退出SIGINT和SIGTERM,最小依赖(Boost 1.60,C++14)

3.builtins:包含了EOS项目编译过程中所需要的compiler-RT编译器(libgcc的替换库)的源代码,包括编译器本身以及相关功能函数的代码描述

4.chain:EOS项目的核心内容,包括区块,区块链,merkle树等数据结构以及初始区块,控制器等关键算法

5.chainbase:定义了保存EOS区块链数据的数据库结构,可以说该数据库指在满足区块链应用程序的苛刻要求,以使其适用于任何需要强大的事务数据库的应用程序

6.fc:EOS项目的细胞级模块,定义了EOS项目中的基本变量数据结构,包括String,Time,Base系列编码等

7.softfloat:包含了一个Berkeley SoftFloat,即符合IEEE浮点运算标准的二进制浮点软件实现

8.testing:包含了几个测试实例,包括对区块链数据库的链接测试,P2P网络的链接测试等

9.utilities:主要包含了一些通用的标准函数

10.wasn-jit:包含了一个WebAssembly的独立VM.它可以加载标准的二进制格式,也可以加载WebAssembly参考解释器定义的文本格式.对于文本格式,它可以加载标准堆栈机器语法和参考解释器使用的老式AST语法,以及所有测试命令

测试模块:eos/tests目录,供用户测试节点是否运行正常
1.对链功能的测试:包括与区块链之间的数据交互,transaction分发等.
2.对网络层的测试:包括P2P网络传输功能,cleos与nodeos之间的通信等.

文档说明模块
1.README.md:节点部署等说明
2.LICENSE.txt:版本号与许可文件
3.tutorials:主网启动与exchange合约的使用教程

你可能感兴趣的:(EOS支持层(program,libraries,tests,Docker))