配置说明¶
Broker 配置¶
Broker服务主要有三类配置,Spring Boot进程配置、区块链FISCO-BCOS节点配置、WeEvent服务配置。
Spring Boot进程配置
配置文件
./broker/conf/application-prod.properties,这个是Spring Boot标准配置文件,一般不需要修改。细节请参见Spring Boot文档 。
| 配置项 | 默认值 | 配置说明 |
|---|---|---|
| server.port | 7000 | spring监听端口 |
| server.servlet.context-path | /weevent | spring上下文路径 |
| spring.autoconfigure.exclude | org.springframework.boot.autoconfigure. security.servlet.SecurityAutoConfiguration |
默认不开启 |
| spring.security.user.name | user | 默认不开启 |
| spring.security.user.password | 123456 | 默认不开启 |
| spring.cloud.zookeeper.enabled | true | ZK访问 |
| spring.cloud.zookeeper.connect-string | 127.0.0.1:2181 | ZK节点 |
用户访问授权通过用户密码spring.security.user配置,对所有的接入协议RESTFul、Json RPC、STOMP、MQTT都会生效。配置项生效后,RESTFul和Json RPC需要是使用http base authorization访问。STOMP访问需要设置header项login和passcode,MQTT访问需要设置username和password。
区块链FISCO-BCOS节点配置
配置文件
./broker/conf/fisco.yml, 与governance依赖的配置文件fisco.yml相同。改配置文件分为两部分,
weevent core config和fisco bcos sdk config部分,前者是weevent配置,后者是完全依照FISCO-BCOS SDK 配置说明 配置。################ weevent core config ################ version: 2.0 orgId: fisco timeout: 10000 poolSize: 10 maxPoolSize: 200 keepAliveSeconds: 10 consumerHistoryMergeBlock: 8 consumerIdleTime: 1000 ################ fisco bcos sdk config ################ # https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/sdk/java_sdk/configuration.html #cryptoMaterial: # certPath: "conf" # caCert: "conf/ca.crt" # sslCert: "conf/sdk.crt" # sslKey: "conf/sdk.key" # enSslCert: "conf/gm/gmensdk.crt" # enSslKey: "conf/gm/gmensdk.key" account: # ECDSA_TYPE accountAddress: "0x64fa644d2a694681bd6addd6c5e36cccd8dcdde3" # SM_TYPE # accountAddress: "0x4278900c23e4b364ba6202a24682d99be9ff8cbc" # accountFileFormat: "pem" # accountFilePath: "" keyStoreDir: "account" # password: "" #amop: # - publicKeys: [ "conf/amop/consumer_public_key_1.pem" ] # topicName: "PrivateTopic1" # - password: "123456" # privateKey: "conf/amop/consumer_private_key.p12" # topicName: "PrivateTopic2" network: peers: - "127.0.0.1:20200" threadPool: channelProcessorThreadSize: "16" maxBlockingQueueSize: "102400" receiptProcessorThreadSize: "16"
注解
- account.accountAddress为发起交易的账户地址,在`keyStoreDir`目录下存放该账户的私钥,也可以自己重新生成私钥替换,但需保持固定地址,因为topic管理等有权限控制,其他账户无权限。详细逻辑可参考`weevent-core/src/main/java/com/webank/weevent/core/fisco/web3sdk/v2/solc10/solidity`合约实现。
| 配置项 | 默认值 | 配置说明 |
|---|---|---|
| version | 2.0 | FISCO-BCOS版本,支持2.x |
| orgId | fisco | 机构名,按机构实际名称填写即可 |
| timeout | 10000 | 交易执行超时时间,单位毫秒 |
| poolSize | 10 | 最小线程数 |
| maxPoolSize | 100 | 最大线程数 |
| keepAliveSeconds | 10 | 线程空闲时间,单位秒 |
| consumerIdleTime | 1000 | 区块链新增块事件检测周期,单位毫秒 |
| consumerHistoryMergeBlock | 8 | 事件过滤的区块范围 |
WeEvent服务配置
配置文件
./broker/conf/weevent.properties。
| 配置项 | 默认值 | 配置说明 |
|---|---|---|
| ip.check.white-table | IP白名单。多个IP地址,以";"分割。默认为空时表示允许任何客户端访问。 |
|
| block.chain.type | fisco | 区块链类别,fisco或fabric |
| stomp.heartbeats | 30 | stomp心跳间隔,单位秒 |
| mqtt.broker.tcp.port | 7001 | 使用tcp访问MQTT的端口,默认不开启 |
| mqtt.broker.keepalive | 60 | mqtt连接空闲时间,单位秒 |
| mqtt.broker.security.ssl | false | mqtt是否开启ssl |
| mqtt.broker.security.ssl.client_auth | false | mqtt ssl是否开启双向认证 |
| mqtt.broker.security.ssl.ca_cert | ssl ca证书 | |
| mqtt.broker.security.ssl.server_cert | 服务端证书 | |
| mqtt.broker.security.ssl.server_key | 服务端私钥 |
Governance¶
- 配置文件
./governance/conf/application-prod.properties。
| 配置项 | 默认值 | 配置说明 |
|---|---|---|
| server.port | 7009 | spring监听端口 |
| spring.datasource.url | jdbc:mysql://127.0.0.1:3306/governance?useUnicode=true&characterEncoding=utf-8&useSSL=false | 数据源 |
| spring.datasource.driver-class-name | org.mariadb.jdbc.Driver | 驱动类 |
| spring.datasource.username | xxxx | 数据库账号用户名 |
| spring.datasource.password | yyyy | 数据库账号密码 |
| spring.datasource.type | org.apache.commons.dbcp2.BasicDataSource | 数据源类型 |
| spring.datasource.dbcp2.max-wait-millis | 10000 | 数据库连接池最长等待时间ms |
| spring.datasource.dbcp2.min-idle | 5 | 数据库连接池最小空闲 |
| spring.datasource.dbcp2.initial-size | 5 | 数据库连接池初始大小 |
| spring.datasource.dbcp2.validation-query | SELECT '1' | 数据库连接池验证查询 |
- 配置文件
./governance/conf/governance.properties
| 配置项 | 默认值 | 配置说明 |
|---|---|---|
| nodeAddressList | 数组,可连接多个不同节点,需要与fisco.yml里配置的节点证书相同 |
Processor 配置¶
- 配置文件
./processor/conf/application-prod.properties。
| 配置项 | 默认值 | 说明 |
|---|---|---|
| server.port | 7008 | 默认端口 |
| spring.datasource.url | jdbc:mysql://127.0.0.1:3306/WeEvent_processor | JDBC连接串 |
| spring.datasource.driverClassName | org.mariadb.jdbc.Driver | 连接驱动 |
| spring.jpa.database | mysql | 类型 |
| spring.datasource.username | root | 数据库用户 |
| spring.datasource.password | 123456 | 数据库密码 |
- 配置文件
./processor/conf/processor.properties。
| 配置项 | 默认值 | 说明 |
|---|---|---|
| quartz.schedule.name | schedule | quartz标识名称 |
| org.quartz.scheduler.instanceName | test | scheduler名称 |
| org.quartz.dataSource.WeEvent_processor | WeEvent_processor | 连接quartz数据库名称 |
| org.quartz.threadPool.threadCount | 20 | 进程数据 |
| org.quartz.threadPool.threadPriority | 5 | 进行优先级 |
注解
- org.quartz.dataSource.* 配置的数据库信息需要和org.quartz.jobStore.dataSource配置的数据源信息一致。
国密配置¶
前提条件:区块链为国密版本。
配置方式与FISCO-BCOS SDK配置方式一致:
- 将国密证书放到
classpath/conf/gm目录下(fisco-bcos sdk会自动检查链是国密还是非国密版本)。 fisco.yml中account.accountAddress字段改为国密账户地址,并将该账户私钥文件放到keyStoreDir目录下。WeEvent默认已有账户,若使用新账户直接替换账户地址和私钥文件即可。