1.三大组件
这是EOS官网的组件架构关系图,描述了不同组件之间的关系:
- nodeos - 服务器端的区块链节点组件
- keosd - 钱包管理组件
- cleos - 操作 nodeos 和 keosd 的命令行工具
本篇内容大部分翻译自官方文档
本篇对应的官方文档
:
https://developers.eos.io/eosio-nodeos/docs/learn-about-wallets-keys-and-accounts-with-cleos
cleos
指令大全
https://developers.eos.io/eosio-cleos/reference
2.创建和管理钱包
2.1 创建钱包
yuyangdeMacBook-Pro:~ yuyang$ cd /Users/yuyang/eos/build/programs/cleos
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
"/usr/local/bin/keosd" launched
Wallets:
[]
可以看到keosd
默认启动,并且还没有钱包
yuyangdeMacBook-Pro:cleos yuyang$ 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.
"PW5KQwfoDJDUUTTEdZzTpSHYfmvSWxL23jefVHLi6UL74Uw9em6WA"
创建了一个钱包,默认名为default.wallet
,记下密码用于后面解锁钱包,keosd
将钱包文件存储在~/eosio-wallet
文件夹中
查看钱包,*
表示该钱包文件处于解锁状态
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default *"
]
2.2 创建自定义名称钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet create -n yuyang
Creating wallet: yuyang
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5J3F77veqpEkCKfc6GXCjj1eDXzWGVPiNjoFZNsQD7TvcT3X31V"
-n
后面跟钱包名称
查看钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default *",
"yuyang *"
]
2.3 锁定钱包
锁定默认钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet lock
Locked: default
查看钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default",
"yuyang *"
]
可以看到default
没有*
号,说明已上锁
锁定指定名称钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet lock -n yuyang
Locked: yuyang
查看钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default",
"yuyang"
]
两个钱包都已锁定
2.4 解锁钱包
解锁默认钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet unlock
password: Unlocked: default
在password
提示出现时复制对应的钱包密码
查看钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default *",
"yuyang"
]
可以看到default
钱包已解锁
解锁指定名称钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet unlock -n yuyang
password: Unlocked: yuyang
在password
提示出现时复制对应的钱包密码
查看钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default *",
"yuyang *"
]
两个钱包都已解锁
也可以直接在解锁时加入--password
参数,然后输入钱包密码进行解锁。不过这样会导致钱包密码会显示在console
记录上
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet unlock -n yuyang --password PW5J3F77veqpEkCKfc6GXCjj1eDXzWGVPiNjoFZNsQD7TvcT3X31V
Unlocked: yuyang
查看钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default *",
"yuyang *"
]
3.Keosd
因为接下来的操作涉及到另一个组件keosd
,所以这里先插入讲解下。
keosd
位于eos/build/programs/keosd
下,作用是存储私钥,以便cleos
用以签署交易并发送到区块链中。keosd
在本机运行,并且将私钥存储在本地。
keosd
会随着cleos
自动启动。
3.1 自动锁定
keosd
会在没有钱包指令的15分钟后自动锁定钱包,可以在~/eosio-wallet/config.ini
中进行时长修改。可以设置一个超大数来取消这项功能。如果设为0,将会导致钱包永久锁定。
3.2 手动开启
yuyangdeMacBook-Pro:nodeos yuyang$ cd /Users/yuyang/eos/build/programs/keosd
yuyangdeMacBook-Pro:keosd yuyang$ keosd
3.3 停止Keosd
停止keosd
最有效的方法是找到keosd
的进程,然后发送结束指令。需要注意的是cleos
会自动开启keosd
,这可能会导致其多个实例在运行。使用以下指令找到并结束所有keosd
实例。
$ pgrep keosd
3178
24991
$ pkill keosd
3.4 其他选项
yuyangdeMacBook-Pro:keosd yuyang$ keosd --help
Application Options:
Config Options for eosio::http_plugin:
--http-server-address arg (=127.0.0.1:8888)
The local IP and port to listen for
incoming http connections; set blank to
disable.
--https-server-address arg The local IP and port to listen for
incoming https connections; leave blank
to disable.
--https-certificate-chain-file arg Filename with the certificate chain to
present on https connections. PEM
format. Required for https.
--https-private-key-file arg Filename with https private key in PEM
format. Required for https
--access-control-allow-origin arg Specify the Access-Control-Allow-Origin
to be returned on each request.
--access-control-allow-headers arg Specify the Access-Control-Allow-Header
s to be returned on each request.
--access-control-allow-credentials Specify if Access-Control-Allow-Credent
ials: true should be returned on each
request.
Config Options for eosio::wallet_plugin:
--wallet-dir arg (=".") The path of the wallet files (absolute
path or relative to application data
dir)
--unlock-timeout arg Timeout for unlocked wallet in seconds.
Wallets will automatically lock after
specified number of seconds of
inactivity. Activity is defined as any
wallet command e.g. list-wallets.
--eosio-key arg eosio key that will be imported
automatically when a wallet is created.
Application Config Options:
--plugin arg Plugin(s) to enable, may be specified
multiple times
Application Command Line Options:
-h [ --help ] Print this help message and exit.
-v [ --version ] Print version information.
--print-default-config Print default configuration template
-d [ --data-dir ] arg Directory containing program runtime
data
--config-dir arg Directory containing configuration
files such as config.ini
-c [ --config ] arg (=config.ini) Configuration file name relative to
config-dir
-l [ --logconf ] arg (=logging.json) Logging configuration file name/path
for library users
3.5 重启后操作钱包
现在另开一个命令窗口,停止keosd
yuyangdeMacBook-Pro:keosd yuyang$ pgrep keosd
827
yuyangdeMacBook-Pro:keosd yuyang$ pkill keosd
回到cleos
命令窗口,查看钱包
yuyangdeMacBook-Pro:nodeos yuyang$ cleos wallet list
"/usr/local/bin/keosd" launched
Wallets:
[]
由于cleos
会检查keosd
实例是否在运行,如果没有,则会启动其实例。
在操作钱包文件或者查看钱包列表前,需要先打开钱包文件。当我们停止keosd
时,钱包文件会被上锁。当keosd
重新启动后,钱包文件并未打开。输入以下命令打开并显示默认钱包default.wallet
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet open
Opened: default
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default"
]
打开指定名称钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet open -n yuyang
Opened: yuyang
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default",
"yuyang"
]
4.生成并导入私钥对
生成两对公钥/私钥对
yuyangdeMacBook-Pro:cleos yuyang$ cleos create key
Private key: 5HqW8BxjUgNgWJQNNnvMVtLWRrwqmzDXnH5kZjFq5RmmTxUGvLx
Public key: EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM
yuyangdeMacBook-Pro:cleos yuyang$ cleos create key
Private key: 5JahG29Q57gVHjtWK2YD614Fodfb6Dr72zvN3oCKLGKJaEvFoew
Public key: EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN
现在我们有两队密钥对了,此时,他们只是随意生成的密钥对,并且本身没有任何权限。
下一步,我们将两组密钥对中的私钥导入钱包。
现在先解锁default.wallet
钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default",
"yuyang"
]
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet unlock --password PW5KQwfoDJDUUTTEdZzTpSHYfmvSWxL23jefVHLi6UL74Uw9em6WA
Unlocked: default
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default *",
"yuyang"
]
导入两个私钥到default.wallet
钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet import --private-key 5HqW8BxjUgNgWJQNNnvMVtLWRrwqmzDXnH5kZjFq5RmmTxUGvLx
imported private key for: EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet import --private-key 5JahG29Q57gVHjtWK2YD614Fodfb6Dr72zvN3oCKLGKJaEvFoew
imported private key for: EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN
可以看到,导入某个私钥成功后,会显示对应的公钥
现在查看所有解锁状态下钱包中的公钥
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet keys
[
"EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM",
"EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN"
]
除了我们刚才生成的密钥,还多了一个EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
公钥。这个公钥是~/Library/Application Support/eosio/nodeos/config
中的nodeos
组件配置文件config.ini
的默认值。
增加default.wallet
钱包密码的参数,查看default.wallet
钱包中的公私钥对
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet private_keys --password PW5KQwfoDJDUUTTEdZzTpSHYfmvSWxL23jefVHLi6UL74Uw9em6WA
[[
"EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM",
"5HqW8BxjUgNgWJQNNnvMVtLWRrwqmzDXnH5kZjFq5RmmTxUGvLx"
],[
"EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
],[
"EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN",
"5JahG29Q57gVHjtWK2YD614Fodfb6Dr72zvN3oCKLGKJaEvFoew"
]
]
我们也为yuyang.wallet
导入两组密钥对
先解锁yuyang.wallet
钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet unlock -n yuyang --password PW5J3F77veqpEkCKfc6GXCjj1eDXzWGVPiNjoFZNsQD7TvcT3X31V
Unlocked: yuyang
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet list
Wallets:
[
"default *",
"yuyang *"
]
生成两对公钥/私钥对
yuyangdeMacBook-Pro:cleos yuyang$ cleos create key
Private key: 5Kje821Tq2yh1MuVrPA4fxDXMXyhktRAhMEJp1rZPd58T3MXAB7
Public key: EOS6JCDcFJbkDBQuP8f5K9ELbDPMgtPo2dNU12ezNKAHi21SXgvSL
yuyangdeMacBook-Pro:cleos yuyang$ cleos create key
Private key: 5Jf83kKqgEATTu8vfhvwHJxV5SfJU6emKXCCvA3zDWVBXjYowaY
Public key: EOS7ZqcVEdGDmzKmhnCfjK3x9wzjqDd3mmv3hXtqWMVa1keVoU1Nc
指定钱包名称参数,导入两个私钥到yuyang.wallet
钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet import --private-key 5Kje821Tq2yh1MuVrPA4fxDXMXyhktRAhMEJp1rZPd58T3MXAB7 -n yuyang
imported private key for: EOS6JCDcFJbkDBQuP8f5K9ELbDPMgtPo2dNU12ezNKAHi21SXgvSL
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet import --private-key 5Jf83kKqgEATTu8vfhvwHJxV5SfJU6emKXCCvA3zDWVBXjYowaY -n yuyang
imported private key for: EOS7ZqcVEdGDmzKmhnCfjK3x9wzjqDd3mmv3hXtqWMVa1keVoU1Nc
现在查看所有解锁状态下钱包中的公钥
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet keys
[
"EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM",
"EOS6JCDcFJbkDBQuP8f5K9ELbDPMgtPo2dNU12ezNKAHi21SXgvSL",
"EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"EOS7ZqcVEdGDmzKmhnCfjK3x9wzjqDd3mmv3hXtqWMVa1keVoU1Nc",
"EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN"
]
可以看到又多了两个公钥
查看yuyang.wallet
钱包中的公私钥对,注意这里需要传两个参数,钱包密码和钱包名称,如果不传钱包名称,eosio
会认为你查询的是默认钱包default.wallet
的公私钥对
yuyangdeMacBook-Pro:cleos yuyang$ cleos wallet private_keys --password PW5J3F77veqpEkCKfc6GXCjj1eDXzWGVPiNjoFZNsQD7TvcT3X31V -n yuyang
[[
"EOS6JCDcFJbkDBQuP8f5K9ELbDPMgtPo2dNU12ezNKAHi21SXgvSL",
"5Kje821Tq2yh1MuVrPA4fxDXMXyhktRAhMEJp1rZPd58T3MXAB7"
],[
"EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
],[
"EOS7ZqcVEdGDmzKmhnCfjK3x9wzjqDd3mmv3hXtqWMVa1keVoU1Nc",
"5Jf83kKqgEATTu8vfhvwHJxV5SfJU6emKXCCvA3zDWVBXjYowaY"
]
]
正常返回了yuyang.wallet
钱包中的公私钥对
5. Nodeos
因为接下来创建账号需要启动nedeos
,所以先了解下nedeos
官方文档Local Single-node Testnet
nedeos
位于build/programs/nodeos
文件夹中,使用以下命令启动单节点区块链
cd build/programs/nodeos
./nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin
成功后开始产出区块
1575001ms thread-0 chain_controller.cpp:235 _push_block ] initm #1 @2017-09-04T04:26:15 | 0 trx, 0 pending, exectime_ms=0
1575001ms thread-0 producer_plugin.cpp:207 block_production_loo ] initm generated block #1 @ 2017-09-04T04:26:15 with 0 trxs 0 pending
1578001ms thread-0 chain_controller.cpp:235 _push_block ] initc #2 @2017-09-04T04:26:18 | 0 trx, 0 pending, exectime_ms=0
1578001ms thread-0 producer_plugin.cpp:207 block_production_loo ] initc generated block #2 @ 2017-09-04T04:26:18 with 0 trxs 0 pending
...
eosio generated block 046b9984... #101527 @ 2018-04-01T14:24:58.000 with 0 trxs
eosio generated block 5e527ee2... #101528 @ 2018-04-01T14:24:58.500 with 0 trxs
...
此时,eosio
作为一个单独的区块生产者
5.1 建议步骤
nedeos
的配置文件位于~/Library/Application Support/eosio/nodeos/config
文件夹中,可以通过编辑该文件,以便直接使用nedeos
命令生产区块。
修改或新增以下内容:
# Enable production on a stale chain, since a single-node test chain is pretty much always stale
enable-stale-production = true
# Enable block production with the testnet producers
producer-name = eosio
# Load the block producer plugin, so you can produce blocks
plugin = eosio::producer_plugin
# As well as API and HTTP plugins
plugin = eosio::chain_api_plugin
plugin = eosio::http_plugin
# This will be used by the validation step below, to view history
plugin = eosio::history_api_plugin
现在可以直接使用nedeos
命令生产区块了
yuyangdeMacBook-Pro:nodeos yuyang$ nodeos
nedeos
将区块数据存储在文件~/Library/Application Support/eosio/nodeos/data
中
6. 创建账户
6.1 准备工作
我们使用cleos
发送指令给nodeos
来创建账户并提交到区块链上,所以需要启动一个测试用的单节点
我们需要keosd
和nodeos
都处于运行状态。它们当前都使用的是同一个端口号8888
。如果只想启动nodeos
,我们需要将keosd
的端口号改为8899
,有两种方法可以进行修改:
编辑
keosd
的配置文件~/eosio-wallet/config.ini
,将http-server-address
属性改为http-server-address = 127.0.0.1:8899
启动
keosd
时加入--http-server-address=localhost:8899
参数
注意:第一种方式已证明无效。如果想使用这种方式,需要将
~/eosio-wallet/config.ini
拷贝到其他文件夹,名称不变。此时修改其中的地址,然后在启动keosd
时指定配置文件位置。例如:keosd --config-dir /Users/yuyang/eosio-wallet/config
。config.ini
文件位于/Users/yuyang/eosio-wallet/config
文件夹中。
现在重新启动keosd
,使用命令参数的方式指定端口号:
yuyangdeMacBook-Pro:keosd yuyang$ pgrep keosd
808
yuyangdeMacBook-Pro:keosd yuyang$ pkill keosd
yuyangdeMacBook-Pro:keosd yuyang$ keosd --http-server-address=localhost:8899
2730059ms thread-0 wallet_plugin.cpp:41 plugin_initialize ] initializing wallet plugin
2730060ms thread-0 http_plugin.cpp:247 plugin_initialize ] configured http to listen on localhost:8899
2730060ms thread-0 http_plugin.cpp:285 plugin_startup ] start listening for http requests
2730060ms thread-0 wallet_api_plugin.cpp:70 plugin_startup ] starting wallet_api_plugin
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/create
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/get_public_keys
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/import_key
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/list_keys
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/list_wallets
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/lock
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/lock_all
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/open
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/set_timeout
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/sign_transaction
2730060ms thread-0 http_plugin.cpp:325 add_handler ] add api url: /v1/wallet/unlock
解锁default.wallet
钱包。因为现在keosd
已经重启并且监听端口改为了8899
,所以需要新增钱包指令的url
参数:
yuyangdeMacBook-Pro:cleos yuyang$ cleos --wallet-url=http://localhost:8899 wallet unlock
password: Unlocked: default
查看钱包
yuyangdeMacBook-Pro:cleos yuyang$ cleos --wallet-url=http://localhost:8899 wallet list
Wallets:
[
"default *"
]
新开一个命令行,启动nodeos
:
yuyangdeMacBook-Pro:nodeos yuyang$ nodeos
在此教程中,eosio
是授权账户。在区块链上进行actions
操作时,需要使用eosio
的密钥进行签名。eosio
的密钥位于~/Libraries/Application Support/eosio/nodeos/config/config.ini
中,内容如下:
# KEOSD: is the URL where keosd is available and the approptiate wallet(s) are unlocked (eosio::producer_plugin)
signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
查看default.wallet
钱包中的公钥
yuyangdeMacBook-Pro:cleos yuyang$ cleos --wallet-url=http://localhost:8899 wallet keys
[
"EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM",
"EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN"
]
查看default.wallet
钱包中的密钥对
yuyangdeMacBook-Pro:cleos yuyang$ cleos --wallet-url=http://localhost:8899 wallet private_keys --password PW5KQwfoDJDUUTTEdZzTpSHYfmvSWxL23jefVHLi6UL74Uw9em6WA
[[
"EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM",
"5HqW8BxjUgNgWJQNNnvMVtLWRrwqmzDXnH5kZjFq5RmmTxUGvLx"
],[
"EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"
],[
"EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN",
"5JahG29Q57gVHjtWK2YD614Fodfb6Dr72zvN3oCKLGKJaEvFoew"
]
]
可以看到default.wallet
钱包已经包含了eosio
的密钥对了
6.2 创建账户
有关账户和权限的深入理解,可以阅读这篇文章
EOS开发(二)账户和权限说明
创建账户的格式如下:
cleos create account AUTHORIZING_ACCOUNT NEW_ACCOUNT OWNER_KEY ACTIVE_KEY
authorizing_account
新账户的创建者。在此教程中,由于我们运行的是一个单节点测试网络,所以我们拥有一个名为eosio
的系统账户,因此我们使用eosio
作为新账户的创建者new_account
要创建的账户名称owner_key
账户owner
权限的公钥active_key
账户active
权限的公钥
新账户的名称需要遵循以下规则:
小于13个字符
只能包含以下字符
.12345abcdefghijklmnopqrstuvwxyz
我们使用myaccount
作为新账户名称,使用之前生成并导入default.wallet
钱包的两个公钥EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM
和EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN
作为owner
权限和active
权限的公钥
yuyangdeMacBook-Pro:cleos yuyang$ cleos --wallet-url=http://localhost:8899 create account eosio myaccount EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN
2018-08-24T09:09:44.488 thread-0 main.cpp:2870 main ] Failed with error: Assert Exception (10)
pivot != std::string::npos: No delimiter in string, cannot determine type: EOSK2KfSbsj1Asfy2fczyYA37ycoWQtq1pb9wWDYgCaeghQMoc6cLFNL6B8msL8ffEsp1oZsWPTqe2XMeALypwNw6ivQbdoLU
这里我失败了。错误也很奇怪,查了很久,试了很多方法都不行,最后删了整个eos
文件夹重新git
了一次代码就好了。不知道是不是我之前git
的代码的版本有这个BUG
。
成功提示:
yuyangdeMacBook-Pro:cleos yuyang$ cleos --wallet-url=http://localhost:8899 create account eosio myaccount EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN
executed transaction: 4e0e59dd56b8b3b9d9c9befd3a53a6e37845b9ad83739a5e54a7a9145a79bba6 200 bytes 336 us
# eosio <= eosio::newaccount {"creator":"eosio","name":"myaccount","owner":{"threshold":1,"keys":[{"key":"EOS54RjRpGQbNhmz8gKspmH...
2018-08-25T02:14:18.568 thread-0 main.cpp:455 print_result warning: transaction executed locally, but may not be confirmed by the network yet
6.2 查询账户
在节点查询我们刚才创建的myaccount
账户:
yuyangdeMacBook-Pro:cleos yuyang$ cleos --wallet-url=http://localhost:8899 get account myaccount
permissions:
owner 1: 1 EOS54RjRpGQbNhmz8gKspmH4DwPCXd6rhPy3U1UGZzjoxssAJALUM
active 1: 1 EOS8GJ9YdSKcSfFcUXYff8MU4ifQLFiHGBNZ8VkSdDT7wcjnnL4gN
memory:
quota: unlimited used: 2.66 KiB
net bandwidth:
used: unlimited
available: unlimited
limit: unlimited
cpu bandwidth:
used: unlimited
available: unlimited
limit: unlimited