`

nodeos,cleos,keosd

    博客分类:
  • EOS
 
阅读更多
nodeos:是运行在服务端的区块链节点组件,是EOSIO系统的核心进程,可以通过它运行一个节点
1.配置文件夹位于:eosio/nodeos/config,里面包括config.ini和genesis.json,主要包括chain_plugin,http_plugin,net_plugin,producer_plugin
2.nodeos启动后会去配置文件夹查找config.ini文件,如果没找到,则会创建一个默认的config.ini文件
3.用户数据文件夹位于:eosio/nodeos/data,存储runtime data(包括shared memory和log content)
4.核心代码在initialize()函数由引入了四个插件,这里初始化使用了chain_plugin(区块链插件),http_plugin(HTTP插件,和cleos交互),net_plugin(P2P网络插件),producer_plugin(生产者插件)
5.initialize()函数通过调用find_plugin()实现插件名找到插件;然后把找到的插件(数组)传递给application::initialize_impl()函数进行初始化;
6.startup()函数作为plugin超类的抽象函数,通过initialize()函数初始化遍历插件数组(initialized_plugins),然后调用每个plugin的startup()函数
7.通过exec()函数调用boost库的io_context::run()函数,从io_context的名字中就可以看出,其是"输入/输出上下文"的意思.最终会调用boost库中的scheduler::run()函数,它会开启线程,运行一个异步的IO服务.这样服务端就可以一直运行了

keosd:是EOSIO的钱包管理客户端,可以被认为是一个存储公钥和私钥的仓库,同时管理钱包信息.nodeos和keosd之间并不存在必然关联,只有在需要签名时它们才会产生联系,例如为交易签名.有一点要注意,nodeos已经包含了keosd的完整功能,也就是说在nodeos上也可以管理钱包
1.程序启动,会加载wallet_plugin,wallet_api_plugin,http_plugin三个插件
2.打开三个插件会发现,wallet_manager类提供了关于钱包的所有操作的API函数,包括钱包的创建,密匙查询,加锁解锁,私钥签名等API

cleos:是用户与keosd/nodeos交互的命令行工具,可以说是一个连接用户与keosd/nodeos的桥梁
1.它是一个标准的命令行解析器,类似于Linux操作系统的终端
2.它不存在数据库,它需要的所有数据都是通过HTTP协议去连接nodeos与keosd(这两个进程都有HTTP的监听端口),通过反射机制拿到自己想要的数据再进行逻辑运算并把执行结果显示出来

分享到:
评论

相关推荐

    eostool:EOS区块链PHP开发包,支持离线签名,支持离线序列化

    __EosTool__的目的是消除使用PHP开发EOS区块链链应用的痛苦,例如:通过Nodeos和Keosd的RPC接口调用其功能离线生成EOS格式的私钥和公钥使用本地私钥生成符合EOS要求的交易签名将交易对象序列化为Nodeos要求的packed_...

    会议记录v1.2.01

    第二次会议围绕着eosio项目展开,黄雨鹤详细介绍了eos平台及其中的关键组件如cleos、nodeos和keosd。团队成员根据个人兴趣和专长选择了分工,许栋亮和陈瀚清负责需求开发,林讯、刘新宇、叶明林负责软件开发,刘思远...

    java开发抽奖系统源码-My_Learning_EOS:此处涵盖EOS概念和编程。通过https://www.fiverr.com/abhi

    平台(依赖库、cleos、nodeos、keosd)—— EOS 合约开发工具包 (CDT) - EOS合约基本功能—— 用于与 EOSIO RPC API 对话的库 - 椭圆曲线密码函数 - EOSIO Demux 示例(博客 DApp) - EOS 黑客马拉松操作指南 - ...

    会议记录v1.6.01

    在3.10的会议上,组员黄雨鹤介绍了EOS平台的组成部分,如cleos、nodeos、keosd,这些都是EOS.IO的命令行工具和核心组件。他们明确了团队分工,例如许栋亮和陈瀚清负责需求开发,其他人分别负责软件开发和测试,同时...

    EOS.IO-Community-Testnet-Reactivation

    EOS.IO-社区-Testnet-重新激活 欢迎使用EOS.IO社区测试网 由......运营: 该存储库中描述的公共社区超级英雄测试网...现在,您可以复制位于以下位置的二进制文件(主要是nodeos,cleos,keosd): /usr/local/bin

    EOS开发入门之cleos命令解读(未完待续)1

    EOS开发入门之cleos命令解读(未完待续)1

    cleos-auto-completion:EOS cleos的命令自动完成

    自动完成 更新到EOSIO v1.8.6 更新到EOSIO v1.7.0(支持REX) 由于cleos使用的CLI11(用于c ++的命令行解析器)的限制,当前cleos不提供命令自动完成功能。 在此项目中,您可以对命令使用命令自动完成功能。 另外,...

    EOS开发入门体验1

    部署`currency`合约的过程与`eosio.bios`类似,但也需要确保`cleos`能够正确地与运行中的`nodeos`节点通信。 总的来说,EOS开发涉及到C++编程、智能合约编写、钱包管理、节点操作等多个环节。对于初学者来说,了解...

    EOS使用RPC的接口创建账户

    - `./cleos wallet import --private-key 5JxHgKWimh792pScgJ8VEQv46RthLBcSnsXDSdGMYHwwemGwF4e` - `curl http://192.168.1.56:8888/v1/wallet/import_key -X POST -d'["default","5JxHgKWimh792pScgJ8VEQv46...

    eos-bp-watchdog:脚本停止生产时自动注销块生产者的脚本

    cleos set account permission $PRODUCERACCT watchdog '{"threshold":1,"keys":[{"key":"YOUR_PUBLIC_KEY","weight":1}]}' "active" -p $PRODUCERACCT@active cleos set action permission $PRODUCERACCT eosio ...

    EOS多重签名.pdf

    - 使用命令`cleos create key --to-console`生成三个不同的秘钥对,这里分别命名为helloworld51、helloworld52、helloworld53。 - 将生成的私钥导入到钱包中,使用`cleos wallet import --private-key`命令导入...

    eos-football-lottery:Eos合约演示

    cleos push action kaiz setgame '["1", "FRA vs URU", "kaiz", "1530885600"]' -p kaiz 注意最后一个参数为时间戳,EOS暂时没有字符串转换时间的函数,以及不能获取主机所在时区(如果有请帮忙指出,谢谢~),只能...

    EOSBoard:https的来源

    脸部表情 该项目是EOS区块链上的董事会应用 通过create-react-app创建react项目 必需的 React React路由器 Material-ui D3.js Eos.js Webpack ...$ cleos create account eosio board ...$ cleos push action board wr

    EOS应用框架使用手册

    1. **本地测试环境**:使用`keosd`钱包服务和`nodeos`节点软件,开发者可以在本地搭建EOS测试链,进行合约的部署和测试。 2. **智能合约调试**:通过` eosio-console`或相关插件,可以查看合约的执行过程和状态,...

    EOS_workshop_18jun:他们的车间

    cleos push action eosio.token create '[ "ducat.exch", "7000000000.0000 DUCAT"]' -p eosio.token 向用户发出。 cleos push action eosio.token issue '[ "user", "100.0000 DUCAT", "" ]' -p ducat.exchcleos ...

    customtokens:EOS的自定义令牌跟踪智能合约

    cleos push action customtokens set '[unique_id, your_account, contract_account, asset_string]' -p your_account@active 参数列表: 下方的唯一ID : 1 ,这必须是表格中的唯一编号。 记录所有者:下面是解决...

    《玩转EOS智能合约.doc》详细介绍了对EOS智能合约从部署到使用。

    #玩转客户端cleos 1、先玩转与智能合约相关的操作 #使用eosiocpp工具编译智能合约生成abi文件和wast文件 #编译合约(无法通过) #安装build/programs下工具 #重新编译合约 #部署合约到账户 #购买RAM #测试...

    sportsminer:日常幻想体育游戏的dapp,使用了eos智能合约技术

    游戏场景该游戏假设有5名玩家(player1...player5),20名运动员...查看可选的运动员 cleos --wallet-url "http://127.0.0.1:8888" get table bet4worldcup bet4worldcup players查看目前的竞赛房间 cleos --wallet-url ...

    EOS6程序员教程案例代码

    2. 合约部署:EOS6使用keosd和cleos工具进行合约的编译、部署和交互。开发者需要将编译后的合约WAST(WebAssembly Stack Machine code)或ABI(Application Binary Interface)上传到链上。 三、智能合约函数 1. ...

    simplepsutilapi:带有psutil和flask的简单API

    SIMPLEPSUTILAPI 使用python,psutil和... // Quantidade de núcleos presente na maquina (lógicos e fisicos) cpuAllCore: 4 // Quantidade de núcleos lógicos na maquina cpuAllCore: 2 // Memoria em

Global site tag (gtag.js) - Google Analytics