国密支持

为了充分支持国产密码学算法,金链盟基于国产密码学标准,在FISCO BCOS平台中集成了国密加解密、签名、验签、哈希算法、国密SSL通信协议,实现了对国家密码局认定的商用密码的完全支持。设计文档见国密版FISCO BCOS设计手册

初次部署国密版FISCO BCOS

本节使用build_chain脚本在本地搭建一条4节点的FISCO BCOS链,以Ubuntu 16.04系统为例操作。本节使用预编译的静态fisco-bcos二进制文件,在CentOS 7和Ubuntu 16.04上经过测试。

# Ubuntu16安装依赖
$ sudo apt install -y openssl curl
# 准备环境
$ cd ~ && mkdir -p fisco && cd fisco
# 下载build_chain.sh脚本
$ curl -LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.1.0/build_chain.sh && chmod u+x build_chain.sh

执行完上述步骤后,fisco目录下结构如下:

fisco
├── bin
│   └── fisco-bcos
└── build_chain.sh
  • 搭建4节点FISCO BCOS链
# 生成一条4节点的FISCO链 4个节点都属于group1 下面指令在fisco目录下执行
# -p指定起始端口,分别是p2p_port,channel_port,jsonrpc_port
# 根据下面的指令,需要保证机器的30300~30303,20200~20203,8545~8548端口没有被占用
# -g 国密编译选项,使用成功后会生成国密版的节点。默认从GitHub下载最新稳定版本可执行程序
$ ./build_chain.sh -l "127.0.0.1:4" -p 30300,20200,8545 -g

关于build_chain.sh脚本选项,请参考这里。命令正常执行会输出All completed。(如果没有输出,则参考nodes/build.log检查)。

[INFO] Downloading tassl binary ...
Generating CA key...
Generating Guomi CA key...
==============================================================
Generating keys ...
Processing IP:127.0.0.1 Total:4 Agency:agency Groups:1
==============================================================
Generating configurations...
Processing IP:127.0.0.1 Total:4 Agency:agency Groups:1
==============================================================
[INFO] FISCO-BCOS Path   : bin/fisco-bcos
[INFO] Start Port        : 30300 20200 8545
[INFO] Server IP         : 127.0.0.1:4
[INFO] State Type        : storage
[INFO] RPC listen IP     : 127.0.0.1
[INFO] Output Dir        : /mnt/c/Users/asherli/Desktop/key-manager/build/nodes
[INFO] CA Key Path       : /mnt/c/Users/asherli/Desktop/key-manager/build/nodes/gmcert/ca.key
[INFO] Guomi mode        : yes
==============================================================
[INFO] All completed. Files in /mnt/c/Users/asherli/Desktop/key-manager/build/nodes

当国密联盟链部署完成之后,其余操作与安装的操作相同。

国密配置信息

国密版本FISCO BCOS节点之间采用SSL安全通道发送和接收消息,证书主要配置项集中在如下配置项中:

[network_security]

data_path:证书文件所在路径
key:节点私钥相对于data_path的路径
cert: 证书gmnode.crt相对于data_path的路径
ca_cert: gmca证书路径

;certificate configuration
[network_security]
    ;directory the certificates located in
    data_path=conf/
    ;the node private key file
    key=gmnode.key
    ;the node certificate file
    cert=gmnode.crt
    ;the ca certificate file
    ca_cert=gmca.crt

国密版SDK使用

详细操作参考SDK文档

国密控制台使用

国密版控制台功能与标准版控制台使用方式相同,见控制台操作手册

国密落盘加密配置

国密版Key Manager

国密版的Key Manager需重新编译Key Manager,不同点在于cmake时带上-DBUILD_GM=ON选项。

# centos下
cmake3 .. -DBUILD_GM=ON
# ubuntu下
cmake .. -DBUILD_GM=ON

其它步骤与标准版Key Manager相同,请参考:key-manager repository

国密版节点配置

FISCO BCOS国密版采用双证书模式,因此落盘加密需要加密的两套证书,分别为:conf/gmnode.key 和 conf/origin_cert/node.key。其它与标准版落盘加密操作相同。

cd key-manager/scripts
#加密 conf/gmnode.key 参数:ip port 节点私钥文件 cipherDataKey
bash encrypt_node_key.sh 127.0.0.1 31443 nodes/127.0.0.1/node0/conf/gmnode.key ed157f4588b86d61a2e1745efe71e6ea 
#加密 conf/origin_cert/node.key 参数:ip port 节点私钥文件 cipherDataKey
bash encrypt_node_key.sh 127.0.0.1 31443 nodes/127.0.0.1/node0/conf/origin_cert/node.key ed157f4588b86d61a2e1745efe71e6ea