eos账号管理

一个账户可视为在线的访问凭证。nodeos管理着在区块链上发布账户以及与账户相关联的行为。我们通过cleos与nodeos的交互,来实现账户的管理。

钱包与账户之间没有天然的内在联系。账户并不知道钱包的存在,反之钱包也不知道账户的存在。

在区块链上执行操作,需要使用到账号。我们使用cleos向nodeos发起请求来创建账号并且将账号发布到区块链中。在执行创建账号操作之前,我们必须确保nodeos处于运行状态。

1.创建一个新帐户

帐户需要由其他帐户创建。“eosio”是一个可授权账号。当在区块链上进行操作时必须使用eosio账号进行签名。eosio账号同时还是特殊的账号用来启动EOSIO节点,它的密码对信息信息可以在nodeos的配置文件中找到(默认在 ~/.local/shared/eosio/config/config.ini)。

假设你按照之前钱包管理一文中的说明操作,你现在应该有一个处于解锁状态的钱包,其中包含3个密钥对。

确定你使用的是你生成的公钥,而不是下面显示的公钥。

$cleos --wallet-url http://wallet:5555 -u http://server:7777 create account eosio mynewaccount {MyNewAccount owner Public Key} {MyNewAccount active Public Key}

$cleos --wallet-url http://wallet:5555 -u http://server:7777 create account eosio mynewaccount EOS7EzCEh94uN2k59wznzsZDcFVnpZ3wuiYvPSbb8bXDS6U7twKQF EOS5tJQSKKeiTUZEutPo9SWUoCeovV43kWxGuW21K663frcHw7GnN

命令说明:

$ cleos create account ${authorizing_account} ${new_account} ${owner_key} ${active_key}
  • authorizing_account: 授权的账号名称,用来支付账号创建以及后续其他新账号的费用。
  • new_account:希望创建的新账号。
  • owner_key:拥有拥有者权限的账号的公钥(详见账号与权限)。
  • active_key:希望分配给活跃权限公钥。

响应后看起来应该是这样的:

executed transaction: d4a764ae9c728f9a2c95537613445f059e4833d1cde12504f6d6e88ec10951ab  352 bytes  102400 cycles
#         eosio <= eosio::newaccount            {"creator":"eosio","name":"mynewaccount","owner":{"threshold":1,"keys":[{"key":"EOS6MRyAjQq8ud7hVNYc...

请注意,帐户名称必须为小写,且应小于13个字符。(仅包含以下符号.12345abcdefghijklmnopqrstuvwxyz)。请注意,不允许使用6,7,8,9,0。

2.账户信息查询

$cleos -u http://server:7777 get account mynewaccount -j

{
  "account_name": "mynewaccount",
  "permissions": [{
      "perm_name": "active",
      "parent": "owner",
      "required_auth": {
        "threshold": 1,
        "keys": [{
            "key": "EOS5tJQSKKeiTUZEutPo9SWUoCeovV43kWxGuW21K663frcHw7GnN",
            "weight": 1
          }
        ],
        "accounts": []
      }
    },{
      "perm_name": "owner",
      "parent": "",
      "required_auth": {
        "threshold": 1,
        "keys": [{
            "key": "EOS7EzCEh94uN2k59wznzsZDcFVnpZ3wuiYvPSbb8bXDS6U7twKQF",
            "weight": 1
          }
        ],
        "accounts": []
      }
    }
  ]
}

或者也可以将所有帐户链接到给定的公钥:

$cleos  -u http://server:7777 get accounts EOS7EzCEh94uN2k59wznzsZDcFVnpZ3wuiYvPSbb8bXDS6U7twKQF

{
  "account_names": [
    "mynewaccount",
    "test1"
  ]
}
posted @ 2018-08-27 11:16  malakashi  阅读(541)  评论(0编辑  收藏  举报