赞
踩
使用build_chain.sh部署一条区块链网络,其中ip与端口为默认配置。完成配置并启动后,使用ps以及tall命令进行验证。
cd fisco-bcos
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 –e ./fisco-bcos
bash nodes/127.0.0.1/start_all.sh
检查进程是否启动
ps -ef | grep fisco
查看节点node0链接的节点数
tail -f nodes/127.0.0.1/node0/log/log* | grep connected
进入fisco-bcos目录,基于已有的console目录,配置连接正在运行的FISCO BCOS区块链,并启动。在启动成功后使用getBlockNumber命令获取区块高度。
进入fisco-bcos目录,基于已有的console目录
配置连接正在运行的FISCOBCOS区块链,拷贝控制台配置文件conf
cp ../nodes/127.0.0.1/sdk/* conf/
启动并使用控制台
bash start.sh
使用getBlockNumber命令获取区块高度。
关闭所有FISCO BCOS服务
bash nodes/127.0.0.1/stop_all.sh
使用命令一键启动,进入webase-deploy文件
python3 deploy.py startAll
通过浏览器以访问web的形式验证
通过ps命令验证进程
检查节点进程
ps -ef | grep node
检查节点前置webase-front的进程
检查webase.node对应的mgr进程
检查签名服务webase-sign的进程
进入console项目控制台:cd console
通过拷贝配置文件,连接WeBASE一键部署后的FISCO BCOS节点
cp ~/fisco-bcos/webase-deploy/nodes/127.0.0.1/sdk/* conf
启动并使用控制台
bash start.sh
newAccount
listAccount
getBlockNumber
getSealerList
getNodeIDList
getConsesusStatus
getSyncStatus
getPeers
使用Console完成HelloWorld合约的部署,并调用Set和Get功能通过Console命令获取调用后生成交易hash值对应的详细内容
部署helloword合约
deploy HelloWorld
调用部署的helloworld合约
call HelloWorld 0x605f2de4bccdff3d1d1ae877de9c644db5326eea get
call HelloWorld 0x605f2de4bccdff3d1d1ae877de9c644db5326eea set “Hello,CCIT”
call HelloWorld 0x605f2de4bccdff3d1d1ae877de9c644db5326eea get
通过交易号查看指定交易
登录(admin/Abcd1234),修改密码后进入控制台主页
节点查看
使用Console调用HelloWorld合约Set功能,通过WeBASE主页观察区块变化情况
在nodes/127.0.0.1目录下运行
cd fisco-bcos/webase-deploy/nodes/127.0.0.1/
下载生成脚本
curl -#LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master-2.0/tools/gen_node_cert.sh
bash gen_node_cert.sh -c ../cert/agencyA -o node2/
拷贝node0/config.ini
、node0/start.sh
和node0/stop.sh
到node2目录;
cp node0/config.ini node0/start.sh node0/stop.sh node2/
修改node2/config.ini
。对于[rpc]
模块,修改channel_listen_port=20204
和jsonrpc_listen_port=8549
;对于[p2p]
模块,修改listen_port=30304
并在node.
中增加自身节点信息
vim node2/config.ini
节点3拷贝节点1的node0/conf/group.1.genesis
(内含群组节点初始列表)和node0/conf/group.1.ini
到node2/conf
目录下,不需改动
cp node0/conf/group.1.genesis node0/conf/group.1.ini node2/conf/
执行node2/start.sh
启动节点;
bash node2/start.sh
确认node2与其他节点连接已经建立,加入网络操作完成。
tail -f node2/log/log* | grep "connected count"
获取node2的nodeid
cat node2/conf/node.nodeid
webase 查看节点情况
第一步:webase(5000 端口),导出以p12 加密形式导出 admin 账户。
第二步:webase-front(5002 端口)导入(合约管理->测试用户)
- #网址:
- http://192.168.200.100:5002/WeBASE-Front/#/
第一步:合约 IDE 创建 StringGetSet合约
合约内容:
- pragma solidity ^0.4.24;
- contract StringGetSet {
- string myValue;
- function StringGetSet(){
- myValue = "demo";
- }
- function get()constant returns(string) {
- return myValue;
- }
- function set(string input) {
- myValue = input;
- }
- }
-
编译 - > 部署
第二步:部署StringGetSet合约
第三步:获得合约部署地址和 abi
第一步:使用合约调用进行合约验证
首先把合约调用的方法选择成get
交易回执就是demo
把合约调用的方法改成set,其参数为hello,然后调用其信息
把合约调用的方法选择成get
其调用的结果就是hello
基于WeBASE实现FISCO BCOS委员会操作,分别实现:委员新增、权重修改、阈值修改以及委员撤销。
点击权限管理->新增委员投票->添加user1
点击权限管理->新增委员投票->添加user2
点击权限管理,分别使用user1和user2,添加user3
user1投票
user2投票后修改成功
user1投票
user2投票后修改成功
由于user1权重比大于49%,投票后直接成功撤销
使用三次bash get_account.sh创建用户a1,a2,a3
bash get_account.sh
进行验证:
tree accounts
第一步:a1控制台的操作(指定账户1登录控制台)
./start.sh 1 -pem accounts/0xc8dc3d333633968b5637fea669942e2e21a19cdb.pem
先查看有没有链委会成员
listCommitteeMembers
grantCommitteeMember 0xc8dc3d333633968b5637fea669942e2e21a19cdb
添加第二条链委会
grantCommitteeMember 0xa53862955615fe046396c3c1b230d4c38c67149b
添加第三条链委会
grantCommitteeMember 0x93cb4ebd941a5dee23f60cbe5180d1c802408f40
第二步:a2控制台的操作
grantCommitteeMember 0x4f666e3a34661fdd2d76d6f03d85e1f2a0f11801
验证:
第一步:a1控制台的操作
updateCommitteeMemberWeight 0xb8f33204441c4e43b5be6f4875a2fd42bf994a6b 2
第二步:a2控制台的操作
updateCommitteeMemberWeight 0xb8f33204441c4e43b5be6f4875a2fd42bf994a6b 2
验证:
第一步:a1控制台的操作
updateThreshold 49
第二步:a2控制台的操作
updateThreshold 49
验证:
revokeCommitteeMember 0x93cb4ebd941a5dee23f60cbe5180d1c802408f40
由于委员会a1的权重比大于49%,所以在控制台al可以直接撤销a3的委员。
验证:
启动webase,并确认webase-front中已部署StringGetSet合约
cd fisco-bcos/webase-deploy/
python3 deploy.py startAll
通过data-export准实时监控StrngGetSet合约
cd ~/fisco-bcos
删除原本的data-export-docker
rm -rf data-export-docker/
tar xzvf data-export-1.7.2.tar.gz
选择channel方式连接链节点时,需配置证书
cd data-export-docker
cp ../webase-deploy/nodes/127.0.0.1/sdk/* config/
tree config
cd config/abi/
vim StringGetSet.abi
把webase里面的合约IDE部署的abi复制粘贴到此文件里面
cat StringGetSet
进入到config/bin环境中
- cd ../
- ls
- cd bin
vim StringGetSet.bin
把webase里面的合约IDE部署的bytecodeBin复制粘贴到此文件里面
docker rm mysql
bash build_export.sh -m
上述脚本会自动安装docker,并拉取对应镜像,进行执行。如果docker安装失败,请手动安装后重新执行脚本。
脚本参数说明
参数 | 说明 |
---|---|
-m | 自动安装mysql,数据存储在/data/mysql下 |
-e | 自动安装elasticsearch,数据存储在/data/elasticsearch下 |
-g | 自动安装grafana |
解析:
- 加后缀 -m 启动脚本,会通过docker自动安装mysql, 并创建一个名为 data_export 的数据库, application.properties 中默认配置了该mysql的信息,无需另配置mysql连接信息。
- 加后缀 -e 启动脚本,会通过docker自动安装elasticsearch,并自动修改配置文件中es相关配置。
- 加后缀 -g 启动脚本, 会通过docker自动安装grafana,并自动修改配置文件中可视化相关配置,生成可视化脚本。
- 不加后缀执行如: bash build_export.sh,这时需自行安装相关组件,并配置连接信息。
- ElasticSearch用于商用场景时需自行去ElasticSearch官网下载或采购。该行为与微众区块链无关。
docker logs -f dataexport
有如下输出说明启动连接成功
访问docker数据库命令如下
docker exec -it mysql bash
进入mysql端口
mysql -uroot -p
查看mysql中data_export数据库
use data_export
show tables;
配置文件application.properties位于config目录下
修改application.properties文件:该文件包含了所有的配置信息。以下配置信息是必须要配置的:
docker run -itd -p 3000:3000 --name=grafana grafana/grafana
用户名和密码:admin/admin
需要从/home/arthur/fisco-bcos/data-export-docker/config/拉取文件default_dashboard.json到桌面,然后import加载配置文件
加载成功示例
进入fisco-bcos目录,一键部署FISCO BCOS
- cd fisco-bcos
- ls
- bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 –e ./fisco-bcos
bash nodes/127.0.0.1/start_all.sh
进入WeBASE-Front目录,拷贝证书
- cd WeBASE-Front
- ls
- #在dist目录下拷贝
- cd dist
- cp ../../nodes/127.0.0.1/sdk/* conf/
启动WeBASE-Front服务
bash start.sh
监控日志
tail -f log/WeBASE-Front.log
页面呈现:网址为:192.168.200.100:5002/WeBASE-Front/(ip地址)
- cd fisco-bcos
- cd nodes/127.0.0.1
- #下载链接
- curl -#LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/master-2.0/tools/gen_node_cert.sh
bash gen_node_cert.sh -c ../cert/agency -o node4
cp node0/config.ini node0/start.sh node0/stop.sh node4/
vim config.ini
cp node0/conf/group.1.* node4/conf/
bash node4/start.sh
tail -f node4/log/log* | grep connected
配置连接正在运行的FISCOBCOS区块链,拷贝控制台配置文件conf ,启动服务器
- cp ../nodes/127.0.0.1/sdk/* conf/
- bash start.sh
- cd fisco-bcos
- cat nodes/127.0.0.1/node4/conf/node.nodeid
- getNodeIDList
- getSealerList
-
- addrSealer 07ac6053d176f857ce66eee5443a5b095aba694a2b0ac52ce1352be7f8ee66aab881d8682e4266a04c07956cae605a6dc16304b488d54179d63773240d8d61ac
-
在控制台上验证:
getSealerList
通过日志验证:
- cd ../nodes/127.0.0.1/
- tail -f node4/log/log* | grep +++
部署HelloWorld合约
Get方法:
Set方法:
Adoption智能合约的部署:
Adoption智能合约调用
调用合约中register功能
首先指定注册用户
调用register结果返回:
调用登录功能login
FoodTraceNew智能合约的部署
FoodTraceNew智能合约的调用
分别调用createMember以及getMember
createMember调用
调用createMember返回结果
getMember调用
删除mysql容器
- cd fisco-bcos
- docker ps -a
- docker rm mysql
清空volume
docker volume prune
删除data-export-docker目录
rm -rf data-export-docker
重新解压
tar xzvf data-export-1.7.2.tar.gz
- cd fisco-bcos
- cd data-export-docker
- cp ../nodes/127.0.0.1/sdk/* config
- cd config/abi
- ls
- rm -rf HelloWorld.abi
- cd ../bin
- ls
- rm -rf HelloWorld.abi
- cd ../abi
- vim Adoption.abi
- vim FoodTraceNew.abi
- cd ../bin
- ls
- vim Adoption.bin
- vim FoodTraceNew.bin
在WeBASE-Front中复制Adoption.abi和Adoption.bin内容到指定文件中
bash build_export.sh -m
- docker exec -it mysql bash
- mysql -uroot -p
- show databases;
- use data_export
- show tables;
vim config/application.properties
docker run -itd -p 3000:3000 --name=grafana grafana/grafana
有如下页面:
Grafana监控情况
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。