不知道下边这一段英文你们是不是能看懂,如果看不懂那就算了,我就是转过来随便看看的。

总之你记住nodeos、cleos和keosd这三个工程十分重要就行了,回头咱们的研究都从这三个工程杀进去。

EOSIO comes with a number of programs. The primary ones that you will use, and the ones that are covered here, are:

  • nodeos - server-side blockchain node component
  • cleos - command line interface to interact with the blockchain and to manage wallets
  • keosd - component that manages EOSIO wallets

The basic relationship between these components is illustrated in the following diagram. In the sections that follow, you will build the EOSIO components, and deploy them in a single host, single node test network (testnet) configuration.

今天我们就来讲讲怎么通过cleos命令行客户端操作EOS吧。(默认是操作自己当前主机节点,如果你添加了ip地址参数的话,你也可以操作别的节点)

那么要操作当前机器的节点,我们得先把当前节点给启动是吧?来,打开Terminal,执行如下操作:

是不是被./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin 这货搞疯了?呵呵呵……来,跳转到你的/home/fengwork/.local/share/eosio/nodeos/config目录下,是不是看到有一个config.ini文件?打开它,把里面的内容换成如下内容:

block-log-dir = blocks
enable-stale-production = true
#required-participation = true
shared-file-dir = blockchain
shared-file-size = 8192
readonly = 0
send-whole-blocks = true
http-server-address = 127.0.0.1:8888
p2p-listen-endpoint = 0.0.0.0:9876
p2p-server-address = localhost:9876
allowed-connection = any

required-participation = 33
private-key = ["EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"]
producer-name = eosio

plugin = eosio::producer_plugin
plugin = eosio::chain_api_plugin
plugin = eosio::history_plugin
plugin = eosio::history_api_plugin
plugin = eosio::wallet_plugin
plugin = eosio::wallet_api_plugin
plugin = eosio::net_plugin
plugin = eosio::net_api_plugin
plugin = eosio::chain_plugin
wallet-dir = "."

然后到上一级目录,也就是/home/fengwork/.local/share/eosio/nodeos下边,是不是发现有一个data文件夹?删掉它——这里面放的就是你打的块,因为我们先去跑过一趟程序,所以里面已经存了很多空块了。有时候会因为这玩意儿的存在导致节点跑不起来,比如说程序重新编译之后。

嗯,接下来,再次转到Teminal中来,这时候,你只需要一个./nodeos命令,节点程序就跑起来了,是不是心情好多了?

至于上边这里面那段红色的和黄色的是啥意思,我们先不管了,回头跟踪下程序,让程序来告诉咱们它到底怎么会显得那么不一样吧。

下边我们就可以正式开始拿出我们的cleos来干活了。

再次打开一个Terminal(ctrl+alt+t),执行如下操作:

>cd eos/build/programs/cleos/

这样就转到了cleos文件夹下,通过ls命令,咱们可以看到这下边有一个名叫cleos的可执行文件,如下图:

下边我们先来做一些基础操作吧:

1、创建默认钱包(./cleos wallet create

通过返回的信息,我们看到我们已经启动了keosd工程,同时创建了一个名为default的默认钱包,且这个钱包的password为PW5KZGrxQR77W2ctkZPGsZugQVekdEipZKxE48sxy6rPFE6sUfnV6

这个password咱们得拿小本本记住了,回头打开钱包就靠它了呢。

2、看看咱们创建的钱包吧(./cleos wallet list

发现没?返回的json里面只有一个刚刚创建的default钱包,且这个钱包后面带了一个*符号,这表示这个钱包是解锁状态的,你可以对它进行各种操作。额,感觉这里只有一个钱包不太爽,咱们给它多弄几个进去吧?

3、创建自定义名称的钱包(./cleos wallet create -n xxx

看到没?我们又连续创建了三个钱包——wangerxiao、simaguang、hanmeimei,且通过提示,我们可以了解到这三个钱包也都是处于解锁的状态,不信咱们使用./cleos wallet list命令看看?

它们果然都是解锁中的,快点拿小本本来把这些password记下来:

default:PW5KZGrxQR77W2ctkZPGsZugQVekdEipZKxE48sxy6rPFE6sUfnV6

wangerxiao:PW5JVrRerDpKyFxMFcoafsnCyPwdpSjVKRnkPsyXiF78WeYKCD71W

simaguang:PW5K97DmRL1XbNmQk7V2K4nZtcq5cUiEe8rbpFcT4QNVyGXJws76R

hanmeimei:PW5JVE2ZvSBQ51TnmZfQ7M1vKarEoAtm6E6wXvZ2Bm8GRKmHoWa62

额,现在我想试试我的password好不好使,怎么办呢?当然得先把钱包给上锁啊。上锁——

4、给钱包上锁(./cleos wallet lock -n xxx)比如说我把wangerxiao给锁了(./cleos wallet lock -n wangerxiao

看到没?wangerxiao这个钱包被锁上啦!其它的还是好好的。

好,下边我们来利用wangerxiao的password把wangerxiao这个钱包解锁吧。

5、解锁钱包(./cleos wallet unlock -n xxx --password pasxxxxxxxxxxxxxxxxxxx

我们看一下上边,已知wangerxiao这个钱包的password为PW5JVrRerDpKyFxMFcoafsnCyPwdpSjVKRnkPsyXiF78WeYKCD71W,则解锁情况如下:

咦,为什么上图中,解锁wangerxiao后,其它钱包又被锁上了呢?哈哈哈哈……因为刚刚是中午饭时间,我出去吃了个饭,然后睡了个午觉才继续敲的,所以,超过一定的时间,这钱包就自动上锁了。非常我们的为我们的钱财安全着想哈!

至于这个超时时间是多少,我不知道,但是粗略估算一下,我这中间大概两个小时没操作它了,所以绝对是两个小时以内的事情

6、查看钱包中的keys(./cleos wallet keys

出于好奇,我创建了钱包后,能够通过./cleos wallet list获得钱包列表,但是我现在想要钱包的password怎么办呢?查了下文档好像没有这个方法,这个password应该是真真切切的要求你给记录在你自己的小本本里了,要是丢了的话,你钱包可就打不开了噢。

然而,我发现了还有一个命令——./cleos wallet keys,这货是干啥的?

于是我刚刚又去喝了杯水,回来后就在cleos中敲入了./cleos wallet keys这个命令,又发现wangerxiao这个钱包也被锁了,所以,说不准是5分钟就超时了

那我们就给你解锁嘛,解锁后再试试这个命令。

先解锁wangerxiao,然后使用./cleos wallet keys看看,咦,发现有一串奇怪的字符被返回。这是什么鬼?和我们的password根本就不一样,它居然是以EOS开头的。

我们再解锁simaguang,使用./cleos wallet list看看情况,发现有两个钱包被解锁了,然后再次输入./cleos wallet keys,回车,咦,怎么还是返回这一串鬼东西?这玩意儿哪来的?

哈哈哈,是不是一脸懵逼?

是不是很想知道这东西哪来的?

还记得我们上边修改config.ini的时候,里面的那串private-key嘛?又还记得我们刚修改好配置文件后运行节点时出现的那段黄色的信息嘛?

对,这玩意儿是我们导进去的,但是说实话,我那段config.ini的东西是3.0版本的,相对于这边的正式版有点老了,所以……回头抽空我们再来讲讲怎么弄一个适合V1.0.1版本的config.ini吧。

现在我们还来继续聊这个key的事。我们要查看key,那首先得里面有key,那这个key从哪里来呢?当然是我们自己创建的了。

这里EOS里面的key是公私钥对成对出现的,key和password不是同一个概念,虽然看起来都是一串很长的字符,但是——password是针对钱包wallet的,而key则是针对账户account的。

你创建了wangerxiao这个钱包,不等于你已经在链上有了wangerxiao这个账户,实际上wallet和account两者之间完全是没有关系的,只有当你将account的key放在wallet里的时候,它们两者之间才有了那么点点联系。

每一个account都会有两组公私钥对,对应该账户的两个角色——owner和active。所以我们每次创建账户的时候,都需要给新账户导入两个key进去。

至于怎么操作,我发现这一节已经写得有点长了,休息一下,下一节再聊吧。

EOS开发基础之二:使用cleos命令行客户端操作EOS(钱包wallet基础操作)的更多相关文章

  1. eos开发(二)使用cleos命令行客户端操作EOS(钱包wallet基础操作)

    不知道下边这一段英文你们是不是能看懂,如果看不懂那就算了,我就是转过来随便看看的. 总之你记住nodeos.cleos和keosd这三个工程十分重要就行了,回头咱们的研究都从这三个工程杀进去. EOS ...

  2. EOS开发基础之四:使用cleos命令行客户端操作EOS——智能合约之eosio.bios和eosio.token

    现实世界中的合约,简单地说,是一个参与活动的所有人都需要遵循的协议.合约可以是正式的法律合同(例如,金融交易),或者是简单的游戏规则.典型的活动可以是诸如资金转移(在金融合约的情况下)或游戏动作(在游 ...

  3. EOS开发基础之六:使用cleos命令行客户端操作EOS——智能合约之eosio.msig和eosio.system

    上一节我们搞了老半天,也没整明白Exchange这个合约到底干啥用的.就它官方提供的说法,是用于货币的创造和交易.我没整明白,所以去看了下代码,发现代码头文件里面有下面这段话: This contra ...

  4. EOS开发基础之三:使用cleos命令行客户端操作EOS——关于钱包wallet和账户account

    好了,上一节我们已经讲了关于wallet的一些基础操作,基本了解了怎么去创建一个钱包,怎么去查看钱包.上锁和解锁钱包等,这一节咱们就来开始操作账户account吧. 上一节讲到了每一个account都 ...

  5. EOS开发基础之五:使用cleos命令行客户端操作EOS——智能合约之Exchange

    先回答一下上一节中留下的问题,为什么我就看不到eosio这个账户中的钱呢?我明明为它create了很多token啊. 对,你是create了,但是没有issue啊.create了1000000000 ...

  6. eos开发(三)使用cleos命令行客户端操作EOS——关于钱包wallet和账户account

    好了,上一节我们已经讲了关于wallet的一些基础操作,基本了解了怎么去创建一个钱包,怎么去查看钱包.上锁和解锁钱包等,这一节咱们就来开始操作账户account吧. 上一节讲到了每一个account都 ...

  7. Expo大作战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,将全部来与官网 我猜去全部机翻+个人 ...

  8. MySQL初夜(乱码问题,命令行客户端使用)

    一.乱码问题 装好MySQL,并且将数据从SQLServer导入到MySQL之后,程序一直报错. 解决方案: 首先,输入命令: show variables like "character_ ...

  9. [Hive_add_4] Hive 命令行客户端 Beeline 的使用

    0. 说明 Hive 命令行客户端 beeline 的使用,建立在启动  Hadoop 集群和启动 hiveserver2 的基础之上 1. 使用指南 在确保集群启动和 hiveserver2 启动的 ...

随机推荐

  1. Python学习---Python环境变量安装问题0907

    问题背景: 重新安装操作系统后,原来的环境变量丢失[因Python3.5安装目录是E盘,文件还在,只是丢失了环境变量而已,添加即可] 问题解决: 方法一:使用cmd命令添加path环境变量 在cmd下 ...

  2. Linux命令网络命令之netstat

    Linux命令网络命令之netstat 这一年感觉到技术上成长到了一个瓶颈.可能是感觉自己学的东西足够应付目前的工作了,因此精神上就产生了懈怠,不思进取.到了一个技术氛围不错的公司,有许多专业能力很不 ...

  3. VS2008 开发wince程序设备调试

    今天之前开发的一个wince程序,用户反馈报错,由于很久没玩了,从用户那里拿来设备.结果怎么调试的忘记了.在网上找了些资料,自己有摸索了一下.才搞定. 1.安装Microsoft ActiveSync ...

  4. Java读取json文件并对json数据进行读取、添加、删除与修改操作

    转载:http://blog.csdn.net/qing_yun/article/details/46865863#t0   1.介绍 开发过程中经常会遇到json数据的处理,而单独对json数据进行 ...

  5. Idea2018版本建的项目总是找不到主类

    最近更新idea到2018,总是遇见无法加载到主类,刚开始以为是装的过程有什么搞错了,但重装好几遍都是,换成2017又恢复正常,最后发现聪明的同学找到了个偏门可以解决. 那就是先创建文件夹,然后在创建 ...

  6. Docker 基础 - Docker 与前端(二)

    一.Docker 系统架构 守护进程 负责容器的创建.运行和监控,还负责镜像的构建和存储.docker demon 命令可启动 Docker 守护进程. Docker 客户端 通过http与 dock ...

  7. 请问下.net俱乐部这个组织现在还存在么?

    各位好,我是北京的一名.net开发人员,一直在想有什么线下技术活动可以开拓自己的视野,扩展人脉,我知道曾经有一个.net俱乐部很活跃 可是现在我在百度上搜了下.net俱乐部的信息,已经基本找不到201 ...

  8. 随手练——P1141 01迷宫

    1.暴力版 本质上就是求连通块数量,那么DFS或者BFS都行,暴力跑. 写完发现题目比较特殊,m次提问,那每次都暴力搜,肯定是要跑死了. #include <iostream> #incl ...

  9. windows下一根数据线玩转树莓派zero(w)

    买了个树莓派zero w,想着用一根普通micro数据线达成 供电+ssh+通过usb共享网络+远程桌面 的目标 通过用静态ip免去了用benjour的连接不稳定方法,下面开始细说 需要的硬件: 树莓 ...

  10. 解决Win7(x64)Anaconda3报错:AttributeError: '_NamespacePath' object has no attribute 'sort'

    最近论文需要用到python做数据分析,python语法简单,但是Windows下安装第三方包恶心的要命,statsmodels用pip死活安装不上,网上查了说包相互依赖windows下的pip不能下 ...