# 管理钱包
通过钱包功能,您可以创建、管理本地账户和 worker key、设置默认账户、查看所有账户、重置 keystore 文件密码、导入私钥等。
wallet 命令如下表所示:
命令 | 说明 |
---|---|
topio wallet createAccount | 创建账户。 |
topio wallet importAccount | 导入账户。 |
topio wallet createKey | 为账户创建 worker key。 |
topio wallet listAccounts | 查看钱包里所有账户。 |
topio wallet setDefaultAccount | 设置默认账户,用来发送交易。 |
topio wallet resetKeystorePwd | 重置 keystore 文件密码。 |
topio wallet exportAccount | 导出私钥。 |
# 创建账户
在本地创建账户,可同时创建多个账户。
每个账户会有唯一一对公私钥对,称之为 owner key,它拥有账户的全部权限,包括且不限于发交易、挖矿等。
注意
建议您在创建账户后立刻备份您的 keystore 文件。
请记住keystore 文件的密码,如果丢失了密码,您将无法使用该账户。且系统没有“忘记密码”选项,只可以通过密码提示找回密码。
请安全保管您的 keystore 文件,不要与其他人分享您的 keystore 文件和文件密码,以免造成资产损失!
keystore 文件存储目录:
root 用户:
/root/topnetwork/keystore
非 root 用户:
/home/您登陆服务器的用户名/topnetwork/keystore
请求方式
topio wallet createAccount
请求参数
无。
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-f, --pwd_file_path | - | - | 以密码文件的方式创建账户。 |
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
Account Address | String | 为了简便实用,采用“账户地址”替代公钥从而代表账户。 您可以公开您的账户地址,其他人需要账户地址和您进行互动,例如给您的账号地址转账,或者您通过账号地址向别人发送一笔交易。 此处创建的为普通用户账户地址,以"T80000"为标识开头。 |
Owner public-key | String | 账户公钥,和私钥总是成对出现,私钥存储在 owner keystore 文件中,关于 keystore 文件,请参见 账户协议 中相关内容。 公钥用于加密及验签。 |
请求样例
topio wallet createAccount
运行命令后,根据提示输入需要设置的密码和密码提示。
Please set a password for the account keystore file.
Please input password again
Please set a password hint! If don't, there will be no hint when you forget your password.
返回样例
成功返回
Successfully create an account locally! Account Address: T800002276a7d58218ac4978733e5cca927a7d86cb7c87 Owner public-Key: BAW5r2JJd/j7Wr6iISO7ki5+YE2OKflaG7dVbV+u1EkPpcAqe3Ou10EPNlKjlI4EsAJR9LBc+Fv9DC1Znm8rKcU= You can share your public key and account address with anyone. Others need them to interact with you! You must nerver share the private key or account keystore file with anyone! They control access to your funds! You must backup your account keystore file! Without the file, you will not be able to access the funds in your account! You must remember your password!Without the password,it's impossible to use the keystore file!
失败提示
输入空密码时提示:
Error: empty password not allowed!
# 导入账户
通过导入私钥的方式导入账户。
请求方式
topio wallet importAccount
请求参数
无。
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-f, --pwd_file_path | - | - | 导入账户时为该账户设置密码,设置的密码从文件读取。 |
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
Account Address | String | 导入的私钥所对应的账户地址。 |
Public-Key | String | 公钥,用于加密及验签。 |
请求样例
topio wallet importAccount
运行命令后,根据提示输入需要设置的密码和导入的私钥。
Please set a password for the account keystore file.
Please input password again
Please set a password hint! If don't, there will be no hint when you forget your password.
Please input private key.
返回样例
Import successfully.
Account Address: T80000968927100f3cb7b23e8d477298311648978d8613
Public-Key: BK2CfxnSP0cL9/dbi6b3krWUlQP1jP4EIHu5Y5c2vMBNLMYMOE8K3mqOubDPQXBXc/D4ydtR0LDyWUEyxHO/ZZU=
# 创建 worker key
给一个已存在的账户绑定多把公私钥对,这种公私钥对称之为 worker key。它可以被授予挖矿的权限,但没有发交易的权限。我们推荐您在线使用 worker key 挖矿,离线保管 owner key,让您的资产更加安全。
请求方式
topio wallet createKey
请求参数
参数名称 | 是否必选 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
account_addr | 否 | 默认账户 | String | worker key 所属账户。如不指定,将为默认账户创建 worker key。 |
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-f, --pwd_file_path | - | - | 以密码文件的方式创建worker key。 |
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
Public Key | String | 公钥,和私钥总是成对出现。 用于加密及验签。 |
worker public_key | String | worker key 的公钥。 |
请求样例
topio wallet createKey
运行命令后,根据提示输入需要设置的密码和密码提示。
Please set a password for the keystore file.
Please input password again
Please set a password hint! If don't, there will be no hint when you forget your password.
返回样例
成功返回
Successfully create a worker keystore file! Account Address: T800002276a7d58218ac4978733e5cca927a7d86cb7c87 worker public-key: BAW5r2JJd/j7Wr6iISO7ki5+YE2OKflaG7dVbV+u1EkPpcAqe3Ou10EPNlKjlI4EsAJR9LBc+Fv9DC1Znm8rKcU= You can share your public key and account address with anyone. Others need them to interact with you! You must nerver share the private key or account keystore file with anyone! They control access to your funds! You must backup your account keystore file! Without the file, you will not be able to access the funds in your account! You must remember your password if you set it! Without the password, it's impossible to use the keystore file!
失败返回
输入空密码时提示:
Error: empty password not allowed!
未指定账户且未设置默认账户返回:
Please set a default account by command `topio wallet setDefaultAccount`. Create worker key failed, you should specify an account address, or set a default account.
# 列出钱包中所有账户
列出钱包中所有账户。
请求方式
topio wallet listAccounts
请求参数
无。
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-h,--help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
account | String | 账户地址。如账户地址后标记"default account",表示此账户是当前正在使用的账户。 |
owner public-key | String | 账户 base58 格式公钥。如 owner public-key 后标记"registered as minerkey",表示此 owner key 被注册成为 miner key。 |
balance | Uint64 | 账户余额,单位 TOP。 请注意 balance 显示为"-"和"0"的区别:
|
nonce | Uint64 | 该账户最新共识成功的交易序号,唯一。 |
worker public-key | String | 此账户的 worker key 的 base58 格式公钥列表。如 worker public-key 后标记"registered as minerkey",表示此 worker key 被注册成为 miner key。 |
请求样例
topio wallet listAccounts
返回样例
成功返回
No default account account #0: T8000066ab344963eaa071f9636faac26b0d1a39900325 owner public-key: BFPQ1X11sm+OU9ua3DeEnzwYb7npoa+uhJXcdi4i205y7PaXzfDwAUGGdaV6qj3k2V7lUQiFDuofl5CaFhjaXlQ= balance: 10000000.000000 TOP nonce: 0 worker public-key list: public key #0: BG2KavysdOhOzfHPIHR2kBpq2SMw/M+n4S0Q90PS7bVZ9tV2ipPsbKeQmgyBx+BErOH0kgnGFvq++3rj3v6YxfA= ------------------------------------------------------ account #1: T8000085a8e8acd53c72dca85dcb002a6710796975b4ba owner public-key: BJL6rIirL1m7ox+hKHymSISULh8HPYI8772Wq7h0oUga8exzuRrTR599inROGNkGK5O8buwFhe+E2WKyYD3l8tE= balance: 30000000.000000 TOP nonce: 0
失败返回
There is no account in wallet.
# 设置默认账户
设置默认账户可以在连续操作时减少输入keysotre密码的次数
以下场景需要设置默认账户:
钱包中有多个账户,需要设置一个默认账户,用于发送交易。
切换发送交易的账户。
在 TOPIO 前台 30 分钟内无任何操作(查询或发送交易),您设置的默认账户将失效,需要重新设置一个默认账户。
请求方式
topio wallet setDefaultAccount
请求参数
参数名称 | 是否必选 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
account_addr | 是 | - | String | 账户地址。 |
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-f, --pwd_file_path | - | - | 以密码文件的方式设置默认账户。 |
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
无。
请求样例
topio wallet setDefaultAccount T8000085a8e8acd53c72dca85dcb002a6710796975b4ba
运行命令后,如果keystore设置过密码,根据提示输入keystore的密码。
Please input password.
返回样例
成功返回
Set default account successfully.
失败返回
账户 owner key 不存在:
The account's owner keystore file does not exist in wallet.
密码错误:
Wrong password, set default account failed.
# 重置 keystore 文件密码
支持重置 owner keystore 和 worker keystore 文件密码。
请求方式
topio wallet resetKeystorePwd
请求参数
参数名称 | 是否必选 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
public_key | 是 | - | String | owner key 或者 worker key 的公钥。 |
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-h, --help | - | - | 查看命令帮助信息。 |
返回参数
无。
请求样例
旧格式:
topio wallet resetKeystorePwd BERrbuiBZ66gYHHhx2/4OzqHwqC+DrJRh7vdPz5e8fHD+OwGhgmRjnoNbyM2rnI9eXTjuSOvAGG5J1tOAyMFnVQ=
新格式:
topio wallet resetKeystorePwd ad827f19d23f470bf7f75b8ba6f792b5949503f58cfe04207bb9639736bcc04d2cc60c384f0ade6a8eb9b0cf41705773f0f8c9db51d0b0f2594132c473bf6595
运行命令后,根据提示输入旧密码和需要设置的新密码和密码提示。
Please input old password. [If the keystore has no password, press Enter directly.(empty password will be deprecated soon)]
Please set a new password. Pressing Ctrl+C can exit the command.
Please input password again
Please set a password hint! If don't, there will be no hint when you forget your password.
返回样例
成功返回
Successfully reset password!
失败返回
输入错误旧密码返回:
Old password wrong, Reset password failed.
# 导出私钥
导出并展示钱包私钥和 keystore 文件内容。导出后,您可复制并保存在本地。
请求方式
topio wallet exportAccount
请求参数
参数名称 | 是否必选 | 默认值 | 类型 | 说明 |
---|---|---|---|---|
account_addr | 是 | - | String | 账户地址。 |
选项
选项名称 | 默认值 | 类型 | 说明 |
---|---|---|---|
-h,--help | - | - | 查看命令帮助信息。 |
返回参数
参数名称 | 类型 | 说明 |
---|---|---|
Account Address | String | 账户地址。当导出 keystore 文件时,此处会打印对应的账户地址。 |
Private-Key | String | key 的私钥。 |
请求样例
topio wallet exportAccount T80000968927100f3cb7b23e8d477298311648978d8613
运行命令后,如果keystore设置过密码,根据提示输入keystore的密码。
Please input password.
返回样例
关于 Keystore 文件格式,可参见 账户协议。
Export successfully.
Keystore file: /root/topnetwork/keystore/T80000968927100f3cb7b23e8d477298311648978d8613
Account Address: T80000968927100f3cb7b23e8d477298311648978d8613
Private-Key: b0032f8057051b611a7c0ea373da4d7a6764351030ed497e6134fd9e11775b19
{
"account_address" : "T80000968927100f3cb7b23e8d477298311648978d8613",
"address" : "968927100f3cb7b23e8d477298311648978d8613",
"crypto" : {
"cipher" : "aes-128-ctr",
"cipherparams" : {
"iv" : "e40a554c807b913c6e882e933ee6c103"
},
"ciphertext" : "762381ac2219511c647d27424761e81fecc14170eeff6e20412d6c9311149060",
"kdf" : "scrypt",
"kdfparams" : {
"dklen" : 32,
"n" : 262144,
"p" : 1,
"r" : 8,
"salt" : "69c473d9a1ae16ad7cbab057101ccb9632d4109bf7f44e7ff2eba59e269f9932"
},
"mac" : "7d3c31b6aa3f43885682259e6e632b44799700cc7030bdbc1dddb2f587066dac"
},
"hint" : "",
"id" : "b2951865-c391-9d98-ff85-83e149f88990",
"key_type" : "owner",
"public_key" : "BK2CfxnSP0cL9/dbi6b3krWUlQP1jP4EIHu5Y5c2vMBNLMYMOE8K3mqOubDPQXBXc/D4ydtR0LDyWUEyxHO/ZZU=",
"version" : 3
}