EOSIO平台由以下组件和工具链构成
nodeos
nodeos = node + EOSIO
nodeos组件是EOSIO节点的核心守护进程,该程序可以通过配置插件来运行一个EOSIO节点,使节点可以进行区块生产、提供API接口、本地开发等工作。
nodeos处理区块链数据持久层、P2P网络、智能合约代码的调度;
对于开发环境,nodeos使你可以建立一个单节点的区块链网络;
nodeos还可以通过插件提供更广泛的功能,可以在启动nodeos时通过命令行参数或配置文件启用或禁用这些插件。
cleos
cleos = cli + EOSIO
cleos组件是一个命令行接口,用于和区块链交互和管理钱包。
cleos可以和nodeos公开的REST API进行交互,还可以使用cleos部署和测试EOSIO智能合约。
keosd
keosd = key + EOSIO
keosd组件用于将EOSIO密钥安全地存储在钱包中。
keosd是一个用于存储私钥和进行数字签名的密钥管理守护进程;
keosd把密钥加密后存储在相关联的钱包文件中;
keosd还定义了一个安全区域,用于签名由cleos或第三方库创建的交易。
EOSIO.CDT
EOSIO.CDT是一个WebAssembly(Wasm)编译工具链和一组编写EOSIO智能合约的工具。
EOSIO.CDT除了作为通用的WebAssembly工具链之外,还提供了针对EOSIO的优化,以支持构建EOSIO智能合约;
此工具链基于Clang 7构建,意味着EOSIO.CDT具有当前LLVM的大多数优化和分析功能。
下图说明了以上组件之间的基本关系:
EOSIO还提供各种编程语言的开发库和SDK:
Javascript SDK(前端)
eosjs
eosjs-keygen
Swift SDK(iOS移动端)
eosio-swift
eosio-swift-abieos-serialization-provider
eosio-swift-ecc
eosio-swift-reference-ios-authenticator-signature-provider
eosio-swift-softkey-signature-provider
eosio-swift-vault-signature-provider
eosio-swift-vault
Java SDK(Android移动端)
eosio-java-android-abieos-serialization-provider
eosio-java-android-rpc-provider
eosio-java-softkey-signature-provider
eosio-android-keystore-signature-provider
扩展:LLVM、Clang、WASM工具链
LLVM
LLVM是一个完整的编译器架构,是一个用于开发编译器、解释器相关的库。
广义的LLVM是指整个LLVM编译器架构,包括前端、后端、优化器、众多库函数和模块;
狭义的LLVM是聚焦于编译器后端功能(代码生成、代码优化、JIT等)的一系列模块和库。
Clang
Clang是一个使用C++ 编写的、基于LLVM的C/C++/Objective-C/Objective-C++语言编译器。
Clang是一个高度模块化开发的轻量级编译器,编译速度快、占用内存小,方便进行二次开发。
Clang和LLVM的关系
Clang对应编译器的前端,主要处理和具体机器无关的针对语言的分析操作;
LLVM后端(狭义的LLVM)对应LLVM编译器的优化器和后端;
整体的编译器架构就是LLVM架构。
WASM工具链
WASM工具链就是把C/C++等代码编译成WebAssembly(WASM)代码的一系列编译工具。
EOSIO.CDT就是一个WASM工具链,它基于Clang 7,使用LLVM编译器架构,把使用C++语言编写的EOSIO智能合约代码编译成浏览器可以执行的WebAssembly代码。
版权声明:项目均采集于互联网, 空投币 无法审核全面,且希望大家能赚钱,请谨慎切勿上当受骗!
温馨提示:★★★天上真会掉馅饼!天道酬勤,都是机会!不错过每个空投糖果!真假难以辨认,尽量0撸!