一、前言
本篇学习需要虚拟机内有搭建好区块链网络
1.区块链网络搭建教程:Fisco-Bcos联盟链搭建及运维——基础篇1
https://blog.csdn.net/Ws184666/article/details/138526871?spm=1001.2014.3001.5502
2.区块链网络教程官网:搭建第一个区块链网络
https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/installation.html)
使用环境:CentOS7虚拟机
二、配置并搭建控制台
1.下载控制台安装包
curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh
2.解压并修改配置文件
控制台是基于区块链网络运行的,所以要将我们搭建好的区块链网络内的sdk证书拷贝给控制台,这样启动的时候才能通过区块链网络正常的运行控制台,而且很多操作也是在链上完成的。
2.1解压控制台压缩包
tar -zxvf console.tar.gz
2.2拷贝区块链网络的sdk证书到控制台内
有了sdk证书,控制台在运行的时候才能使用区块链网络,
拷贝控制台本身的文件是因为在下载时,config-example.toml是留作于备用的,在启动的时候只会根据config.toml来运行,因此需要手动复制一份。
cp nodes/127.0.0.2/sdk/* console/conf/
cp console/conf/config-example.toml console/conf/config.toml
2.3 启动控制台
启动控制台后,出现FISCO BCOS图形化文字则为正常启动
bash console/start.sh
三、控制台的常用操作
1.编译合约和查询合约地址
HelloWorld是控制台内自带的合约,如果需要编译自己已经写好的合约,请存放在console/contracts/solidity/路径下指定路径编译。
deploy HelloWorld //deploy {合约路径or名字} 编译合约
getDeployLog //查询编译日志
2.调用已经部署的合约
通过call调用已经部署好的合约,根据合约名、合约地址以及合约内的方法进行调用,例如以下HelloWorld合约,调用set和get方法
call {合约名} {合约地址} {合约方法}
call HelloWorld 0x94e56e7595f9231897a557bf1f40efecd7cc6052 set "Hallo Xuanyun"
call HelloWorld 0x94e56e7595f9231897a557bf1f40efecd7cc6052 get
3.查询共识节点、添加共识节点和移除共识节点
3.1 查询共识节点
这里查询的是区块链网络,分为四个已经共识的节点。
getSealerList
3.2 添加共识节点
在上一篇的博客内,有添加新节点node4的操作,在添加后需要将新建的节点在控制台内进行添加,才能与其他节点共识。
3.2.1 获取node4的nodeid
cat nodes/127.0.0.2/node4/conf/node.nodeid
3.2.2 在控制台将node4添加为共识节点
addSealer {node4节点的nodeid}
addSealer 3b3acf8b455fc960556c99c974fc50407563f207235981bb1c48490fb890d9f04f7e7bf30778fb7e064f636ccc89ef792126417eb33ff3525caa5a47c24938d4
3.2.3 移除共识节点
removeNode {共识节点的nodeid}
removeNode 3b3acf8b455fc960556c99c974fc50407563f207235981bb1c48490fb890d9f04f7e7bf30778fb7e064f636ccc89ef792126417eb33ff3525caa5a47c24938d4
4.添加观察节点、查询观察节点列表
addObserver {nodeid}
addObserver 3b3acf8b455fc960556c99c974fc50407563f207235981bb1c48490fb890d9f04f7e7bf30778fb7e064f636ccc89ef792126417eb33ff3525caa5a47c24938d4
getObserverList
5.生成账户并赋予委员权限(委员会)
5.1 生成账户
bash get_account_sh
5.2 用生成的账户登录控制台
记得修改成自己生成的账户地址,都是默认生成在accounts文件目录下的。
bash start.sh 1 -pem accounts/0x294215e25ebf66a891de6076a808556cb77dcc9a.pem
5.3 赋予自己委员权限
grantCommitteeMember {账户地址}
grantCommitteeMember 0x294215e25ebf66a891de6076a808556cb77dcc9a
5.4 移除委员权限
revokeCommitteeMember {账户地址}
revokeCommitteeMember 0x294215e25ebf66a891de6076a808556cb77dcc9a
6.添加运维权限
需要通过委员账户给别的账户赋予,且不能是委员账户。
grantOperator 0x1ee10ed275058227f41321770b0927cfd63cb679
总结
控制台的基本操作都是指令+固定的参数,只需要将常用的指令背下,就能很好的操做控制台,在控制台部署和编译合约是需要掌握一个重要知识点,因为后续的JavaSDK就是请求到共识节点进行操作的,而且需要掌握编写智能合约的技能,才能在控制台进行编译。
不过Fisco-Bcos官网也推出了WeBASE平台进行合约的管理,让请求合约和编写合约变得更加便捷了,后续还会发出WeBASE平台的搭建流程。