Campaign
Campaign overview
BCHD是用Go语言编写的全节点和区块链服务器。它在生态系统中能发挥多种用途。首先,它为Go开发人员(开发人员不在少数)提供了一个易破解的代码库,提供了许多其他项目可以导入的软件包。例如,OpenBazaar就使用了BCHD中的许多库。我们认为BCHD是最易读,易懂的全节点代码库,是新区块链开发人员的绝佳切入点。BCNH是唯一支持bips 157/158(客户端过滤)的节点,并且是唯一支持neutrino式隐私协议的p2p轻钱包节点。此外,我们认为BCHD是最好的区块链服务器,不仅是对BCH节点,对所有加密币种都是如此。gRPC接口具有现代化,快速,优良的设计等优点。
作为高性能的区块链服务器,BCHD的当务之急是为应用程序的开发提供支持。这包括添加SLP索引来支持新兴的代币领域。其次,我们希望BCHD成为有实力的挖矿节点,促进比特币现金的挖矿多样性。
为此,我们正发起募资来支付未来六个月的运营费用。
我们希望能获得9万美金(约360个BCH)的捐赠来覆盖以下开支:
- 一名开发人员六个月的工资。
- BCHD相关网站和公共基础设施的托管费用。
- 两名建立SLP索引的兼职开发人员。
以下是我们将投入资金展开一系列项目。
- 一般性维护: BCHD存储库的总代码行为300,018。每年每行代码的维护成本为1美元[1],但是我们希望维护成本能远远低于这个数,因为我们明白社区资源非常宝贵,我们也相信可以用更少的钱来实现这一目标。
托管: bchd.greyh.at,testnet-bchd.greyh.at,ipfs.greyh.at,seed.bchd.cash,bchd.cash和neutrino.cash每月的托管费用500美金。
网络兼容性: BCHD是用Go语言而不是C++编写的,所以我们不能仅仅从Bitcoin-ABC中挑选代码来使BCHD与每次网络升级兼容。相反,我们必须从头开始编写硬分叉代码和兼容性测试。这是BCHD面临的最大挑战,因为错误可能导致该节点脱离网络。
SLP索引: BCHD的借口设计优良,能用于创建新的区块链索引。我们想使用该借口为SLP事务创建一个新索引。该索引默认关闭,但可以通过配置选项或命令行启用。启用后,将通过gRPC API提供SLP数据。 (有关更多详细信息请参见问题#328)。James Cramer和JT Freeman将负责此项工作。他们的酬劳为2.5万美元。
挖矿兼容性: 我们过去并未将重点放在BCHD的挖矿兼容性上,但是社区有越来越多的声音要求我们这么做。Verde软件提出的挖矿模板验证器的开发能消除运行BCHD矿工的大部分风险。我们需要对P2Pool进行更多测试,因为P2Pool和BCHD存在兼容性问题。我们还需要实现一些内存池更改,例如链上交易限制,以使内存池与其他客户端兼容并保护0确认交易。
- [延伸目标] ** 发布Neutrino Android钱包:Neutrino Android版本钱包已经处于测试版状态大约一年了。仍有一些已知问题阻止我们将其正式推出。我们希望解决这些问题并进行正式的首次发布。
- [延伸目标] 双花证明: 在BCHD中实现双花证明中继协议。如果时间允许,还以gRPC和JSON-API服务的形式实现双花通知,并使bchwallet代码库使用这些通知并通过其API进行导出。
进度跟踪
上述提到的任务都将放入gcash顶级存储库中的Github项目中。每个项目都将在相关存储库中细分为多个问题。各个项目的进度将在github上进行公示。
每个存储库的详细说明:
bchd: 见摘要。
bchwallet: 与大多数其他全节点不同,BCHD故意没有内置的钱包功能。此设计决策使代码库更具模块化且易于维护。对于钱包功能,我们有一个名为bchwallet的单独应用程序,可作为钱包守护程序供应用程序开发人员使用。Bchwallet具有可插拔的链后端架构,可以与bchd,bitcoind(ABC,BU等)或Neutrino SPV通信。该守护程序充当Neutrino Android钱包(见下文)的后端,是为网站或销售点软件提供支持的绝佳选择。它还具有一个gRPC API,可供应用程序使用。
neutrino: 这是bchwallet的后端插件,可在bchwallet中启用客户端过滤SPV模式。
android-neturino: 这是一个基于Java的Android UI。该UI打包了bchwallet守护程序,能在neutrino SPV模式下启动运行,并通过gRPC API与之通信。
bchutil: 用Go语言编写的BCH实用程序库。包含用于地址,交易,bloom过滤器,gcs过滤器,merkle区块,base58,base32和bip32钥匙链的库。
meep: 一种用Go语言编写,使用BCHD脚本虚拟机的BCH脚本调试器。
dnsseeder: 用Go语言编写的比特币现金网络爬虫和dns seeder,目前支持seed.bchd.cash。我相信其他客户端都已在其代码中将其列为dns种子。DNSseeder可能是唯一支持开箱即用的服务位过滤的seeder。我们用它来过滤支持NodeCF的节点,Neutrino钱包用此节点连接网络。
- [1] Engelbertink, F.P. and Vogt, H.H. (2010) Omnext白皮书《如何节省软件维护成本》 2013年7月10号
捐赠备选地址:qq4je65ygaxqnrepjakden5cea0qc9ckcummgwr4lf