deploy
部署合约:
./console.py deploy [contract_name] [save]
参数包括:
contract_name: 合约名,需要先放到contracts目录
save:若设置了save参数,表明会将合约地址写入历史记录文件
例子:
./console.py deploy HelloWorld save
call
调用合约接口,并解析返回结果:
./console.py call [contract_name] [contract_address] [function] [args]
参数包括:
contract_name:合约名
contract_address:调用的合约地址
function:调用的合约接口
args:调用参数
例子:
# 合约地址:0x83592a3cf1af302612756b8687c8dc7935c0ad1d
# 调用接口:get
./console.py call HelloWorld 0x83592a3cf1af302612756b8687c8dc7935c0ad1d get
sendtx
发送交易调用指定合约的接口,交易结果会写入区块和状态:
./console.py sendtx [contract_name] [contract_address] [function] [args]
参数包括:
contract_name:合约名
contract_address:合约地址
function:函数接口
args:参数列表
例子:
./console.py sendtx HelloWorld 0x83592a3cf1af302612756b8687c8dc7935c0ad1d set "Hello, FISCO"
newaccount
创建新账户,并将结果以加密的形式把保存与bin/accounts/${accoutname}.keystore文件中,如同目录下已经有同名帐户文件,旧文件会复制一个备份:
./console.py newaccount [account_name] [account_password]
参数包括:
account_name:账户名
account_password:加密keystore文件的口令
注解
采用创建帐号的命令创建帐号后,若需作为默认帐号使用,注意修改client_config.py的 ccount_keyfile 和
account_password 配置项账户名不可超过240个字符
若 account_password 中包含特殊字符,请在 account_password 周围加上单引号,否则无法解析
例子:
./console.py newaccount test_account "123456"
showaccount
根据账户名和账户keystore文件口令,输出账户公私钥信息:
./console.py showaccount [account_name] [account_password]
参数包括:
name:账户名称
password: 账户keystore文件口令
例子:
./console.py showaccount test_account "123456"
usage
输出控制台使用方法:
./console.py usage
list
输出Python SDK支持的所有接口:
./console.py list
CNS
Python SDK控制台提供了CNS命令,主要包括注册CNS、查询CNS信息,CNS设计使用方法请参考这里。
registerCNS
将(合约地址, 合约版本)到合约名的映射注册到CNS系统表中:
./console.py registerCNS [contract_name] [contract_address] [contract_version]
参数包括:
contract_name: 合约名
contract_address: 合约地址
contract_version: 合约版本
例子:
./console.py registerCNS HelloWorld 0x83592a3cf1af302612756b8687c8dc7935c0ad1d v_1.0
queryCNSByName
根据合约名查询CNS信息:
./console.py queryCNSByName [contract_name]
参数包括:
contract_name:合约名
例子:
./console.py queryCNSByName HelloWorld
queryCNSByNameAndVersion
根据合约名和合约版本查询CNS信息:
./console.py queryCNSByNameAndVersion [contract_name] [contract_version]
参数包括:
contract_name: 合约名
contract_version: 合约版本
例子:
./console.py queryCNSByNameAndVersion HelloWorld v_1.0
Python SDK提供了节点管理命令,包括添加共识节点、添加观察者节点、将节点从群组中删除,节点管理的详细资料可参考这里。
removeNode
将指定该节点从群组中删除:
./console.py removeNode [nodeId]
参数包括:
nodeId:被删除节点的nodeID
例子:
# 设节点位于~/fisco/nodes目录,查询node1的nodeID
cat ~/fisco/nodes/127.0.0.1/node1/conf/node.nodeid
# 将节点1从群组中删除node1
./console.py removeNode b44c05096283095aa4e36809eb27546163496194773e38c3776e10e611d4dd75c2888b0f1d0ec4c05e0a2f85e0207cb85b8d2c8893b0abdda888f0e6f969110c
addSealer
将指定节点加入共识节点列表:
./console.py addSealer [nodeId]
参数包括:
nodeId: 加入的共识节点nodeID,获取节点nodeID可参考这里
例子:
#设节点位于~/fisco/nodes目录,查询node1的nodeID
$ cat ~/fisco/nodes/127.0.0.1/node1/conf/node.nodeid
#将节点node1加入为共识节点
$./console.py addSealer b44c05096283095aa4e36809eb27546163496194773e38c3776e10e611d4dd75c2888b0f1d0ec4c05e0a2f85e0207cb85b8d2c8893b0abdda888f0e6f969110c
Python SDK提供了系统配置修改命令,FISCO BCOS目前支持的系统配置参考这里。
./console.py setSystemConfigByKey [key(tx_count_limit/tx_gas_limit)] [value]
参数包括:
key:配置关键字,目前主要包括tx_count_limit和tx_gas_limit
value: 配置关键字的值
./console.py setSystemConfigByKey tx_count_limit 500
Python SDK提供了权限管理功能,包括授权、撤销权限和列出权限列表等,权限控制的详细内容可参考这里。
grantPermissionManager
将控制权限的功能授权给指定账户:
./console.py grantPermissionManager [account_adddress]
参数包括:
account_adddress:被授予权限的账户地址,账户可通过newaccount命令生成
#获取默认账户地址
./console.py showaccount pyaccount "123456"
#为账户0x95198B93705e394a916579e048c8A32DdFB900f7添加权限管理权限
$ ./console.py grantPermissionManager 0x95198B93705e394a916579e048c8A32DdFB900f7
listPermissionManager
列出有权限管理功能的账户信息:
#列出所有权限管理账户信息
./console.py listPermissionManager
grantUserTableManager
将给定用户表权限授予指定用户:
./console.py grantUserTableManager [tableName] [account_adddress]
注解
给用户授权用户表权限前,请确保用户表存在,可用 createTable 命令创建用户表
参数包括:
tableName: 用户表名
account_adddress:被授权用户账户地址
#创建用户表t_test
./console.py createTable t_test "key" "value1, value2, value3"
./console.py grantUserTableManager t_test 0x95198B93705e394a916579e048c8A32DdFB900f7
listUserTableManager
列出对指定用户表有管理权限的账户信息:
./console.py listUserTableManager [tableName]
参数包括:
tableName: 用户表
#查看用户表t_test的管理信息
./console.py listUserTableManager t_test
grantNodeManager
将节点管理权限授予指定账户:
./console.py grantNodeManager [account_adddress]
参数包括:
account_adddress:被授权用户账户地址
#为账户0x95198B93705e394a916579e048c8A32DdFB900f7添加节点管理功能
./console.py grantNodeManager 0x95198B93705e394a916579e048c8A32DdFB900f7
listNodeManager
列出有节点管理功能的账户信息:
./console.py listNodeManager
grantCNSManager
将CNS管理权限授予指定账户:
./console.py grantCNSManager [account_adddress]
参数包括:
account_adddress:被授权用户账户地址
#为账户0x95198B93705e394a916579e048c8A32DdFB900f7添加CNS管理权限
./console.py grantCNSManager 0x95198B93705e394a916579e048c8A32DdFB900f7
listCNSManager
列出有CNS管理权限的账户信息
./console.py listCNSManager
grantSysConfigManager
将系统配置修改权限授予指定账户:
./console.py grantSysConfigManager [account_adddress]
参数包括:
account_adddress:被授权用户账户地址
#为账户0x95198B93705e394a916579e048c8A32DdFB900f7添加系统配置权限
./console.py grantSysConfigManager 0x95198B93705e394a916579e048c8A32DdFB900f7
listSysConfigManager
列出有系统配置修改权限的账户信息:
./console.py listSysConfigManager
grantDeployAndCreateManager
将部署和创建表的权限授予指定账户:
./console.py grantDeployAndCreateManager [account_adddress]
参数包括:
account_adddress:被授权用户账户地址
#为账户0x95198B93705e394a916579e048c8A32DdFB900f7添加创建表和部署合约权限
./console.py grantDeployAndCreateManager 0x95198B93705e394a916579e048c8A32DdFB900f7
listDeployAndCreateManager
列出有创建合约和用户表的账户信息:
./console.py listDeployAndCreateManager
revokeUserTableManager
撤销指定用户对指定用户表的写入权限:
./console.py revokeUserTableManager [tableName] [account_adddress]
参数包括:
tableName:禁止指定用户写入的表名
account_adddress:被撤销权限的账户地址
#撤销账户0x95198B93705e394a916579e048c8A32DdFB900f7对用户表t_test的控制权限
./console.py revokeUserTableManager t_test 0x95198B93705e394a916579e048c8A32DdFB900f7
revokeDeployAndCreateManager
撤销指定账户创建表、部署合约的权限:
./console.py revokeDeployAndCreateManager [account_adddress]
参数包括:
account_adddress:被撤销权限的账户地址
#撤销账户0x95198B93705e394a916579e048c8A32DdFB900f7部署和创建表权限
$ ./console.py revokeDeployAndCreateManager 0x95198B93705e394a916579e048c8A32DdFB900f7
revokeNodeManager
撤销指定账户的节点管理权限:
./console.py revokeNodeManager [account_adddress]
参数包括:
account_adddress:被撤销权限的账户地址
#撤销账户0x95198B93705e394a916579e048c8A32DdFB900f7节点管理权限
./console.py revokeNodeManager 0x95198B93705e394a916579e048c8A32DdFB900f7
revokeCNSManager
撤销指定账户CNS管理权限:
./console.py revokeCNSManager [account_adddress]
参数包括:
account_adddress:被撤销权限的账户地址
#撤销账户0x95198B93705e394a916579e048c8A32DdFB900f7 CNS管理权限
./console.py revokeCNSManager 0x95198B93705e394a916579e048c8A32DdFB900f7
revokeSysConfigManager
撤销指定账户修改系统配置权限:
./console.py revokeSysConfigManager [account_adddress]
参数包括:
account_adddress:被撤销权限的账户地址
#撤销账户0x95198B93705e394a916579e048c8A32DdFB900f7系统表管理权限
./console.py revokeSysConfigManager 0x95198B93705e394a916579e048c8A32DdFB900f7
revokePermissionManager
撤销指定账户管理权限的权限:
./console.py revokePermissionManager [account_adddress]
参数包括:
account_adddress:被撤销权限的账户地址
#撤销账户0x95198B93705e394a916579e048c8A32DdFB900f7权限管理权限
./console.py revokePermissionManager 0x95198B93705e394a916579e048c8A32DdFB900f7
可以通过Python SDK查询节点信息,目前Python SDK支持的查询命令如下:
getNodeVersion
获取节点版本信息:
./console.py getNodeVersion
getBlockNumber
获取节点最新块高:
./console.py getBlockNumber
getPbftView
获取节点共识视图:
./console.py getPbftView
getSealerList
获取当前共识节点列表:
./console.py getSealerList
getObserverList
获取观察者节点列表:
./console.py getObserverList
getConsensusStatus
获取节点共识状态信息:
./console.py getConsensusStatus
getSyncStatus
获取节点同步状态信息:
./console.py getSyncStatus
getPeers
获取节点连接列表:
./console.py getPeers
getGroupPeers
获取群组内节点连接信息:
./console.py getGroupPeers
getNodeIDList
获取区块链所有组网节点列表:
./console.py getNodeIDList
getGroupList
获取群组列表:
./console.py getGroupList
getPendingTransactions
获取交易池内还未上链的交易信息:
./console.py getPendingTransactions
getTotalTransactionCount
获取已经上链的交易数目:
./console.py getTotalTransactionCount
getBlockByNumber
根据块高查询区块:
./console.py getBlockByNumber [block_number] [True/False]
参数包括:
block_number:区块高度
True/False: 可选,True表明返回的区块信息内包含具体的交易信息;False表明返回的区块内仅包含交易哈希
./console.py getBlockByNumber 0
getBlockHashByNumber
根据块高查询区块哈希:
./console.py getBlockHashByNumber 0
getBlockByHash
根据区块哈希获取区块信息:
./console.py getBlockByHash [block_hash] [True/False]
参数包括:
block_hash:区块哈希
True/False: 可选,True表明返回的区块内包含交易具体信息;False表明返回的区块仅包含交易哈希
./console.py getBlockByHash 0xff1404962c6c063a98cc9e6a20b408e6a612052dc4267836bb1dc378acc6ce04
getCode
获取指定合约的二进制编码:
./console.py getCode 0x2d1c577e41809453c50e7e5c3f57d06f3cdd90ce
getTransactionByHash
根据交易哈希获取交易信息:
./console.py getTransactionByHash [hash] [contract_name]
参数包括:
hash: 交易哈希
contract_name:可选,该交易相关的合约名,若输入该参数,会解析返回交易的具体内容
./console.py getTransactionByHash 0xb291e9ca38b53c897340256b851764fa68a86f2a53cb14b2ecdcc332e850bb91
getTransactionReceipt
根据交易哈希获取交易回执信息:
./console.py getTransactionReceipt [hash] [contract_name]
参数包括:
hash:交易哈希
contract_name:可选,该交易相关的合约名,若输入该参数,会解析交易和回执的具体内容
./console.py getTransactionReceipt 0xb291e9ca38b53c897340256b851764fa68a86f2a53cb14b2ecdcc332e850bb91
getTransactionByBlockHashAndIndex
根据区块哈希和交易索引查询交易信息:
./console.py getTransactionByBlockHashAndIndex [blockHash] [transactionIndex] [contract_name]
参数包括:
blockHash: 交易所在的区块哈希
transactionIndex:交易索引
contract_name:可选,该交易相关的合约名,若输入该参数,会解析返回交易的具体内容
./console.py getTransactionByBlockHashAndIndex 0x3912605dde5f7358fee40a85a8b97ba6493848eae7766a8c317beecafb2e279d 0
getTransactionByBlockNumberAndIndex
根据块高和交易索引查询交易信息:
./console.py getTransactionByBlockNumberAndIndex [blockNumber] [transactionIndex] [contract_name]
参数包括:
blockNumber:交易所在的区块块高
transactionIndex:交易索引
contract_name:可选,该交易相关的合约名,若输入该参数,会解析返回交易的具体内容
./console.py getTransactionByBlockNumberAndIndex 1 0
getSystemConfigByKey
获取系统配置信息:
#获取区块可打包最大交易数目
./console.py getSystemConfigByKey tx_count_limit