sudo apt install -y openssl curl
cd ~ && mkdir -p fisco && cd fisco
curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.1.0/build_chain.sh && chmod u+x build_chain.sh
在fisco目录下执行下面的指令,生成一条单群组4节点的FISCO链:
bash build_chain.sh -l "127.0.0.1:4" -p 30300,20200,8545
注:请确保机器的30300-30303,20200-20203,8545-8548端口没有被占用。其中 -p
选项指定起始端口,分别是p2p_port,channel_port,jsonrpc_port,出于安全考虑jsonrpc/channel默认监听127.0.0.1。需要外网访问请添加-i参数。
bash nodes/127.0.0.1/start_all.sh
启动成功会输出类似图上内容的响应。否则请使用netstat -an | grep
tcp检查机器的30300-30303,20200-20203,8545-8548端口是否被占用。
ps -ef | grep -v grep | grep fisco-bcos
正常情况会有类似上图的输出;如果进程数不为4,则进程没有启动(一般是端口被占用导致的)
tail -f nodes/127.0.0.1/node0/log/log* | grep connected
正常情况会不停地输出链接信息,从输出可以看出node0与另外3个节点有链接。
tail -f nodes/127.0.0.1/node0/log/log* | grep +++
正常情况会不停输出++++Generating seal,表示共识正常。
按crtl+c即可停止输出。
sudo apt install -y default-jdk
cd ~/fisco && bash <(curl -s https://raw.githubusercontent.com/FISCO-BCOS/console/master/tools/download_console.sh)
cd ~/fisco/console && bash start.sh
输出上述信息表明启动成功 否则请检查conf/applicationContext.xml中节点端口配置是否正确
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合约已经内置于控制台中,位于控制台目录下contracts/solidity/HelloWorld.sol,参考下面命令部署即可。
# 在控制台输入以下指令 部署成功则返回合约地址
[group:1]> deploy HelloWorld
contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344
# 查看当前块高
[group:1]> getBlockNumber
1
# 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址
[group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get
Hello, World!
# 查看当前块高,块高不变,因为get接口不更改账本状态
[group:1]> getBlockNumber
1
# 调用set设置name
[group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS"
0x21dca087cb3e44f44f9b882071ec6ecfcb500361cad36a52d39900ea359d0895
# 再次查看当前块高,块高增加表示已出块,账本状态已更改
[group:1]> getBlockNumber
2
# 调用get接口获取name变量,检查设置是否生效
[group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get
Hello, FISCO BCOS
# 退出控制台
[group:1]> quit
注:由于搭建单群组的fisco-bcos链是入门级,相对于简单,所以本篇基本都是参考fisco-bcos官网的入门教程的,只有在部署控制台那一块有少许代码进行了变动。附上官网的链接:单群组FISCO BCOS联盟链的搭建 后续的几篇文章会讲采用企业级部署工具来搭建一个多群组的链,以及关于如何搭建webase中间件平台。