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

 

好了,上一节咱们已经讲了关于wallet的一些基础操做,基本了解了怎么去建立一个钱包,怎么去查看钱包、上锁和解锁钱包等,这一节我们就来开始操做帐户account吧。json

上一节讲到了每个account都须要与两对密钥绑定,那么咱们就先给它建立两对密钥吧。ui

一、建立密钥(./cleos create keyspa

以下图,建立了密钥后,咱们查看一下wallet中的keys,发现钱包又被锁上了,解锁,再看,发现里面仍是只有一个公钥在里面:code

那要怎么作咱们上边建立的密钥才会出如今wallet中呢?blog

这里有一个key导入的过程,咱们须要将上边建立的两组密钥导入到wallet中。get

 

二、向wallet导入key(./cleos wallet import private-key)it

这里导入的key是私钥,公钥是能够公开给别人的,钱包是用来存放私钥的不是用来存钱的,有了私钥能够生成公钥。io

因为每个account须要两对密钥和它相对应,因此这里须要导入两次私钥,以下图:ast

完了,忘了上边解锁的是simaguang,default这个钱包没有解锁。使用上边的import命令,默认会将私钥导入到default默认钱包。下边咱们先解锁default钱包后再来试试。import

成功将key导入到了钱包里面,那接下来又干吗呢?这仍是没有创建wallet和account之间的联系啊。下面就看看咱们怎么来建立帐户吧。

在这以前,咱们得把先前建立的两组密钥记录下来:

key1:

Private key: 5J6YHicUZZiEViWe3MCQD2vdCC99WW8VHhCQST5NaHScYQibwLy
Public key: EOS8kLLKdikhpY99EWSj8L8HHLSyE8xiRQW9mZAXxcf5thYK2LCzM

key2:

Private key: 5KKJZzK3fqoHbFFevRrzX7r1Gb8DtvnC82BAZEhrS7aqRtxpkth
Public key: EOS6FwkA7gn9a46LbmJWuRCXdZYW9jznckVKXcZTHYbcFBAB9VcNC

再用./cleos wallet keys查看钱包中的keys:

咱们发现里面有三个公钥——咱们明明导入的是私钥,怎么看到的是公钥啊?见鬼啦?呵呵,其实不是的,你的钱包里的default中一样存的是私钥,只是咱们使用./cleos wallet keys查看的时候,钱包自动给我们算出公钥来了。目的就是避免私钥泄露。因此,你的私钥,你必定要记好了,即便导入到钱包了,你仍是要记在你本身的小本本上,否则要是你钱包也丢了,那就麻烦事大了……

 

还有啊,咱们刚刚是将私钥导入到默认钱包default中了,那如今咱们想把密钥也导入到simaguang这个钱包中又怎么办呢?

其实,在import后加一个参数就好了:

./cleos wallet import -n simaguang 5J6YHicUZZiEViWe3MCQD2vdCC99WW8VHhCQST5NaHScYQibwLy

./cleos wallet import -n simaguang 5KKJZzK3fqoHbFFevRrzX7r1Gb8DtvnC82BAZEhrS7aqRtxpkth

以下图:

这样咱们就有两个钱包在存放咱们的私钥了。

 

三、建立帐户(./cleos create account ${authorizing_account} ${new_account} ${owner_key} ${active_key}

 如上命令中,${authorizing_account}是指建立者帐户,也就是须要一个老帐户来建立新帐户,也就是说在EOS里面,帐户不是你想有,想有就能有的,你得找人帮你建立。

咱们在配置文件里面设置了一个帐户eosio,那咱们就用这个已有的帐户来建立新帐户吧。

${owner_key}和${active_key}就是上边咱们建立的那两对密钥中的公钥。以下图:

 

看到了嘛?这帐户名的命名规则是有要求的——13个字符之内,且只能在.12345abcdefghijklmnopqrstuvwxyz这32个字符中选取,为何呢?这和base32这玩意儿有关,回头咱们看程序吧。

 

四、查看帐户信息(./cleos get account -j ${accountName}

既然帐户已经建立好了,那咱们如今就来看看这帐户里面都存了些啥东西吧。使用./cleos get account -j ${accountName}命令能够查看帐户信息,其中的-j的意思是使用json格式显示数据。以下图:

内容以下:

{
  "account_name": "simayi",
  "privileged": false,
  "last_code_update": "1970-01-01T00:00:00.000",
  "created": "2018-06-06T08:45:03.000",
  "ram_quota": -1,
  "net_weight": -1,
  "cpu_weight": -1,
  "net_limit": {
    "used": -1,
    "available": -1,
    "max": -1
  },
  "cpu_limit": {
    "used": -1,
    "available": -1,
    "max": -1
  },
  "ram_usage": 2724,
  "permissions": [{
      "perm_name": "active",
      "parent": "owner",
      "required_auth": {
        "threshold": 1,
        "keys": [{
            "key": "EOS6FwkA7gn9a46LbmJWuRCXdZYW9jznckVKXcZTHYbcFBAB9VcNC",
            "weight": 1
          }
        ],
        "accounts": [],
        "waits": []
      }
    },{
      "perm_name": "owner",
      "parent": "",
      "required_auth": {
        "threshold": 1,
        "keys": [{
            "key": "EOS8kLLKdikhpY99EWSj8L8HHLSyE8xiRQW9mZAXxcf5thYK2LCzM",
            "weight": 1
          }
        ],
        "accounts": [],
        "waits": []
      }
    }
  ],
  "total_resources": null,
  "delegated_bandwidth": null,
  "voter_info": null
}

五、根据公钥得到帐户列表(./cleos get accounts ${public-key}

 

好了,就搞到这里吧,累了。

接下来的操做得加载智能合约才能搞了,因此,我们下节见!

注意啊,这里面的关于key的内容,都应该使用你本身生成的密钥对哇,别疯疯癫癫的用我生成的弄哈——即使它也是能够用的。

相关文章
相关标签/搜索