一、安装
1. 安装依赖
安装curl、openssl:
sudo apt-get update
sudo apt install -y curl openssl
2. 安装docker: (1)安装docker
# 更新包索引
sudo apt-get update
# 安装基础依赖库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
# 添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加docker仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 更新包索引
sudo apt-get update
# 安装Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
(2)加入docker用户组
sudo groupadd docker
sudo usermod -aG docker $USER
(3)安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3. 下载安装脚本
## 创建操作目录
cd ~ && mkdir -p fisco && cd fisco
## 下载脚本
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.7.2/build_chain.sh && chmod u+x build_chain.sh
注解
如果因为网络问题导致长时间无法下载build_chain.sh脚本:
- 多试几次
- 也可以换成 curl -#LO https://gitee.com/FISCO-BCOS/FISCO-BCOS/raw/master/tools/build_chain.sh && chmod u+x build_chain.sh

4. 搭建单群组4节点区块链 (1)查看ip
每个机器一个节点
(2)生成区块链所有节点的配置
以下所有都在fiscobcos_docker1(192.168.64.137)机器操作
将节点信息写入到ipconf文件中
# 这里所有区块链节点均属于agencyA,并仅启动了群组1
# (注: 下面的ip信息需要根据真实的机器IP填写)
cat >> ipconf getNodeVersion
ClientVersion{
version='2.6.0',
supportedVersion='2.6.0',
chainId='1',
buildTime='20200819 15:47:59',
buildType='Darwin/appleclang/RelWithDebInfo',
gitBranch='HEAD',
gitCommitHash='e4a5ef2ef64d1943fccc4ebc61467a91779fb1c0'
}
# 得到其它节点
[group:1]> getPeers
[
PeerInfo{
nodeID='6d5e0b06cc540a2bf72f414e77d2c6d533832cbc0143ce9edc0da466c94c7c4738022cfc9a48ab4fa7e371a7205637f77b2dc19b94b913b450d05663ddcf8ed7',
iPAndPort='127.0.0.1:30301',
node='node1',
agency='agency',
topic='[
_block_notify_1
]'
},
PeerInfo{
nodeID='cd8f46dcdd5ec84f53b7869285825ca648bee4db1b1b8247a0ad51357f0a16035a55aa2626b37d9d477a7e57d30e640be0abf991ac92275129111651eae3c37d',
iPAndPort='127.0.0.1:38922',
node='node2',
agency='agency',
topic='[
]'
},
PeerInfo{
nodeID='1cecce7910aa97c12281985f7fb938a51a6681663982fafbeceda61585f539f109770eee0354f4d678c6aece2639764d4a81851fa16532df4e6d5cf679b93d69',
iPAndPort='127.0.0.1:30303',
node='node3',
agency='agency',
topic='[
]'
}
]
# 获取当前块高
[group:1]> getBlockNumber
0
# 部署和调用HelloWorld合约
[group:1]> deploy HelloWorld
transaction hash: 0x0e1f192c97a625471597a3483ec230604ff4bb3d22826d118e606ba64bdb0bf9
contract address: 0x302b771c6e7525dc16f945510c210bae0976ad64
[group:1]> call HelloWorld 0x302b771c6e7525dc16f945510c210bae0976ad64 get
---------------------------------------------------------------------------------------------
Return code: 0
description: transaction executed successfully
Return message: Success
---------------------------------------------------------------------------------------------
Return values:
[
"Hello,World!"
]
---------------------------------------------------------------------------------------------
# 获取当前块高(块高增加1)
[group:1]> getBlockNumber
1
# 修改HelloWorld合约状态变量的值
[group:1]> call HelloWorld 0x302b771c6e7525dc16f945510c210bae0976ad64 set "hello, fisco"
transaction hash: 0xaa318a24b8a049778c7167bc2631eedadaeaba326a6cf17c79772036a0edc239
---------------------------------------------------------------------------------------------
transaction status: 0x0
description: transaction executed successfully
---------------------------------------------------------------------------------------------
Output
Receipt message: Success
Return message: Success
Return value: []
---------------------------------------------------------------------------------------------
Event logs
Event: {}
# 获取HelloWorld合约状态变量的值
[group:1]> call HelloWorld 0x302b771c6e7525dc16f945510c210bae0976ad64 get
---------------------------------------------------------------------------------------------
Return code: 0
description: transaction executed successfully
Return message: Success
---------------------------------------------------------------------------------------------
Return values:
[
"hello,fisco"
]
---------------------------------------------------------------------------------------------
# 获取当前块高
[group:1]> getBlockNumber
2
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/tutorial/docker.html?highlight=docker
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/tutorial/multihost.html
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/installation.html#id8