上一篇文章Cleos常用命令(一),讲述了钱包相关的常用命令。这篇文章,介绍下操作节点的一些常用命令。
Nodeos命令
当我们操作EOS上节点数据时,使用的命令仍然是cleos。不过此时有一个特别重要的参数--url
,--url
参数设置的是主网节点,则代表执行的是主网上的命令,例如cleos --url https://eos.greymass.com push action eosio.token transfer '["user1", "user2", "1.0000 EOS", ""] -p user1@active
;若是测试环境节点,则执行的是测试网络的命令。
1、执行智能合约
命令:cleos push action
此命令执行某个只能合约下面的action,例如转EOS的命令是:cleos push action eosio.token transfer '["user1", "user2", "1.0000 EOS", "test"]' -p user1@active
,它代表执行的是合约是eosio.token
账户(每个合约其实对应相关的账户);action是eosio.token
账户下的transfer(转币)
动作;而后面的["user1", "user2", "1.0000 EOS", "test"]'
则是tranfer
的参数,代表从用户user1转1.0000 EOS到账户user2,"test"是memo(备注);而最后的,-p参数代表所需要的用户权限,此处我们所需要的是user1的active权限。
2、创建账户
命令:cleos create account
此命令我是在本地环境中使用过,因为我可以控制整个本地环境网络。而主网上,还没有尝试使用过。不过,大家可以看看signupeoseos这个项目,它是在智能合约内部创建账号,我们只要转币给这个账号就可以创建EOS账户。
在测试环境下,我创建账号命令如下:
cleos create account eosio bob YOUR_PUBLIC_KEY
3、获取余额
命令:cleos get currency balance
这个命令,其实是获取指定合约下的内联函数get_balance
的信息。我尝试过,就算是不进行发币,也是实现此方法,返回对应的资源数据。
命令完全执行方式如下:
# 获取eosio.token下alice中SYS的数据
cleos get currency balance eosio.token alice SYS
4、上传合约
命令:cleos set contract
当我们通过eosio-cpp编译好合约的代码时,此时我们需要将合约上传到网络中,使用的正是此方法。具体使用如下:
# 上传hello合约
cleos set contract hello CONTRACTS_DIR/hello --abi hello.abi -p hello@active
注意:当不指定--abi参数,默认使用的是上一级目录搜索文件名。例如:/root/hello,搜索的就是hello目录下的hello.abi文件。
5、购买内存
命令:cleos system buyram
当我们上传合约时,第一次往往会碰到因为RAM不够而导致上传失败。普通的账号RAM都是3~5KB左右,而一般合约账户都得200KB以上,所以我们是需要购买RAM的。购买RAM,默认购买的是按照字节计算的,你可以-k
参数,指定购买的是按照KB计算。
具体使用如下:
# 使用test2账户为test1购买RAM
cleos system buyram test2 test1 -k 600 -p test2@active
6、抵押CPU和NET
命令:cleos system delegatebw
具体的使用如下:
# test1账户为test2账户抵押10EOS的NET和20EOS的CPU
cleos system delegatebw test1 test2 "10.0000 EOS" "20.0000 EOS" -p test1@active
7、取消抵押
命令:cleos system undelegatebw
当你替别人抵押CPU时,也可以使用你自己的账户取消抵押,不过需要72小时
才能赎回你抵押的EOS。
具体命令使用如下:
# 账户test1取消对test2的10EOS的NET和20EOS的CPU抵押
system undelegatebw test1 test2 "10.0000 EOS" "20.0000 EOS"
8、查看账户信息
命令:cleos get account
例如,我们想要获取test1的账户信息,命令如下:
cleos get account test