.. role:: raw-html-m2r(raw) :format: html .. _weidentity-installation-by-sourcecode: WeIdentity JAVA SDK安装部署文档(源码方式) ================================================= .. list-table:: :header-rows: 1 * - 配置 - 说明 * - 操作系统 - 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不通,需要检查网络连通性和安全策略。 .. note:: 注意:如果您使用了针对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.下载源码 """""""""" .. note:: 注意:如果您使用了openjdk13,那么您需要手动修改build.gradle,禁用spotbugs相关功能。具体地,请打开build.gradle,然后将所有spotbugs相关项注释掉即可。 * 下载最新的代码 .. code-block:: shell git clone https://github.com/WeBankBlockchain/WeIdentity.git 或者 .. code-block:: shell git clone https://gitee.com/WeBank/WeIdentity.git WeIdentity Java SDK 工程见\ `WeIdentity JAVA SDK `_\ :raw-html-m2r:`
` - WeIdentity 编译 .. code-block:: shell cd WeIdentity chmod u+x ./gradlew ./gradlew build -x test .. note:: 如果出现 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.crt``, ``sdk.crt`` 和 ``sdk.key`` 复制出来,拷贝至resources/conf目录下。 若您使用FISCO BCOS 2.x的国密链,在resources/conf目录下再创建gm目录,将证书文件 ``gmca.crt``, ``gmsdk.crt``, ``gmsdk.key``, ``gmensdk.crt``和 ``gmensdk.key``拷贝至resources/conf/gm目录下。 若您使用FISCO BCOS 3.x的国密链,在resources/conf目录下再创建gm目录,将证书文件 ``sm_ca.crt``, ``sm_sdk.crt``, ``sm_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`` :机构间的通信标识,\ `见配置说明 <./deploy-via-web.html#blockchain-configuration-amop-id>`__ | ``org_id`` :机构名称, \ `见配置说明 <./deploy-via-web.html#blockchain-configuration-org-id>`__ | ``chain_id`` :用于标识您接入的区块链网络, 默认填写:101, \ `见配置说明 <./deploy-via-web.html#weid-deploy-chain-id>`__ | ``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 .. note:: 注意:如果您使用了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或更高版本。 .. note:: 如果您使用FISCO-BCOS 2.x,且需要跨群组部署WeIdentity,请参考\ `跨群组部署WeIdentity <./how-to-deploy-w-groupid.html>`__\ 。 2.安装部署 """""""""" 运行下面的命令,自动完成代码编译,智能合约编译,智能合约部署和所有配置文件的配置: :: chmod +x run.sh ./run.sh 出现下列输出,则表示安装部署成功。 .. code-block:: shell contract deployment done. begin to modify sdk config... modify sdk config finished... begin to clean config... clean finished... 到这里,您已经完成了weid-java-sdk的安装和部署的全部步骤,您可以开始使用WeIdentity来构建您的分布式身份管理的Java应用了。 .. note:: 如果执行部署过程中出现 160016 - no premission for this cns. 异常,请修改(run.config)中的配置项 cns_profile_active 的值,修改成一个独有的值即可, 如:cns_profile_active=test456。 Have fun!!! 备注 ---- 查看WeIdentity JAVA SDK部署结果 """""""""""""""""""""""""""""""" * 进入dist目录 .. code-block:: shell cd ../../dist/ ls dist目录包含以下目录: ``app``, ``conf`` 和 ``lib`` .. list-table:: :header-rows: 1 * - 目录名 - 说明 * - app - 打包好的weid-java-sdk jar包。 * - conf - weid-java-sdk运行时的一些配置,Java应用集成weid-java-sdk的时候,需要将此目录下的文件放到您自己的Java应用的classpath下。 * - lib - 依赖的jar包。 * 进入源码根目录 .. code-block:: shell cd ../ ls 根目录下生成的文件 ``private_key`` 为weid-java-sdk部署合约动态生成的秘钥文件,您的Java应用集成weid-java-sdk的时候可能需要使用此文件,请妥善保管。