zoukankan      html  css  js  c++  java
  • EOS开发基础之三:使用cleos命令行客户端操作EOS——关于钱包wallet和账户account

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

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

    1、创建密钥(./cleos create key

    如下图,创建了密钥后,我们查看一下wallet中的keys,发现钱包又被锁上了,解锁,再看,发现里面还是只有一个公钥在里面:

    那要怎么做我们上边创建的密钥才会出现在wallet中呢?

    这里有一个key导入的过程,我们需要将上边创建的两组密钥导入到wallet中。

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

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

    由于每一个account需要两对密钥和它相对应,所以这里需要导入两次私钥,如下图:

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

    成功将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

    如下图:

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

    3、创建账户(./cleos create account ${authorizing_account} ${new_account} ${owner_key} ${active_key}

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

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

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

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

    4、查看账户信息(./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
    }

    5、根据公钥获得账户列表(./cleos get accounts ${public-key}

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

    接下来的操作得加载智能合约才能搞了,所以,咱们下节见!

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

  • 相关阅读:
    DSP Builder设计一个滤波器
    Modelsim 10.0 对Altera FFT IP 进行仿真
    FPGA内部计算小数
    TIOBE 2012年3月编程语言排行榜:JS超越Perl和Python
    转载 10个新鲜的Ajax相关的jQuery插件
    转载 使用HTML5、CSS3和jQuery增强网站用户体验
    转载 Java堆内存的10个要点
    累 腾讯笔试
    python 浮点数取整
    转载 一个页面重构工程师眼中的“用户体验”
  • 原文地址:https://www.cnblogs.com/paluano/p/9146424.html
Copyright © 2011-2022 走看看