1.前置条件:
#安装Git
sudo yum install -y git
#安装cmake
yum install -y epel-release
yum install -y cmake3
mkdir cmake_pack
cd cmake_pack
wget https://cmake.org/files/v3.3/cmake-3.3.2.tar.gz
tar xzvf cmake-3.3.2.tar.gz
yum install gcc-c++
cd cmake-3.3.2
./bootstrap
gmake
make install
#查看cmake版本
cmake3 --version
#安装 c c++ gcc gcc-c++
yum -y install gcc gcc-c++ kernel-devel
#安装 jq
sudo yum install -y jq
2.搭建FISCO BCOS联盟链(Air版本,4节点非国密联盟链)
#安装依赖
sudo yum install -y curl openssl openssl-devel wget
# 创建操作目录
cd ~ && mkdir -p fisco && cd fisco
# 下载建链脚本
curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v3.6.0/build_chain.sh && chmod u+x build_chain.sh
#部署
bash build_chain.sh -l 127.0.0.1:4
注意!!!节点生成后,不能启动,dataKey配置后将得到的cipher_data_key写入节点的配置文件再启动。一旦节点开始运行,无法切换启用/禁用落盘加密模式。
3.部署Key Manager(PS: -g 为国密版)
#安装依赖包
sudo yum install -y procps-ng-devel
sudo yum install -y curl-devel
#建
cd ~ && git clone https://github.com/FISCO-BCOS/key-manager.git
cd key-manager && mkdir build && cd build
# Notice: There are ".." behind.
cmake3 ..
#The execution: "key-manager" generated.
make
#启动Key Manager
# 参数:端口,superkey
./key-manager 8150 123xyz # key-manager <port> <superkeyString>
# 若是国密区块链节点,请使用如下命令启动Key Manager
./key-manager 8150 123xyz -g # key-manager <port> <superkeyString> <guomi version>
若启动成功,打印日志(如下)
(加密需要持续不能退出,打印信息后开启第二个终端)
4.配置dataKey(此处需要第二个终端)
cd key-manager/scripts
bash gen_data_secure_key.sh 127.0.0.1 8150 123456
脚本自动打印出落盘加密需要的ini配置。 此时得到节点的cipherDataKey:cipher_data_key=ed157f4588b86d61a2e1745efe71e6ea 将得到的落盘加密的ini配置,写入节点配置文件(config.ini)中,此处以node0为例
cd ~ && vi fisco/nodes/127.0.0.1/node0/config.ini
修改[storage_security]中的字段如下。
5.加密节点私钥
执行脚本,加密所有节点的私钥,此处以node0节点为例
cd key-manager/scripts
# 参数:ip port 节点私钥文件 cipherDataKey
# 加密SSL连接私钥
bash encrypt_node_key.sh 127.0.0.1 8150 ../../fisco/nodes/127.0.0.1/node0/conf/ssl.key ed157f4588b86d61a2e1745efe71e6ea
# 加密节点签名私钥
bash encrypt_node_key.sh 127.0.0.1 8150 ../../fisco/nodes/127.0.0.1/node0/conf/node.pem ed157f4588b86d61a2e1745efe71e6ea
注意:所有需要加密的文件列举如下。若未加密,节点无法启动。
非国密版
conf/ssl.key
conf/node.pem
国密版
conf/sm_ssl.key
conf/sm_enssl.key
conf/node.pem
#节点运行
cd ~/fisco/nodes/127.0.0.1/node0/
bash start.sh
重要!!!
最终是无法启动的,原因是key-manager服务的代码有问题,从途中可以看到,datakey=123456被加密成秘文,然后把该秘文解密的时候,返回的是313233343536(其实是123456的ascii码,导致无法解密数据)
key-manager我使用的是github的最新master分支,是有问题的,但release下有1.0.0版本,可能该版本是可用的。
属于一个坑吧,如果有大佬解决了的,也希望您能分享一下您的经验,感激不尽!!!