先回答一下上一节中留下的问题,为什么我就看不到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. 启动 uiautomatorviewer 时报 SWT folder '..\lib\location of your Java installation.' does not exist.

    现象,之前本机上的 uiautomatorviewer 一直是好的,最近这段时间无故就不行了,报如标题错误,网上找了各种办法仍无法有效解决,静心细想上一次使用该工具时到目前对本机有做什么跟系统或者工具 ...

  2. 关于Javascript的des加密

    参考文章:https://www.cnblogs.com/MSMXQ/p/4484348.html 需要先下载CryptoJS文件,然后引入其中的两个文件,可以在github中找到. 直接上代码 &l ...

  3. jstl格式化日期

    <%@ page contentType="text/html" pageEncoding="GBK"%> <%@ page import=& ...

  4. App常见产品问题及预防方法

    01界面适配 a:手机分辨率为1920x7080的高分辨率手机,在调整手机字体大小时,会导致页面显示出现变形: b:因用户设置的特殊字体导致列表的字母条不显示: c:某些banner 图片在部分机型只 ...

  5. scrt中使用alt键

    session Options-->Terminal---->Emulation------>Emacs----->Use ALT as meta key

  6. Linux下RPM包的安装

    Linux下RPM包安装 二进制包(RPM包.系统默认包) RPM安装 rpm -ivh 包全名(查询依赖网址:http://www.rpmfind.net) -i(install):安装 -v(ve ...

  7. jmeter接口测试4-使用数据库mysql构造参数

    jmeter测试中,测试数据一般和测试用例分离 测试数据一般可以使用csv构造,进行参数化 但也可以使用mysql等数据库构造 方案一:一个线程循环调用mysql数据,不是并发,不适用于性能测试,更适 ...

  8. Ubuntu 重新安装声卡驱动

    有的时候ubuntu 的声卡不能用,没有声音也不能使用麦克风,所有很困惑,查看声卡驱动的时候不显示声卡的驱动,所有我们要自己安装声卡驱动, 1.下载驱动包这是比较新的声卡驱动,1.0.20 $ wge ...

  9. grpc & pb 环境配置

    grpc 官方中文文档:http://doc.oschina.net/grpc?t=60140 grpc github仓库:https://github.com/grpc/grpc protobuf ...

  10. kubernetes 的wen pod 无法连接 mysql 的pod

    1.分析 查看源代码 既然无法建立连接,那先看下是如何建立连接的.登录到myweb的docker容器里面,查看index.jsp文件,主要内容如下: Class.forName("com.m ...