EOS开发入门2 -- 钱包与账户

在开始所有之前,先确定已经完成了上一篇文章的内容。

EOS开发入门1 -- EOS环境搭建

并且保证nodeos在运行中。

创建一个默认钱包

$ 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.
"PW5JuBXoXJ8JHiCTXfXcYuJabjF9f9UNNqHJjqDVY7igVffe3pXub"

通过cleos命令创建了一个默认的钱包。并返回给我们这个钱包的秘钥。每台机器生成的秘钥跟这个并不一样。记录下这个秘钥,之后会经常用到。钱包创建完成后默认是锁定状态的,现在我们需要解锁钱包。

解锁钱包

$ cleos wallet unlock --password PW5JuBXoXJ8JHiCTXfXcYuJabjF9f9UNNqHJjqDVY7igVffe3pXub
Unlocked: default

使用刚刚给出的秘钥我们已经解锁了默认的钱包。

更安全的解锁钱包方式

上面解锁钱包的方式,会将秘钥记录到bash的历史中,存在安全隐患。更安全的解锁方式是使用交互方式,按照提示输入密码,其实这里也可以粘贴密码。

$ cleos wallet unlock
password:

锁定钱包

出于安全考虑,在不使用钱包时,锁定钱包。

$ cleos wallet lock
Locked: default

加载Bios合约

eosio.bios是eos自带的一个合约,存在于源文件下的/build/contracts/eosio.bios,下面的命令假定当前目录位于源文件的根目录,当然也可以使用绝对路径加载这个合约 ${EOSIO_SOURCE}/build/contracts/eosio.bios

$ cleos set contract eosio build/contracts/eosio.bios -p eosio
Reading WAST...
Assembling WASM...
Publishing contract...
executed transaction: 414cf0dc7740d22474992779b2416b0eabdbc91522c16521307dd682051af083  4068 bytes  10000 cycles
#         eosio <= eosio::setcode               {"account":"eosio","vmtype":0,"vmversion":0,"code":"0061736d0100000001ab011960037f7e7f0060057f7e7e7e...
#         eosio <= eosio::setabi                {"account":"eosio","abi":{"types":[],"structs":[{"name":"set_account_limits","base":"","fields":[{"n...

这个命令的执行结果是使用两个动作(action)生成了一个交易(transaction),这两个动作是:eosio::setcode和eosio::setabi

稍后我们会看到动作可以被多个合约处理。

这个命令的最后一个参数 -p eosio 的含义是使用eosio账户的私钥对操作进行签名。

创建账户

现在我们已经创建了基本的系统合约,接下来我们来创建自己的账户。我们将创建两个账户:user和tester,每个账户都需要一个秘钥与其关联,这个例子中,我们将同一个秘钥关联到两个账户。首先生成一个秘钥

$ cleos create key
Private key: 5Jmsawgsp1tQ3GD6JyGCwy1dcvqKZgX6ugMVMdjirx85iv5VyPR
Public key: EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4

我们看到生成了一个秘钥对,包括一个私钥和一个公钥。然后将这个秘钥对导入到我们的钱包:

$ cleos wallet import 5Jmsawgsp1tQ3GD6JyGCwy1dcvqKZgX6ugMVMdjirx85iv5VyPR
imported private key for: EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4

确保导入的秘钥是你自己实际生成的秘钥,而不是这里的。

创建两个用户帐号

接下来,我们将创建两个帐户user和tester,并使用我们上面创建的密钥。

$ cleos create account eosio user EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4 EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4
...

$ cleos create account eosio tester EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4 EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4
...

cleos create 命令需要两个秘钥,一个用于OwnerKey,另一个用于ActiveKey,在本例中,我们给它两个相同的秘钥。

查看帐号

因为已经加载了 eosio::history_api_plugin 插件,我们可以使用命令查看秘钥控制的帐号。
插件可以通过两种方式加载,命令参数方式和配置文件方式,我们这里是使用的配置文件加载的,所以在命令参数中并没有看到。

$ cleos get accounts EOS7ijWCBmoXBi3CgtK7DJxentZZeTkeUnaSDvyro9dq7Sd1C3dC4
{
  "account_names": [
    "tester",
    "user"
  ]
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 账户与钱包1.1 创造并管理钱包1.2 生成EOS Keys并导入1.3 备份您的钱包1.4 创建账户 2....
    cenkai88阅读 4,006评论 1 7
  • 原文链接 https://medium.com/eosio/eosio-dawn-3-0-now-availabl...
    ansenyu阅读 1,511评论 2 0
  • 先啰嗦几句:本人区块链小白一枚,正在自学EOS应用开发(当然目前也没有培训班培训),我的这个系列文章是我的学习笔记...
    面壁者Z阅读 2,414评论 7 5
  • 偷偷潜入的欲望 七月六号午后的四点 天空黑成了冥界的颜色 太阳无穷的欲望此时 被这恶贯满盈的云遮蔽 失去了理智的暴...
    EgoIsRomance阅读 599评论 1 2
  • 愿你走出半生,归来仍是少年 嗨,亲爱的,我是未知的你,是你心里的那个你。也许你还不知道我是谁,那是因为关于我们...
    太晴明阅读 389评论 0 0