GreatVoyage-v4.8.2 配置迁移

升级至 GreatVoyage-v4.8.2 时需要检查的新增、行为变化和移除配置,以及从旧版 config.conf 迁移自定义设置的方法。

本页面面向从旧版 java-tron 升级至 GreatVoyage-v4.8.2 的节点运营者。新部署节点应使用与运行版本对应的配置文件,并参阅部署节点

迁移方法

不要直接沿用旧版 config.conf。建议按以下步骤迁移:

  1. 备份旧配置文件,并记录其中的自定义设置。
  2. 以 GreatVoyage-v4.8.2 标签下的 config.conf 为基础,逐项合并仍然有效的自定义设置。
  3. 根据下表按需显式添加或覆盖新增配置,并删除已移除配置。
  4. 对照 GreatVoyage-v4.8.2 的 reference.conf检查默认值和字段类型。
  5. 在测试环境验证节点启动、API、P2P、事件订阅和监控后,再升级生产节点。

配置变更

类型配置项GreatVoyage-v4.8.2 行为与迁移说明
新增vm.constantCallTimeoutMs设置 TVM 常量调用的独立超时时间,单位为毫秒,适用于 triggerconstantcontractestimateenergyeth_calleth_estimateGas 等常量调用路径。默认值为 0,表示不覆盖原有执行截止时间;设置时必须为非负整数。不要使用会同时放宽区块交易执行时间的 --debug 来延长常量调用。
新增rate.limiter.apiNonBlocking控制 HTTP 和 gRPC API 超过限流阈值时的处理方式。默认 false,请求等待可用配额;设为 true 时立即拒绝超限请求。
新增event.subscribe.enable控制事件订阅模块,默认 false。启用事件插件或内置 ZeroMQ 时设为 true;这是旧命令行参数 --es 的推荐替代方式。具体配置参阅事件订阅
新增node.http.maxMessageSizeFullNode HTTP API 请求体上限,默认 4194304 字节(约 4 MiB);设为 0 时拒绝所有非空请求体。该限制独立于 gRPC 和 JSON-RPC 的同名配置。
新增node.jsonrpc.maxBatchSizemaxResponseSizemaxLogFilterNummaxAddressSizemaxMessageSizeJSON-RPC 的默认值依次为 10026214400 字节(25 MiB)、2000010004194304 字节(约 4 MiB)。前四项设为 0 或负数表示不限制;maxMessageSize = 0 会拒绝所有非空请求体。maxAddressSize 限制 eth_getLogs 过滤条件中的地址数量。
新增node.maxBlockInvPerSecond配置每个对等节点的区块 inventory hash 接收速率,默认每秒 10,最小值为 1。节点按最近 10 秒窗口统计,窗口上限为配置值的 10 倍;若当前整条 inventory 消息会使累计量超过上限,则丢弃整条消息。
新增node.maxPendingBlockSize用于计算同步中新区块请求的预算,默认 500;低于 50 或高于 2000 的配置值会分别被限制为 502000。为避免同步死锁,对不高于此前最高请求高度的重试请求可在预算耗尽后继续发送,因此该值不是严格的待处理区块总量上限。
新增node.maxTrxCacheSize交易处理队列、pending 队列和重推队列合计可缓存的交易数量上限,默认 50000、最小有效值 2000。缓存总量超过上限后,节点停止接受对等节点发送的交易 inventory 消息。
行为变化seed.node.ip.listnode.activenode.passivenode.fastForwardnode.backup.members对等节点地址除 IP 外也可使用 hostname:portnode.backup.members 用于同一 SR 的多个出块节点实例之间进行主备协调,与下方已移除的 RocksDB 数据备份无关。
行为变化node.shutdown原有的 BlockTimeBlockHeightBlockCount 条件退出配置现在也适用于 SolidityNode。配置方法参阅节点进程按条件自动退出
移除storage.backup.*RocksDB 内置数据备份功能及 enablepropPathbak1pathbak2pathfrequency 配置已移除。升级前应迁移到数据库快照或外部备份方案;不要误删仍有效的 node.backup。参阅数据库快照
移除storage.index.directorystorage.index.switch这两个旧索引配置原本已不被运行时代码使用,现已移除。对应的 --storage-index-directory--storage-index-switch 仍可被命令行解析,但不会改变节点行为,应一并删除。
移除net.type不再支持通过该配置切换旧的测试网地址前缀;从自定义配置中删除此项。
移除actuator.whitelist自定义 Actuator 不再通过白名单配置注册;扩展类必须放在 org.tron.core.actuator 包下。
移除node.metrics.storageEnablenode.metrics.influxdb.*旧 Metrics 模块的 InfluxDB 上报已移除。继续使用 node.metrics.prometheus,并通过 Prometheus/Grafana 采集与展示指标。

命令行参数兼容性

GreatVoyage-v4.8.2 将一批 FullNode 命令行参数标记为弃用,包括 --fast-forward--storage-*--support-constant--max-energy-limit-for-constant--lru-cache-size--min-time-ratio--max-time-ratio--save-*--long-running-time--max-connect-number--rpc-thread--solidity-thread--validate-sign-thread--trust-node--history-balance-lookup--contract-parse-enable--es。位置参数形式的 seed node 也已标记为弃用。

除上表已经失效的两个 storage index 参数外,这些参数在本版本中仍然生效;使用时节点会输出弃用警告。建议改用 config.conf 中的对应配置,例如以 seed.node.ip.list 替代位置参数 seed node,以 event.subscribe.enable 替代 --es。同时指定命令行参数和配置文件时,命令行参数优先,其次是配置文件,最后才使用默认值。

日志与监控迁移

  • gRPC 日志现在单独写入 ./logs/grpc/grpc.log。升级后应同步调整日志采集路径、轮转规则和告警条件。
  • 新增 Prometheus Counter tron:sr_set_change_total,使用 actionwitness 标签记录活跃 SR 集合变化,其中 action 取值为 addremove;新增带 miner 标签的直方图 tron:block_transaction_count,在区块进入 pushBlock 时记录其交易数量,因此还会采集随后因重复、过旧或分叉切换而未进入当前主链的区块,并非只统计最终应用到主链的区块。
  • 如果 --log-config 指定的文件不存在、不可读或无法解析,节点会直接启动失败。升级前应检查自定义 Logback 配置文件及其权限。

相关资源