BRICS比赛流程梳理如下,从上到下的顺序为比赛流程的顺序。总共3个部分,从环境搭建到常见问题踩坑。提供了参考。整合了许多文档于一体的一部参考文档。对于未完成的部分,未来会完成补坑。
安装Ubuntu对于Fisco-Bcos依赖
sudo apt install -y openssl curl
创建区块链比赛目录
cd ~ && mkdir -p fisco && cd fisco
下载安装脚本
curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.9.1/build_chain.sh && chmod u+x build_chain.sh
搭建2节点联盟链
bash build_chain.sh -l 127.0.0.1:2 -p 30300,20200,8545
命令执行成功会输出All completed。如果执行出错,请检查nodes/build.log文件中的错误信息。
启动2节点联盟链
bash nodes/127.0.0.1/start_all.sh
启动成功如下所示
try to start node0
try to start node1
node0 start successfully
node1 start successfully
检查进程是否成功启动
ps -ef | grep -v grep | grep fisco-bcos
正常情况会有类似下面的输出; 如果进程数不为2,则进程没有启动(一般是端口被占用导致的)
fisco 5453 1 1 17:11 pts/0 00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
fisco 5459 1 1 17:11 pts/0 00:00:02 /home/ubuntu/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
系统安装Java
sudo apt install -y default-jdk
获取控制台并返回fisco目录
cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh
拷贝控制台配置文件
cp -r nodes/127.0.0.1/sdk/* console/conf/
将刚刚搭建的2节点下sdk所有证书配置文件赋值到控制台中的配置文件目录
启动并使用控制台,检测控制台是否安装配置成功
cd ~/fisco/console && bash start.sh
这是正确无误的启动情况
=============================================================================================
Welcome to FISCO BCOS console(2.6.0)!
Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console.
________ ______ ______ ______ ______ _______ ______ ______ ______
| \| \ / \ / \ / \ | \ / \ / \ / \
| $$$$$$$$ \$$$$$$| $$$$$$\| $$$$$$\| $$$$$$\ | $$$$$$$\| $$$$$$\| $$$$$$\| $$$$$$\
| $$__ | $$ | $$___\$$| $$ \$$| $$ | $$ | $$__/ $$| $$ \$$| $$ | $$| $$___\$$
| $$ \ | $$ \$$ \ | $$ | $$ | $$ | $$ $$| $$ | $$ | $$ \$$ \
| $$$$$ | $$ _\$$$$$$\| $$ __ | $$ | $$ | $$$$$$$\| $$ __ | $$ | $$ _\$$$$$$\
| $$ _| $$_ | \__| $$| $$__/ \| $$__/ $$ | $$__/ $$| $$__/ \| $$__/ $$| \__| $$
| $$ | $$ \ \$$ $$ \$$ $$ \$$ $$ | $$ $$ \$$ $$ \$$ $$ \$$ $$
\$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$
=============================================================================================
请注意:WeBASE-Front依赖于JAVA_HOME。如果没有配置JAVA_HOME,请优先配置JAVA_HOME在完成以下操作
查看位置
which java
输出:/usr/bin/java
确定Java安装位置
ls -lr /usr/bin/java
ls -lrt /etc/alternatives/java
输出:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64。这个就是Java的安装目录。
打开配置环境变量的文件
vim /etc/profile
添加如下配置
export JAVA_HOME=java安装目录
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
刷新并测试是否配置成功
source /etc/profile && echo $JAVA_HOME
下载安装包
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.5/webase-front.zip
解压并进入目录
unzip webase-front.zip
cd webase-front
拷贝sdk证书文件(build_chain生成的)
cp -r nodes/${ip}/sdk/* ./conf/
服务启动
bash start.sh
启动成功出现如下日志
...
Application() - main run success...
检查节点进程
ps -ef | grep node
输出如下,此处部署了两个节点node0, node1
root 29977 1 1 17:24 pts/2 00:02:20 /root/fisco/webase/webase-deploy/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
root 29979 1 1 17:24 pts/2 00:02:23 /root/fisco/webase/webase-deploy/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
检查节点前置webase-front的进程
ps -ef | grep webase.front
正常输入如下
root 31805 1 0 17:24 pts/2 00:01:30 /usr/local/jdk/bin/java -Djdk.tls.namedGroups=secp256k1 ... conf/:apps/*:lib/* com.webank.webase.front.Application
这里的详细操作请参考文档➡️➡️如何生成节点并添加到群组
npm install --only=prod @hyperledger/caliper-cli@0.2.0
npx caliper --versi
成功会打印版本信息v0.2.0。如果错误,请检查环境是否完整或者版本是否对应。

npx caliper bind --caliper-bind-sut fisco-bcos --caliper-bind-sdk latest

在Caliper目录下通过git拉去测试代码,由于网络原因,这里使用gitee
git clone https://gitee.com/vita-dounai/caliper-benchmarks.git

一共要修改4个文件的源码,分别是fiscoBcos.js,channelPromise.js,web3sync.js, 一个依赖包版本secp256k1
修改fiscoBcos.js
vim ./node_modules/@hyperledger/caliper-fisco-bcos/lib/fiscoBcos.js



修改channelPromise.js
vim ./node_modules/@hyperledger/caliper-fisco-bcos/lib/channelPromise.js

修改web3sync.js
vim ./node_modules/@hyperledger/caliper-fisco-bcos/lib/web3lib/web3sync.js



修改package.json文件,添加secp256k1 依赖
vim node_modules/@hyperledger/caliper-fisco-bcos/package.json

在该目录下重新安装依赖:
npm i
进入caliper目录中输入如下命令:
npx caliper benchmark run --caliper-workspace caliper-benchmarks --caliper-benchconfig benchmarks/samples/fisco-bcos/helloworld/config.yaml --caliper-networkconfig networks/fisco-bcos/4nodes1group/fisco-bcos.json
等命令执行完成之后会显示如下页面:


如上图所示,显示了4个节点的内存,磁盘使用率,每秒交易的TPS,最大与最小响应时间
在caliper-benchmarks中也有report.html文件方便查看。
启动webase平台(webase-front)
在caliper目录中:
cd ./caliper-benchmarks/networks/fisco-bcos
mkdir myProject
在该目录创建fisco-bcos.json

下载成功如图所示

使用npm安装Truffle
npm install -g truffle@5.8.2
创建项目并未当前用户添加权限
truffle init && sudo chmod -R 777 你创建的truffle文件夹目录地址
如果在安装的过程中出现了错误的token,如图所示。

建议升级node版本或者npm版本,然后清除npm缓存,再不行就卸载重装最新版本node。即可解决这一问题。
修改配置文件


在启动Ganache私有链环境与Truffle框架配置完成之后就可以进行如下操作。
truffle compile && truffle migrate

如果合约地址在链上出现,说明合约部署成功并完成上链操作

写完之后的合约进行单元测试
truffle test ./test/你编写的测试脚本
3.1. 这里提供HelloWorld.sol 的测试脚本,仅作为参考
const helloWorld = artifacts.require("HelloWorld");
contract("helloWorld", async(accounts)=>{
let var_data;
it("Test HelloWorld get", async() =>{
const hello = await helloWorld.deployed();
const var_data = await hello.getName();
assert.equal(var_data, "HelloWorld", "ok");
})
it("Test HelloWorld set", async() =>{
const hello = await helloWorld.deployed();
await hello.setName("Hello Chain!");
})
it("Test HelloWorld get2", async() =>{
const hello = await helloWorld.deployed();
const var_data = await hello.getName();
assert.equal(var_data, "Hello Chain!", "ok2")
})
})
测试成功如下图所示⬇️⬇️⬇️

正在加载评论...