0.25.7-beta
请在 GitHub 上使用问题报告器报告 Bug:
https://github.com/flokiorg/go-flokicoin/issues
这是 Flokicoin Core 的一个次要 Beta 版本,引入了新的每区块难度重新调整算法(Digishield 风格)、AuxPoW 区块头和共识支持、测试网功能更新、RPC 修复以及构建/测试改进。此版本通过链参数预定了 Digishield 和 AuxPoW 的 主网激活 (MAINNET ACTIVATION)。所有主网节点必须在下述激活高度之前完成升级,以避免链分叉。
显著变更
-
共识:Digishield 难度重新调整
- 引入了朝向目标间隔且振幅除数为 8 的每区块指数移动平均重新调整。
- 在每一步应用有界阻尼(最小 0.75 倍,最大 1.5 倍目标间隔影响)以降低波动性。
- 在链参数启用时,支持对延迟区块应用最低难度。
- 集成到验证和挖矿流程中(next-required-bits, block template target),并扩展了单元和全区块测试。
-
P2P/线缆协议:AuxPoW 区块头支持
- 添加了 AuxPoW 结构(coinbase、默克尔分支、父区块头)和序列化辅助程序。
- 扩展了
BlockHeader,添加了 AuxPoW 标志和 ChainID 工具类,以及可选的 AuxPoW 负载编码/解码。 - 更新了
MsgBlock解码,以解析存在的 AuxPoW 负载;添加了对读/写路径的覆盖。 - 共识: AuxPoW 将于下述高度在主网激活。
-
测试网/regtest 更新
- 在配置允许的情况下,在测试网启用 SegWit 和 Taproot 功能。
- 调整了
MinHighPriority并增加了 RPC 金额验证中使用的MaxLoki边界。
-
RPC 修复与改进
- 将报告的 P2P 协议版本与
wire.ProtocolVersion对齐,并根据实时服务器状态填充getinfo字段(子版本、本地服务、进/出连接、本地地址)。
- 将报告的 P2P 协议版本与
-
工具与测试
- 添加了
make testexport目标和确定性测试数据导出程序。 - 统一了区块数据集加载器,增加强制性网络魔法值 (network-magic) 验证;重构了调用点。
- 添加了在精选数据集上的端到端难度验证,并输出了稳态调整指标。
- 添加了
-
构建与配置
- 移除了本地对
flokicoin-neutrino的replace覆盖,以避免仅限开发者的路径。 - 在配置加载期间打印带有语义化版本的启动横幅;重构了 ASCII 艺术常量。
- 移除了本地对
兼容性
- 主网将在固定高度(见下文)激活 Digishield 和 AuxPoW。这些是共识更改,在激活时构成硬分叉。所有矿工、验证者和服务商必须在这些高度之前升级。
- AuxPoW 线缆协议支持在激活高度之前对非 AuxPoW 区块头保持向后兼容。
- 未引入数据库格式更改。
激活计划 (主网)
- Digishield 难度重新调整: 在高度 115,000 处激活(
chaincfg/params.go中的DigishieldActivationHeight)。 - AuxPoW 共识: 在高度 115,840 处激活(
chaincfg/params.go中的AuxpowHeightEffective)。
这些激活在 repos/flokiorg/go-flokicoin/chaincfg/params.go 的 MainNetParams 中进行了参数化。
升级说明
- 主网节点操作员: 请在高度 115,000 (Digishield) 和 115,840 (AuxPoW) 之前升级至 0.25.7-beta,以保持在正规链上。
- 测试网/regtest 操作员: 应当升级以参与更新的难度和功能策略。
- 应用开发者: 应当重新引用 (re-vendor)/更新以获取与 AuxPoW 相关的 RPC 架构修复和协议扩展。
RPC 变更
getinfo现在报告准确的subversion(子版本)、localservices(本地服务)、localservicesnames(本地服务名称)、connections_in(入站连接)、connections_out(出站连接) 和localaddresses(本地地址)。- 报告的最大协议版本与
wire.ProtocolVersion(70016) 对齐。
构建系统与工具
- 新增
make testexport目标,用于为确定性测试导出区块数据集。 - 移除了
flokicoin-neutrino的本地replace,以在构建中生成干净的模块图。
测试与 QA
- 统一的区块加载器强制执行网络魔法值并使用缓冲的全长度读取。
- 添加了带有指标输出的端到端难度验证,用于稳态分析。
- 精选的小型测试数据集提高了确定性并缩短了 CI 时间。
自 v0.25.6-beta 以来的变更日志
- b4f439e consensus: add Digishield difficulty retarget
- dec0948 wire: integrate AuxPoW header support
- 31eff16 chore: repo updates for rpc/db, tests, fixtures
- e2ac6e7 tests: validate difficulty dataset and expose tuning metrics
- 735410f tests: unify block loader to enforce network magic; refactor call sites
- 0e5dcd3 make: add testexport target for exporting block datasets
- 651a453 rpc: report correct p2p protocol and fill getinfo fields
- bea6a7a build: drop local replace for flokicoin-neutrino
- 2e92497 config: print startup banner with version; refactor art constants
- b24e870 wire: remove stale TODO comment in protocol.go
- 60460f8 enable segiwit/taproot for testnet
- f9bf3ae increase maxloki const
- 712355d update MinHighPriority const
- fa96bbd bump version 0.25.7-dev
- 4523b79 version: bump to 0.25.7-beta
致谢
感谢所有直接为该版本做出贡献的人员:
- naliyi
- izimmerma
- mechion
- repins
- nanovex
- liarpo11
- arowqo
- thiniboy