国密使用手册¶
为了充分支持国产密码学算法,金链盟基于国产密码学标准,实现了国密加解密、签名、验签、哈希算法、国密SSL通信协议,并将其集成到FISCO BCOS平台中,实现了对国家密码局认定的商用密码的完全支持。
源码编译¶
$ git clone https://github.com/FISCO-BCOS/FISCO-bcos
$ git checkout release-2.0.1
$ mkdir build && cd build
$ cmake3 .. -DBUILD_GM=ON
$ make
执行成功后会在./bin/目录下生成国密版fisco-bcos可执行文件
$ ./fisco-bcos --version
会显示
$ FISCO-BCOS gm version 2.0
一键搭链脚本¶
拉取build_chain脚本,并进行安装
$ curl -LO https://raw.githubusercontent.com/FISCO-BCOS/FISCO-BCOS/release-2.0.1/tools/build_chain.sh
$ bash ./build_chain.sh -l '127.0.0.1:4' -e ./bin/fisco-bcos -g
- -e 为编译的国密版fisco-bcos的路径,需要在脚本后指定
- -g 国密编译选项,使用成功后会生成国密版的节点
当国密联盟链部署完成之后,其余操作与快速入门的操作相同
国密配置信息¶
2.0国密版本FISCO BCOS节点之间采用SSL安全通道发送和接收消息,证书主要配置项集中在
[secure] section:
data_path:证书文件所在路径
key:节点私钥相对于data_path的路径
cert: 证书gmnode.crt相对于data_path的路径
ca_cert: gmca证书路径
;certificate configuration
[secure]
;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
conf目录下的original_cert文件夹为节点与sdk进行通信所需要的证书
国密版sdk配置¶
国密版FISCO BCOS需要配置相应的国密SDK。
打开国密开关:¶
使用国密功能,需要在在application.xml添加国密配置,如下;
<!-- 国密开关 -->
编译使用¶
本项目提供了丰富的测试案例和功能,您也可以直接下载代码,使用基本功能。流程如下:
#==== 拉取git代码 ====
$ git clone https://github.com/FISCO-BCOS/web3sdk
$ cd web3sdk
$ git checkout release-2.0.1
#===证书和节点配置 ===
1. 在src/test/resources目录下,配置web3sdk的applicationContext.xml,
如上图所示设置sdk要连接节点channel_listen_ip和channel_listen_port。并设置节点所在群组groupId;
2. 由于是联盟链,拷贝节点证书文件ca.crt和keystore.p12到web3sdk/src/test/resources目录下;
3. 成功后执行gradle build -x test;编译相应web3sdk jar包。
4. 你也可以直接执行特定测试:
*查询块高* gradle clean test --tests org.fisco.bcos.channel.test.block.BlockTest
部署OK合约 gradle clean test –tests org.fisco.bcos.channel.test.contract.OkTest
sol合约转换Java类¶
为了方便使用,您无需安装solc工具,直接使用sdk帮您把智能合约sol文件转成相应java类以及abi和bin文件。目前我们默认支持的最新版本是0.4.25.如果想编译0.5以上版本合约请参考https://github.com/tbocek/solcJ这个项目,引入此jar包到sdk即可。
1 把编写的sol文件拷贝到src/test/resources/contract下,确保合约名和文件名保持一致。
2 在项目目录下执行 gradle test –tests org.fisco.bcos.web3j.solidity.SolidityFunctionWrapperGeneratorTest.compileSolFilesToJavaTest ; 3 生成的类在src/test/java/org/fisco/bcos/temp文件夹下,并且生成的abi和bin在目录 src/test/resources/solidity目录下。(如果要使用编译后的java,注意修改生成java类的包名。)
详细操作见[sdk使用](https://fisco-bcos-documentation.readthedocs.io/zh_CN/feature-2.0.0/docs/api/sdk.html
国密落盘加密配置¶
国密版的Key Center
国密版的Key Center需重新编译Key Center,不同点在于cmake时带上-DBUILD_GM=On
选项。
cmake3 .. -DBUILD_GM=On
其它步骤与标准版Key Center相同,请参考:keycenter repository
国密版节点配置
国密版的证书有所调整,落盘加密需要加密的证书,变为两个:conf/gmnode.key 和 conf/origin_cert/node.key。其它与标准版落盘加密操作相同。
cd keycenter/scripts
#加密 conf/gmnode.key 参数:ip port 节点私钥文件 cipherDataKey
bash encrypt_node_key.sh 127.0.0.1 31443 nodes/127.0.0.1/node_127.0.0.1_0/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/node_127.0.0.1_0/conf/origin_cert/node.key ed157f4588b86d61a2e1745efe71e6ea