#1024程序员节|征文#
落盘加密是对节点存储在硬盘上的内容进行加密,加密的内容包括:合约的数据、节点的私钥。具体的落盘加密介绍,可参考:落盘加密的介绍,今天我们来部署并对节点进行落盘加密。
环境:ubuntu 22、搭建单机四节点(节点未启动!)
目录
【FISCO BCOS】二十一、使用Key Manager加密区块链节点
部署
首先安装依赖
拉取项目
创建build文件
启动
启动Key Manager
配置dataKey
加密节点私钥
节点运行
可能遇到的问题
运行make编译报错
配置datakey时报错
部署
每一个区块链节点的机构对应一个Key Manager,因此我们先部署一个,具体的部署文档可参考Key Manager Github README或Key Manager Gitee README
首先安装依赖
apt install git make cmake libprocps-dev curl libcurl4-openssl-dev
拉取项目
git clone https://github.com/FISCO-BCOS/key-manager.git
拉取如果出现问题,可以切换网络或者去掉https的s后再试一下
创建build文件
cd key-manager && mkdir build && cd build
在build目录下执行
cmake ..
再执行
make
如图,make编译成功
启动
启动Key Manager
./key-manager 8150 123xyz
配置dataKey
cd key-manager/scripts
bash gen_data_secure_key.sh 127.0.0.1 8150 123456
如此,我们就得到了节点的cipher_data_key=ed157f4588b86d61a2e1745efe71e6ea,将此配置写入节点的配置文件中,我们节点(node0)的配置文件位置在~/fisco/nodes/127.0.0.1/node0/config.ini,在storage_security处进行配置
加密节点私钥
执行脚本,加密节点私钥
cd key-manager/scripts
bash encrypt_node_key.sh 127.0.0.1 8150 ../../nodes/127.0.0.1/node0/conf/node.key ed157f4588b86d61a2e1745efe71e6ea
# 此处的node.key和cipher_data_key均为自己实际情况生成的位置和具体值
执行后,节点私钥自动被加密,加密前的文件备份到了文件node.key.bak.xxxxxx
中,请将备份私钥妥善保管,并删除节点上生成的备份私钥
此时查看node.key,可看到已经被加密为密文。
节点运行
此时即可启动节点
可以看到节点正常运行,而另外一个终端窗口的Key Manager会在每次节点启动时打印日志:
至此,使用Key Manager加密区块链节点的操作就结束了。
可能遇到的问题
运行make编译报错
在我初次尝试部署时,经常会因为运行make编译时报错如下内容:
gmake[5]: *** [CMakeFiles/cryptopp-object.dir/build.make:146:CMakeFiles/cryptopp-object.dir/asn.cpp.o] 错误 1 gmake[4]: *** [CMakeFiles/Makefile2:86:CMakeFiles/cryptopp-object.dir/all] 错误 2 gmake[3]: *** [Makefile:146:all] 错误 2 make[2]: *** [CMakeFiles/cryptopp.dir/build.make:86:../deps/src/cryptopp-stamp/cryptopp-build] 错误 2 make[1]: *** [CMakeFiles/Makefile2:136:CMakeFiles/cryptopp.dir/all] 错误 2 make: *** [Makefile:91:all] 错误 2
后来在网上寻找了一下解决方案,发现是gcc的版本问题,使用如下命令指定gcc版本即可
apt-get install -y gcc-9 g++-9
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 10 --slave /usr/bin/g++ g++ /usr/bin/g++-9
配置datakey时报错
提示找不到jq的命令,是没有下载的原因执行如下命令下载即可
apt install jq
如有更多其他问题,欢迎讨论~