先回答一下上一节中留下的问题,为什么我就看不到eosio这个账户中的钱呢?我明明为它create了很多token啊。

对,你是create了,但是没有issue啊。create了1000000000 SYS,只能说明eosio.token这个用户为eosio这个用户在eosio.token用户的这个合约上创建了1000000000 SYS,这些SYS还在央行里面躺着呢,还没有发行,它就是一堆废纸。

所以,咱们issue一下试试?

执行命令:./cleos push action eosio.token issue '["eosio", "1000000000.0000 SYS", "memo"]' -p eosio

也就是发行者给把1000000000个SYS全部放进自己的账户里准备流通了。

怎么样?我没骗你吧?

好了,咱们来看一下上边的脚本执行情况。

1、因为又过了一天了,所以我执行第一条命令的时候,它要求我打开钱包,于是我就吧默认钱包给打开了。

2、打开钱包后,我直接给eosio发1000000000个SYS,第一次报错了,说交易时间过长,我忍了,再执行一遍,它告诉我说 数量超过可供应量。

3、好吧,我们把十亿换成999999900,再执行,成功了。

4、现在再来看看它们各自有多少钱,看到没?eosio这个账户也真的有钱了。但是它钱是不是太多了点?比如说我们想再给simayi发行(issue)点SYS,还能成功吗?

看到没?没钱了,国库空虚了,以后simayi想要钱,只能找eosio这家伙要了,只能通过transfer的方式获得了。咦,我们试试能不能给它发行负的钱可好?

有点不好意思,它告诉我说让我别闹,要正数才行。看来,simayi的这500块,我只能transfer给它了:

执行命令:./cleos push action eosio.token transfer '[ "eosio", "simayi", "500.0000 SYS", "m" ]' -p eosio

好了,大家的钱的问题都讲清楚了,咱们再来聊聊其它的合约吧。嗯,第三个:

3、Exchange

The exchange contract 提供了创造和交易货币的能力。这是个什么情况?上边的eosio.token不也能创建和交易货币嘛?等等,这里所说的交易货币,是不是指像现实生活中美元和人民币兑换之类的事啊?所谓的跨货币交易?这只是我的个人猜测哈。我们现在来做下实验吧。

那么,既然它能创建货币,那咱们现在就试试Exchange这个东西好不好使可好?

a、转到nodeos的运行界面,使用ctrl+c,停止nodeos的运行(咱们不去/home/fengwork/.local/share/eosio/nodeos删data文件夹哈,留着有用)

b、再次输入./nodeos,启动节点

c、打开一个新的Terminal来操作cleos

3.1创建eosio.exch账户(./cleos create account eosio eosio.exch)

要创建一个账户还真是挺麻烦的。先得创建key,解锁钱包,然后把key导入钱包,之后才能创建account。而且啊,account不能超过13个字符,且有命名规则要求。别告诉我你懒癌犯了哈,命令自己敲去。

呃,如果实在是真的懒癌犯了,那命令在下边,谁叫我心软呢:

fengwork@ubuntu:~$ cd eos/build/programs/cleos/
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos create key
Private key: 5Jm5G6rFAaxjPKuAraR8mYVmzqpB3E35Mjw363SceFjUeSF6G61
Public key: EOS5m1u5coWVEAfCwpJvh2ftGq2AEnVWFSS6ytvXgegZra11PK6hK
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos create key
Private key: 5JfYHqk8wh2v3335Mxsp71B3pBevmpUxHKfkEiomKHcLDDnpfiy
Public key: EOS6wLBffPDWeaYCxTnD1KwFYMR1YjWcCMVf5iRpoQo53tsAAJCeE
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet list
Wallets:
[
  "default",
  "hanmeimei",
  "simaguang",
  "wangerxiao"
]
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet unlock -n default --password PW5KZGrxQR77W2ctkZPGsZugQVekdEipZKxE48sxy6rPFE6sUfnV6(可还记得你的default钱包的password?)
Unlocked: default
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet import 5Jm5G6rFAaxjPKuAraR8mYVmzqpB3E35Mjw363SceFjUeSF6G61
imported private key for: EOS5m1u5coWVEAfCwpJvh2ftGq2AEnVWFSS6ytvXgegZra11PK6hK
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos wallet import 5JfYHqk8wh2v3335Mxsp71B3pBevmpUxHKfkEiomKHcLDDnpfiy
imported private key for: EOS6wLBffPDWeaYCxTnD1KwFYMR1YjWcCMVf5iRpoQo53tsAAJCeE
fengwork@ubuntu:~/eos/build/programs/cleos$ ./cleos create account eosio eosio.exch EOS5m1u5coWVEAfCwpJvh2ftGq2AEnVWFSS6ytvXgegZra11PK6hK EOS6wLBffPDWeaYCxTnD1KwFYMR1YjWcCMVf5iRpoQo53tsAAJCeE
executed transaction: c89b760279cb449d25dbce13ffb36a58bbabddaf28b656336acda9ca4fd42f1e  200 bytes  14902 us
#         eosio <= eosio::newaccount            {"creator":"eosio","name":"eosio.exch","owner":{"threshold":1,"keys":[{"key":"EOS5m1u5coWVEAfCwpJvh2...
warning: transaction executed locally, but may not be confirmed by the network yet

警告先不管。

3.2加载Exchange合约(./cleos set contract eosio.exch ../../contracts/exchange -p eosio.exch

3.3给eosio.exch创造点货币(./cleos push action eosio.exch create '{"issuer":"eosio", "maximum_supply":"200000000.0000 EXCH"}' -p eosio.exch

看到没?我们换着方的玩,它都创造不了货币。

那特么的上边说它能够创造和交易货币,逗咱们玩呢?

我们再次用eosio.token来试试,另外创建一个币种,看看效果:

这才是最正确的姿势嘛,那个Exchange合约是个什么鬼?!

通过上边的命令执行情况,我们可以得到如下信息:

1、eosio.token加载过一遍后,就被写入到链上了,即使我们重启节点,已加载的合约也不会丢失,除非你把块都删了,且没有和别的机器连在一起上链

2、可以为同一个账户,如eosio,创造多个币种,且把该币种发布出去

3、还是不知道Exchange干啥用的

暂时到这里吧,下篇继续。

EOS开发基础之五:使用cleos命令行客户端操作EOS——智能合约之Exchange的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. Hadoop HDFS的shell(命令行客户端)操作实例

    HDFS的shell(命令行客户端)操作实例 3.2 常用命令参数介绍 -help 功能:输出这个命令参数手册 -ls                  功能:显示目录信息 示例: hadoop fs ...

  8. 命令行客户端操作pg数据库常用操作

    登录 # su - postgres -c "psql" 或者 $psql -U user_name -d database_name -h serverhost psql (10 ...

  9. mysql命令行客户端结果分页浏览

    转载请注明出处:http://xiezhenye.com/2008/06/mysql%e5%91%bd%e4%bb%a4%e8%a1%8c%e5%ae%a2%e6%88%b7%e7%ab%af%e7% ...

随机推荐

  1. C++设计模式 ==> 装饰(者)模式

    简介 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象.装饰模式使用对象嵌套的思想,实现对一个对象动态地进行选择性的属 ...

  2. NHibernate出现could not execute query问题

    今天在调试代码时工程总报错,提示could not execute query xxxxxxxxxxxxxxxxxxxxxxxxxxx 找了很久,最终同事发现是数据库连接配置文件的问题. <hi ...

  3. November 10th, 2017 Week 45th Friday

    A little bit of mercy makes the world less cold and more just. 多一点怜悯就可以让这个世界少一点冷酷而多一点正义. Maybe there ...

  4. 数据库事务总结(一)-ACID

    概述 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源.通过将 ...

  5. BZOJ2115:[WC2011] Xor(线性基)

    Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...

  6. VMware安装VMware tool是 遇到The path "" is not a valid path to the 3.10.0-693.el7.x86_64 kernel headers.

    The path "" is not a valid path to the 3.10.0-693.el7.x86_64 kernel headers.问题是找不到内核头文件,需要 ...

  7. pyspider中内容选择器常用方法汇总

    pyspider 的内容选择器默认已经实例化一个pyquery对象,可以直接使用pyquery的api来获取自己需要的内容. 1.在pyquery中使用response.doc就可以直接实例化一个py ...

  8. CAN-bus接口控制实验

    CAN-bus接口控制实验 2016-04-12 20:38:41来源: eefocus 关键字:CAN  bus  接口控制   收藏 评论(0) 分享到 微博 QQ 微信 LinkedIn 一.实 ...

  9. odoo开发思路篇

    1.首先从客户那了解需求,知道他现有系统所能实现的功能,现在要求要实现的功能,至于怎样实现由我们自己去定.(拿到需求------->了解需求功能--------->自己实现的方法) 2.在 ...

  10. 【转】Google Chrome中顺时针/逆时针滚动圆的含义

    当浏览器处于以下状态时,看起来好像圆圈是逆时针滚动的: 解析主机名 连接服务器 等待响应(从服务器发送第一个字节之前?) 当浏览器处于以下状态时,圆圈似乎顺时针滚动: 加载页面或引用的资源 在标签页中 ...