2. cleos-commands

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

  1. Windstamp, https://github.com/windstamp

你可能感兴趣的:(2. cleos-commands)