3.2.1. 概述
天玄链中,使用 sdk 需要加载主配置文件 thanos-web3j.conf
以及 日志管理配置 logback.xml
。
3.2.2. 主配置文件 thanos-web3j.conf
thanos-web3j.conf
主要包括了 gateway 、resource 、tls 等配置项。配置内容示例如下:
gateway = {
# List of gateway peers rpc port to send msg
rpc.ip.list = [
"127.0.0.1:8082",
"127.0.0.1:8182"
]
web3Size = 3
#connection check interval (s)
checkInterval = 60
# List of gateway peers http port to send msg
http.ip.list = [
"127.0.0.1:8581",
"127.0.0.1:8582"
]
}
resource {
logConfigPath = "/root/thanos-test/resource/logback.xml"
}
#tls settings, such as path of keystore,truststore,etc
tls {
needTLS = true
keyPath="/root/thanos-test/resource/tls/node.key"
certsPath="/root/thanos-test/resource/tls/chain.crt"
}
3.2.2.1. 配置gateway标签
- rpc.ip.list:gateway 提供 rpc 服务的 ip 和端口号(列表)。
- web3Size:每个 gateway 节点对应的 rpc 连接池中的连接数量。
- checkInterval:rpc 连接有效性检测的时间间隔。
- http.ip.list:gateway 提供 http 服务的 ip和端口号(列表)。
3.2.2.2. 配置resource标签
- logConfigPath:日志管理配置文件
logback.xml
所在路径。
3.2.2.3. 配置tls标签
- needTLS:与 gateway 之间的 rpc 通信是否需要建立 tls 链接,需要与 gateway 端配置保持一致。
- keyPath:sdk 的私钥文件
node.key
所在路径。 - certsPath:sdk 的证书链
chain.crt
所在路径。
3.2.3. 日志管理配置文件 logback.xml
logback.xml
指定了节点日志的存放位置和生成规则。配置内容示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Be sure to flush latest logs on exit -->
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %p [%c{1}] %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./logs/thanos-test.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover hourly -->
<fileNamePattern>./logs/thanos-test-%d{yyyy-MM-dd-'h'HH}.log</fileNamePattern>
<!-- ~1 month -->
<maxHistory>720</maxHistory>
<totalSizeCap>50GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %p [%c{1}] %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- Don't discard INFO, DEBUG, TRACE events in case of queue is 80% full -->
<discardingThreshold>0</discardingThreshold>
<!-- Default is 256 -->
<!-- Logger will block incoming events (log calls) until queue will free some space -->
<!-- (the smaller value -> flush occurs often) -->
<queueSize>100</queueSize>
<appender-ref ref="FILE" />
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="ASYNC"/>
</root>
<logger name="rlp" level="ERROR"/>
<logger name="rpc" level="INFO"/>
<!--<logger name="rpc" level="DEBUG"/>-->
<logger name="test" level="DEBUG"/>
</configuration>
3.2.3.1. 配置打印的日志组件
通过 \
1)STDOUT 日志组件: 采用 ch.qos.logback.core.ConsoleAppender 组件,将日志打印到控制台中。其中,<encoder>
标签 对日志进行格式化。
2)FILE 日志组件:采用 ch.qos.logback.core.rolling.RollingFileAppender 组件,将日志滚动记录到文件中。其中,\
3)ASYNC 日志组件: 采用 ch.qos.logback.classic.AsyncAppender 组件,负责异步记录日志。该组件仅充当事件分派器,必须搭配其他 appender 使用,示例文件中搭配 FILE 日志组件,表示将日志事件异步记录到文件中。此外,可通过 \
3.2.3.2. 配置打印的日志等级
通过 \