BCHD开发者:BCHD是BCH的Gophers工具

Quest是BCH客户端BCHD的开发者之一,最近Quest在社交网络发表了文章展示BCHD项目的发展和初衷。以下为Quest公开信:

一段时间以来,我一直想阐明为什么我相信BCHD是当今BCH生态系统中最重要的项目之一。我想简短地介绍一下该项目是如何立项的,以及在整个过程中为我们提供帮助的参与者。我希望这能让人们更深入地了解我们一直在做什么,我如何看待这个社区,以及多个完整节点实现的重要性。
BCHD项目于2018年9月开始,当时Chris Pacia决定将btcd移植到比特币现金。这是非常有野心的想法,一个开发人员居然想移植这么大的代码库,并将第一个非Satoshi的代码库带到BCH。经过大约两个星期的了解,我看到了Chris的所作所为,并决定参与其中。我已经写了很多年的Go语言,我认为这是我真正可以投入和擅长的项目。Chris为社区提供了良好的基础,我认为我至少应该参与进来,帮助构建市场上最好的完整节点。
参与BCHD开发非常容易,通过Slack,我们开始聚集有想法的开发人员,他们有兴趣参与其中。我们的目标很明确,即尽可能打造最好的开发者体验,并引入在Go中比其他语言开发更快的前沿功能。
Chris从一开始就是这个项目的大脑,但是他需要帮助,因为他每天没有足够的时间去做所有事情。他简直是个代码机器,并且负责BCHD中的大多数共识关键代码。如果你查看代码提交历史记录,你会发现大多数升级更改都是他完成的,我负责代码评审,并在Slack上与他讨论更改内容。
所以,我决定尽我所能。以下是我为项目所做工作的列表,可以让你清楚地了解到我需要哪些帮助。
1.创建了Docker和Kubernetes配置以简化部署。
2.在bchd.greyh.at和bchd-testnet.greyh.at上建立公共主网和网络节点。这些已被社区广泛使用,并且有固定的流量。
3.建立一个公共IPFS节点来存储我们的快速同步UTXO快照。你可以在https://ipfs.github.io/public-gateway-checker/看到,这是最快的IPFS节点之一。
4.在seed.bchd.cash上设置一个可靠的DNS种子服务器。这也为x101.seed.bchd.cash和x105.seed.bchd.cash提供动力,后者为Neutrino钱包提供动力。
5.更新了同步代码,以确保它不会像在btcd中看到的那样有停顿。
6.从btcd向后移植大量更改代码。
7.构建了一个自动发布流程,该流程针对大多数流行的操作系统构建发行版本二进制文件和交叉编译版本。
8.帮助对bug进行分类,并对社区报告的问题进行修复。
9.构建了https://neutrino.cash和https://bchd.cash。
10.对Neutrino钱包的大量测试。
现在,我想你们应该了解我为什么要花很多时间和精力在BCHD上?我为什么要把钱花在基础设施和营销材料上?好吧,因为我认为BCHD的提供的准入门槛远低于其他客户端,并且我想吸引更多的开发人员使用Bitcoin Cash!
我在BCH社区中看到的最大问题之一是缺乏工具。有很多活动,都需要建立在一个完整的BCH开发环境上,你仍然需要为此做很多工作。SLP变得越来越流行,但它并没有内置于任何频繁使用的节点中,比特币Verde是唯一支持SLP的完整节点。
我理想的世界里,开发人员唯一需要的工具就是BCHD,就可以完成所有的工作。这就是为什么我在https://github.com/gcash/bchd/issues/328上写了一个添加SLP支持的建议的原因。我们还与SLP开发者James Cramer和JT等几位开发人员进行了交谈,他们表示有兴趣将SLP支持构建到BCHD中。这就是为什么在https://bchd.flipstarter.cash上有一个筹款活动,为他们加入并立即建立SLP集成筹集资金。
随着SLP支持的增加,这将为开发人员提供所有他们需要的工具,以构建出色的BCH应用程序,而且几乎不需要设置。他们只需要启动docker映像,同步区块链,然后就可以开始使用了!
除此之外,令人惊讶的还有社区中其他开发者的支持。
FreeTrade在Member中内置了hooks,这样BCHD就可以在后端用于改进性能和管理UTXO的钱包。James Cramer编写了多个代码库来与BCHD gRPC接口进行交互,并且还更新了SLPDB,以使其从BCHD同步的速度明显快于其他节点中的旧版JSON-RPC接口。
在这个生态系统中,我认识几乎所有的开发者都对BCHD提供的功能感到兴奋,但上面的这些只是我认为它如此重要的一小部分原因。另一方面是要确保开发人员拥有成熟的代码库,可以使用最常用的语言。Go在开发人员中越来越受欢迎,如果我们想让更多的人在BCH的基础上构建开发,那么为BCH提供一套支持良好的Go代码库是至关重要的。这就是为什么bchutil这样的项目变得至关重要,代码库得到了很好的维护,允许Go开发人员快速地将BCH集成到他们的项目中。
我很幸运,我与BCH生态系统中的许多不同的开发人员一起工作,而且BCHD通常都希望远离政治,我们关注的焦点一直是为开发人员提供必要的工具。而政治似乎总是在消耗BCH开发者的时间,也就是说,不同的开发者总是对正在发生的事情有自己不同的看法。因此,在一个有多个客户端节点、多个开发团队和个性化的世界里,我相信人们对于比特币现金的好坏有不同的看法是不可避免的。
如果开发人员在没有达成一致意见的情况下将新特性强加给用户,就会出现问题。这就是为什么BCHD在下一次升级时,无论如何都将遵循最长链原则。BCHD没有启动IFP代码,行动胜于语言。我很高兴人们有不同的观点,我也认为这有助于BCH未来的发展。每个人对所有事情的看法不可能完全保持一致,对于一种全球货币来说,这更加不可能的。如果你认为每个人都需要以同样的方式思考每一个问题,那么你就不知道全球货币的真正含义。关键是开发人员在没有广泛支持的情况下,不要将特性强加到完整的客户端节点中。
我希望为BCHD筹集资金在https://bchd.flipstarter。我认为延缓SLP集成到BCHD中的进度是非常失败的,我希望看到James Cramer和JT更多地参与到BCHD中来。这将为开发人员提供所需的更好的工具,并推动SLP在支付转账和其他业务中采用率提升。
如果BCHD在过去的几年里能够做这么多事情,那么想象一下资助对于这个项目意味着什么。作为一个社区,我希望我们能够团结起来,落实捐助。
不管怎样,谢谢你的阅读,让我们一起创造一个美好的未来。