开发者¶
Dash Core发布了一项广泛性的 开发者指南 ,旨在帮助新的开发者学习使用达世币代码库,同时也供经验丰富的开发人员参考。利用本指南可以快速有效地将外部应用程序整合入达世币生态系统。任何人都可以通过在GitHub上提交问题或拉取请求,为该指南提供建议。文档获取地址: https://dash-docs.github.io/en/
Dash Core团队还负责维护 达世币路线图,其中列有未来达世币版本交付时间表,以及关于开发团队如何攻克每一项挑战的特定技术细节。 达世币改善提案 是达世币路线图的补充,包含有关于拟议的达世币协议变更的详细技术说明。
下文所述内容为在达世币中执行共同开发任务的实际步骤。
叉勺技术¶
多阶段分叉,俗称 “spork”,是一种达世币独有的机制,通过网络层变量将新功能安全地部署到网络中,避免升级过程中出现意外的网络分叉风险。也可用于出现安全漏洞时,禁用某些功能——参考 此处 sporks简介。该文档描述了目前存在于网络上的每一个spork的含义,以及状态检查方法。
Spork 函数¶
使用整数值设置Sporks。许多的sporks都可设置特定的新纪元时间(自1970年1月1日起走过的秒数),用作活动时间。启用的sporks设置为0(直至激活前的秒数)。该函数常用于设置未来的spork启用日期,在发生变更之前,一直保持有效。以下为目前网络上存在的sporks及其服务功能:
- SPORK_2_即时发送_已启用
- 管理达世币客户端使用即时发送功能的能力。
- SPORK_3_即时发送_区块_过滤
- 如果已启用,主节点将拒绝那些含有与已锁定但尚未被证实的即时发送相冲突的区块。
- SPORK_5_即时发送_最大_值
- 强制执行即时发送交易中所包含的达世币最大值。
- SPORK_6_新_签名
- 启用新的签名格式,服务于达世币 12.3所引入的特定于达世币的网络消息。更多信息,请参阅 此处 和 此处。
- SPORK_8_MASTERNODE_支付_执行
- 如果已启用,挖矿机必须将区块奖励的50%支付给当前正在等待被选择的主节点,否则,该区块变为无效。
- SPORK_9_超级块_已启用
- 如果已启用,则验证并发布超级块,以支付提案获胜者。
- SPORK_10_MASTERNODE_支付_已更新_节点
- 无论运行旧协议版本的主节点是否符合支付条件,都进行控制。使用奖励作为激励,促使主节点进行更新。
- SPORK_12_重新考虑_区块
- 强制性地为指定数量的区块重建索引,从偶然网络分叉中恢复过来。
- SPORK_13_旧式_超级块_标志
- 已弃用。自区块614820之后再无网络功能。
- SPORK_14_要求_哨兵_标志
- 如果状态为WATCHDOG_EXPIRED,即哨兵未正常运行,则进行切换,无论主节点是否符合奖励条件。
- SPORK_15_确定性的_主节点_已启用
- 进行控制,无论是否需要 确定性主节点 。激活后,旧式主节点列表逻辑不再运行,未更新的主节点将变为不符合奖励条件。
- SPORK_16_即时发送_自动锁
- 就输入数少于指定数目的交易,启用自动交易锁定,同时删除旧式即时发送费。除发送节点外,允许任一节点请求交易锁定。
- SPORK_17_QUORUM_DKG_ENABLED
- Enables the DKG process to create LLMQ quorums. This spork will be turned on once 80% masternodes are upgraded to v0.14, which will enable DKG and DKG-based PoSe.
- SPORK_19_CHAINLOCKS_ENABLED
- Enables ChainLocks, a mechanism of preventing the risk to payments introduced by blockchain reorganization events. ChainLocks are described in DIP0008 ChainLocks.
- SPORK_20_INSTANTSEND_LLMQ_BASED
- When enabled, legacy InstantSend is superseded by LLMQ-based InstantSend, as described in DIP0010 LLMQ-based InstantSend.
查看spork状态¶
调试窗口(或主节点上的 dash-cli
)发出的 spork show
和 spork active
命令,允许您与sporks进行交互。您可以通过选择 工具 > 调试控制台 ,打开调试窗口。