[关闭]
@hitchhacker 2018-07-23T13:26:57.000000Z 字数 3043 阅读 2311

主网上的账户操作 | 大狗教你 EOS 开发(二)

0 连接主网

通过以下命令让 cleos 连上主网:

alias cleos="cleos --wallet-url http://127.0.0.1:8900 -u http://mainnet.genereos.io"

几个主网节点地址供参考:

http://mainnet.genereos.io
http://mainnet.eoswz.com
http://mainnet.eoscalgary.io
http://p2p.meet.one:8888
http://eosio.tc.ink
https://api-eos.ono.chat
https://api.mainnet.eospace.io

目前比较好用的测试网络:

国外:http://jungle.cryptolions.io
国内:https://eosfans.io/wiki/eos-party-testnet

连接之后可以用 cleos get info 命令来查看是否连接成功。

1 创建本地钱包并导入私钥

cleos wallet create

create_wallet.png-126.9kB

cleos wallet钱包操作命令一览:
Subcommands:
create 在本地创建一个新钱包。
open 打开一个现有钱包。
lock 锁定钱包
lock_all 锁定所有未锁定的钱包
unlock 解锁钱包
import 将私钥导入钱包
remove_key 将密钥对移出钱包
create_key 在钱包中创建私钥
list 列出现有钱包,打 * 号的是锁定的
keys 列出所有未锁定钱包的公钥
private_keys 列出一个未锁定钱包的私钥(需要该钱包的私钥)
stop 停止 keosd

*以上操作均带有可选参数:-n,--name TEXT=default,TEXT=后面的是钱包名字

会返回给你一个钱包的私钥,保存下来。

钱包一段时间不用会自动锁定,如果锁定的话用钱包的私钥解锁。

cleos wallet unlock

输入上述命令后会让你输入钱包私钥,输入即可。

2 注册 EOS 账户名

注册 EOS 账户名分为两种情况:「主网上线时已映射过,分配了一个账户,还有就是主网上线时没有映射,没有分配账户。

第一种情况下,先查询主网分配的账户名:

cleos get accounts [账户公钥]

钱包中导入映射时给你的账户私钥:

cleos wallet import [账户私钥]

然后注册新账户:

cleos system newaccount --stake-net '0.0001 EOS' --stake-cpu '0.001 EOS' --buy-ram-kbytes 3 [自动分配的账户名] [新注册账户名] [账户公钥]

注:账户名要求必须是12位字符,其中的可用字符为:12345abcdefghijklmnopqrstuvwxyz

第二种情况下,可以找一个已有主网账号的朋友,叫他用他现有的账户帮你注册一个。首先你要用cleos create key生成密钥对并通过cleos wallet import [账户私钥]导入钱包,然后有两种方法:

cleos system newaccount --stake-net '0.0001 EOS' --stake-cpu '0.001 EOS' --buy-ram-kbytes 3 [自动分配的账户名] [新注册账户名] [账户公钥]

注:账户名要求必须是12位字符,其中的可用字符为:12345abcdefghijklmnopqrstuvwxyz

3 查看账户信息

a)查看账户余额

cleos get currency balance eosio.token [账户名]

get_balance.png-30kB

这条命令能查到该账户的余额。

cleos get account [账户名]

account_info.png-259kB

第一段 permissions,指的是账户权限,包括所有者权限(owner)和活动权限(active)

  • 所有者权限 代表着账户的所有权。 只有少数交易需要这种权限力,但最值得注意的是任何对所有者权力作出改变的行为(actions)。一般而言,建议所有者私钥用冷存储(cold storage)的方式保存,并且不与任何人共享。 所有者可用于恢复可能已被泄露的另一个权限。
  • 活动权限 用于转移资金,投票给区块生产者,并进行其他高级别的账户更改操作。

第二段 memory 指的是目前所有的内存和已经使用的内存,内存是消耗品,使用后不可恢复。

第三段 net bandwidth 和第四段 cpu bandwidth 分别指 网络带宽和 CPU 带宽。

其中要注意的是 staked 和 delegated 。这两部分都是通过抵押 EOS 来购买 cpu 带宽和网络带宽。区别在于 staked 对应的是自己给自己买,delegated 对应的是别人给你买。用户可以通过 undelegatedbw 命令把这部分 EOS 提到余额(balances)中的可用余额(liquid)里。但是,提现只能提回原始账号。比如,staked 部分就是提回自己的账号,delegated 部分就是提回到提供者的账号。

第五段 unstaking tokens 指的是在赎回过程中的 EOS 。目前,赎回的 EOS 需要 72 小时才能返回账户。

第六段 eos balances 指的是目前账户的余额情况,包括 liquid 可用余额、 staked 已抵押的 EOS 和 unstaking 赎回过程中的 EOS 。

第七段 produckers 是指的投票情况。

cleos get table eosio [账户名] userres

account_info2.png-67.5kB

这条命令查到的用户信息更加简要,仅包括所有者、抵押于网络带宽的 EOS、抵押于 CPU 带宽的 EOS ,现有内存。

c)查看账户抵押信息:

cleos system listbw [账户名]

listbw.png-45.2kB

这条命令查到的是账户网络带宽与 CPU 带宽的抵押信息。和上面不同,此处包括给自己抵押的和给别人抵押的。

cleos get table eosio [账户名] delband

record.png-96.6kB

这条命令查到的是该账户的抵押记录。

4 账户操作

a)转账

cleos transfer [账户A] [账户B] '0.01 EOS' 'memo'

transfer.png-116.9kB

这条命令让用户将 EOS 从账户 A 转账给账户 B。

b)抵押

cleos system delegatebw [账户A] [账户B] '0.1 EOS' '0.1 EOS'

delegate.png-240.2kB

这条命令让账户A给账户B抵押网络带宽与 CPU 带宽。如果两个账户填同一个,即给本账户抵押。

cleos system undelegatebw [账户A] [账户B] '0.001 EOS' '0.02 EOS'

这条命令让账户A赎回给账户B抵押的网络带宽与 CPU 带宽。如果两个账户填同一个,即给本账户赎回抵押。

c)购买与卖出内存

cleos system buyram [账户A] [账户B] "0.01 EOS"

这条命令让账户A给账户B购买内存(RAM)。如果两个账户填同一个,即给本账户购买。

cleos system sellram [账户] 4000

这条命令让账户卖出内存,单位是 bytes。

d)变更账户权属:

cleos set account permission [账户名] owner [新公钥] owner
cleos set account permission [账户名] active [新公钥] owner

这两条命令分别设置账户的所有者权限和活动权限。注意,需要掌握 owner 公钥的私钥,不然账户就丢失了。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注