什么是 Reference Client?

大多数主要加密货币,如比特币以太坊莱特币,都基于开源代码。任何人都可以访问区块链背后的代码,修改它,并将其作为原始版本的替代品发布。这些开源项目发布的版本被称为 reference client。

Reference client 是根据规范精确编写的定制软件代码。这使得开发者在制作他们自己的定制版本时能够参照原始客户端。在协调开发者的工作和贡献时,这样的参照点是不可或缺的。大型加密货币通常有一个默认的参考实现,使得获取运行节点所需的个人客户端软件成为可能。

Reference client 要点

  • reference client 是软件项目的标准实现。
  • 它提供了在标准版本中事物应该如何工作的参考。
  • 开源、去中心化的区块链将其作为代码的基本版本。
  • 比特币流行的 reference client 是比特币核心(Bitcoin Core)。

协调开源项目

软件开发团队通常有某种形式的层级结构或领导层,并且对项目应该如何运作有一个愿景。这使他们能够创建工作计划,设定明确的目标,以及在必要时集中处理紧迫问题。

然而,在编写开源软件,如比特币的原始代码时,并没有单一的领导者,使任何人都可以根据自己的意愿改变它。有人可能会觉得增加区块大小是好的,而另一些人可能更倾向于保持现状,专注于故障排除。

不过,无论改变什么,除非区块链网络的足够大一部分同时进行相同的改变(参见我们关于分叉的文章了解如何将变化引入区块链),这些变化才能生效。因此,有必要找到一种方法,在开发者之间达成一致,这样他们就可以引入关键更新。他们可以通过专注于 reference client 的开发来实现这一点。

加密货币有多个 reference client

reference client 通常存储在基于云的存储库中,如 GitHub,这使任何开发者都可以提交代码并跟踪变化。

比特币 reference client

一个最受欢迎和广泛使用的比特币 reference client 是比特币核心 (Bitcoin Core),它是原始中本聪客户端(以比特币之父中本聪命名)的后代。由bitcoin.org托管,这个 reference client 构成了比特币重要更新的基础。

有时,一群有不同愿景的开发者选择在 reference client 的源代码中进行重大改变,迫使 reference client 分叉。从比特币核心分叉出来的版本包括 Bitcoin XT、Bitcoin Unlimited 和 Bitcoin Classic。比特币经典没有经受住时间的考验,而其余的停止了对比特币的支持,现在主要作为比特币现金的客户端。

从头开始构建的 reference client

与 XT 或无限不同,它们是从另一个客户端分叉出来的,有些 reference client 是从零开始创建的。尽管这对原始的中本聪客户端确实是如此,以太坊也有几个用多种不同编程语言编写的定制 reference client。Go 以太坊项目(Geth)提供了一个用谷歌的 Go 语言编程语言编写的客户端,Parity 使用 Rust,cpp-ethereum 使用 C++ 等等。

加密货币区块链的演变

对于诸如加密区块链这样的开源项目,拥有标准的客户端实现至关重要。由于每个人都可以访问 reference client,开发变得更加容易,而且已经具有革命性的技术得到了升级,引入了重要改进并解决了潜在问题。

运行客户端是访问区块链的最直接方式。它允许你通过运行自己的节点成为网络上的真正对等者。但如果你实际上并不拥有任何加密货币,这是无关紧要的。获得一些硬币的最简单方法是在交易所用传统货币交易它们。