文章目录
最近需要使用环签名算法实现签名与签名验证(群签名与环签名的介绍),想查看网上有没有开源的环签名算法实现,搜了一圈最终只发现 FISCO-BCOS(金链盟区块链底层开源平台) 有相关的开源代码且有详细的文档,并提供额外的开源库给用户体验与尝试群签名和环签名的服务,恰好符合我的需求,于是我开始着手部署这些开源项目。
由于提供群签名和环签名服务的两个开源库已是两年前的项目了,并且该项目文档也存在一些纰漏,导致我在部署的过程中遇到了不少坑,浪费了很多时间,此处记录一下,希望能帮到有类似需求的朋友。
如果和我一样,只想使用签名和验证签名的 RPC 而不需要上链和在链上进行验证的话,则只需配置部署以下两个项目的源码即可:
1. Sig-service
2. Sig-service-client
我对这两个开源库的主要修改
服务端:
- README.md —— 2.1 部署依赖软件包:
- 将
ln -s /usr/bin/todos /usr/bin/unxi2dos
修改为sudo ln -s /usr/bin/todos /usr/bin/unix2dos
- 将
ln -s /usr/bin/fromdos /usr/bin/dos2unix
修改为sudo ln -s /usr/bin/fromdos /usr/bin/dos2unix
- 添加
sudo apt install libjsonrpccpp-dev libjsonrpccpp-tools
- 将
- README.md —— 2.3 使用说明:
- 最后的启动示例,将监听端口修改为 8003,与客户端示例保持一致。
- sig-service/devcore/ConfigParser.h :
- 将文件中 第 73 行的
<S>
删除
- 将文件中 第 73 行的
客户端:
- README.md —— 2.1 依赖部署:
- 将
ln -s /usr/bin/todos /usr/bin/unxi2dos
修改为sudo ln -s /usr/bin/todos /usr/bin/unix2dos
- 将
ln -s /usr/bin/fromdos /usr/bin/dos2unix
修改为sudo ln -s /usr/bin/fromdos /usr/bin/dos2unix
- 将
- sig-service-client/sig_client/src/main/executive/shell/runSigService.sh:
- 添加将环签名字符串 json 格式化的命令
- 添加环签名有效性验证的的命令示例
实验环境
- 操作系统:Ubuntu 18.04.3 LTS 64bit
- 内存:2G
- CPU: i7-9700 3.0Ghz * 2 (两核)
- 硬盘:40G
开始部署:
1. 客户端与服务端都需要的环境部署
(若客户端与服务端在同一台机器或虚拟机上,则部署一次就行)
1.1 安装基础依赖软件
部署群签名 && 环签名 RPC 服务之前,要安装 git, dos2unxi, lsof 等依赖软件:
- git:用于拉取最新代码
- dos2unix && lsof: 用于处理 windows 文件上传到 linux 服务器时,可执行文件无法被 linux 正确解析的问题;
可用如下命令安装这些基础依赖软件(注意区分 centos 和 ubuntu 系统使用的命令):
[centos]
sudo yum -y install git
sudo yum -y install dos2unix
sudo yum -y install java
sudo yum -y install lsof
[ubuntu]
sudo apt install git
sudo apt install lsof
sudo apt install tofrodos
sudo ln -s /usr/bin/todos /usr/bin/unix2dos
sudo ln -s /usr/bin/fromdos /usr/bin/dos2unix
以上命令大约共耗时 5 分钟
部署 dos2unix 后,调用 format.sh 脚本格式化可执行文件,使其可被 linux 系统正确解析:
# 格式化format.sh脚本
dos2unix format.sh
# 执行format.sh脚本格式化其他可执行文件,使其可被正确解析执行
bash format.sh
2. 签名 RPC 服务端的部署
2.1 安装 levelDB、gmp 等依赖软件
拉取官方 git 代码
git clone https://g