工作中需要用到区块链的能力,FiscoBcos具备以下优势,
- 安全性高:BCOS采用多层次的安全机制,包括密码学算法、访问控制、身份验证和审计跟踪等,确保数据和交易的安全性。
- 高效性:BCOS采用了高效的共识机制,可以在短时间内完成交易确认,同时具有高可扩展性,可以支持大规模的交易和用户量。
- 灵活性:BCOS支持多种编程语言和智能合约,可以满足不同应用场景的需求。
- 开放性:BCOS是一个开放的平台,可以与其他区块链平台和系统进行互操作,实现资产和数据的跨平台流通。
- 可信度高:BCOS采用了区块链技术,所有交易数据都被记录在区块链上,不可篡改,可以保证交易的可信
我们通过部署作为内部开发测试环境。为了便于开发,我将默认所需的4个节点都打包到一个容器中,可作为本地调试环境。容器应用:
区块链应用部署
1. 在linux服务器上搭建单机群4节点联盟链
以下步骤,用来安装和构建FISCO-BCOS区块链。首先它会安装OpenSSL和OpenSSL开发库,然后它会创建一个名为fisco的文件夹,并在其中下载build_chain.sh文件,并给它添加可执行权限。最后,它会使用build_chain.sh脚本在本地构建FISCO-BCOS网络,其中包括127.0.0.1:4的节点,以及30300,20200,8545的端口。
yum install -y openssl openssl-devel
cd ~ && mkdir -p fisco && cd fisco
curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.9.1/build_chain.sh && chmod u+x build_chain.sh
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
搭建好的联盟链,所有程序文件会在 fisco目录中。这些程序文件可以直接打包到容器中,
# 启动4个节点
bash nodes/127.0.0.1/start_all.sh
# 检查进程是否已经启动
ps -ef | grep -v grep | grep fisco-bcos
# 检查日志输出
tail -f nodes/127.0.0.1/node0/log/log* | grep connected
如果一切都正常执行,那么我么就得到了一个可以任意折腾的区块链。
2. 配置控制台
在控制台链接FISCO BCOS节点,实现查询区块链状态、部署调用合约等功能,能够快速获取到所需要的信息。
控制台部署过程:
sudo yum install -y java java-devel
cd ~/fisco && curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh
# 最新版本控制台使用如下命令拷贝配置文件
cp -n console/conf/config-example.toml console/conf/config.toml
cp -r nodes/127.0.0.1/sdk/* console/conf/
启动并使用控制台:
cd fisco/console && bash start.sh
# 看到welcome界面,说明启动成功。
3. WeBase-Front安装
WeBASE-Front是和FISCO-BCOS节点配合使用的一个子系统。此分支支持FISCO-BCOS 2.0以上版本,集成web3sdk,对接口进行了封装,可通过HTTP请求和节点进行通信。另外,具备可视化控制台,可以在控制台上开发智能合约,部署合约和发送交易,并查看交易和区块详情。还可以管理私钥,对节点健康度进行监控和统计。
wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.5.4/webase-front.zip
unzip webase-front.zip
cd webase-front
# 将节点所在目录nodes/${ip}/sdk下的所有文件拷贝到当前conf目录,供SDK与节点建立连接时使用
cp -r nodes/127.0.0.1/sdk/* ./conf/
# 启动
bash start.sh
# 停止
bash stop.sh
# 检查
bash status.sh
到此,我们所需要的所有区块链应用都已经在一台主机上进行了搭建,
4. 构建镜像
镜像基于CentOS 7.9.2009,安装了OpenSSL、OpenSSL-devel和Java,并将/fisco目录添加到镜像中。在/fisco目录中的WebService/bin目录中工作,将端口号20200-20203、30300-30303、8545-8548、8050和5002暴露出来。具体来说,这个Dockerfile的构建过程包括以下步骤:
- 从Docker Hub上拉取CentOS 7.9.2009的镜像作为基础镜像。
- 在基础镜像上使用yum命令安装OpenSSL、OpenSSL-devel和Java。
- 将当前目录下的/fisco目录添加到镜像中。
- 设置工作目录为/fisco/WebService/bin目录。
- 使用EXPOSE命令将端口号20200-20203、30300-30303、8545-8548、8050和5002暴露出来,这些端口用于在容器内部进行通信和操作。
最终,根据这个Dockerfile构建的镜像可以用于运行/fisco目录下的WebService服务,同时容器内部可以通过上述暴露的端口与外部进行通信。
FROM centos:7.9.2009
RUN yum install -y openssl openssl-devel java
ADD ./fisco /fisco
WORKDIR /fisco/WebService/bin
EXPOSE 20200-20203 30300-30303 8545-8548 8050 5002
# ENTRYPOINT ["/fisco/run.sh"]