重要∣NIP1_NIP的目的和指导(公示) NCG20181227

技术文章 Sakura 2018-12-27 17:52:04  阅读 -评论 0

NIP:1

标题: NIP的目的和指导
状态: 公示
类型: 流程
作者: 杨霖 <lin@nuls.io>
创建日期:2018/12/27

什么是NIP?

NIP代表NULS改善提案。 NIP是一个设计文档,用于向NULS社区提供信息,描述NULS相关的改善流程或新功能。 NIP作者负责在社区内建立共识并记录不同意见。

NIP产生的理由

  • 我们希望NIP成为提出新功能、收集社区技术意见以及记录NULS设计决策的主要机制。 由于NIP在版本化存储库中被作为文本文件维护,因此其修订历史记录就是功能提议的历史记录
  • 对于NULS实施者,NIP是跟踪其实施进度的便捷手段。 理想情况下,每个功能的维护者都会列出他们已实现的NIP。 这将为用户提供一种方便的方法来了解某个功能或库的当前状态。

NIP的类型

NIP当前有六种类型:

  • 核心:NULS核心代码的改善,例如共识机制,网络协议等。
  • 模块:模块的提交和评审要求的改善,例如符合何种标准的模块会被接受并被纳入模块仓库。
  • 接口:NULS客户端API/RPC的规范和标准的改善,例如API名称、方法名称。
  • NRC标准:应用级别的标准的改善,例如合约标准,通证标准等。
  • 信息:描述NULS设计问题,或向NULS社区提供一般性指导或信息,但不提出新功能。 信息NIP不一定代表NULS社区的共识或推荐,因此用户和实施者可以自由选择忽略信息NIP或遵循他们的建议
  • 流程:所有NULS相关的操作流程的改善,例如社区中竞选大使的流程的改善。流程类NIP不仅仅是建议,是社区成员完成某些特定的事需要遵守的规范,但该类NIP不涉及代码层面的规范。

NIP的工作流程

涉及流程的各方包括以下部分或全部角色:

  • 社区的大部分成员

主要职责为参与NIP的讨论和投票,提出建设性意见。

  • NIP作者

提出和完善NIP,并负责引导社区展开讨论。

  • NIP编辑

管理和编辑NIP。

  • NULS理事会

对即将进入接受或完结状态的NIP做最后把关,理事会有权通过内部投票拒绝NIP。

  • NULS核心开发者

负责核心,模块,NRC标准和接口这四个类型的NIP的审核和代码实现。

在开始撰写NIP之前,先审查你的想法,这将帮你节省时间。首先询问社区这个想法之前是否被提出过,可行性如何。以免浪费时间在一些肯定会被拒绝的提案上,并有助于确保该想法适用于整个社区而不仅仅是作者。 某个想法对作者有意义并不意味着它对各个地区使用NULS的人都有意义。我们建议可以通过发起投票的方式在社区收集意见,投票的结果也有助于NIP编辑更快做出判断是否合并该NIP。

完成一个最终生效的NIP需要经过以下阶段:

<code><span class="">[ 草稿 ]</span><strong>-</strong>><span class="">[ 公示 ]</span><strong>-</strong>><span class="">[ 接受 ]</span><strong>-</strong>><span class="">[ 完结 ]</span>

每次NIP状态的更改都是先由NIP的作者提出Pull Request(合并请求,简称PR),然后NIP的编辑会对该NIP进行审查。提出PR的时候最好包含一个可以持续讨论该NIP的链接。

完整的NIP处理流程如下:

  • NIP的作者按照规定的格式和样式编写NIP,然后在社区中进行讨论和调研,确定可行性后,则将NIP通过提PR的方式提交到NIP仓库,并在PR中包含社区讨论的链接。NIP编辑会根据实际情况来处理这些请求。
    • 草稿: 如果同意合并,NIP编辑将为该NIP分配一个编号并合并PR。 NIP编辑不会无理由拒绝某个NIP
    • 草稿: 拒绝合并为草稿的原因包括专注度不够、过于宽泛、重复劳动、技术上不健全、没有提供合理的动机或解决向后兼容性,或者不符合NULS理念。
  • 合并成为草稿状态后,作者可以继续提PR对草稿做进一步更改,直至认为该NIP已经足够成熟并准备好进入下一个状态为止。
    • 公示: 如果获得同意,NIP编辑将会把该NIP的状态从草稿更改为公示,并设置公示结束日期,通常为15天后。
    • 公示: 如果进入公示阶段后,还要对该NIP进行更改,那这个NIP会被退回草稿状态。我们希望一个NIP只进入一次公示状态,避免在社区引起不必要的争论。
  • 公示状态的NIP会置顶在https://nuls.community/
  • 接受(核心,模块,NRC标准和接口的NIP才涉及): 如果没有重大变更或未解决的技术问题,则通过公示期的NIP的状态会被NIP编辑更改为接受。
  • 完结(信息和流程才涉及): 如果没有重大变更或未解决的技术问题,则通过公示期的NIP的状态会被NIP编辑更改为完结。
  • 公示: 公示期有材料变更或无法解决社区提出的技术问题,则该NIP将会被退回草稿状态。除此之外,如果理事会对该NIP有不同的看法,可以在理事会成员内部发起投票,超过70%的理事会成员否决该NIP(需给出原因)则该NIP将根据实际原因被退回草稿状态或直接改为拒绝状态。
  • 当核心、模块、NRC标准和接口的NIP成为接受状态后,何时能成为完结状态取决于相关的NULS核心开发者,由他们决定如何将该NIP通过编码来实现。
    • 完结(核心,模块,NRC标准和接口的NIP涉及): NIP已通过编码实现,并在主网稳定运行一段时间或得到了有效验证且改动也得到了社区的认可,则状态可变为完结。

其他非常规状态如下:

  • 延期:核心、模块、NRC标准和接口相关的NIP成为接受状态后,开发者未按照预定的时间完成开发。
  • 拒绝: 某个NIP被核心开发者拒绝实现或被理事会认定为不可实现。
  • 被取代:NIP以前是完结状态,但不再被认为是最先进的。出现另一个更好的NIP,参考了这个NIP并成为了最终状态。

一个有效的NIP文档应该包含哪些内容?

每个NIP应该包含以下部分(被*标注的代表是可选项):

前言:与NIP相关的元数据,以RFC 822样式展示。内容包括NIP编号,简短描述性标题(限制为最多44个字符)和作者详细信息。可参阅下文了解详情。

简单总结:NIP作者需要给这个NIP提供一个简单且普通人可以理解的总结,如果你不能很简单地解释它,说明你自己对它的理解还不够深入。

  • 摘要 :对正在解决的技术问题进行简短(约200字)描述。
  • *动机:对于想要改善NULS协议的NIP,动机至关重要。 它应该清楚地解释为什么现有的协议规范存在不足。没有足够动机的NIP可能会被彻底拒绝。
  • *规范:技术规范应描述清楚任何新功能的语法和语义。规范应该足够详细,以允许当前任何基于NULS平台的应用拥有竞争性、可互操作性(例如NULS客户端,浏览器)。
  • 论据 :论据通过描述什么驱动了这样的设计以及为什么要做出这样的设计决策来充实规范。它应该阐述考虑过的替代性设计和相关工作,例如如何在其他语言中支持该特性。论据也可以提供证据证明社区的意见是一致的,并应讨论提出的重要反对意见或大家关注的事项。
  • 向后兼容性:所有引入向后不兼容的NIP必须描述存在哪些不兼容及其严重性。NIP中必须解释作者如何处理这些不兼容性。如果没有足够的向后兼容性论述,提交的NIP可能会被直接拒绝。
  • 测试用例:对于影响共识机制的NIP,其实现方法的测试用例是强制性的。
  • 实现 :代码的实现必须在任何NIP被赋予完结状态之前完成,但是它不需要在NIP被合并为草稿之前完成。
  • 历史记录:历史记录是展示了该NIP从提出到成为完结状态的整个过程,可以通过附加链接形式展示。

NIP的格式和模版

NIP应该用markdown的格式编写

NIP的前言

每个NIP的必须以RFC 822的样式作为文档的头部前言,头部必须按照以下顺序进行排列,用*标注的头部为可选项,其他项为必填项

<code> NIP: <span class="" data-redactor-tag="span"><NIP编号></span> 标题: <span class=""><NIP标题></span> 作者: <span class=""><列出作者的真实名字和电子邮件地址> </span>*讨论渠道: <span class=""><指向官方讨论渠道的链接></span> 状态: <span class=""><草稿| 接受 | 完结 | 被取代 | 延期 | 拒绝></span> 类型: <span class=""><核心 | 模块 | 接口 | <span class="" data-redactor-tag="span">NRC</span>标准 | 信息 | 流程></span> 创建日期: <span class="">< 用 <span class="" data-redactor-tag="span">ISO</span> <span class="">8601</span> (<span class="">yyyy-mm-dd</span>) 格式> </span>*取代: <span class=""><NIP 编号> </span>*被取代: <span class=""><NIP 编号></span>

附件

NIPS文档可能包含一些附件,例如流程图。这样的文件必须以NIP-XXXX-Y.ext的格式来命名,"XXXX"指的是NIP的编号,"Y"指的是序列号(从1开始),"ext"指的是文件扩展名(例如:.png)

转移NIP的所有权

有时需要将NIPS的所有权转让给新的作者。一般来说,我们希望保留原作者作为要转移的NIP的合著者,但这实际上取决于原作者。转让所有权的一个很好的理由是,原作者不再有时间或兴趣来更新它或跟进NIP的后续过程,或已经脱离了"网络"(即无法联系或没有回复电子邮件)。转让所有权的一个不好的原因是你不同意NIP的方向。我们努力围绕一个NIP去建立共识,如果你认为不可能达成,你可以提交一个更有说服力的NIP。

如果您对NIP的所有权感兴趣,请发送一封邮件要求接管,该邮件的收件人是原作者和NIP编辑。如果原作者没有及时回复邮件,NIP的编辑就会做出单方面的决定(这样的决定并不是不能逆转的)。

NIP编辑

当前的NIP编辑如下:

<code><strong>Niels</strong> <Niels<span class="">@nuls</span>.io> Pen <Pen<span class="">@nuls</span>.io>

NIP编辑的职责

每次收到一个新的NIP, 一个编辑要做如下的事:

  • 阅读NIP来检查它是否较为完备,NIP中的想法必须具有技术意义,即使它们看起来不太可能达到最终状态。
  • 标题和内容要相符。
  • 检查NIP的语言(拼写、语法、句子结构等)、标记(Github风格的标记)、代码风格 。

如果NIP不够完备,编辑会把它发回给作者进行修改,并给出具体的说明。一旦NIP做好了合并到仓库的准备,NIP编辑就会这样做:

  • 分配一个NIP编号(通常是PR编号)
  • 合并相应的PR
  • 将消息发送回NIP作者

许多NIP是由对NULS代码库具有写入权限的开发人员编写和维护的。NIP编辑要关注NIP的变化,并纠正我们看到的任何结构、语法、拼写或标记错误。NIP编辑不会主观地对NIP做出判断,只做管理和编辑这部分工作。

History

这个文档主要引用了 Bitcoin's BIP-0001,由 Amir Taaki 所写,同时他所写的文本也主要来源于 Python's PEP-0001。NIP根据自身的实际情况,基于他们的文档做了一些修改,例如NIP流程中增加了理事会,修改了NIP类型等。后续与NIP相关的问题请直接联系NULS NIP的编辑。

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们kefu@lianshijie.com

参与讨论 (0 人参与讨论)

相关推荐

NULS2.0主网上线常见的问题

NULS持有者们需要做的事● 节点代理人的步骤1. 在2.0主网上线前,尽快将钱包升级到V1.3.0,可在线升级可手动下载,等待协议升级切换2.0主网。2. 在2.0主网上线并且完成1.0账户余额快照以后,节点需要导入私钥获得新地址,并在官网下载钱包,重新建立节点,重新邀请委托人加入共识。3. 节点推荐配置:阿里云服务器 8核心 16G内存 20M网络 固态硬盘100G 操作系统centOS 7.

「最新」赛迪研究院发布全球公有链技术评估指数第13期

「最新」赛迪研究院发布全球公有链技术评估指数第13期

赛迪研究院正式发布第13期赛迪全球公有链技术评估指数。数据显示,全球三大Dapp平台EOS、以太坊、波场继续领跑榜单前三甲,位于评估榜单的第一阵营。其中比特币在全部评估公有链中上升1位,位列第十一。本期评选中除原有的35条知名公链外,新入选了两条公链,分别是Cosmos和Zilliqa。两条新入选的公链在本期榜单中分别位于第10位和第24位。评估模型与上一期保持一致,依然从基础技术、应用性和创新力

那么问题来了“啥是纳世?”

那么问题来了“啥是纳世?”

我们很高兴地告诉大家,NULS已经拥有了正式的中文名——"纳世链"!NULS项目于2017年9月27日成立,至今已超过1年时间,NULS广大的社区成员一起见证了NULS的成长与壮大,并致力于布道区块链技术,推广NULS项目,在此过程中,特别在NULS中文社区,因为NULS一直没有正式的中文名,造成了市场宣传和运营过程中的一些困扰。近日NULS发布了NIP提案操作规范,借此机会,社区成员@堇此而己、

王志坚:NULS核心技术团队的故事

王志坚:NULS核心技术团队的故事

王志坚(Niels)分享实录:大家好,我是纳世链(NULS)核心团队技术与产品部负责人王志坚。很高兴可以在这里给大家分享一些纳世技术团队的故事和近况。首先给大家说一说纳世技术团队最开始的情况,纳世技术团队成型时间应该是2017年9月3日左右,相信为什么是这个时间大家也清楚。纳世团队的目标一直都是很清晰的,白皮书中也写到了,就是让区块链更简单,让更多的企业、开发者加入到区块链行业建设中来。有感于区块

【工信部赛迪研究院】纳世链稳居赛迪全球公有链技术评估第六名

【工信部赛迪研究院】纳世链稳居赛迪全球公有链技术评估第六名

今天上午,工信部旗下赛迪研究院发布了第9期赛迪全球公有链技术评估指数,这也是2019年的首期指数。在综合指数排名中纳世链(NULS)稳居第六名。近期,纳世链(NULS)发布了基于微服务的NULS2.0全新架构,其中NULS2.0的核心NULSTAR更是一个区块链微服务底层框架,纳世引领全球公有链技术创新和产品迭代升级,并保持着极其活跃的发展态势。关于NULS2.0纳世链主网在2018年7月正式完成

关于测试网更新至v1.1.7-beta1 版本的公告

关于测试网更新至v1.1.7-beta1 版本的公告

致亲爱的NULS社区成员: 我们已经在1月15日17:00(GMT+8)推出了NULS测试网v1.1.7beta1版本。为充分测试NULS测试网络的安全稳定性及使用体验,请所有的节点和全节点钱包尽快进行测试网版本升级。更新日志: 修复通过任务栏右键退出程序,可能导致再次启动时卡块的问题 新增一个根据交易hash,获取交易的序列化信息的接口http://127.0.0.1:8001/api/tx/b

在这里了解NULS∣NULS全新文档库网站上线

在这里了解NULS∣NULS全新文档库网站上线

经过一段时间的梳理与归纳,我们对NULS文档库网站进行了全新的改版与升级,并于最近正式上线新版文档库网站(中&amp;英)docs.nuls.io ,目前已经可以访问,并适配了手机端。NULS文档库是NULS所有重要文档的合集,本次更新的栏目包括: NULS项目总览 了解NULS是什么,NULS可以做什么,以及如何在NULS社区做贡献(加入主网开发、报告错误、编写文档、翻译文档等)。 用户操作指

微学堂∣一分钟掌握NULS钱包客户端投票技巧

微学堂∣一分钟掌握NULS钱包客户端投票技巧

一分钟掌握客户端投票技巧1.打开NULS钱包客户端,查找合约:输入合约地址(NseQih5xZa6vAWsL6uY5drozyW4tqzQx)并访问。2.点击调用该合约方法——"Vote"(投票)3.voteId=4(代表纳世链中文名投票合约),itemIds代表选项,1=支持,2=反对,填写内容并点击"调用"即成功完成投票。更多问题,可在公众号会话窗口留言,或添加微信号:nulsio,进行咨询。

麦妖榜
更新日期 2019-09-03
排名用户贡献值
1牛市来了30910
2BitettFan24187
3等待的宿命23810
4区块大康20369
5六叶树20310
6linjm122719429
7天下无双16192
8lizhen00215280
9让时间淡忘14586
10yelanyi050511349
返回顶部 ↑