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
}

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

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

原文地址:https://www.cnblogs.com/paluano/p/9146424.html

时间: 2024-10-07 04:04:15

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

命令行客户端操作MySQL

MySQL客户端 mysql客户端是一个非常有用的SQL shell,几乎能够管理MySQL的每个方面:创建.修改.和删除表和数据库:创建和管理用户:浏览和修改服务器配置:查询表数据. 连接mysql 连接mysql需要以下选项: 主机名(--host=, -h) 用户名(--user=, -u) 密码(--password=, -p) 也可以包括目标数据库(--database=, -D),包含此项时,进入客户端后就不必执行use了,其实这些选项的顺序无关紧要,但是习惯按照以下例子来写. 例如

开发利器_ImageMagick.基于Linux命令行的图片缩放/编辑/格式转换?

简单介绍: ImageMagick是一系列的用于修改,加工图像的命令行工具,能够快速地使用命令行对图片进行操作,对大量的图片进行批处理,它能执行相当多操作,本文涉及的只是开发中常用的技能. 快速安装: yum -y install epel-release yum install -y ImageMagick ImageMagick-devel 格式转换: convert 1.png 1.jpg 缩放图像: convert 1.jpg -resize 499x 1.jpg 说明: ImageMa

浏览器---WEB开发基础之三

通过HTTP协议的介绍,打开网页必须建立TCP连接,然后通过HTTP协议进行交互,因此,浏览器访问网址,第一件事就是建立TCP连接,但是TCP连接是基于IP的,而我们输入的却是网址,所以,实际上第一件事,应该是通过DNS去查找网址(也就是域名)对应的主机的IP,然后才是三次握手建立TCP连接(此处知识详见<计算机网络基础>),然后浏览器向服务器发送: GET HTTP://www.baidu.com HTTP/1.1  Accept: application/x-ms-application,

开发利器_Httpie.利用跨平台命令行下curl的替代品httpie调试接口?

简单介绍: 说明: 此模块是一个支持直观语法/支持格式色彩输出/支持JSON/支持上传文件表单/支持HTTPS代理认证/支持任意请求数据/支持自定义头部/支持持久化会话/支持类WGET下载特性等的HTTP的命令行客户端,完全可以代替CURL,常用于测试/调试接口 项目地址: https://github.com/jkbrzt/httpie 快速安装: pip install --upgrade httpie GET 相关: http GET https://api.weibo.com/2/tre

第4章4节《MonkeyRunner源码剖析》ADB协议及服务: ADB命令行客户端使用简介(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在所难免.有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息. 从前面几个小节我们知道ADB命令行客户端是存在与主机端的一个命令,用户可以使用该命令来发送服务请求到ADB服务器,ADB服务器再判断该服务请求是主机服务请求还是本地服务请求来决定是否应该将请求传送给远程adbd守护进程

MAC系统XAMPP 中 MySQL命令行客户端配置使用

在PHP的学习过程中,MySQL估计是必然会接触的. MySQL的管理相信大家也会使用phpmyadmin: 好吧,phpmyadmin的确是MySQL管理的神器,你想要的,他好多都有,在开发的过程中,对于后台数据库的设计架构帮助真的很大. 但是,在这篇文章的主角确不是它. MySQL客户端 MySQL安装包里面,在一个名为bin的文件夹,放置了很多工具包,但是使用他们的方式是命令行(ps:最近上瘾了). 在MAC系统,使用命令行的工具可以使用系统自带的Terminal: 顺便在这提一下,笔者使

svn命令行相关操作集合(持续更新!)

命令行下操作svn没有使用界面形式的TortoiseSVN直观,但是不管怎样,命令行下操作svn还是有它的有点,如果你碰到一次需要svn add许多个文件怎么办?下面的命令可以帮助你解决这个问题 一次性增加所有新增的文件到svn库: svn st | awk '{if ($1 == "?") {print $2} }' | xargs svn add 一次性从svn库删除所有需要删除的文件 svn st | awk '{if ($1 == "!") {print $

Mysql命令行常用操作

Mysql命令行常用操作 一.从命令行登录MySQL数据库服务器 1.登录使用默认3306端口的MySQL /usr/local/mysql/bin/mysql -u root -p 2.通过TCP连接管理不同端口的多个MySQL(注意:MySQL4.1以上版本才有此项功能) /usr/local/mysql/bin/mysql -u root -p --protocol=tcp --host=localhost --port=3307 3.通过socket套接字管理不同端口的多个MySQL /

WINDOWS命令行服务操作

由于前一段时间再做大批量的数据入库工作,发现入库程序执行完之后,oracle.exe占用的系统内存特别巨大. 而在执行完入库步骤后,程序会继续调用检查程序对oracle数据做检查,输出报表. 由于这一切都是程序自动执行,在执行完入库工作后,oracle占用的内存没有释放,导致检查程序可用资源过少. 所以,查询了一下,cmd命令行,用于操作服务的方法,不多累述: 停止服务: sc stop OracleServiceORCL 启动服务: sc start OracleServiceORCL 简单的