命令行界面钱包

一、综述

命令行界面钱包程序为 keosd,位于 eos/build/programs/keosd 路径下,用于存储交易签名的私钥。keosd在本地节点上运行,并将私钥保存在本地节点上。

如何运行keosd

keosd

默认情况下,keosd会在目录 ~/eosio-wallet 中生成一个基础的配置文件 config.ini。该配置文件中的wallet-dir指定了钱包文件存放目录。

另外,在运行命令行钱包时,可通过配置命令行参数 --config-dir指定config.ini配置文件的目录。该配置文件中保存用于接入http链接的服务器配置http-server-address参数,以及其他用于资源共享的配置参数。

默认情况下,keosd将钱包文件保存在 ~/eosio-wallet 目录下,钱包文件名为:<wallet-name>.wallet。例如,默认钱包文件名为 default.wallet。当建立了其他钱包后,在该目录下会分别建立每个钱包文件,例如当建立了一个名称为”foo”的钱包,会生成一个钱包文件foo.wallet。钱包文件可以通过命令行参数--data-dir存放在指定的目录中。

二、钱包相关命令参考

与keosd交互使用的工具是cleos,该命令在目录eos/build/programs/cleos 目录下。 该工具提供了与keosd交互的各种命令。

- 新建钱包

cleos wallet create ${参数}

参数说明: -n, —name 文本,钱包名称 如果不提供钱包名称,则会创建一个默认钱包(default.wallet)

- 打开钱包

打开一个已经创建的钱包。在才做一个钱包前需要先打开。

cleos wallet open ${参数}

参数说明: -n, —name 文本,钱包名称

- 锁定钱包

cleos wallet lock ${参数}

参数说明: -n, —name 文本,钱包名称 当节点nodeos被关闭或者钱包服务keosd被关闭,钱包会被锁定。当重启钱包服务后,需要解锁unlock钱包。

- 解锁钱包

cleos wallet unlock ${参数}

参数说明: -n, —name 文本,钱包名称 —password 钱包密钥,如果不使用此参数,则会提示输入密钥

- 导入私钥到钱包

cleos wallet import ${参数} 私钥

参数说明: -n, —name 文本,钱包名称

- 钱包列表

cleos wallet list

列出所有钱包,如果钱包名称后出现*号,说明该钱包已经解锁

- 显示私钥

现实所有已经解锁的钱包公钥(也就是钱包地址)

cleos wallet keys

三、账户管理

- 生成密钥对

cleos create key

- 创建账号

cleos create account 节点 账户名 Owner的公钥 Active的公钥

如:

  1. cleos create account eosio eosio.token EOS4wM7RcsymSrjTR4S4RixzrRPJpfz1hNrToa85kEW34bSMu7e8Z EOS4wM7RcsymSrjTR4S4RixzrRPJpfz1hNrToa85kEW34
  2. bSMu7e8Z

注意:

  • 在主网上,帐号可以是单个12个字符+数字
  • Owner和Active公钥可以是不同,也可以相同

- 显示指定公钥下的所有帐号

cleos get accounts 公钥

四、使用nodeos管理钱包

除了使用keosd来管理你的钱包外,还能使用nodeos来管理钱包。虽然并不推荐使用nodeos来管理钱包,但是在开发与测试阶段非常有用。 不建议同时使用keosdnodeos来管理钱包,虽然不会出现什么问题,但很容易引起混淆。

如果想使用nodeos来管理钱包的话,在启动nodeos时,需要添加参数eosio::wallet_api_plugin,或者也可以在配置文件中做相应设置。(wiki教程中启动nodeos时,加入了eosio::wallet_api_plugin参数,因此使用wiki中的命令启动节点是,无需单独启动keosd

使用方法1:

cd build/programs/nodeos
./nodeos -e -p eosio —plugin eosio::wallet_api_plugin

使用方法2: 在config.ini文件中添加:

plugin = eosio::wallet_api_plugin

注意:当使用nodeos来管理钱包时,如果nodeos关闭,钱包将会被加锁。重新启动nodeos后,需要使用unlock命令解锁钱包。