cleos 常用命令。
cleos 是访问 EOSIO 节点的命令行接口。它的使用方式是 cleos [OPTIONS] SUBCOMMAND。
1. 常用选项
$ cleos --verbose --no-auto-keosd --url http://127.0.0.1:8888 --wallet-url http://127.0.0.1:8900
1.1 --help
打印帮助信息
$ cleos --help
$ cleos -h
1.2 --verbose
输出详细的错误或操作信息
$ cleos --verbose
$ cleos -v
1.3 --url
指定 nodeos 节点信息
$ cleos --url http://127.0.0.1:8888
$ cleos -u http://127.0.0.1:8888
1.4 --wallet-url
指定 keosd 节点信息
$ cleos --wallet-url http://127.0.0.1:8900
$ cleos --wallet-url unix:///~/eosio-wallet/keosd.sock
1.5 --no-auto-keosd
当 keosd 没有启动时,不会自动启动 keosd。
$ cleos --no-auto-keosd
2. 常用子命令
2.1 version
获取版本信息。使用方式为 cleos version SUBCOMMAND。
$ cleos version client
2.2 create
创建各种项,包括线上的和线下的。使用方式为 cleos create SUBCOMMAND。
2.2.1 key
创建新的密钥对,并且打印公钥和私钥。
$ cleos create key --help
$ cleos create key --to-console
Private key: 5JgthtPe1c5FxtUASzD9JueVdA5xsBKWFWFCrhtwWuijA5RxfyQ
Public key: EOS82MG6DQqUCuwwcF2dfUs4uvSqLNqgpUCEyCpg35TAZ411R4gzv
$ cleos create key --file key.txt
$ cat key.txt
Private key: 5KQogwVYYateeo9K6agtYHnQs6e4qUoiLCT1PyeNP86eii9ogiK
Public key: EOS84TxMpRxAdaZBFXTzeg44NNB6R28avzYqhPTbhAZ361uWwkZfQ
2.2.2 account
在链上创建新的账号 (假设合约 system 不会限制 RAM 的使用)。创建系统账号可以使用这个命令,但是在最新版本中好像不能用来创建普通账号,因为有资源限制。
使用方式为 cleos create account [OPTIONS] creator name OwnerKey [ActiveKey]。
$ cleos create account eosio alice EOS84BLRbGbFahNJEpnnJHYCoW9QPbQEk2iHsHGGS6qcVUq9HhutG
executed transaction: b146e19ba664ef4bf973a34e25bc2f5f22cd8b193aacaff136f3bd51bc14c0b2 200 bytes 166 us
$ cleos create account eosio alice EOS84BLRbGbFahNJEpnnJHYCoW9QPbQEk2iHsHGGS6qcVUq9HhutG EOS8mUftJXepGzdQ2TaCduNuSPAfXJHf22uex4u41ab1EVv9EAhWt -p eosio@active
2.3 convert
打包和解包交易。使用方式 cleos convert SUBCOMMAND。
2.3.1 pack_transaction
从纯文本签名的 json 转换成 packed 格式。使用方式 cleos convert pack_transaction [OPTIONS] transaction。
2.3.1.1 不带签名信息 & 不带 action 详细信息
$ cleos convert pack_transaction '{
"expiration": "2019-07-25T05:33:56",
"ref_block_num": 13024,
"ref_block_prefix": 142014374,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [{
"account": "eosio.token",
"name": "transfer",
"authorization": [{
"actor": "eosio",
"permission": "active"
}
],
"data": "0000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f"
}
],
"transaction_extensions": [],
"signatures": [
],
"context_free_data": []
}'
{
"signatures": [],
"compression": "none",
"packed_context_free_data": "",
"packed_trx": "443f395de032a6f77608000000000100a6823403ea3055000000572d3ccdcd010000000000ea305500000000a8ed3232250000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f00"
}
2.3.1.2 带签名信息 & 带 action 详细信息
如果交易中包含详细的 actions,需要打开选项 --pack-action-data,否则打包交易会失败。
$ cleos convert pack_transaction '{
"expiration": "2019-07-25T05:33:56",
"ref_block_num": 13024,
"ref_block_prefix": 142014374,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [{
"account": "eosio.token",
"name": "transfer",
"authorization": [{
"actor": "eosio",
"permission": "active"
}
],
"data": {
"from": "eosio",
"to": "alice",
"quantity": "1.0000 EOS",
"memo": "memo"
},
"hex_data": "0000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f"
}
],
"transaction_extensions": [],
"signatures": [
"SIG_K1_KX2SPX8cqDheFKgSSVDZwiwqP98uJVVJ4SLA8Pp3Kf6QEtGUgxNHhWGkgU18JEsbnngij1udE5t9NfMFkmAPa4ZQS4K4JR"
],
"context_free_data": []
}' --pack-action-data
{
"signatures": [
"SIG_K1_KX2SPX8cqDheFKgSSVDZwiwqP98uJVVJ4SLA8Pp3Kf6QEtGUgxNHhWGkgU18JEsbnngij1udE5t9NfMFkmAPa4ZQS4K4JR"
],
"compression": "none",
"packed_context_free_data": "",
"packed_trx": "443f395de032a6f77608000000000100a6823403ea3055000000572d3ccdcd010000000000ea305500000000a8ed3232250000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f00"
}
2.3.2 unpack_transaction
从 packed 转换成纯文本签名的 json 格式 。使用方式 cleos convert unpack_transaction [OPTIONS] transaction。
2.3.2.1 不带签名信息 & 不解包 actions 的详细
{
"expiration": "2019-07-25T05:33:56",
"ref_block_num": 13024,
"ref_block_prefix": 142014374,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [{
"account": "eosio.token",
"name": "transfer",
"authorization": [{
"actor": "eosio",
"permission": "active"
}
],
"data": "0000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f"
}
],
"transaction_extensions": [],
"signatures": [],
"context_free_data": []
}
2.3.2.2 带签名信息 & 解包 actions 的详细
通过选项 --unpack-action-data 把交易中的 action 也解包出来。
$ cleos convert unpack_transaction '{
"signatures": [
"SIG_K1_KX2SPX8cqDheFKgSSVDZwiwqP98uJVVJ4SLA8Pp3Kf6QEtGUgxNHhWGkgU18JEsbnngij1udE5t9NfMFkmAPa4ZQS4K4JR"
],
"compression": "none",
"packed_context_free_data": "",
"packed_trx": "443f395de032a6f77608000000000100a6823403ea3055000000572d3ccdcd010000000000ea305500000000a8ed3232250000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f00"
}' --unpack-action-data
{
"expiration": "2019-07-25T05:33:56",
"ref_block_num": 13024,
"ref_block_prefix": 142014374,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [{
"account": "eosio.token",
"name": "transfer",
"authorization": [{
"actor": "eosio",
"permission": "active"
}
],
"data": {
"from": "eosio",
"to": "alice",
"quantity": "1.0000 EOS",
"memo": "memo"
},
"hex_data": "0000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f"
}
],
"transaction_extensions": [],
"signatures": [
"SIG_K1_KX2SPX8cqDheFKgSSVDZwiwqP98uJVVJ4SLA8Pp3Kf6QEtGUgxNHhWGkgU18JEsbnngij1udE5t9NfMFkmAPa4ZQS4K4JR"
],
"context_free_data": []
}
2.3.3 pack_action_data
将 json 格式描述的 action 转换成 packed 格式。使用方式 cleos convert pack_action_data [OPTIONS] account name unpacked_action_data。
$ cleos convert pack_action_data eosio.token transfer '{
"from": "eosio",
"to": "alice",
"quantity": "1.0000 EOS",
"memo": "memo"
}'
0000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f
其中:
- eosio.token 是合约账户
- transfer 是 action 名称
- 16 进制字符串是 packed_action_data。
2.3.4 unpack_action_data
从 packed 格式转换成 json 描述的 action 格式。使用方式 cleos convert unpack_action_data [OPTIONS] account name packed_action_data。
$ cleos convert unpack_action_data eosio.token transfer 0000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f
{
"from": "eosio",
"to": "alice",
"quantity": "1.0000 EOS",
"memo": "memo"
}
其中:
- eosio.token 是合约账户
- transfer 是 action 名称
- 16 进制字符串是 packed_action_data。
2.4 get
获取区块链中的各种项和信息。使用方式 cleos get SUBCOMMAND。
2.4.1 info
获取当前区块链的信息。使用方式 cleos get info [OPTIONS]。
$ cleos get info
2.4.2 block
获取完整的区块信息。使用方式 cleos get block [OPTIONS] block。
$ cleos get block 1
2.4.3 account
查询账户信息。使用方式 cleos get account [OPTIONS] name [core-symbol]。
$ cleos get account eosio
$ cleos get account eosio 4,EOS
2.4.4 code
获取指定合约账户的代码和 ABI。使用方式 cleos get code [OPTIONS] name。
$ cleos get code eosio
$ cleos get code eosio --abi eosio.abi
2.4.5 abi
获取指定合约账户的 ABI。使用方式 cleos get abi [OPTIONS] name。
$ cleos get abi eosio.token
2.4.6 table
获取数据库表的内容。使用方式 cleos get table [OPTIONS] account scope table。
$ cleos get table eosio.token eosio accounts
其中:
- eosio.token 表示合约名称
- eosio 表示 scope 名称
- accounts 表示表名称
2.4.7 scope
获取由一个合约账户拥有的 scope 和 table 列表。使用方式 cleos get scope [OPTIONS] contract。
$ cleos get scope eosio.token
$ cleos get scope eosio.token --table accounts --reverse
其中:
- eosio.token 表示智能合约 eosio.token
- accounts 表示表名
- reverse 表示逆序
2.4.8 currency
获取标准代币的信息。使用方式 cleos get currency [OPTIONS] SUBCOMMAND。
2.4.8.1 balance
对于指定代币,获取指定账号的余额。使用方式 cleos get currency balance contract account [symbol]。
$ cleos get currency balance eosio.token eosio EOS
其中:
- eosio.token 是合约名称
- eosio 是账户名称
- EOS 是系统代币符号
2.4.8.2 stats
获取指定代币的状态信息。使用方式 cleos get currency stats contract symbol。
$ cleos get currency stats eosio.token EOS
其中:
- eosio.token 是合约名称
- EOS 是系统代币符号
2.4.9 accounts
获取指定公钥对应的账户列表。使用方式 cleos get accounts public_key。
$ cleos get accounts EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
2.4.10 servants
获取给定账号的附属账号列表。使用方式 cleos get servants account。
$ cleos get servants eosio
2.4.11 transaction
获取交易的详细信息。使用方式 cleos get transaction [OPTIONS] id。
$ cleos get transaction b890beb84a6d1d77755f2e0cdad48e2ffcfd06ff3481917b4875cc5f3a343533 --block-hint 0
$ cleos get transaction b890beb84a6d1d77755f2e0cdad48e2ffcfd06ff3481917b4875cc5f3a343533 --block-hint 1000001
其中:
- b890beb84a6d1d77755f2e0cdad48e2ffcfd06ff3481917b4875cc5f3a343533 是交易 hash
- --block-hint 提示交易有可能所属的区块编号
需要注意的是,一般来说是不知道交易属于哪个区块的。因此,--block-hint 一般都设置为 0,但是这需要 nodeos 打开插件 history-plugin 和选项 --filter-on=*,否则查询会报错。
2.4.12 actions
获取授权或接收方中引用的特定帐户名称的所有 actions。使用方式 cleos get actions [OPTIONS] account_name [pos] [offset]。
$ cleos get actions alice 0 3
其中:
- alice 为账号名称
需要注意的是,需要 nodeos 打开插件 history-plugin 和选项 --filter-on=*,否则查询结果为空。
2.4.13 schedule
获取验证人列表。使用方式 cleos get schedule [OPTIONS]。
$ cleos get schedule
2.4.14 transaction_id
获取给定交易对象的交易 id。使用方式 cleos get transaction_id [OPTIONS] transaction。
$ cleos get transaction_id '{
"expiration": "2019-07-25T05:33:56",
"ref_block_num": 13024,
"ref_block_prefix": 142014374,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [{
"account": "eosio.token",
"name": "transfer",
"authorization": [{
"actor": "eosio",
"permission": "active"
}
],
"data": "0000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f"
}
],
"transaction_extensions": [],
"signatures": [
],
"context_free_data": []
}'
bf2434cf3ab87418e201a2d7e4526b10fbbb0cb2ad15bd6b7000551e6cd2a9cc
需要注意的是,交易哈希是不包含签名信息的。
@TODO
2.5 set
更新区块链状态。使用方式 cleos set [OPTIONS] SUBCOMMAND。
@TODO
2.5.1 code
创建或更新一个合约账户的 code。使用方式 cleos set code [OPTIONS] account [code-file]。
@TODO
2.5.2 abi
创建或更新一个合约账户的 abi。使用方式 cleos set abi [OPTIONS] account [abi-file]
2.5.3 contract
创建或更新合约账户对应的合约。使用方式 cleos set contract [OPTIONS] account [contract-dir] [wasm-file] [abi-file]。
$ cleos set contract eosio.token ~/bitbucket/zblockchain/eoscodes/contracts/eosio.contracts/eosio.token --abi eosio.token.abi -p eosio.token@active
其中:
- eosio.toke 是合约账户名称
2.5.4 account
设置或更新账户状态。使用方式 cleos set account [OPTIONS] SUBCOMMAND。
2.5.4.1 permission
更新账户权限。使用方式 cleos set account permission [OPTIONS] account permission [authority] [parent]。
上面的使用方式是不是书写错误,因为这个是从 cleos 输出的帮助信息。正确的是不是应该是 cleos set account permission [authority] [parent] [OPTIONS]。
2.5.4.1.1 更新 owner 权限
$ cleos set account permission alice owner '{ "threshold": 1, "waits": [], "keys": [{"key": "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", "weight": 1}], "accounts": []}' -p alice@owner
2.5.4.1.2 更新 active 权限
$ cleos set account permission alice active '{"accounts": [], "keys": [{"key": "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", "weight": 1}], "threshold": 1, "waits": []}' owner -p alice@active
其中:
- alice 是账户名称
- active 是权限
- json 字符串描述的是 authority
- owner 是 parent,即本权限的父权限
执行上述命令之后,alice 的权限 active 即由之前的公钥改成了 EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV。
@TODO
2.5.5 action
更新 action 权限?使用方式 cleos set action permission [OPTIONS] account code type requirement。
2.6 transfer
将代币从一个账户转给另一个账户。使用方式 cleos transfer [OPTIONS] sender recipient amount [memo]。
$ cleos transfer eosio alice "1 EOS" "memo"
其中:
- eosio 是 sender
- alice 是 recipient
- "1 EOS" 是资产数量
- "memo" 是备注信息
2.7 net
控制本地 p2p 网络连接。使用方式 cleos net SUBCOMMAND。
2.7.1 connect
开始到一个对端的新连接。使用方式 cleos net connect host。
$ cleos net connect 127.0.0.1:9099
注意,这会更新 cleos net peers 的输出结果。
2.7.2 disconnect
关闭一个已经存在的连接。使用方式 cleos net disconnect host。
$ cleos net disconnect 127.0.0.1:9099
注意,这会更新 cleos net peers 的输出结果。
2.7.3 status
已存在连接的状态。使用方式 cleos net status host。
$ cleos net status 127.0.0.1:9011
2.7.4 peers
所有已存在对端的状态。使用方式 cleos net peers。
$ cleos net peers
2.8 wallet
与钱包交互的接口。使用方式 cleos wallet SUBCOMMAND。
2.8.1 create
创建一个新的钱包。使用方式 cleos wallet create [OPTIONS]。
$ cleos wallet create --to-console
2.8.2 open
打开一个已经存在的钱包。使用方式 cleos wallet open [OPTIONS]。
$ cleos wallet open
2.8.3 lock
锁住钱包。使用方式 cleos wallet lock [OPTIONS]。
$ cleos wallet lock
2.8.4 lock_all
锁住所有的钱包。使用方式 cleos wallet lock_all。
cleos wallet lock_all
2.8.5 unlock
解锁钱包。使用方式 cleos wallet unlock [OPTIONS]。
$ cleos wallet unlock --password PW5KCzAhiEtadFUeQZkgyttHrVLdQY8eXsMr6BxV8G6vbj3vnN1pz
2.8.6 import
导入私钥到钱包中。使用方式 cleos wallet import [OPTIONS]。
$ cleos wallet import
$ cleos wallet import --private-key 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
2.8.7 remove_key
从钱包中删除密钥。使用方式 cleos wallet remove_key [OPTIONS] key。
$ cleos wallet remove_key EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
$ cleos wallet remove_key EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV --password PW5KCzAhiEtadFUeQZkgyttHrVLdQY8eXsMr6BxV8G6vbj3vnN1pz
2.8.8 create_key
在钱包中创建私钥。使用方式 cleos wallet create_key [OPTIONS] [key_type]。
$ cleos wallet create_key
2.8.9 list
显示已打开的钱包列表,* 代表已打开。使用方式 cleos wallet list。
$ cleos wallet list
2.8.10 keys
显示所有打开的钱包中公钥列表。使用方式 cleos wallet keys。
$ cleos wallet keys
2.8.11 private_keys
显示一个已解锁钱包中的所有私钥列表,支持两种格式的私钥:WIF 和 PVT_R1。使用方式 cleos wallet private_keys [OPTIONS]。
$ cleos wallet private_keys
$ cleos wallet private_keys --password PW5KCzAhiEtadFUeQZkgyttHrVLdQY8eXsMr6BxV8G6vbj3vnN1pz
2.8.12 stop
停止 keosd。使用方式 cleos wallet stop。
$ cleos wallet stop
2.9 sign
对一个交易进行签名。使用方式 cleos sign [OPTIONS] transaction。
$ cleos sign '{
"expiration": "2019-07-25T05:33:56",
"ref_block_num": 13024,
"ref_block_prefix": 142014374,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [{
"account": "eosio.token",
"name": "transfer",
"authorization": [{
"actor": "eosio",
"permission": "active"
}
],
"data": "0000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f"
}
],
"transaction_extensions": [],
"signatures": [
],
"context_free_data": []
}' --private-key 5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
info 2019-07-25T07:29:14.372 thread-0 main.cpp:3261 operator() ] grabbing chain_id from nodeos
{
"expiration": "2019-07-25T05:33:56",
"ref_block_num": 13024,
"ref_block_prefix": 142014374,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [{
"account": "eosio.token",
"name": "transfer",
"authorization": [{
"actor": "eosio",
"permission": "active"
}
],
"data": "0000000000ea30550000000000855c34102700000000000004454f5300000000046d656d6f"
}
],
"transaction_extensions": [],
"signatures": [
"SIG_K1_KX2SPX8cqDheFKgSSVDZwiwqP98uJVVJ4SLA8Pp3Kf6QEtGUgxNHhWGkgU18JEsbnngij1udE5t9NfMFkmAPa4ZQS4K4JR"
],
"context_free_data": []
}
注意,--chain-id 如果不设置,需要通过和 nodeos 交互获得。同时,考虑安全,私钥也不要通过选项 --private-key 传递。
2.10 push
将任意交易提交到区块链。使用方式 cleos push SUBCOMMAND。
2.10.1 action
提交一个包含单个 action 的交易。使用方式 cleos push action [OPTIONS] account action data。
$ cleos -v push action eosio buyram '{"payer" : "alice", "receiver" : "alice", "quant" : "1.0000 EOS"}' -p alice@active
2.10.2 transaction
提交任意以 JSON 格式描述的交易。使用方式 cleos push transaction [OPTIONS] transaction。
交易不能包含签名。
$ cleos push transaction '{
"expiration": "2019-07-22T08:36:17",
"ref_block_num": 14610,
"ref_block_prefix": 2181294875,
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [{
"account": "eosio",
"name": "updateauth",
"authorization": [{
"actor": "alice",
"permission": "active"
}
],
"data": {
"account": "alice",
"permission": "active",
"parent": "owner",
"auth": {
"threshold": 1,
"keys": [{
"key": "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"weight": 1
}
],
"accounts": [],
"waits": []
}
},
"hex_data": "0000000000855c3400000000a8ed32320000000080ab26a701000000010002c0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cf01000000"
}
],
"transaction_extensions": [],
"signatures": [
],
"context_free_data": []
}'
{
"transaction_id": "4210019c6e970d07635821919bb2ccaa2083d3534e1d75e124d5e0e87f5d8f61",
"processed": {
"id": "4210019c6e970d07635821919bb2ccaa2083d3534e1d75e124d5e0e87f5d8f61",
"block_num": 52180,
"block_time": "2019-07-23T02:55:44.000",
"producer_block_id": null,
"receipt": {
"status": "executed",
"cpu_usage_us": 171,
"net_usage_words": 20
},
"elapsed": 171,
"net_usage": 160,
"scheduled": false,
"action_traces": [{
"receipt": {
"receiver": "eosio",
"act_digest": "fb314994ceb377e5df3b94094beb8d02eda308f2c75cf321ac67f0ca9da90afe",
"global_sequence": 54303,
"recv_sequence": 53286,
"auth_sequence": [[
"alice",
2
]
],
"code_sequence": 2,
"abi_sequence": 2
},
"act": {
"account": "eosio",
"name": "updateauth",
"authorization": [{
"actor": "alice",
"permission": "active"
}
],
"data": {
"account": "alice",
"permission": "active",
"parent": "owner",
"auth": {
"threshold": 1,
"keys": [{
"key": "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"weight": 1
}
],
"accounts": [],
"waits": []
}
},
"hex_data": "0000000000855c3400000000a8ed32320000000080ab26a701000000010002c0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cf01000000"
},
"context_free": false,
"elapsed": 45,
"console": "",
"trx_id": "4210019c6e970d07635821919bb2ccaa2083d3534e1d75e124d5e0e87f5d8f61",
"block_num": 52180,
"block_time": "2019-07-23T02:55:44.000",
"producer_block_id": null,
"account_ram_deltas": [{
"account": "alice",
"delta": 0
}
],
"except": null,
"inline_traces": []
}
],
"except": null
}
}
2.10.3 transactions
提交任意以 JSON 格式描述的交易列表。使用方式 cleos push transactions [OPTIONS] transactions。
交易不能包含签名。
这个方法只要在上述 transaction 的基础上把一个交易换成多个交易形成的列表即可。这里就不举例了。
@TODO
2.11 multisig
多签合约命令。使用方式 cleos multisig SUBCOMMAND。
2.11.1 propose
2.11.2 propose_trx
2.11.3 review
2.11.4 approve
2.11.5 unapprove
2.11.6 invalidate
2.11.7 cancel
2.11.8 exec
2.12 wrap
封装合约命令。使用方式 cleos wrap SUBCOMMAND。
需要注意的是,wrap 实际上是合约 eosio.wrap 的简单调用通道。
2.12.1 exec
执行一个交易,但是绕过权限校验。使用方式 cleos wrap exec [OPTIONS] executer transaction。
$ cleos wrap exec bob
2.13 system
发送合约 eosio.system 的 action 到区块链。使用方式 cleos system SUBCOMMAND。
2.13.1 newaccount
在区块链上创建一个新的账户,并初始化资源。使用方式 cleos system newaccount [OPTIONS] creator name OwnerKey [ActiveKey]。
$ cleos -v system newaccount eosio windstamp EOS82MG6DQqUCuwwcF2dfUs4uvSqLNqgpUCEyCpg35TAZ411R4gzv --stake-net "1 EOS" --stake-cpu "1 EOS" --buy-ram "1 EOS" -p eosio@active
$ cleos -v system newaccount windstamp furnace EOS82MG6DQqUCuwwcF2dfUs4uvSqLNqgpUCEyCpg35TAZ411R4gzv --stake-net "1 EOS" --stake-cpu "1 EOS" --buy-ram "1 EOS" -p windstamp@active
2.13.2 regproducer
注册一个新的生产者。使用方式 cleos system regproducer [OPTIONS] account producer_key [url] [location]。
$ cleos system regproducer alice EOS84BLRbGbFahNJEpnnJHYCoW9QPbQEk2iHsHGGS6qcVUq9HhutG "alice.com" 0
2.13.3 unregprod
取消注册一个已有的生产者。使用方式 cleos system unregprod [OPTIONS] account。
$ cleos system unregprod alice
2.13.4 voteproducer
投票一个生产者。使用方式 cleos system voteproducer [OPTIONS] SUBCOMMAND。
2.13.4.1 proxy
通过代理进行投票,即先投票给代理,再由代理投票给生产者。使用方式 cleos system voteproducer proxy [OPTIONS] voter proxy。
$ cleos system voteproducer proxy alice windstamp
2.13.4.2 prods
投票给一个或多个生产者。使用方式 cleos system voteproducer prods [OPTIONS] voter producers...。
$ cleos system voteproducer prods bob alice
2.13.4.3 approve
添加一个生产者到已投票的生产者列表。使用方式 cleos system voteproducer approve [OPTIONS] voter producer。
$ cleos system voteproducer approve bob alice
2.13.4.4 unapprove
从生产者列表中移除一个生产者。使用方式 cleos system voteproducer unapprove [OPTIONS] voter producer。
$ cleos system voteproducer unapprove bob alice
2.13.5 listproducers
列出生产者列表。使用方式 cleos system listproducers [OPTIONS]。
$ cleos system listproducers
2.13.6 delegatebw
质押资源,比如:CPU、网络带宽。使用方式 cleos system delegatebw [OPTIONS] from receiver stake_net_quantity stake_cpu_quantity。
$ cleos system delegatebw alice alice "1.0000 EOS" "1.0000 EOS"
2.13.7 undelegatebw
取消资源质押,比如:CPU、网络带宽。使用方式 cleos system undelegatebw [OPTIONS] from receiver unstake_net_quantity unstake_cpu_quantity。
$ cleos system undelegatebw alice alice "1.0000 EOS" "1.0000 EOS"
2.13.8 listbw
列出质押的资源。使用方式 cleos system listbw [OPTIONS] account。
$ cleos system listbw alice
2.13.9 bidname
名字绑定。使用方式 cleos system bidname [OPTIONS] bidder newname bid。
$ cleos system bidname alice aliceson "100.0000 EOS"
2.13.10 bidnameinfo
获取绑定名字的信息。使用方式 cleos system bidnameinfo [OPTIONS] newname。
$ cleos system bidnameinfo aliceson
2.13.11 buyram
购买内存。使用方式 cleos system buyram [OPTIONS] payer receiver amount。
$ cleos system buyram alice alice "100.0000 EOS"
$ cleos system buyram alice alice 1000 --bytes
$ cleos system buyram alice alice 1000 --kbytes
2.13.12 sellram
出售内存。使用方式 cleos system sellram [OPTIONS] account bytes。
$ cleos system sellram alice 1000
2.13.13 claimrewards
领取生产者奖励。使用方式 cleos system claimrewards [OPTIONS] owner。
$ cleos system claimrewards eosio
2.13.14 regproxy
注册成为代理。使用方式 cleos system regproxy [OPTIONS] proxy。
$ cleos system regproxy windstamp
2.13.15 unregproxy
取消注册成为代理。使用方式 cleos system unregproxy [OPTIONS] proxy。
$ cleos system unregproxy windstamp
2.13.16 canceldelay
取消一个延迟的交易。使用方式 cleos system canceldelay [OPTIONS] canceling_account canceling_permission trx_id。
$ cleos system canceldelay alice active 4d20a431f0232f374308ca46c430f5363d54b2da07226c180e23a9120a1ff2c1
@TODO
2.13.17 rex
与 REX 相关的操作。使用方式 cleos system rex [OPTIONS] SUBCOMMAND。
2.13.17.1 deposit
2.13.17.2 withdraw
2.13.17.3 buyrex
2.13.17.4 lendrex
2.13.17.5 unstaketorex
2.13.17.6 sellrex
2.13.17.7 cancelrexorder
2.13.17.8 mvtosavings
2.13.17.9 mvfromsavings
2.13.17.10 rentcpu
2.13.17.11 rentnet
2.13.17.12 fundcpuloan
2.13.17.13 fundnetloan
2.13.17.14 defundcpuloan
2.13.17.15 defundnetloan
2.13.17.16 consolidate
2.13.17.17 updaterex
2.13.17.18 rexexec
2.13.17.19 closerex
项目源代码
项目源代码会逐步上传到 Github,地址为 https://github.com/windstamp/blockchain。
Contributor
- Windstamp, https://github.com/windstamp