LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > EOSIO平台和工具链

EOSIO平台和工具链

2020-06-13 松果 来源:区块链网络

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代码。

—-

编译者/作者:松果

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...