区块链技术

eos docker运行后无法执行cleos

本文主要是介绍eos docker运行后无法执行cleos,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

原文链接

虽然eos给了安装教程,当然还是用docker最方便。而且现在docker还有阿里云镜像,速度快的不要不要的。

官方教程了https://github.com/EOSIO/eos/...,不过只是想运行的话,也不用build,直接在源码的Docker目录下执行:

$ docker-compose up

就好了,会自动启动两个容器:

  1. keosd 钱包管理组件,负责签名啊啥的

  2. nodeosd 区块链节点

eos更新很快,教程更新不及时,截至今天(2018-5-23),教程里cleos(命令行工具)的配置是有问题的。

Long version

# 有问题!$ alias cleos='docker-compose exec keosd /opt/eos/bin/cleos -H nodeos'

首先你可能遇到命令不存在,因为路径变过了,当前是/opt/eosio/bin/cleos。即便是改变了路径,发现还是会报错:

Host and port options (-H, --wallet-host, etc.) have been replaced with -u/--url and --wallet-urlUse for example -u http://localhost:8888 or --url https://example.invalid/

错误也说明了原因。
重新配置下发现还是报错:

# 还是有问题!$ alias cleos='docker-compose exec keosd /opt/eosio/bin/cleos -u http://localhost:8888/'$ cleos get info
Error 3130001: Missing Chain API Plugin
Ensure that you have eosio::chain_api_plugin added to your node's configuration!Error Details:
Chain API plugin is not enabled

这错报的真是惊天地泣鬼神,按照提示你死活是搞不对的,因为默认Chain API Plugin是打开的。

其实是本来就不该连localhost,要连到链上去。
修改为:

$ alias cleos='docker-compose exec keosd /opt/eosio/bin/cleos -u http://nodeosd:8888/ --wallet-url http://localhost:8888'$ cleos get info

{  "server_version": "4e99cf47",  "head_block_num": 1975,  "last_irreversible_block_num": 1974,  "last_irreversible_block_id": "000007b6d7f08fed622ffbf03d516e70d05d6f731cd3157cf5b0215182e0a3aa",  "head_block_id": "000007b77d87993ec68eaaa3cf3752433e7a012aeffb41f9d65c2ddda5fe195c",  "head_block_time": "2018-05-23T08:07:40",  "head_block_producer": "eosio",  "virtual_block_cpu_limit": 717591,  "virtual_block_net_limit": 7553528,  "block_cpu_limit": 99900,  "block_net_limit": 1048576}

好了,终于可以愉快的使用cleos了。

Short Version

$ alias cleos='docker-compose exec keosd /opt/eosio/bin/cleos -u http://nodeosd:8888/ --wallet-url http://localhost:8888'

cleos即可正常使用。


点击查看更多内容
这篇关于eos docker运行后无法执行cleos的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!