配置变更

本文是v2.3.0-> v2.7.0的配置变更说明文档

说明:在2.0.8版本及以后的安装包中的配置文件只包含了最精简化的配置,安装包中的配置文件已经足够满足hyperchain的正常使用。若您是第一次使用hyperchain,且希望更深入地使用hyperchain时,可以查阅相关功能的使用手册从而知晓配置文件的修改方法;若您以前已经部署过hyperchain,那么仍可以沿用原先的全量配置文件,只不过需要参考《配置变更》对一些配置上的变化进行确认。

增删节点

新增配置

  • 配置文件路径:configuration/config/global/ns_genesis.toml

  • 变更所述模块:genesis

  • 变更原因:将链的ca模式上链,且不可更改

配置项

含义

genes is.ca_mode

ca模式,配置后不支持修改。支持的ca模式有:中 心化ca,即Center;分布式ca,即Distributed;无ca,即none

genes is.root_ca

当ca模式为中心化ca,即Center时,配置信任的root ca

删除配置

  • 配置文件路径:configuration/config/global/ns_static.toml

  • 变更所述模块:encryption, distributedCA

  • 变更原因:删除是否开启分布式ca及是否启用Ecert的开关,通过ca_mode控制

配置项

含义

encryption.check.enable

是否启用ecert

distributedCA.enable

是否启用分布式ca

不再支持rockit

嵌入式BaaS

新增配置

  • 配置文件路径:configuration/config/system.toml

  • 变更所述模块:baas

  • 变更原因:新增内嵌版BaaS开关

配置项

含义

baas.enable

是否开启内嵌版BaaS

新增配置

  • 配置文件路径:configuration/config/dynamic.toml

  • 变更所述模块:port

  • 变更原因:新增内嵌版BaaS访问接口

配置项

含义

port.baas

baas的访问端口

NoxBFT

新增配置

  • 配置文件路径:configuration/config/global/ns_static.toml

  • 变更所述模块:consensus.hotstuff

  • 变更原因:共识checkpoint协议重构以及稳定性优化

配置项

默认值

含义

consensus.hotstuf f.checkpoint_interval

100

配置NoxBFT允许最大不生成检查点的 轮次数,超过此数量未生成检查点时, 会发起验证区块提案以强制生成检查点

co nsensus.hotstuff.chec kpoint_mem_cache_size

2

配置NoxBFT在blo cktree中允许缓存几个检查点中的区块

consensus.hotstuff .backward_round_limit

10

配置 NoxBFT落后多少轮后去调用syncchain 同步,落后的轮次低于此数量时,只会 采用fetch的方式拉取落后的共识区块

co nsensus.hotstuff.memp ool.commit_cache_size

3

配置mempool 允许缓存多少个提交过的区块中的交易

轻节点

新增配置

  • 配置文件路径:configuration/config/global/ns_static.toml

  • 变更所述模块:executor

  • 变更原因:新增lp节点类型

配置项

默认值

含义

executor.lp.send_limit

500

vp节点给lp节点 发送的一批区块的数量限制

executor.lp.resend_interval

5s

p节点给lp节点、lp节点给 vp节点重发数据的时间间隔

gas排序

配置项变更

  • 配置文件路径:configuration/global/ns_static.toml

  • 变更所述模块:consensus

  • 变更原因:新增了交易池类型”priced”用于NFT等需求中支持打包时根据交易的优先级(通常指gas price)进行排序。

配置项

含义

变更类型

consensus.hotst uff.mempool.type

启动ho tstuff算法时使 用的交易池类型

新增交易池类型”pric ed”,用于支持hotstuff算法按照gas price进行打包排序

sync_chain模块

配置项变更

  • 配置文件路径:configuration/global/ns_static.toml

  • 变更所述模块:sync

  • 变更原因:sync_chain流程重构,使用一套新的配置项。目前,sync_chain相关的配置完全处于[sync]标签下,原[executor.sync_chain]下的配置均已弃用。

[sync]
    [sync.target]
        epoch  = 0
        height = -1
        hash = ""
    [sync.provider]
        available_mem = "100mb"
    [sync.fetcher]
        priority = "block"
        sync_journal_receipt = false
        sync_hpc_blocks = false
        batch_block_num = 50
        ledger_part_size = "100kb"
        [sync.fetcher.task]
            timeout = "7s"
            limit = 10

配置项

含义

配置规则

sync.target.epoch

节点启动时预期同步的epoch值

sync.target.height

节点启动时预期同步的区块号

要求该配置项 >= sync.targ et.epoch对应的ch eckpoint的区块号

sync.target.hash

sync. target.height对应的区块hash

sync.prov ider.available_mem

提供数据端每 一次提供的数据占用内存上限

syn c.fetcher.priority

优先同步更 多的区块还是更高的snapshot

合法可选值为:

sync.fetcher.sy nc_journal_receipt

拉取区块数据时 ,是否同时拉取journal和rece ipt(如果配置为true,则会执 行journal,否则会执行交易)

sync.fetch er.sync_hpc_blocks

是否要同步hype rchain1.8产生的历史数据(只 针对从1.8升级到2.X的场景)

该配置项如果为 true,则节点一定 采用“优先同步更 多区块”的模式, 即sync.fetcher. priority不再生效

sync.fetch er.batch_block_num

每一批拉取的数据 包数量(该配置通用于拉取数 据的各个流程中,表示一个请 求包含多少个数据包的拉取)

sync.fetche r.ledger_part_size

当需要同 步账本时,账本数据会被视为 一个文件,该配置项表示一个 账本文件数据包分片的大小( 例如:账本数据大小为1M,该 配置项为50kb;那么一共需要21 [1024/50向上取整]个数据包)

sync.fe tcher.task.timeout

拉取 数据流程内部会将拉取一批ba tch_block_num个数据包的过程 视为一个task,该配置项表示 :系统时间每经过多久回尝试 一次将未完成的task重新发送

sync. fetcher.task.limit

该配置项表示同时可以有 多少个未完成的task并行执行