准备环境
- 安装依赖
开发部署工具 build_chain.sh脚本依赖于openssl, curl,使用下面的指令安装。
sudo yum install -y openssl curl
- 创建操作目录
cd ~ && mkdir -p fisco && cd fisco
- 下载 build_chain.sh脚本
curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.5.0/build_chain.sh && chmod u+x build_chain.sh
搭建单组4节点联盟链
在fisco目录下执行下面的指令,生成一条单群组4节点的FISCO链。 请确保机器的30300~30303,20200~20203,8545~8548端口没有被占用。
bash build_chain.sh -l "127.0.0.1:4" -p 30300,20200,8545 -v 2.5.0
命令执行成功会输出All completed。如果执行出错,请检查nodes/build.log文件中的错误信息。
启动FISCO BCOS链
- 启动所有节点
bash nodes/127.0.0.1/start_all.sh
启动成功会输出类似下面内容的响应。否则请使用netstat -an | grep tcp检查机器的30300~30303,20200~20203,8545~8548端口是否被占用。
try to start node0
try to start node1
try to start node2
try to start node3
node1 start successfully
node0 start successfully
node3 start successfully
node2 start successfully
检查进程
- 检查进程是否启动
ps -ef | grep -v grep | grep fisco-bcos
正常情况会有类似下面的输出; 如果进程数不为4,则进程没有启动(一般是端口被占用导致的)
root 3742 1 0 10:06 pts/0 00:00:00 /root/fisco/nodes/127.0.0.1/node0/../fisco-bcos -c config.ini
root 3744 1 0 10:06 pts/0 00:00:00 /root/fisco/nodes/127.0.0.1/node1/../fisco-bcos -c config.ini
root 3746 1 0 10:06 pts/0 00:00:00 /root/fisco/nodes/127.0.0.1/node2/../fisco-bcos -c config.ini
root 3748 1 0 10:06 pts/0 00:00:00 /root/fisco/nodes/127.0.0.1/node3/../fisco-bcos -c config.ini
检查日志输出
- 如下,查看节点node0链接的节点数
tail -f nodes/127.0.0.1/node0/log/log* | grep connected
正常情况会不停地输出链接信息,从输出可以看出node0与另外3个节点有链接。
info|2020-07-06 10:11:05.069651|[P2P][Service] heartBeat,connected count=3
info|2020-07-06 10:11:15.069711|[P2P][Service] heartBeat,connected count=3
info|2020-07-06 10:11:25.069763|[P2P][Service] heartBeat,connected count=3
info|2020-07-06 10:11:35.069817|[P2P][Service] heartBeat,connected count=3
- 执行下面的命令,检查是否存在共识
tail -f nodes/127.0.0.1/node0/log/log* | grep +++
正常情况会不停输出++++Generating seal,表示共识正常。
info|2020-07-06 10:13:02.109280|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=3,hash=3a836945...
info|2020-07-06 10:13:06.135305|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=3,hash=7adac73e...
info|2020-07-06 10:13:10.199725|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=3,hash=980cf77e...
info|2020-07-06 10:13:14.227869|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=3,hash=beee252a...
info|2020-07-06 10:13:18.255894|[g:1][CONSENSUS][SEALER]++++++++++++++++ Generating seal on,blkNum=1,tx=0,nodeIdx=3,hash=1ece4a08...
配置及使用控制台
在控制台通过Web3SDK链接FISCO BCOS节点,实现查询区块链状态、部署调用合约等功能,能够快速获取到所需要的信息。
准备依赖
-
java环境配置
-
创建文件夹,用来安装jdk,使用
mkdir software实现 -
解压jdk ,
tar -zxvf jdk-8u144-linux-x64.tar.gz -
查看jdk路径,我这里为
/root/software/jdk1.8.0_144 -
配置java环境,编辑/etc/profile文件
vim /etc/profile,在最后一行添加环境变量# 配置java环境 export JAVA_HOME=/root/software/jdk1.8.0_144 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar -
使配置文件生效,
source /etc/profile -
查询java版本,
java -version
-
-
获取控制台并返回fisco目录
cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v1.0.10/download_console.sh && bash download_console.sh
- 拷贝控制台配置文件
若节点未采用默认端口,请将文件中的20200替换成节点对应的channle端口。
cp -n console/conf/applicationContext-sample.xml console/conf/applicationContext.xml
- 配置控制台证书
cp nodes/127.0.0.1/sdk/* console/conf/
启动控制台
- 启动
cd ~/fisco/console && bash start.sh
输出下述信息表明启动成功 否则请检查conf/applicationContext.xml中节点端口配置是否正确
=============================================================================================
Welcome to FISCO BCOS console(1.0.10)!
Type 'help' or 'h' for help. Type 'quit' or 'q' to quit console.
________ ______ ______ ______ ______ _______ ______ ______ ______
| | \/ \ / \ / \ | \ / \ / \ / \
| $$$$$$$$\$$$$$| $$$$$$| $$$$$$| $$$$$$\ | $$$$$$$| $$$$$$| $$$$$$| $$$$$$\
| $$__ | $$ | $$___\$| $$ \$| $$ | $$ | $$__/ $| $$ \$| $$ | $| $$___\$$
| $$ \ | $$ \$$ \| $$ | $$ | $$ | $$ $| $$ | $$ | $$\$$ \
| $$$$$ | $$ _\$$$$$$| $$ __| $$ | $$ | $$$$$$$| $$ __| $$ | $$_\$$$$$$\
| $$ _| $$_| \__| $| $$__/ | $$__/ $$ | $$__/ $| $$__/ | $$__/ $| \__| $$
| $$ | $$ \\$$ $$\$$ $$\$$ $$ | $$ $$\$$ $$\$$ $$\$$ $$
\$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$$ \$$$$$$ \$$$$$$ \$$$$$$
=============================================================================================
[group:1]>
控制台启动失败,参考 附录:JavaSDK启动失败场景
使用控制台获取信息
- 获取用户版本信息
[group:1]> getNodeVersion
{
"Build Time":"20200619 06:32:10",
"Build Type":"Linux/clang/Release",
"Chain Id":"1",
"FISCO-BCOS Version":"2.5.0",
"Git Branch":"HEAD",
"Git Commit Hash":"72c6d770e5cf0f4197162d0e26005ec03d30fcfe",
"Supported Version":"2.5.0"
}
- 获取节点链接信息
[group:1]> getPeers
[
{
"Agency":"agency",
"IPAndPort":"127.0.0.1:30302",
"Node":"node2",
"NodeID":"a23b7714730cfb998730bb1a12e51dadd6dba21ff55fef1e6acd8640cdffeeedf940cc63e921762fe21cf692dbc655807e7b71085a5c6b4a8cdb0ff991daa649",
"Topic":[
]
},
{
"Agency":"agency",
"IPAndPort":"127.0.0.1:30301",
"Node":"node1",
"NodeID":"d28e8bb924349f0a9d8360ff8e614d81d8b613add15488c8da40ce5fcd4d5d00adde05400819b599352f952550ddf2f724c8d9f1a4181ba2f44e3340aebc204b",
"Topic":[
]
},
{
"Agency":"agency",
"IPAndPort":"127.0.0.1:30303",
"Node":"node3",
"NodeID":"6ea529eb9918a98f594498819b826c2be802a7129a9ec702ab9b75d5179cca7c925421dca460045588e0bec64ab5835672830e94ae50e3810490c03c18602e3a",
"Topic":[
]
}
]
部署以及调用HelloWorld合约
HelloWorld合约提供两个接口,分别是get()和set(),用于获取/设置合约变量name。合约内容如下:
pragma solidity ^0.4.24;
contract HelloWorld {
string name;
function HelloWorld() {
name = "Hello, World!";
}
function get()constant returns(string) {
return name;
}
function set(string n) {
name = n;
}
}
部署HelloWorld合约
为了方便用户快速体验,HelloWorld合约已经内置于控制台中,位于控制台目录下contracts/solidity/HelloWorld.sol,参考下面命令部署即可。
[group:1]> deploy HelloWorld
contract address: 0x2ffb1a6af30745c280174b7e34df3bd64b05bcc0
调用HelloWorld合约
[group:1]> getBlockNumber
1
调用get接口获取name变量 此处合约地址是deploy指令返回的地址
[group:1]> call HelloWorld 0x89e7256e74781e721826011766f7fc059b12a272 get
Hello, World!
查看当前块高,块高不变,get接口不改变账本状态
[group:1]> getBlockNumber
1
调用set设置name
[group:1]> call HelloWorld 0x89e7256e74781e721826011766f7fc059b12a272 set "Hello, FISCO BCOS"
transaction hash: 0xb90d9f79f8b1a9c8ecb4118171644569c8c6413d8168846d18300496d7bbde71
调用get接口获取name变量 ,检查是否生效
[group:1]> call HelloWorld 0x89e7256e74781e721826011766f7fc059b12a272 get
Hello, FISCO BCOS
再次查看块高,块高增加表示已经出块,账本状态已更改
[group:1]> getBlockNumber
2
退出控制台
[group:1]> quit
6161

被折叠的 条评论
为什么被折叠?



