FISCO-BCOS 命令交互控制台 Console-命令大全(超详细)

这篇具有很好参考价值的文章主要介绍了FISCO-BCOS 命令交互控制台 Console-命令大全(超详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FISCO-BCOS 命令交互控制台 Console-命令大全(超详细)

引言

此文章基于fisco-bocs官方技术文档进行整理并加以解释,在这里可以快速理解命令的含义和更快地上手,可以当作命令词典使用。

前提条件

  • 部署好区块链网络
  • 配置好console,即拷贝配置文件等等

console 目录如下:

|-- apps # 控制台jar包目录
|   -- console.jar
|-- lib # 相关依赖的jar包目录
├── conf
│   ├── config-example.toml # 配置文件
│   ├── group-generate-config.toml # 创建群组的配置文件,具体可参考命令genrateGroupFromFile
│   └── log4j.properties # 日志配置文件
|-- contracts # 合约所在目录
|   -- solidity  # solidity合约存放目录
|       -- HelloWorld.sol # 普通合约:HelloWorld合约,可部署和调用
|       -- TableTest.sol # 使用CRUD接口的合约:TableTest合约,可部署和调用
|       -- Table.sol # 提供CRUD操作的接口合约
|   -- console  # 控制台部署合约时编译的合约abi, bin,java文件目录
|   -- sdk      # sol2java.sh脚本编译的合约abi, bin,java文件目录
|-- start.sh # 控制台启动脚本
|-- get_account.sh # 账户生成脚本
|-- get_gm_account.sh # 账户生成脚本,国密版
|-- sol2java.sh # solidity合约文件编译为java合约文件的开发工具脚本

使用账户生成脚本生成账户(非国密版)

PEM格式
bash get_account.sh
p12格式
bash get_account.sh -p

启动控制台

  • 默认启动控制台

    bash start.sh
    
  • 指定群组号启动

    bash start.sh [群组号]
    
  • 使用pem格式私钥文件启动

    bash start.sh [群组号] -pem [私钥文件路径]
    
  • 使用p12格式文件启动

    bash start.sh [群组号] -p12 [私钥文件路径]
    

查看控制台命令列表

  • help([-h, -help, --h, --H, --help, -H, h]):提供帮助信息。

    [group:1]> help
    * help([-h, -help, --h, --H, --help, -H, h])  Provide help information
    * addObserver                               Add an observer node
    * addSealer                                 Add a sealer node
    * call                                      Call a contract by a function and parameters
    * callByCNS                                 Call a contract by a function and parameters by CNS
    * create                                    Create table by sql
    * delete                                    Remove records by sql
    * deploy                                    Deploy a contract on blockchain
    * deployByCNS                               Deploy a contract on blockchain by CNS
    * desc                                      Description table information
    * quit([quit, q, exit])                     Quit console
    * freezeAccount                             Freeze the account
    * freezeContract                            Freeze the contract
    ...........
    ---------------------------------------------------------------------------------------------
    

    注:

    • help显示每条命令的含义是:命令 命令功能描述
    • 查看具体命令的使用介绍说明,输入命令 -h或–help查看。例如:
    [group:1]> getBlockByNumber -h
    Query information about a block by block number.
    Usage:
    getBlockByNumber blockNumber [boolean]
    * blockNumber -- Integer of a block number, from 0 to 2147483647.
    * boolean -- (optional) If true it returns the full transaction objects, if false only the hashes of the transactions.
    

账户操作

创建账户
  • newAccount:创建账户
newAccount [加密格式/(pem/p12)] 

注:
无参数默认是pem格式
获取当前账户信息
  • getCurrentAccount:获取当前账户信息
列出当前保存的账户列表
  • listAccount:列出当前保存的账户列表
冻结账户
  • freezeAccount:冻结账户
freezeAccount [账户地址]
解冻账户
  • unfreezeAccount:解冻账户
unfreezeAccount [账户地址]
为交易签名加载账户
  • loadAccount:为交易签名加载账户
loadAccount [账户私钥路径] [加密格式(pem/p12)]

注:
不指定加密格式,默认是pem格式

节点操作

查看节点版本号信息
  • getNodeVersion:查询当前节点版本
查看节点信息
  • getNodeInfo:查询指定节点的信息。

    getNodeInfo [IP:channel端口号]
    
查询当前连接到客户端的对等节点
  • getPeers:查询当前连接到客户端的对等节点
查询节点的PBFT视图
  • getPbftView:查询节点的PBFT视图
查询当前连接到客户端的对等节点
  • getPeers:查询当前连接到客户端的对等节点
查询所有已连接节点的Node ID列表
  • getNodeIDList:查询所有已连接节点的Node ID列表
移除一个节点
  • removeNode:移除一个节点

    removeNode  [nodeId]
    
观察节点和共识节点
  • addObserver:添加一个观察者节点

    addObserver  [nodeid]
    
  • getObserverList:查询观察者节点的Node ID列表

  • addSealer:添加一个共识节点

    addSealer [nodeid]
    
  • getSealerList:查询共识节点的Node ID列表。

  • getGroupPeers:查询共识节点和观察者节点的Node ID列表

群组操作

切换群组
  • switch

    switch [群组号]
    
为指定节点生成一个组
  • generateGroup:为指定节点生成一个组

    generateGroup [节点IP:channel端口号] [新建群组的Id] [新建群组创世块时间戳] [新创建群组的共识节点列表]
    
    注:
    1.可通过命令echo $(($(date '+%s')*1000))获取时间戳;
    2.多个共识节点ID之间用空格分割
    
通过新群组配置文件(group-generate-config.toml)为指定节点列表创建新群组

群组配置示例group-generate-config.toml如下:

# The peers to generate the group
[groupPeers]
peers=["127.0.0.1:20200", "127.0.0.1:20201"]

# The consensus configuration of the generated group
[consensus]
# The sealerList
sealerList=["b8acb51b9fe84f88d670646be36f31c52e67544ce56faf3dc8ea4cf1b0ebff0864c6b218fdcd9cf9891ebd414a995847911bd26a770f429300085f37e1131f36","11e1be251ca08bb44f36fdeedfaeca40894ff80dfd80084607a75509edeaf2a9c6fee914f1e9efda571611cf4575a1577957edfd2baa9386bd63eb034868625f"]

[genesis]
# The genesis timestamp, It is recommended to set to the current utcTime, which must be greater than 0
timestamp = "1590586645000"

generateGroupFromFile命令的参数包括:

  • groupConfigFilePath: 群组配置文件路径,控制台conf/group-generate-config.toml是提供的群组配置文件模板,用户可根据实际场景拷贝、修改该配置模板,并加载修改后的群组配置文件;
  • groupId: 新创建的群组ID。
[group:1]> generateGroupFromFile conf/group-generate-config.toml 3
* Result of 127.0.0.1:20200:
GroupStatus{
    code='0x0',
    message='Group 3 generated successfully',
    status='null'
}
* Result of 127.0.0.1:20201:
GroupStatus{
    code='0x0',
    message='Group 3 generated successfully',
    status='null'
}
查询组列表
  • getGroupList:查询组列表
查询共识节点和观察者节点的Node ID列表
  • getGroupPeers:查询共识节点和观察者节点的Node ID列表
查询指定节点的指定组的状态
  • queryGroupStatus:查询指定节点的指定组的状态。
queryGroupStatus [节点IP:channel端口] [群组号]
恢复指定节点的指定组
  • recoverGroup:恢复指定节点的指定组
recoverGroup [节点IP:channel端口] [群组号]
移除指定节点的指定组
  • removeGroup:移除指定节点的指定组
removeGroup [节点IP:channel端口] [群组号] 
启动指定节点的指定组
  • startGroup:启动指定节点的指定组
startGroup [节点IP:channel端口] [群组号]
停止指定节点的指定组
  • stopGroup:停止指定节点的指定组
stopGroup [节点IP:channel端口] [群组号] 

合约操作

部署合约
  • deploy(deployByCNS):在区块链上部署一个合约

部署合约。(默认提供HelloWorld合约和TableTest.sol进行示例使用) 参数:

合约路径:合约文件的路径,支持相对路径、绝对路径和默认路径三种方式。用户输入为文件名时,从默认目录获取文件,默认目录为: contracts/solidity,比如:HelloWorld。

`deploy [合约路径]`
# 部署HelloWorld合约,默认路径
[group:1]> deploy HelloWorld.sol
contract address:0xc0ce097a5757e2b6e189aa70c7d55770ace47767

# 部署HelloWorld合约,相对路径
[group:1]> deploy contracts/solidity/HelloWorld.sol
contract address:0xd653139b9abffc3fe07573e7bacdfd35210b5576

# 部署HelloWorld合约,绝对路径
[group:1]> deploy /root/fisco/console/contracts/solidity/HelloWorld.sol
contract address:0x85517d3070309a89357c829e4b9e2d23ee01d881

注:

  • 部署用户编写的合约,可以将solidity合约文件放到控制台根目录的contracts/solidity/目录下,然后进行部署即可。按tab键可以搜索contracts/solidity/目录下的合约名称。
  • 若需要部署的合约引用了其他合约或library库,引用格式为import "./XXX.sol";。其相关引入的合约和library库均放在contracts/solidity/目录。
  • 如果合约引用了library库,library库文件的名称必须以Lib字符串开始,以便于区分是普通合约与library库文件。library库文件不能单独部署和调用。

deployByCNS:通过CNS在区块链上部署一个合约

调用合约
  • call:通过函数和参数调用合约。
call [合约路径] [合约地址] [合约接口名] [合约接口参数]

注:参数:由合约接口参数决定。**参数由空格分隔,其中字符串、字节类型参数需要加上双引号;数组参数需要加上中括号,比如[1,2,3],数组中是字符串或字节类型,加双引号,例如[“alice”,”bob”],注意数组参数中不要有空格;布尔类型为true或者false。**
  • callByCNS:通过CNS(Contract Name Service)按函数和参数调用合约。
callByCNS [合约路径] [合约地址] [合约接口名] [合约接口参数]
获取合约的状态
  • getContractStatus:获取合约的状态
getContractStatus [合约地址]
查询部署合约的日志
  • getDeployLog:查询部署合约的日志
列出合约的函数和事件信息
  • listAbi:列出合约的函数和事件信息
listAbi [合约文件路径]
列出指定合约的合约地址
  • listDeployContractAddress:列出指定合约的合约地址
listDeployContractAddress [合约文件路径]

区块和交易信息

通过哈希查询区块的信息
  • getBlockByHash:通过哈希查询区块的信息
getBlockByHash [区块哈希]  [true/fasle]

注:
true表示会返回一个交易对象,false会返回只返回交易哈希,不写默认为false
通过区块号查询区块的信息
  • getBlockByNumber:通过区块号查询区块的信息
getBlockByNumber [区块号] [true/false]

注:
true表示会返回一个交易对象,false会返回只返回交易哈希,不写默认为false
通过区块号查询区块哈希
  • getBlockHashByNumber:通过区块号查询区块哈希
getBlockHashByNumber [区块号]
通过哈希查询区块头的信息
  • getBlockHeaderByHash:通过哈希查询区块头的信息
getBlockHeaderByHash [区块哈希]  [true/fasle]

注:
如果为true,则还将返回签名列表,不写默认为false
通过区块号查询区块头的信息
  • getBlockHeaderByNumber:通过区块号查询区块头的信息
getBlockHeaderByNumber [区块号]  [true/false]
查询最新区块的数量
  • getBlockNumber:查询最新区块的数量
查询未确认的交易
  • getPendingTransactions:查询未确认的交易
根据区块哈希和交易索引位置查询交易的信息
  • getTransactionByBlockHashAndIndex:根据区块哈希和交易索引位置查询交易的信息
getTransactionByBlockHashAndIndex  [区块哈希]  [交易索引]
根据交易哈希查询交易的信息
  • getTransactionByHash:根据交易哈希查询交易的信息
getTransactionByHash [交易哈希]
根据交易哈希查询交易收据
  • getTransactionReceipt:根据交易哈希查询交易收据
getTransactionReceipt [交易哈希]
查询总交易数

getTotalTransactionCount:查询总交易数

权限管理

这部分需要先理解fisco-bcos安全控制中的权限控制部分才能更好的使用

  • grantCNSManager:授予地址对CNS的权限

  • grantCommitteeMember:授予账户委员会成员身份。

  • grantContractStatusManager:授予用户合约授权。

  • grantContractWritePermission:授予账户对合约的写入权限。

  • grantDeployAndCreateManager:授予地址对部署合约和创建用户表的权限。

  • grantNodeManager:授予地址对节点配置的权限。

  • grantOperator:授予账户操作员身份。

  • grantSysConfigManager:授予地址对系统配置的权限。

  • grantUserTableManager:授予对指定表名和地址的用户表的权限。

  • revokeCNSManager:撤销对CNS的权限。

  • revokeCommitteeMember:从委员会成员中撤销账户。

  • revokeContractStatusManager:撤销用户对合约的授权。

  • revokeContractWritePermission:撤销账户对合约的写入权限。

  • revokeDeployAndCreateManager:撤销对部署合约和创建用户表的权限。

  • revokeNodeManager:撤销对节点配置的权限。

  • revokeOperator:撤销操作员身份。

  • revokeSysConfigManager:撤销对系统配置的权限。

  • revokeUserTableManager:撤销对指定表名和地址的用户表的权限。文章来源地址https://www.toymoban.com/news/detail-760990.html

  • revokeSysConfigManager:撤销对系统配置的权限。

  • revokeUserTableManager:撤销对指定表名和地址的用户表的权限。

委员会成员权重

  • queryCommitteeMemberWeight:查询委员会成员的权重。
  • updateCommitteeMemberWeight:更新委员会成员的权重。

整理下来过程艰难,请大家一键三连走起!!!

到了这里,关于FISCO-BCOS 命令交互控制台 Console-命令大全(超详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FISCO-BCOS 十四、使用Caliper进行压力测试fisco-bcos

            前言:根据操作系统版本不同,部署环境不同,一些细节差别可能造成测试失败等问题,此文仅做参考,应以实际应用为主。         参考官方文档:压力测试指南 — FISCO BCOS v2.9.0 文档 部署Caliper的计算机需要有外网权限; 操作系统版本需要满足以下要求:Ub

    2024年02月16日
    浏览(31)
  • 【FISCO-BCOS】十四、使用Caliper进行压力测试fisco-bcos

            前言:根据操作系统版本不同,部署环境不同,一些细节差别可能造成测试失败等问题,此文仅做参考,应以实际应用为主。         参考官方文档:压力测试指南 — FISCO BCOS v2.9.0 文档 部署Caliper的计算机需要有外网权限; 操作系统版本需要满足以下要求:Ub

    2024年02月15日
    浏览(31)
  • 区块链实验室(20) - FISCO控制台连接到指定的节点

    在FISCO技术文档中,控制台默认采用config.toml作为配置文件,并指定了连接的节点地址和商品,如下所示。 在该案例中,控制台将连接到端口为20200、20201的节点,即node0和node1节点。如果要连接到其他指定的节点,修改该配置。例如如下。 重启控制台之后,将连接到node99节点

    2024年02月09日
    浏览(32)
  • Fisco-Bcos智能合约开发案例----商品溯源

    1个商品种类----》n个商品,同时还可以创建多个商品种类(工厂合约的作用) 1.部署工厂合约 2.创建商品种类 3. 创建对应的商品 4.查询商品种类 5. 查询商品状态 0–生产者,1—运输者,2—超市售卖者,3—消费者 6. 查询商品溯源信息 7.改变商品状态 8.查询商品溯源

    2024年02月11日
    浏览(35)
  • 区块链实验室(14) - 编译FISCO-BCOS

    FISCO-BCOS是一种区块链平台,与Hyperledger和Ethereum有些不同,详见FISCO BCOS 区块链 编译FISCO BCOS源码的目的是修改或者新增其中功能模块,进行对比实验,验证新想法、新创意的效果。编译的步骤很简单,按技术文档一步一步进行即可。可能碰到的问题是访问网站raw.githubusercont

    2024年02月13日
    浏览(31)
  • FISCO-BCOS区块链网络环境搭建(亲测成功)

    因项目技术选型需要,需要搭建一个FISCO-BCOS区块链网络环境,该文记录一下搭载过程,或遇到的一个坑及其解决方法 一个如图所示的6节点3机构2群组的组网模式。机构B和机构C分别位于群组1和群组2中。机构A同属于群组1和群组2中 参考文章:FISCO-BCOS区块链网络环境搭建 此操

    2024年02月08日
    浏览(41)
  • 基于Fisco-Bcos的区块链智能合约-简单案例实践

    智能合约是指把合同/协议条款以代码的形式电子化地放到区块链网络上。FISCO BCOS平台支持两种智能合约类型:Solidity智能合约与预编译智能合约 Solidity与Java类似。代码写好后,都需要通过编译器将代码转换成二进制,在Java中,编译器是Javac,而对于Solidity,是solc。生成后的

    2024年02月09日
    浏览(35)
  • fisco-bcos 部署企业级国密区块链

    首先说明,我目前所用的fisco-bcos generator企业部署版本尚不支持docker部署,只能在主机上直接部署。 下面进入正题 我们本次搭建的是三机构A、B、C组成的联盟链,AB首先组成群组Group1,C后期加入Group1。 本文所有的操作目录都是基于generator文件夹 在A、B、C三台机器上下载并安

    2024年02月03日
    浏览(31)
  • 如何使用Python的交互控制台

    简介 Python的交互控制台(也叫做Python解释器,或是Python Shell)为程序员提供了\\\"运行指令\\\"和\\\"不创建文件测试测试代码\\\"的快速途径。 交互控制台可以调用所有的Python内置函数和任何已安装的模块、命令行历史、和自动补全。它为\\\"探索Python语言\\\"和\\\"写好代码后粘贴入文件\\\"提供了

    2024年02月02日
    浏览(53)
  • 【前端学习记录】neffos插件与控制台交互

    最近项目上有个需求需要用到websocket,于是就学了一下关于websocket的使用方法。不过由于后台使用的框架限制,需要前后端一起使用neffos插件,中间踩了很多的坑,这里简单记录一下。 WebSocket 是一种在客户端和服务器之间实现双向通信的协议,它允许服务器主动向客户端推

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包