EOS智能合约开发(二)EOS创建和管理钱包

EOS提出有账号的概念。与以太坊有很大区别。以太坊只要创建公钥私钥就可以了。
EOS创建钱包的顺序是,1、创建钱包,钱包用来管理私钥的;2、创建私钥,将私钥导入钱包,创建账户。3、创建账户,账户是有权限的,根据不同权限,可以行使不同功能。
1、创建钱包。
首先,先确定区块链中钱包的概念:

  • 钱包是一个私钥库,用来授权发生在区块链上的动作(action,记住这个概念)。这些私钥使用密码生成,被加密存储在磁盘上。这个密码应该被储存在一个安全的密码管理器中。

提取一下重点:

  • 钱包是一个私钥库
  • 私钥是通过密码生成

操作流程:

  • 先启动私链,通过命令nodeos即可。
  • 创建钱包,使用命令cleos wallet create,这是通过插件eosio::wallet_api_plugin完成的操作。

命令如下:

$./cleos wallet create -n walletname

Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5JnprjHBhVktRymUPsvnRhWunuz4gatNS4UG9PkstjwJbagFbxW"

——其中 “PW5JnprjHBhVktRymUPsvnRhWunuz4gatNS4UG9PkstjwJbagFbxW” 就是创建这个钱包后生产的密钥
如果,你锁定钱包后,需要打开钱包,就需要输入这个密钥,才可以打开。

——我们创建了制定名称为 walletname的钱包

使用命令:Cleos wallet create,就可以创建一个钱包。像以太坊、比特币这些已经比较成熟了,使用一些客户端可以去创建钱包。
如果你想用不同的参数,可以在命令后边加上-N,-N指定你的钱包名称是另外一个钱包名称,可以创建不同的钱包,然后每个钱包都可以管理一组密钥。
创建好钱包后,我们查询一下钱包列表:

$cleos wallet list
Wallets:
[
  "mywallet *"
]

打开指定钱包,如下命令:

$cleos wallet open -n mywallet
Opened: mywallet

锁定一个钱包如下命令:

$cleos wallet lock -n mywallet
Locked: 'mywallet'

解锁一个钱包如下命令:

$cleos wallet unlock -n mywallet
password: PW5JnprjHBhVktRymUPsvnRhWunuz4gatNS4UG9PkstjwJbagFbxW //“输入创建钱包的时候的密码”
Unlocked: mywallet

2、创建一组秘钥
创建好钱包,就可以创建一组密钥,创建命令为:

$cleos create key

Private key: 5JeodV4rULJSgqhTP2anZAKT7UrBardhKqs2SEmY1L5g5XyNc99
Public key: EOS8WXkcJ5ms9gQH2KLZTGpks4WkDTRkWPpKTHkycbnYTYzYLiGz2

$cleos create key
Private key: 5HukNuoPWi1ysGaNKm4gMTeNwtYGst9XJbujhbUZi6vfaHJX5w3
Public key: EOS7X9nUmciWAbod2MqwCZ8SUFVBQjcy1WMhXSBFr7HDd87nZQQcc

3、秘钥导入钱包
在第二步创建的密钥,只是生成一组公钥、私钥,还需要把公钥、私钥导入钱包,才能让钱包把公钥和秘钥管理起来。
导入命令为:

$cleos wallet import -n mywallet --private-key 5JeodV4rULJSgqhTP2anZAKT7UrBardhKqs2SEmY1L5g5XyNc99
imported private key for: EOS8WXkcJ5ms9gQH2KLZTGpks4WkDTRkWPpKTHkycbnYTYzYLiGz2

$cleos wallet import -n mywallet --private-key 5HukNuoPWi1ysGaNKm4gMTeNwtYGst9XJbujhbUZi6vfaHJX5w3
imported private key for: EOS7X9nUmciWAbod2MqwCZ8SUFVBQjcy1WMhXSBFr7HDd87nZQQcc

可以在命令后面指定钱包,这样就可以把第二步创建的一组公钥、私钥直接导入指定的钱包。
4、查看钱包中的秘钥
使用以下命令就可以查看是不是成功的把秘钥导入钱包了:

$cleos wallet keys
[
  "EOS7X9nUmciWAbod2MqwCZ8SUFVBQjcy1WMhXSBFr7HDd87nZQQcc",
  "EOS8WXkcJ5ms9gQH2KLZTGpks4WkDTRkWPpKTHkycbnYTYzYLiGz2"
]

5、备份钱包
为防止钱包文件的损坏,一个良好的习惯是将钱包备份到一个U盘或其他媒介中去。钱包文件采用高度加密的机制,以确保其中的密码对难以访问。

你可以在”data-dir”目录中找到这些钱包文件。如果你在启动eos过程中未指定”–data-dir”参数,你的钱包文件默认保存在”~/eosio-wallet”目录下。

$cd eosio-wallet/
$ll

-rw-rw-r--  1 cuijb cuijb 1743 620 17:04 config.ini
-rw-------  1 cuijb cuijb  439 712 10:36 mywallet.wallet

可以将上述*.wallet文件拷贝出来,保存在安全的媒介中。

我们已经创建了密钥,密钥包括公钥和私钥。我们将创建的密钥放入我们钱包里。
钱包创建好后,我们创建账号。

2018年7月10日写于深圳

猜你喜欢

转载自blog.csdn.net/jambeau/article/details/80986715