摘要
BIP 代表比特币改进提案。BIP 是一种设计文档,为比特币社区提供信息,或描述比特币或其流程或环境的新功能。BIP 应该提供该功能的简明技术规范和该功能的基本原理。BIP 作者负责在社区内建立共识并记录不同意见。
版权
本 BIP 采用 PD(公共领域)许可证。
BIP 工作流程
BIP 编辑器将 BIP 分配一个号码,并检查 BIP 的语言(拼写,语法,句子结构等)、风格和结构是否清晰,以及检查 XML 格式是否有效。如果 BIP 没有准备好,编辑将把它送回给作者进行修改。
一旦 BIP 被接受,它将被发布在 bitcoin.org wiki 上。
如果 BIP 需要实现,那么实现后,BIP 的状态将更改为"最终"。
一旦 BIP 被接受,BIP 应该在 bitcoin.org wiki 上发布。这将使社区有机会讨论 BIP 并提供反馈。
BIP 格式和结构
前言
每个 BIP 必须以 XML 格式的前言开始,后跟 RFC 822 风格的标题,内容为:
BIP:标题: 作者: <作者姓名和电子邮件地址的列表> 状态: <草稿 | 活跃 | 接受 | 延期 | 替换 | 过时 | 撤回 | 最终 | 超级过时> 类型: <标准 | 信息 | 流程> 创建日期:
类型
有三种类型的 BIP:
- 标准类 BIP 描述影响大多数或所有比特币实现的任何更改,例如网络协议的更改、区块或交易有效性规则的更改,或影响使用比特币的应用程序互操作性的任何更改。
- 信息类 BIP 描述比特币设计问题,或向比特币社区提供一般指南或信息,但不提出新功能。信息类 BIP 不一定代表比特币社区的共识或建议,因此用户和实现者可以自由地忽略信息类 BIP 或遵循其建议。
- 流程类 BIP 描述比特币流程的更改,或者提议比特币流程之外的流程更改。流程类 BIP 类似于标准类 BIP,但适用于比特币协议本身以外的其他领域。
BIP 状态字段
- 草稿 - BIP 正在制定中。
- 活跃 - BIP 正在积极维护和更新。
- 接受 - 这种状态类似于活跃,但表示 BIP 已准备好实施。
- 延期 - BIP 暂时不会进一步推进,直到某些其他事情发生。
- 替换 - BIP 被另一个 BIP 替换。
- 过时 - BIP 不再相关。
- 撤回 - BIP 被其作者撤回。
- 最终 - 这个 BIP 代表了最终标准。BIP 的状态只有在它已经完成了相当长一段时间并且不太可能被替换或废弃时才会变为最终状态。
BIP 讨论
我们强烈建议单独的 BIP 包含一个单一的关键提案或新想法。小的增强或补丁通常不需要 BIP,而应该通过 GitHub pull request 流程直接提交到相关项目代码库。BIP 的更大范围是单一的更改,可能由多个相关但独立的部分组成,这些部分可能被单独实现。BIP 应该收集与其提案相关的所有讨论,并保持信息流畅。
转移 BIP 所有权
有时需要将 BIP 转移给新的负责人。一般来说,最好保留原始作者作为共同作者,如果原始作者不想被视为共同作者,则可以将其列在致谢部分。转移所有权的原因可能包括:原始作者不再有时间或兴趣维护 BIP,原始作者不再能够客观地评估各种权衡,或者原始作者希望将维护职责转移给更合适的人。
BIP 编辑职责
对于每个新的 BIP,编辑执行以下操作:
- 阅读 BIP 以检查它是否准备好:技术上合理,语言(拼写,语法,句子结构等)可接受
- 如果 BIP 没有准备好,编辑将把它送回给作者进行修改,并附上具体的说明
- 一旦 BIP 准备好,编辑将:
- 分配 BIP 编号
- 将状态更改为"草稿"
- 将 BIP 添加到 git 存储库
- 通知 BIP 作者 BIP 编号和更改后的状态
BIP 编辑的职责是判断 BIP 是否准备好,而不是判断 BIP 是否"好"。如果编辑认为 BIP 不好,他们应该允许它继续进行 BIP 流程,并让社区来决定其价值。
历史
这个文档受到 Python 增强提案(PEP)流程的启发,特别是 PEP-0001。在许多方面,它直接从 PEP-0001 中复制了文本。虽然 Bitcoin Core 开发人员在 BIP 流程中扮演着类似于 Python 核心开发人员在 PEP 流程中的角色,但 Bitcoin Core 开发人员的权力有限。