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

总之你记住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. 【转】Java学习---volatile 关键字

    [原文]https://www.toutiao.com/i6591422029323305480/ 前言 不管是在面试还是实际开发中 volatile 都是一个应该掌握的技能. 首先来看看为什么会出现 ...

  2. MySQL面试之说明myisam和innodb两种存储引擎的不同之处

    1.事务的支持不同(innodb支持事务,myisam不支持事务) 2.锁粒度(innodb行锁应用,myisam表锁) 3.存储空间(innodb既缓存索引文件又缓存数据文件,myisam只能缓存索 ...

  3. DevExpress08、SchedulerControl、DateNavigator、SpreadsheetControl

    SchedulerControl 该控件以可视化的效果显示预约或者设定的行程: 该控件预约后的数据存储在SchedulerStorage对象里, 当以拖动形式添加SchedulerControl控件到 ...

  4. maven中distributionManagement

    分发构件至远程仓库 mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库.本地Maven仓库的构件只能供当前用户使用, ...

  5. 【转】ajax 跨域 headers JavaScript ajax 跨域请求 +设置headers 实践

    解决跨域调用服务并设置headers 主要的解决方法需要通过服务器端设置响应头.正确响应options请求,正确设置 JavaScript端需要设置的headers信息 方能实现. 此处手札 供后人参 ...

  6. 【转】Android Service创建USB HOST通信

    之前做了一个关于Android USB通信的Case,通过Android的USB总线给Zigbee供电,和板载的Zigbee(基于Zigbee的自组网)进行通信.要使用Android的USB Host ...

  7. 随手练——HDU 1078 FatMouse and Cheese(记忆化搜索)

    http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意: 一张n*n的格子表格,每个格子里有个数,每次能够水平或竖直走k个格子,允许上下左右走,每次走的格子 ...

  8. mysql row日志格式下 查看binlog sql语句

    有时候我们需要使用row作为binlog的日志格式,即配置文件使用了binlog_format= row 参数 这样以来,我们在查看数据库binlog内容时候,就看不到增删改查的具体语句了,在数据库恢 ...

  9. Apple 相关官方地址

    https://developer.apple.com/download/more/ 证书制作地址: https://developer.apple.com/account/ios/profile/ ...

  10. poj 3169 Layout(线性差分约束,spfa:跑最短路+判断负环)

    Layout Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15349   Accepted: 7379 Descripti ...