fisco-bcos-cli
Rust 版 FISCO BCOS 可交互式命令行工具。
安装
shell
$ cargo install --force fisco-bcos-cli
此 crate 使用了 TASSL 来处理 TLS
连接,在 Linux
或 Macos
下无需做任何额外操作,其他环境下则需要指定以下环境变量:
TASSL_LIB_PATH
:lib 库加载路径。
TASSL_INCLUDE_PATH
:头文件检索路径。
TASSL_LIB_KIND
:lib 库类型,可用值为:static
或 dylib
。
在 Linux
或 Macos
下,如果你已经编译好了 TASSL
,也可以通过指定以上环境变量来缩短编译时间。
使用
shell
$ fisco-bcos-cli
执行上述命令,你将进入以下交互页面:
```shell
Welcome to Command line tool for FISCO BCOS (V0.3.0). Type help to get help
>
```
输入 help
,获取帮助信息:
```shell
help
- Use setconfig function to initialize the environment(e.g., setconfig ./config/config.json)
- Use the below functions to interact with the FISCO BCOS Service: "getclientversion", "getblocknumber", "getpbftview", "getsealerlist", "getobserverlist", "getconsensusstatus", "getsyncstatus", "getpeers", "getgrouppeers", "getnodeidlist", "getgrouplist", "getblockbyhash", "getblockbynumber", "getblockheaderbyhash", "getblockheaderbynumber", "getblockhashbynumber", "gettransactionbyhash", "gettransactionbyblockhashandindex", "gettransactionbyblocknumberandindex", "gettransactionreceipt", "getpendingtransactions", "getpendingtxsize", "getcode", "gettotaltransactioncount", "call", "sendrawtransaction", "sendrawtransactionandgetproof", "deploy", "compile", "getsystemconfigbykey", "gettransactionbyhashwithproof", "gettransactionreceiptbyhashwithproof", "generategroup", "startgroup", "stopgroup", "removegroup", "recovergroup", "querygroupstatus", "getnodeinfo", "getbatchreceiptsbyblocknumberandrange", "getbatchreceiptsbyblockhashandrange", "systemconfig:setvaluekey", "consensus:addsealer", "consensus:addobserver", "consensus:remove", "cns:insert", "cns:selectbyname", "cns:selectbynameandversion", "cns:getcontractaddress", "permission:insert", "permission:remove", "permission:querybyname", "permission:grantwrite", "permission:revokewrite", "permission:querypermission", "contractlifecycle:freeze", "contractlifecycle:unfreeze", "contractlifecycle:grantmanager", "contractlifecycle:getstatus", "contractlifecycle:listmanager", "chaingovernanceservice:grantcommitteemember", "chaingovernanceservice:revokecommitteemember", "chaingovernanceservice:listcommitteemembers", "chaingovernanceservice:querycommitteememberweight", "chaingovernanceservice:updatecommitteememberweight", "chaingovernanceservice:queryvotesofmember", "chaingovernanceservice:queryvotesofthreshold", "chaingovernanceservice:updatethreshold", "chaingovernanceservice:querythreshold", "chaingovernanceservice:grantoperator", "chaingovernanceservice:revokeoperator", "chaingovernanceservice:listoperators", "chaingovernanceservice:freezeaccount", "chaingovernanceservice:unfreezeaccount", "chaingovernanceservice:getaccount_status", "sql"
- Type help to get help
- Type CTRL-C or CTRL-D to quit
- Visit https://github.com/kkawakam/rustyline#actions to get more actions
```
首先调用 set_config
来设置环境信息(配置信息详情参见:服务配置),比如:
```shell
set_config ./configs/config.json
```
而后便可调用帮助信息中列出的方法对链上数据进行交互,比如:
``` shell
getclientversion
Object({"Build Time": String("20210201 10:15:37"), "Build Type": String("Darwin/appleclang/RelWithDebInfo"), "Chain Id": String("1"), "FISCO-BCOS Version": String("2.7.2"), "Git Branch": String("HEAD"), "Git Commit Hash": String("4c8a5bbe44c19db8a002017ff9dbb16d3d28e9da"), "Supported Version": String("2.7.2")})
```
交互方法的参数信息参见:FISCO BCOS Service。
注意事项:
- 方法名与参数、参数与参数之间以
空格
分割(比如:call HelloWorldV4 0x62195d0f77f66c445c4878b845f55d266875705d get
),如果某个参数内部有空格(或其它更复杂的格式),使用单引号
包裹(比如:send_raw_transaction HelloWorldV4 0x62195d0f77f66c445c4878b845f55d266875705d set 'hello world'
)。
call
、send_raw_transaction
、send_raw_transaction_and_get_proof
、deploy
方法的签名最后一个参数为 Vec<Token>
,在调用时直接将其拆分为多个参数,然后以空格分开即可(比如:send_raw_transaction Person 0x62195d0f77f66c445c4878b845f55d266875705d set 12 Tom
)。
compile
方法签名的最后一个参数(需要链接的 libraries
,该参数可不设置)为 HashMap<String, String>
,在调用时请以 JSON
字符串的形式传递(比如:compile HelloWorldV4 '{"MyLibrary": "0x123456..."}'
)。
generate_group
的参数请以 JSON
字符串的形式传递。
License
Apache-2.0