EOSIO开发(五)- 钱包之实战篇

通过这篇文章,我们将学习如何通过cleos命令管理钱包。

环境准备

Docker环境:

docker pull eosio/eos # 下载镜像 
docker run --name keosd -t eosio/eos /opt/eosio/bin/keosd arg1 arg2 # 启动keosd 
docker exec -it keosd /bin/bash # 进入keosd命令行界面

非Docker环境:

cd /path_to_eos/build/programs/cleos # 进入cleos编译目录

与钱包相关的操作全部在 cleos wallet 命令中,使用介绍如下:

 

创建钱包

通过cleos wallet create命令创建钱包,创建成功后将会看到下面的信息:

创建了一个名称为”default”的钱包,并且钱包的密码是

PW5KX8my1cqU38eZW1PhXUADLgjUxyqBv7wTYz3WDJg5mAnREyuNb。这个密码一定要好好保存,因为它是解锁钱包的唯一凭证。

如果想要创建一个自定义名称的钱包,可以使用cleos wallet create -n命令

在上图中,创建了一个名称为testwallet的钱包。

有一点要注意的是,cleos wallet的所有子命令,如果没有指定钱包名称,则都是默认操作default钱包,否则可以通过 -n 指定被操作的钱包。

查询钱包信息

每当我们创建一个钱包时,EOSIO会在本地生成生成一个钱包文件,保存在~/eosio-wallet目录下。

进入目录之后可以看到dfault.wallet和testwallet.wallet文件,分别对应刚刚生成的两个钱包。

打开一个文件看看,里面保存的是一些加密字符串。

 

我们也可以通过cleos wallet list命令查询钱包信息

查询结果显示目前有default和testwallet两个钱包,注意钱包名称后面的 * 号,它表示这两个钱包目前都是解锁(unlock)状态,锁定状态的钱包后面没有 * 号。

例如,锁定testwallet钱包后,查询钱包信息。

 

钱包状态转换

钱包有三种状态:lock、unlock和close。

锁定钱包

前面的章节已经为大家展示了通过cleos wallet lock -n 钱包名命令锁定钱包,如果想锁定default钱包,可以不要 -n 参数。 

锁定状态下的钱包,将不能执行任何与该钱包相关的操作,也不能使用钱包中保存的密钥。例如,保存私钥,对交易签名等。

为了安全起见,建议使用完钱包之后就将其锁定。

解锁钱包

通过cleos wallet unlock -n 钱包名命令解锁钱包,解锁时需要输入钱包密码(即创建钱包时生成的密码)

关闭/打开钱包

当客户端keosd关闭之后,钱包也会进入关闭(close)状态,重启keosd后,需要通过cleos wallet open命令重新打开钱包

重启keosd后,查询钱包信息。 

查询不到任何钱包信息,说明此时所有钱包都是close状态。

使用cleos wallet open打开default钱包。 

打开后的钱包处于锁定状态,如果想要使用钱包,还需要做解锁操作。

 

状态转换总结

通过下面的钱包状态转换图,我们可以更好的理解钱包状态之间的关系。

导入密钥

钱包的一个重要功能就是保存密钥(私钥和公钥),在对交易进行签名时,需要用到这些密钥。

首先,使用cleos create key命令生成公钥和私钥。

通过cleos wallet import ${private_key}命令导入私钥,在导入私钥时,钱包会自动根据私钥得到公钥,因此实际上钱包是同时保存了私钥和公钥。

最后,通过cleos wallet keys命令查看已导入的密钥

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值