【FISCO BCOS】二十二、使用Key Manager加密区块链节点

时间:2024-10-23 11:30:34

#1024程序员节|征文#   

        落盘加密是对节点存储在硬盘上的内容进行加密,加密的内容包括:合约的数据、节点的私钥。具体的落盘加密介绍,可参考:落盘加密的介绍,今天我们来部署并对节点进行落盘加密。

环境:ubuntu 22、搭建单机四节点(节点未启动!)

目录

【FISCO BCOS】二十一、使用Key Manager加密区块链节点

部署

首先安装依赖

拉取项目

创建build文件

启动

启动Key Manager

配置dataKey

加密节点私钥

节点运行

可能遇到的问题

运行make编译报错

配置datakey时报错


部署

每一个区块链节点的机构对应一个Key Manager,因此我们先部署一个,具体的部署文档可参考Key Manager Github READMEKey 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

如有更多其他问题,欢迎讨论~