区块链EOS开发常用操作说明
以下的操作示例如果远程执行:在cleos 后加上 -u http://101.124.2.210:8888 即可
1、创建钱包
创建默认钱包:filename = default.wallet
cleos wallet create
创建名称为xxxx的钱包
cleos wallet create -n xxxx
2、解锁钱包
cleos wallet unlock
cleos wallet unlock -n xxxx --passward waletpin_text
3、创建账户
使用 kevinkuntest账户创建kevinkuntes1账户,前提,kevinkuntest私钥导入钱包,有足够的EOS
cleos system newaccount --transfer --stake-net "100.0000 EOS" --stake-cpu "100.0000 EOS" --buy-ram "100.0000 EOS" kevinkuntest kevinkuntes1 EOS797NSewgrqDfxDKuh3aYa3G3p5BTeN2T5FdveTNMuj7bpsBVGN
4、导入秘钥对到钱包
cleos wallet import xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(privatekey-text)
cleos wallet import -n mywalletname xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(privatekey-text)
5、转账EOS token
cleos transfer kevinkuntest kevinkuntes1 "100.0000 EOS"
6、账户查询
cleos get account kevinkuntest
cleos get account kevinkuntes1
7、查询账户余额
cleos get currency balance eosio.token kevinkuntest
cleos get currency balance eosio.token kevinkuntes1
8、创建自己的token : 需要eosio合约账户的私钥或授权
cleos push action eosio.token create '["kevinkuntest", "1000000000.0000 KUN"]' -p eosio.token
9、发行代币:
cleos push action eosio.token issue '["kevinkuntest", "1000000000.0000 KUN", "memo"]' -p kevinkuntest
10、查询所有代币的余额:
cleos get currency balance eosio.token kevinkuntest
11、为创建一个权限transferpower
cleos set account permission kevinkuntest transferpower '{"threshold": 1, "keys":[{"key":"EOS5wquAffiaMMQsXyibBGXpB7WWhZYFtwmSUGZcfkFE49pjsB28C","weight":1}],"accounts":[],"waits":[]}' active
12、将权限transferpower 和 转账动作transfer绑定
cleos set action permission kevinkuntest eosio.token transfer transferpower
13、可以使用transferpower权限转账
cleos push action eosio.token transfer '["kevinkuntest","kevinkuntes1","100.0000 KUN","transfer"]' -p kevinkuntest@transferpower
14、注册成为矿工
cleos system regproducer p1.cao EOS8jBSXoX4B4eEkdTE2R1srnAxXWsVp3Qr4ADHXwhZP8hJcg4HeT
15、查看所有producers列表
cleos system listproducers
16、抵押token
cleos system delegatebw kevinkuntest kevinkuntest '10000 EOS' '10000 EOS'
17、投票
cleos system voteproducer prods kevinkuntest cao
18、取消矿工注册
cleos system unregprod p1.cao -p p1.cao
19、查看抵押
cleos system listbw kevinkuntest
19、解除抵押
cleos system undelegatebw kevinkuntest kevinkuntest "10000 EOS" "10000 EOS" -p kevinkuntest
20、买内存 (100EOS)
cleos system buyram caokunkevin1 caokunkevin1 "100.0000 EOS" -p caokunkevin1
21、卖内存(1M)
cleos system sellram caokunkevin1 1048576
22、矿工索取奖励
cleos system claimrewards bp.a
四、经过实验得到的一些结论:
1、如果矿工注销以后,以前出块的奖励将会索取(claimrewards) 失败
2、如果矿工的身份还在,没有注销,即使当前不在出块了,索取奖励(claimrewards)还是可以成功的。
3、买内存以EOS计,卖内存以字节计,1024*1024 = 1M内存
4、抵押cpu 和 net资源有两种方式,一种是自己给自己(同一账户)抵押,记在staked下,一种是别的账户给本账户抵押,记在delegated下。
一种是在创建账户的时候抵押,一种是使用delegatebw 抵押。
5、另外发现了mainnet-1.0.7好像有BUG,更新nodeos程序后,发现eosio账户不能往外转账了,cleos get account eosio,看到的eosio的内存和cpu,net居然都用完了,抵押为0,然后用我自己的账户cao为eosio 买了内存,并抵押了cpu和net,依然不能转账,报错如下:
cleos transfer eosio cao "100000.0000 EOS"
Error 3060001: Permission Query Exception
Most likely, the given account/ permission doesn't exist in the blockchain.