EOS 合约基础教程 - 创建测试账号(账户)
EOS 账号(账户)是什么呢?
EOS 中的账号(账户)是什么呢?
EOS 中,帐户(账户)是存储在区块链上的授权集合,用于标识发送者 / 接受者。
EOS 中的授权结构非常灵活,也非常复杂,简单来说,就是一个授权,既可以由一个人拥有,也可以由一组个人拥有,具体取决于如何配置权限。
我们甚至可以说,任何人,想要在 EOS 上做一些事情,他必须先有一个账户,才能向区块链发送或接收有效的交易。
本章节接下来的内容,我们将创建三个账户:eosio.token
、hello
、hi
。
列出当前钱包下的所有密钥对
我们可以使用 cleos wallet private_keys
列出当前钱包下的所有密钥对
[yufei@www.twle.cn ~]# cleos wallet private_keys password: [[ "EOS5M2sNqDPZtQoBcRMnPQEnY1MJaVtdWWPx7A3UpcLgtzdLusFVW", "5JvL5wbJeQdgpKDDLRFUyWmHwBpRDgvARn99cS4pXoxZt8pxxxx" ],[ "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3" ],[ "EOS8Bk64uSPPHnEUT4XdYyqZhrdMbCHVpYcP8rvVdA27XHV642esS", "5KdFXLK9An9JcpqVSmm48L2AKqjJwmng2zAFKKDnvkCifNLxxxx" ] ]
注意: 你的钱包下的密钥可能和我不一样,不过没关系
在我上面的钱包中,总共有三个密钥对,所有以 EOS
开头的都是公钥,而第二个则都是私钥。
注意,私钥很重要,千万不要轻易告诉别人
创建测试账户
在前面的章节中,我们已经创建了一个钱包和一个密钥对。接下来我们创建的账户会用到上一章节中创建的密钥对。
然后我们就可以使用 cleos wallet create account
来创建账号了,该命令语法如下
cleos create account [OPTIONS] creator name OwnerKey [ActiveKey] ────┬─────── ──┬── ─┬─ ─┬ ┬── ┬ │ │ │ └ active 权限公钥,可选 │ │ └─ owner 权限公钥 │ └ 要创建的账号,只能是 [0-5a-z.]{1,12} └──创建者,必须是已经存在的账号
创建 eosio.token
账户
例如,下面的命令使用 eosio
作为创建者,使用 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
作为公钥,创建 eosio.token
账户
cleos create account eosio eosio.token EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
该命令执行后,会输出创建账号的事务
executed transaction: ae8ceebcc455cef49fc42a3ba51a65c41a3434f49f0a4a167637f2c280e16511 200 bytes 3893 us # eosio <= eosio::newaccount {"creator":"eosio","name":"eosio.token","owner":{"threshold":1,"keys":[{"key":"EOS6MRyAjQq8ud7hVNYcfnVPJqc...
类似的,我们可以使用相同的密钥对创建多个其它账号
注意: 开发环境可以使用一个密钥对创建多个账号,这样更方便,但是,生产环境,请不要这么做
创建 hello
账户
cleos create account eosio hello EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
创建 hi
账户
cleos create account eosio hi EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
ower 权限和 active 权限的区别?
EOSIO 具有独特的授权结构,为我们的帐户增加了安全性。
一般的交易使用 active
权限即可,该权限可以执行大部分的操作,除了更改账户本身。
而 owner
权限,可以修改账户,添加或者删除权限,更改密钥等等操作。
在日常生产环境中,我们应该保持 ower 权限和 active 权限使用不同的密钥对。这样可以最小化账户的风险。
这样,一旦我们的 active 权限泄露,我们可以使用 ower 权限来重置它
故障排除
如果你在创建账号时触发了钱包已经锁定的错误
可以使用下面的命令来解锁
cleos wallet unlock --password PW5KKXqdm94UCeQ3xSwCmsJy7PJjeEsht8qbYVbG6CUcm4pNJ6Gq2
注意:
PW5KKXqdm94UCeQ3xSwCmsJy7PJjeEsht8qbYVbG6CUcm4pNJ6Gq2
要替换成你自己的钱包密钥