BCHN首席开发者维护工作报告2020年4月15日

Logo
by freetrader
22 April 2020

首先,我要感谢所有支持BCHN的人。现在我们能够开始从Bitcoin ABC继承的Satoshi代码库实现新的发展。

今天我有两个喜讯想要分享。

  1. 首先,BCHN已在4月的第一周完成了其 Flipstarter节点活动提案。这些众筹活动已经开始,请往bchn.flipstarter.cash查看。该提案有 英文 和 中文两种版本 (感谢 imaginary_username 进行翻译,并通过 emergent_reasons保证我们符合标准:)

  2. 其次,我们很快会发布小版本v0.21.1。该版本会提供自2月27日首次发布以来,我们实现的新特征。按照约定,我们会履行4月15日的截止日期,并在今天标记了该版本,并且我拥有第一个匹配的可复制构建(reproducible builds)。你可以查看发行说明,其中包含许多技术改进,但这些改进是安装可选的,且不涉及本次5月份升级的共识层更改。但我建议大家针对各种小错误修复和全面改进进行升级。

在本期报告中,我添加了一个新部分:“BCHN寻求反馈的问题”。稍后将对该部分进行更多说明。

项目进展

BCHN感谢 Bitcoin.com 对我们一如既往的支持。感谢他们在链上活动中采用BCHN节点。

感谢SBI Crypto重新选择BCHN节点进行挖矿。感谢继续支持BCHN!

根据coin.dance,最新1000个块中标记支持BCHN的有52个。根据https://bitcoincash.network/voting/ 在块高度628993-631008(2016块),我们的区块占5%。

我们的网络节点数量保持稳定(根据coin.dance的数据,在撰写本文时为55)。

注意: 节点数就区块链共识而言很重要,我们期待能看到该数量有显著增长。我感谢每个运行BCHN节点的人。

如果你对BCH感兴趣,你也可以运行自己的节点。尽管大多数人不需要运行全节点,但现在这样做的成本很便宜,而且可以帮你获取经验以便对协议功能进行修改。将来,随着硬件或网络需求增加,运行全节点可能会变得更加困难。

财务概览

截至区块630966,BCHN的钱包余额为143.96420253 BCH,比上一次报告增加了0.72729636 BCH。感谢所有向我们捐款的人。

自上次以来只有一笔付款交易:

  • 2020年4月3日支付最新一份维护者报告的中文译文。总费用:-0.24095885 BCH。

我有一天会怀念项目初期花费的财务支出如此少。 😊

众筹展望

我们的Flipstarter活动会把募集到的资金(假设达到募集目标)发送到BCHN的多重签名捐款地址 bitcoincash:prnc2exht3zxlrqqcat690tc85cvfuypngh7szx6mk 。Flipstarter采取了类似Kickstarter的保证合同,该活动很快就会开始并将持续大约4周。我们最终要么成功募集到978 BCH,要么获得0 BCH 。

我希望大家能优先使用Flipstarter工具在4-5月为我们捐款。这有助于我们实现募资目标,帮助今后的开发工作。活动开始后,我将发布链接到我们的竞选页面。

项目工作项更新

自初始版本发布以来:

  • 问题:已提出76个,已关闭39个,待解决37个

  • 合并请求:已提出151个,已合并130个,已关闭15个(包括被拒绝或中止),待解决6个

自从上一次维护者报告(2020-03-31):

  • 问题:新提出10个,已关闭12个,待解决少了2个

  • 合并请求:新提出18个,已合并17,关闭3个,待解决少了2个

有关工作项的更多详细信息:

代码优化

  • 通过优化Univalue改进JSON RPC调用的性能已包含在0.21.1版中。

文档更新

质量保证

  • 在v0.21.1版本中,Calin Culianu修复了使用PVS-Studio静态分析器检测到的几个代码质量问题。

  • 我们修复了其他一些编译器警告以及Python代码静态检查问题。有关详细信息,请参见v0.21.1发行说明中的“代码质量”部分。

为BCHN创建精确的5月份升级规范:

  • 到目前为止,尚未对5月份的升级规范进行任何更改。我正在通过getblocktemplate RPC调用监视有关SigChecks函数和SigOps / SigChecks报告的一些讨论。相关问题有#42,#70,#71,问题链接在bitcoincash.org存储库上的Github问题上。

公共咨询系统(PCS):

  • 我正在评估公共的反馈意见,但由于Flipstarter活动导致时间有限,其他急迫的项目管理工作和0.21.1的发布准备工作只能在接下来的两个星期完成了。

BCHN项目管理存储库:

  • 团队信息数据 正在逐步成形。此信息用于公示我们网站的团队页面。欢迎你登录查看!我们目前列出了9个条目,我鼓励项目贡献者提供一些简短的个人资料和要列出的图片提供给我们。你也可以使用假名出现在我们的团队界面。我们只看技术贡献而不看个人身份。

  • 2020年4月的flipstarter活动系列数据文件(提案和摘要的中英文版本)已添加到“ 活动部分。提案涉及到的信息多,一旦众筹开始,我可能会在另一篇文章中讨论它。

正在进行的项目间协作活动

Xversion (BU)

Xversion 是扩展“版本”消息协议,最初由Bitcoin Unlimited引入。网络节点可以使用Xversion来宣布彼此的协议功能和偏好。在部署新的块传播协议(Graphene或Xthinner)时非常有用。BU过去一直在使用该协议。

最近,我审查并接受了由Greg Griffith提交的一份修订规范草案。我将此规范草案包含在0.21.1文档集中,以便在实施之前可以得到更多的关注。我们将暂时为此协议消息重命名为extversion, 以便支持原始 xversion的可以恢复其早期的行为。

我们正在通过问题 # 45来追踪整合操作(从BU移植Xversion)

该规范可能仍会进行一些小的更新(reference.cash上也会进行更新)。在下一阶段,我们将与Bitcoin Unlimited的Greg Griffith一起在我们的软件中实现该技术规范,BU将同步实现或已经实现该规范。

Greg愿意贡献一些代码。我希望与他以及Bitcoin Unlimited的其他人一起共事,以确保BCHN能进行全面测试。

Xthinner (Jonathan Toomim)

本周没有新闻要报道。

BCHN在寻求反馈的问题

在维护软件的过程中,我们意识到需要从生态系统的其他人那里获取意见来做出一些决定。

在这个新的小节中,我会公开需要讨论的问题。

它将作为一种开放式对话,以在评论区提供反馈。我会尝试解释我们正面临的问题,希望向谁寻求意见,项目目前面临的选择以及它们的优缺点。我会保持开放,倾听大家的观点。在我们的存储库问题跟踪器上,需要从生态系统中获取反馈的项目都会打上特殊标记(“ HODLGANG”)。

尽管有时我的输入请求可能是针对特定的用户组,但是欢迎任何人随时给我反馈。我将对我的此类请求做出回应,并将其分类至公开问题或者我们的公共通信系统(PCS)中——我们从社区接收输入信息的公共存储库。我将越来越多地使用此系统来记录反馈,并尝试发展成为能够指导我们项目决策的工具。

来自ABC的“类似于BIP9的代码”-保留? / 去除? /升级?

我们的系统中有一个合并请求: 编号62,标题为“删除BIP9”

BIP9是一种区块链标记机制,曾用于激活比特币BTC上的软叉。

在2018年7月至2019年6月,BIP9被Bitcoin ABC删除,因为那时BCH算力低,用该机制标记升级是不安全的。

但是,在2020年2月,Bitcoin ABC在修改后重新引入了该机制,并将激活阈值从95%降低到66%,以便激活有争议的“基础设施融资计划”(IFP)。

BCHN移除了IFP的软叉激活以及相关的信号发射,但是还没有完全移除类似BIP9的机制。

对于是否这样做存在诸多争议,这导致了以下几种选择。

  1. 选项1:保留“类似于BIP9”的代码。这样做的好处是可以以最少的工作量恢复BIP9一致性,或将其扩展到BI​​P135一致性。从目前的情况来看,这种“类似于BIP9的”实现方式与任何BIP均不完全兼容(它并不完全是BIP9,功能也不如一般的BIP135,后者可以帮助ABC团队实现IFP)。
    算力投票达到66%来激活共识层的改变引发了广泛的讨论。我们认为目前看来这种类似BIP9的方法不合适。

  2. 选项2:删除“类似于BIP9”的代码。这么做很简单。当前已经有了相关的合并请求,但如果我们需要遵循某种类似的标记规则来激活某一功能,则必须再重新添加代码。
    但其实移除或者添加回代码都并不困难。
    保留ABC的代码会导致BCHN存在一些不常用的东西,并且我们也不要求激活IFP或任何其他计划中的升级。
    从代码质量和维护角度来看,保留不需要的代码是不好的。这些代码可能会导致编程错误(尽管风险较低)。我个人非常赞成删除此代码。我认为,至少6个月内,我们不需要这种触发机制
    如果BCH在SHA256算力中占优势,我会考虑使用这种机制。但目前没有人能做出此类预言。我认为现在删除它并在将来需要的时候重新引入要安全得多,因为我们谈论的是用于激活共识更改的机制!

  3. 选项3:将其升级到BIP9。这种做法也不费力气,但好处尚不清楚。 BIP9在阈值要求上只需5%的算力即可否决共识变更。

  4. 选项4:将其升级到完整的BIP135,并按照ABC的“类似于BIP9”的方式进行配置。 由于BIP135比BIP9更复杂,因此这无疑是需要付出更多开发工作。但是,在当前的算力情况下,BIP135不再安全。因此,除了带来某些一致性和灵活性的优势外,升级到BIP135没有其他明显的好处。

我在0.21.1版本中还没有做相应的更改,因为我还没有找到一种很好的方法来收集更多用户甚至潜在用户对此问题的反馈。我希望在工作报告中提出这样的问题能帮助我获得更多的意见。这样提出问题,解决问题能提高工作效率。

在Fedora上建立Gitian——维持还是不维持?

在 问题#76中,指出了这样一个问题:Gitian构建(可复制建筑物)的文档不适用于Linux版的Fedora发行。

如果维护不当,从上游保留Fedora指令以进行可复制的构建没有任何好处。但是,我希望先知道是否有人有兴趣专门维护此文档再决定是否删除它。如果有人在使用它,请与我联系,我想了解如何在Fedora上构建gitian。如果有在Fedora上使用gitian的人愿意维护该文档就更好了。

BCHN需要找到一个运行Fedora主机系统的人,他们可以在其上进行实验以更正文档。BCHN宁愿将精力放在其他事务上,并且Debian对gitian的支持使得一些Debian衍生品的的复制构建成为可能。

未来规划

我们将在接下来的一两天发布次要更新0.21.1。这比我预期的时间要长,不过也在情理之中。

该版本发布后,我们将为JSON改进添加基准,用来测试更大的区块。

我将花更多的时间来跟进落后的工作,并建立重要的项目管理计划,检查清单,CI /质量机制,跟进“滚动检查点”的技术规范。

当然,我们所有人都非常期待节点众筹活动。非常感谢Flipstarter团队做出的一切努力。

希望BCHN的Flipstarter提案本身能解答你们的大多数问题。但是如果你还有任何疑问,我会尝试在评论中回答。

如何与我们的项目取得联系-链接和资源