EOS开发教程-3-钱包和账户

  本节课我们学习EOS的钱包和账户的相关知识。

1.钱包

  • EOS钱包只有一个用途:保存用户私钥,通过私钥可以计算出交易所需的的公钥。
-- 创建默认用户
cleos wallet create
-- 输出
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
-- 钱包默认密码
"PW5JBtZYTNwcq5XYkaXTjmT9Sgp7RK5go5M8SKVohZGJLiv2712zT"

-- 创建用户名叫user的钱包
cleos wallet create -n user
-- 输出
Creating wallet: user
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
-- 这是user的密码
"PW5JfWmCHxqHCoLJQQv7Z8zn9EdWzhHNq2EWo8cMMTPFD2QV8wayM"
-- 列出钱包中的用户
root@www:~# cleos wallet list
-- 输出,注意星号表示当前这个用户是解锁状态,只有解锁的钱包才能操作。如果操作钱包时报错说锁住了,需要用cleos wallet unlock解锁
Wallets:
[
  "default",
  "user *"
]
  • 导入Productor key到默认用户,Provider是创世链中的第一个账户,也是根账户,它的名字是eosio,在测试网中这步操作非常重要,只有导入这个key才能与区块链交互,不导入的话你会经常遇到Error 3090003。很多直翻老外的教程都没提!!!这个内容在config.ini里对应producer-name和signature-provider项,可以改成别的。
cleos wallet import 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
-- 输出
imported private key for: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

2.账户

  • EOS.IO软件允许所有帐户通过长度最多为12个字符的唯一可读名称引用。该名称由帐户的创建者选择。帐户创建者必须保留存储新帐户所需的RAM,直到新帐户使用令牌来保留其自己的RAM。所以玩EOS需要花钱买邀请,不请自来是进不去的。这是和其它链比较大的区别。
  • EOS账户由Owner Key和Active Key组成,其关系与PC的管理员帐号和访客帐号的关系非常类似,管理员可以添加删除任意权限的用户,而那些创建出来的用户并不能反过来操作管理员。Owner Key相当于管理员的角色,Active Key则通过Owner Key创建并定义功能。比如我们可以创建出只能用于交易的Active Key和只能用于操作合约的Active Key。这种二元授权的方式有效的保护了Owner Key的安全性和私密性,并增加了其灵活度。
-- 创建Onwer Key
root@www:~# cleos create key
Private key: 5JBq7vT8Z86G8X7KGaLKEFdLDL7VepviZKb7ej5jkrNmBdnoJF4
Public key: EOS8YLJY11P67PZdmAobowpHRRvdn9stB8Qsb6Hw4TqgwP2A21DM2
-- 创建Active Key
root@www:~# cleos create key
Private key: 5JdZjK59iWkQNwgNpSynNEkmAuCFpUzZVG1dLPEe6y7UUzZNCjp
Public key: EOS66pKiPCw98bEQa8wLf1KQtxReMZZA9p1FTFBGKN7T6vWr12baE
-- 创建帐号,$ cleos create account ${已认证账户} ${新账户} ${owner public key} ${active public key}。在测试网中已认证账户一律是eosio,不要改成别的,否则会报错。
cleos create account eosio useraccount EOS8YLJY11P67PZdmAobowpHRRvdn9stB8Qsb6Hw4TqgwP2A21DM2 EOS66pKiPCw98bEQa8wLf1KQtxReMZZA9p1FTFBGKN7T6vWr12baE
-- 输出如果是这样,说明账户创建成功了
executed transaction: 3cf1589cfe26ac33757fece6e7cd888d7ddfb64bdfa8abc7a530fa54f4b195dd  200 bytes  875 us
warning: transaction executed locally, but may not be confirmed by the network yet
#         eosio <= eosio::newaccount            {"creator":"eosio","name":"useraccount","owner":{"threshold":1,"keys":[{"key":"EOS8YLJY11P67PZdmAobo...

测试网账户和主网账户有几个比较大的区别:

  • 测试网的已认证账户只能是eosio,而主网可以是任意一个人的账户。
  • 测试网账户名不大于12字符即可,而主网必须是12个字符,不是技术原因造成的,而是BM要把短名字拿去出去排卖,跟qq靓号一个原理。

发表评论

*
*