配置文件

重要

  • 配置web3sdk前,请确保参考 web3sdk编译文档 成功编译web3sdk
  • 配置web3sdk前,请先生成客户端证书,并将证书拷贝到web3sdk/dist/conf目录:
  1. 手动搭链:客户端证书生成参考 FISCO-BCOS快速入门 基础配置中的SDK证书配置 ;
  2. FISCO-BCOS物料包搭建的链 搭建的FISCO-BCOS链:客户端证书生成参考 SDK证书生成
  3. 国密版FISCO-BCOS链SDK证书生成参考 SDK证书生成

配置java客户端相关信息

web3sdk客户端配置

打开web3sdk/dist/conf目录的applicationContext.xml文件,部分信息可以先用默认的, 先关注这些配置项../../_images/javaconfig.png

  1. <property name="keystorePassWord" value="【生成client.keystore时对应的keystore密码】" />
  2. <property name="clientCertPassWord" value="【生成client.keystore时对应的证书密码】" />
  • 配置节点信息,请务必注意:ip、端口,和连接的FISCO-BCOS节点必须一致, 节点id可以是任意非空字符串
  1. <property name="connectionsStr">
  2. <list>
  3. <!--节点配置:【节点id,可以是任意字符串】@【IP】:【channel port端口】-->
  4. <value>node1@127.0.0.1:8891</value>
  5. </list>
  6. </property>
  • 其他配置
  • 调用SystemProxy|AuthorityFilter等系统合约工具时需配置系统合约地址SystemProxyAddress和GOD账户信息;GOD账号默认为 0x776bd5cf9a88e9437dc783d6414bccc603015cf0 ,GOD账号私钥默认为 bcec428d5205abe0f0cc8a734083908d9eb8563e31f943d760786edf42ad67dd
  1. <!— 系统合约地址配置,使用系统合约工具时需配置—><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】--&gt; <!—国密版FISCO-BCOS获取GOD账户和账户私钥:【参考https://fisco-bcos-documentation.readthedocs.io/zh_CN/release-1.3/docs/guomi/config_guomi.html#sdk】--&gt; <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和节点每次重试连接的间隔时间)。

重要

  • 节点信息查询方法
  1. 节点id,可以是任意字符串;
  2. channelPort、系统合约地址systemcontractaddress等信息查询: 若节点服务器上,节点数据目录所在路径为~/mydata/node0/,在~/mydata/node0/config.json里可查到;
  • god账号信息查询:
  1. 手动搭链:

非国密版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

  1. 使用 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运行出错】 .

  • 具体测试过程如下:
  1. # 进入web3sdk目录(设源码位于~/mydata/web3sdk/dist中)
  2. $ cd ~/mydata/web3sdk/dist
  3.  
  4. # 调用测试合约TestOk
  5. $ java -cp 'conf/:apps/*:lib/*' org.bcos.channel.test.TestOk
  6. ===================================================================
  7. =====INIT ECDSA KEYPAIR From private key===
  8. ============to balance:4
  9. ============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