WeIdentity JAVA SDK安装部署文档(源码方式)

配置 说明
操作系统 CentOS (7.2.* 64位)或Ubuntu(16.04 64位)。
FISCO-BCOS区块链环境 您需要有一套可以运行的FISCO-BCOS区块链环境,如果没有,可以参考「FISCO-BCOS 2.0节点安装方法」来搭建一套区块链环境。
JDK 要求JDK1.8+,推荐使用jdk8u141。JDK 跟 WeID 直接的兼容性,可见兼容性文档
网络连通 检查部署 WeIdentity JAVA SDK 的服务器是否能 telnet 通 FISCO BCOS 节点的 channel 端口(channel端口是什么,详见),若telnet不通,需要检查网络连通性和安全策略。

注解

注意:如果您使用了针对oracle jdk1.8.0.231及以上版本,不论用哪种方式部署SDK,在使用时都需要配置jvm参数 -Djdk.tls.namedGroups=”secp256k1” 。详细原因,请见Oracle JDK 8u231的Release Notes: https://www.oracle.com/technetwork/java/javase/8u231-relnotes-5592812.html

1.下载源码

注解

注意:如果您使用了openjdk13,那么您需要手动修改build.gradle,禁用spotbugs相关功能。具体地,请打开build.gradle,然后将所有spotbugs相关项注释掉即可。

  • 下载最新的代码
git clone https://github.com/WeBankBlockchain/WeIdentity.git

或者

git clone https://gitee.com/WeBank/WeIdentity.git

WeIdentity Java SDK 工程见WeIdentity JAVA SDK

  • WeIdentity 编译
cd WeIdentity
chmod u+x ./gradlew
./gradlew build -x test

注解

如果出现 xx SpotBugs violations were found 这个提示,请忽略。

  • 配置节点证书和秘钥文件
mkdir -p resources/conf/amop && cp src/main/resources/consumer_p* resources/conf/amop/

若您使用FISCO BCOS 2.x或者3.x的非国密链: 将证书文件 ca.crtsdk.crtsdk.key 复制出来,拷贝至resources/conf目录下。 若您使用FISCO BCOS 2.x的国密链,在resources/conf目录下再创建gm目录,将证书文件 gmca.crtgmsdk.crtgmsdk.keygmensdk.crt``和 ``gmensdk.key``拷贝至resources/conf/gm目录下。 若您使用FISCO BCOS 3.x的国密链,在resources/conf目录下再创建gm目录,将证书文件 ``sm_ca.crtsm_sdk.crtsm_sdk.key``sm_ensdk.crt``和 ``sm_ensdk.key``拷贝至resources/conf/gm目录下。

  • 配置基本信息
cd ../../../build-tools/bin/
vim run.config

主要的配置文件 run.config ,配置一些运行时需要的一些参数.

  • 配置说明:
blockchain_address : 区块链节点 IP 和channel端口, channel端口的配置可以参考FISCO BCOS 2.0 配置项说明 进行配置。
amop_id :机构间的通信标识,见配置说明
org_id :机构名称, 见配置说明
chain_id :用于标识您接入的区块链网络, 默认填写:101, 见配置说明
group_id :群组标识,用于链接FISCO BCOS中特定的群组,注意FISCO BCOS的2.x和3.x版本的群组标识类型不同
blockchain_fiscobcos_version :使用哪一个版本的FISCO BCOS,2表示2.x,3表示3.x
sm_crypto :密码学套件类别,0表示非国密,1表示国密
persistence_type :数据存储类型, 默认填写:mysql。
mysql_address :配置数据库的ip和port,例:0.0.0.0:3306
mysql_database :配置数据库名称
mysql_username :配置数据库用户名
mysql_password :配置数据库用户对应的密码
cns_profile_active :合约部署环境标识,可用于WeIdentity合约隔离。

配置样例:

#节点的连接串,节点IP为10.10.10.10,和channel端口为20200。
blockchain_address=10.10.10.10:20200

#FISCO BCOS版本。
blockchain_fiscobcos_version=2

#机构间的通信标识
amop_id=organizationA

#机构名称
org_id=organizationA

#链标识
chain_id=101

#群组标识
group_id=1

#密码学套件标识
sm_crypto=0

#数据存储类型
persistence_type=mysql

#数据库ip和port
mysql_address=0.0.0.0:3306

#数据库名称
mysql_database=database

#数据库用户名
mysql_username=username

#数据库密码
mysql_password=password

#合约部署环境标识
cns_profile_active=prdA

注解

注意:如果您使用了Gradle 6.0+,那么您需要手动修改build.gradle中spotbug的Gradle插件版本号为2.0.0+。具体地,打开WeIdentity/build.gradle,将“classpath “gradle.plugin.com.github.spotbugs:spotbugs-gradle-plugin:1.6.5””中的1.6.5改成2.0.0或更高版本。

注解

如果您使用FISCO-BCOS 2.x,且需要跨群组部署WeIdentity,请参考跨群组部署WeIdentity

2.安装部署

运行下面的命令,自动完成代码编译,智能合约编译,智能合约部署和所有配置文件的配置:

chmod +x run.sh
./run.sh

出现下列输出,则表示安装部署成功。

contract deployment done.
begin to modify sdk config...
modify sdk config finished...
begin to clean config...
clean finished...

到这里,您已经完成了weid-java-sdk的安装和部署的全部步骤,您可以开始使用WeIdentity来构建您的分布式身份管理的Java应用了。

注解

如果执行部署过程中出现 160016 - no premission for this cns. 异常,请修改(run.config)中的配置项 cns_profile_active 的值,修改成一个独有的值即可, 如:cns_profile_active=test456。

Have fun!!!

备注

查看WeIdentity JAVA SDK部署结果

  • 进入dist目录
cd ../../dist/
ls

dist目录包含以下目录: appconflib

目录名 说明
app 打包好的weid-java-sdk jar包。
conf weid-java-sdk运行时的一些配置,Java应用集成weid-java-sdk的时候,需要将此目录下的文件放到您自己的Java应用的classpath下。
lib 依赖的jar包。
  • 进入源码根目录
cd ../
ls

根目录下生成的文件 private_key 为weid-java-sdk部署合约动态生成的秘钥文件,您的Java应用集成weid-java-sdk的时候可能需要使用此文件,请妥善保管。