达世币核心版本v19.0.0

  • dashpay
  • 发布于 2023-05-25 19:51
  • 阅读 12

本文是Dash Core v19.0.0版本的发布说明,该版本引入了高性能主节点(HPMN)以支持Dash平台,并升级了BLS签名方案以符合IETF标准。同时,移除了自动创建钱包功能,并合并了来自Bitcoin Core的多个更新。此版本为强制升级,旨在为Dash平台在主网上的发布做准备,并提升网络性能和安全性。

Dash Core 版本 v19.0.0

现在可以从以下位置下载发行版:

<https://www.dash.org/downloads/#wallets>

这是一个新的主要版本,带来了新功能、各种错误修复和其他改进。

此版本对所有节点都是强制性的。

请使用 GitHub 上的 issue 跟踪器报告错误:

<https://github.com/dashpay/dash/issues>

升级和降级

如何升级

如果你运行的是旧版本,请将其关闭。 等待它完全关闭(旧版本可能需要几分钟),然后在 Windows 上运行安装程序,或者直接复制 /Applications/Dash-Qt(在 Mac 上)或 dashd/dash-qt(在 Linux 上)。 如果你在 DIP0003 激活后进行升级,并且你使用的是 < 0.13 版本,你将需要重新索引(使用 -reindex-chainstate 或 -reindex 启动),以确保你的钱包已同步所有新数据。 从 0.13 版本升级应该不需要任何额外操作。

从早于 18.0.1 的版本升级时,Dash Core 的首次启动将运行一个迁移过程,该过程可能需要几分钟到三十分钟才能完成。 迁移完成后,降级到旧版本只有通过重新索引(或重新索引链状态)才有可能。

降级警告

降级到低于 v19.0.0 的版本

由于 evodb 数据库的更改,不支持降级到低于 v19.0.0 的版本。 如果你需要使用旧版本,则必须重新索引或重新同步整个链。

值得注意的更改

高性能主节点

为了准备将 Dash 平台发布到主网,添加了一种新的主节点类型。 除了 ChainLocks 和 InstantSend 等现有职责外,高性能主节点将负责托管 Dash 平台服务(一旦它们在主网上)。

DashCore v19.0 硬分叉的激活将启用新的 4000 DASH 抵押主节点的注册。 在 Dash 平台发布到主网之前,高性能主节点将提供与常规主节点相同的服务,但有一个小的例外。 常规主节点将不再参与硬分叉后的平台特定 LLMQ,因为它们将不负责托管 Dash 平台。

注意:在 DashCore v19.0 中,常规主节点和高性能主节点之间的相对奖励和投票权是等效的。 主节点实际上每个 1000 DASH 抵押品获得一份支出和一个治理投票。 因此,运行四个常规主节点或一个高性能主节点的奖励金额没有差异。 在 v19.0 中,高性能主节点在被选择支付时,只需在四个连续的区块中接收付款。 常见问题解答可在 https://www.dash.org/hpmn-faq/ 找到。

BLS 方案升级

一旦 v19 硬分叉被激活,所有剩余的包含 BLS 公钥或签名的消息将使用新的基本 BLS 方案对其进行序列化。 此更改背后的动机是需要与 IETF 标准保持一致。

受影响的消息列表: dsqdstxmnauthgovobjgovobjvoteqrinfoqsigshareqsigrecisdlockclsig 和所有 DKG 消息(qfcommitqcontribqcomplaintqjustifyqpcommit)。

qfcommit

一旦 v19 硬分叉被激活,quorumPublicKey 将使用基本 BLS 方案进行序列化。 为了支持同步使用旧 BLS 方案的交易的旧区块,version 字段指示用于序列化 quorumPublicKey 的方案。

版本 版本描述 包括 quorumIndex 字段
1 使用旧 BLS 方案序列化的非旋转 qfcommit
2 使用旧 BLS 方案序列化的旋转 qfcommit
3 使用基本 BLS 方案序列化的非旋转 qfcommit
4 使用基本 BLS 方案序列化的旋转 qfcommit

MNLISTDIFF P2P 消息

从协议版本 70225 开始,以下字段被添加到 MNLISTDIFF 消息中的 cbTxdeletedQuorumsCount 之间。

字段 类型 大小 描述
version uint16_t 2 MNLISTDIFF 回复的版本

version 字段指示用于序列化 mnList 的所有 SML 条目的 pubKeyOperator 字段的 BLS 方案。

版本 版本描述
1 使用旧 BLS 方案序列化 pubKeyOperator
2 使用基本 BLS 方案序列化 pubKeyOperator

ProTx 交易系列

proregtxproupregtx 将支持新的 version 值:

版本 版本描述
1 使用旧 BLS 方案序列化 pubKeyOperator
2 使用基本 BLS 方案序列化 pubKeyOperator

proupservtxprouprevtx 将支持新的 version 值:

版本 版本描述
1 使用旧 BLS 方案序列化 sig
2 使用基本 BLS 方案序列化 sig

MNHFTx

MNHFTx 将支持新的 version 值:

版本 版本描述
1 使用旧 BLS 方案序列化 sig
2 使用基本 BLS 方案序列化 sig

钱包

删除了自动创建钱包的功能

Dash Core 将不再在启动时自动创建新钱包。 它将加载命令行或 dash.conf 或 settings.json 文件中通过 -wallet 选项指定的现有钱包。 默认情况下,它还将加载顶级未命名(“”)钱包。 但是,如果指定的钱包不存在,Dash Core 现在只会记录警告,而不是像以前的版本那样创建带有新密钥和地址的新钱包。

可以通过 GUI(它有一个更突出的创建钱包选项)、通过 dash-wallet create 命令或 createwallet RPC 创建新钱包。

P2P 和网络变更

从 Dash Core 中删除拒绝网络消息 (BIP61)

已删除启用 BIP61 的命令行选项 (-enablebip61)。

通常不能信任网络上的节点发送有效的(“拒绝”)消息,因此只有在连接到受信任的节点时才应使用此消息。 如果你依赖此已弃用的功能,请使用推荐的替代方案:

  • Dash P2P 网络协议实现的测试或调试应通过检查 Dash Core 的最新版本生成的日志消息来完成。 Dash Core 将调试消息 (-debug=<category>) 记录到流 (-printtoconsole) 或文件 (-debuglogfile=<debug.log>)。

  • 可以通过特定的 RPC 来测试区块的有效性:

    • submitblock
    • getblocktemplate,其中“mode”设置为“proposal”,用于具有
    • 可能无效的 POW 的区块
    • 可以通过特定的 RPC 来测试交易的有效性:
      • sendrawtransaction
      • testmempoolaccept

CoinJoin 更新

几个与 CoinJoin 相关的网络消息的一个小更新改进了对来自 SPV 客户端的混合的支持。 这些更改使 SPV 客户端更容易通过使用他们可以通过 DIP-0004 轻松获取和验证的主节点信息来参与 CoinJoin 流程。

远程过程调用 (RPC) 更改

新增的 RPC 有:

  • 为了支持以旧 BLS 方案编码的 BLS 公钥,添加了 protx register_legacyprotx register_fund_legacyprotx register_prepare_legacy
  • cleardiscouraged 清除所有已劝退的对等节点。
  • 添加了以下 RPC:protx register_hpmnprotx register_fund_hpmnprotx register_prepare_hpmnprotx update_service_hpmn。 这些 HPMN RPC 对应于标准主节点 RPC,但具有以下附加的强制参数:platformNodeIDplatformP2PPortplatformHTTPPort
  • upgradewallet

移除的 RPC 有:

通过比特币反向移植引入的现有 RPC 中的更改:

  • utxoupdatepsbt RPC 方法已更新为采用描述符参数。 如果提供,输入和输出脚本和密钥将在已知时被填写。 有关完整详细信息,请参阅 RPC 帮助文本。

现有 RPC 中特定于 Dash 的更改:

  • masternodelist:添加了新的模式 recent,以便隐藏被禁止超过一个 SuperblockCycle 的主节点。 如果使用模式 recent,则回复模式为 JSON(可以额外过滤)
  • quorum info:对于旋转的 LLMQ,将返回新的 previousConsecutiveDKGFailures 字段。 此字段将保存对应 quorumIndex 在当前活动的仲裁之前的先前连续 DKG 失败次数。 注意:如果未找到先前的承诺,则 previousConsecutiveDKGFailures 将返回 0。
  • bls generatebls fromsecret:新的 scheme 字段将返回,指示用于序列化公钥的方案。 有效的返回值是 legacybasic
  • bls generatebls fromsecret:即使 v19 处于活动状态,两个 RPC 都接受传入的可选布尔参数 legacy,该参数强制使用旧 BLS 方案来序列化回复。
  • masternode status:现在返回主节点的类型。
  • masternode count:现在返回每个类型的总主节点和已启用主节点的详细摘要。
  • gobject getcurrentvotes:通过在每行末尾添加投票权重来丰富回复。 可能的值为 1 或 4。 示例:“7cb20c883c6093b8489f795b3ec0aad0d9c2c2821610ae9ed938baaf42fec66d”: "277e6345359071410ab691c21a3a16f8f46c9229c2f8ec8f028c9a95c0f1c0e7-1:1670019339:yes:funding:4"
  • 一旦 v19 硬分叉被激活,protx registerprotx register_fundprotx register_prepare RPC 将使用新的基本 BLS 方案解码 BLS 运算符公钥。

请检查“help <command>”以获取有关特定 RPC 的更详细信息。

命令行选项

对命令行选项进行了一些更改,这些更改与测试和删除 BIP61 支持有关。

新的 cmd-line 选项:

  • llmqplatform (仅限开发网络)
  • unsafesqlitesync

已删除的 cmd-line 选项:

  • enablebip61
  • upgradewallet

现有 cmd-line 选项中的更改:

  • llmqinstantsendllmqinstantsenddip0024 现在可以在 regtest 中使用
  • 传递无效的 -rpcauth 参数现在会导致 dashd 启动失败。

请查看 Qt 钱包中的“帮助 -> 命令行选项 ”或 dashd --help 以获取更多信息。

来自 Bitcoin Core 的反向移植

此版本引入了来自 Bitcoin v0.18-v0.21 的许多更新,以及来自 Bitcoin v22 和更高版本的众多更新。 不符合 Dash 产品需求的比特币更改(例如 SegWit 和 RBF)将从我们的反向移植中排除。 有关比特币中包含的内容的更多详细信息,请参阅其发行说明。

v19.0.0 变更日志

请参阅详细的变更集

鸣谢

感谢所有为此版本做出直接贡献的人:

  • Kittywhiskers Van Gogh (kittywhiskers)
  • Konstantin Akimov (knst)
  • Odysseas Gabrielides (ogabrielides)
  • Oleg Girko (OlegGirko)
  • PastaPastaPasta
  • thephez
  • UdjinM6
  • Vijay Das Manikpuri (vijaydasmp)

以及所有提交问题、审阅拉取请求、帮助调试候选版本以及编写在此版本中实现的 DIP 的人。

较旧的版本

Dash 以前被称为 Darkcoin。

Darkcoin 树 0.8.x 是 Litecoin 树 0.8 的一个分支,原名是 XCoin,它于 2014 年 1 月 18 日首次发布。

Darkcoin 树 0.9.x 是基于 0.8.x 树的主节点的开源实现,并于 2014 年 3 月 13 日首次发布。

Darkcoin 树 0.10.x 曾经是 Darksend 的闭源实现,它于 2014 年 9 月 25 日以开源方式发布。

Dash Core 树 0.11.x 是 Bitcoin Core 树 0.9 的一个分支,Darkcoin 被更名为 Dash。

Dash Core 树 0.12.0.x 是 Bitcoin Core 树 0.10 的一个分支。

Dash Core 树 0.12.1.x 是 Bitcoin Core 树 0.12 的一个分支。

这些版本被认为是过时的。 旧版本说明可以在这里找到:

  • v18.2.2 于 2023 年 3 月 21 日发布
  • v18.2.1 于 2023 年 1 月 17 日发布
  • v18.2.0 于 2023 年 1 月 1 日发布
  • v18.1.1 于 2023 年 1 月 8 日发布
  • v18.1.0 于 2022 年 10 月 9 日发布
  • v18.0.2 于 2022 年 10 月 9 日发布
  • v18.0.1 于 2022 年 8 月 17 日发布
  • v0.17.0.3 于 2021 年 6 月 7 日发布
  • v0.17.0.2 于 2021 年 5 月 19 日发布
  • v0.16.1.1 于 2020 年 11 月 17 日发布
  • v0.16.1.0 于 2020 年 11 月 14 日发布
  • v0.16.0.1 于 2020 年 9 月 30 日发布
  • v0.15.0.0 于 2020 年 2 月 18 日发布
  • v0.14.0.5 于 2019 年 12 月 8 日发布
  • v0.14.0.4 于 2019 年 11 月 22 日发布
  • v0.14.0.3 于 2019 年 8 月 15 日发布
  • v0.14.0.2 于 2019 年 7 月 4 日发布
  • v0.14.0.1 于 2019 年 5 月 31 日发布
  • v0.14.0 于 2019 年 5 月 22 日发布
  • v0.13.3 于 2019 年 4 月 4 日发布
  • v0.13.2 于 2019 年 3 月 15 日发布
  • v0.13.1 于 2019 年 2 月 9 日发布
  • v0.13.0 于 2019 年 1 月 14 日发布
  • v0.12.3.4 于 2018 年 12 月 14 日发布
  • v0.12.3.3 于 2018 年 9 月 19 日发布
  • v0.12.3.2 于 2018 年 7 月 9 日发布
  • v0.12.3.1 于 2018 年 7 月 3 日发布
  • v0.12.2.3 于 2018 年 1 月 12 日发布
  • v0.12.2.2 于 2017 年 12 月 17 日发布
  • v0.12.2 于 2017 年 11 月 8 日发布
  • v0.12.1 于 2017 年 2 月 6 日发布
  • v0.12.0 于 2015 年 8 月 15 日发布
  • v0.11.2 于 2015 年 3 月 4 日发布
  • v0.11.1 于 2015 年 2 月 10 日发布
  • v0.11.0 于 2015 年 1 月 15 日发布
  • v0.10.x 于 2014 年 9 月 25 日发布
  • v0.9.x 于 2014 年 3 月 13 日发布
  • 原文链接: github.com/dashpay/dash/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
dashpay
dashpay
江湖只有他的大名,没有他的介绍。