配置文件
重要
- 配置web3sdk前,请确保参考 web3sdk编译文档 成功编译web3sdk
- 配置web3sdk前,请先生成客户端证书,并将证书拷贝到web3sdk/dist/conf目录:
- 手动搭链:客户端证书生成参考 FISCO-BCOS快速入门 基础配置中的SDK证书配置 ;
- 由 FISCO-BCOS物料包搭建的链 搭建的FISCO-BCOS链:客户端证书生成参考 SDK证书生成
- 国密版FISCO-BCOS链SDK证书生成参考 SDK证书生成
配置java客户端相关信息
web3sdk客户端配置
打开web3sdk/dist/conf目录的applicationContext.xml文件,部分信息可以先用默认的, 先关注这些配置项 :
- 找到 web3sdk/dist/conf/applicationContext.xml文件的【区块链节点信息配置】 一节,配置keystore密码
- <property name="keystorePassWord" value="【生成client.keystore时对应的keystore密码】" />
- <property name="clientCertPassWord" value="【生成client.keystore时对应的证书密码】" />
- 配置节点信息,请务必注意:ip、端口,和连接的FISCO-BCOS节点必须一致, 节点id可以是任意非空字符串
- <property name="connectionsStr">
- <list>
- <!--节点配置:【节点id,可以是任意字符串】@【IP】:【channel port端口】-->
- <value>node1@127.0.0.1:8891</value>
- </list>
- </property>
- 其他配置
- 调用SystemProxy|AuthorityFilter等系统合约工具时需配置系统合约地址SystemProxyAddress和GOD账户信息;GOD账号默认为
0x776bd5cf9a88e9437dc783d6414bccc603015cf0
,GOD账号私钥默认为bcec428d5205abe0f0cc8a734083908d9eb8563e31f943d760786edf42ad67dd
- <!— 系统合约地址配置,使用系统合约工具时需配置—><bean id="toolConf" class="org.bcos.contract.tools.ToolConf"> <!—系统合约地址: 【系统合约代理地址,对应节点config.json里的systemproxyaddress】—> <property name="systemProxyAddress" value="0x0" /> <!—GOD账户的私钥: —> <!—非国密版FISCO-BCOS获取GOD账户和账户私钥: 【参考https://fisco-bcos-documentation.readthedocs.io/zh_CN/release-1.3/docs/web3sdk/config_web3sdk.html】--> <!—国密版FISCO-BCOS获取GOD账户和账户私钥:【参考https://fisco-bcos-documentation.readthedocs.io/zh_CN/release-1.3/docs/guomi/config_guomi.html#sdk】--> <property name="privKey" value="bcec428d5205abe0f0cc8a734083908d9eb8563e31f943d760786edf42ad67dd" /> <!—GOD账户—> <property name="account" value="0x776bd5cf9a88e9437dc783d6414bccc603015cf0" /> <property name="outPutpath" value="./output/" /></bean>
日志级别配置:修改log4j.properties文件,将log4j.rootLogger = INFO , C , D , E 中INFO改为 DEBUG 或者ERROR,就可以修改日志级别。C、D、E是配置日志信息输出到哪个地方以及输出样式。
启动时链接重试配置:connectSeconds(sdk和节点尝试连接总时长,如果超过这个时间未连上会直接报错);connectSleepPerMillis(sdk和节点每次重试连接的间隔时间)。
重要
- 节点信息查询方法 :
- 节点id,可以是任意字符串;
- channelPort、系统合约地址systemcontractaddress等信息查询: 若节点服务器上,节点数据目录所在路径为~/mydata/node0/,在~/mydata/node0/config.json里可查到;
- god账号信息查询:
- 手动搭链:
① 非国密版FISCO-BCOS :设源码位于~/mydata/FISCO-BCOS目录,则god账号信息位于~/mydata/FISCO-BCOS/tools/scripts/godInfo.txt文件中; 若搭链过程中使用系统默认god账号,则god账号位于~/mydata/FISCO-BCOS/tools/scripts/god_info/godInfo.txt文件;
② 国密版FISCO-BCOS :设源码位于~/mydata/FISCO-BCOS目录,则god账号位于~/mydata/FISCO-BCOS/tools/scripts/guomi_godInfo.txt文件中; 若搭链过程中使用系统默认god账号,则god账号位于~/mydata/FISCO-BCOS/tools/scripts/god_info/guomiDefaultGod.txt
- 使用 FISCO-BCOS物料包 搭链: 可在物料包创世节点dependencies/cert/godInfo.txt路径下获取god账号信息;
- 这里的端口是对应config.json里的channelPort,而不是rpcport或p2pport
- list段里可以配置多个value,对应多个节点的信息,实现客户端多活通信
测试是否配置成功
测试web3sdk与节点连接是否正常
在web3sdk/dist目录下调用TestOk,非国密版web3sdk输出 =====INIT ECDSA KEYPAIR From private key===
等提示,说明web3sdk与节点连接正常,否则请参考 faq【dist/bin/web3sdk运行出错】 .
- 具体测试过程如下:
- # 进入web3sdk目录(设源码位于~/mydata/web3sdk/dist中)
- $ cd ~/mydata/web3sdk/dist
- # 调用测试合约TestOk
- $ java -cp 'conf/:apps/*:lib/*' org.bcos.channel.test.TestOk
- ===================================================================
- =====INIT ECDSA KEYPAIR From private key===
- ============to balance:4
- ============to balance:8
(Ok合约详细代码可参考 Ok.sol )
applicationContext.xml详细介绍
applicationContext.xml配置项详细说明
applicationContext.xml主要包括如下配置选项:
encryptType | 配置国密算法开启/关闭开关(默认为0)- 0: 不使用国密算法发交易- 1: 使用国密算法发交易 |
systemProxyAddress | 系统代理合约地址,对应节点config.json中的systemproxyaddress值 |
privKey | 部署合约的私钥,可通过 fisco-bcos —newaccount accountInfo.txt 产生普通账户,并用普通账户私钥部署合约; 部署权限控制合约时,必须使用GOD账号私钥 |
account | 部署权限控制合约时,必须配置成GOD账号; |
ChannelConnections | - caCertPath: ca.crt证书路径,默认为classpath:ca.crt- clientKeystorePath: client.keystore证书路径,默认为classpath:client.keystore- keystorePassWord: 生成client.keystore时对应的密码- clientCertPassWord: 生成client.keystore时对应的密码- nodeid:SDK连接的FISCO BCOS节点ID,从节点data/node.nodeid文件获取- ip: SDK连接的FISCO BCOS节点外网ip- channelPort: SDK连接的FISCO BCOS节点channelPort,对应config.json的channelPort |