参与比特币网络

比特币节点是什么?

术语“比特币节点”用于描述一类程序,以特定的方式与比特币网络互动。节点可以是运行比特币钱包的手机,也可能是储存比特币区块链完整记录的专用电脑。

节点分为不同的类型,各自执行特定的功能。所有这些节点都是网络的通信点,相互传达网络内的交易和区块信息。

比特币节点如何运作?

全节点

全节点负责检验交易和区块是否符合特定要求(即是否有效)。大部分全节点都会运行“比特币核心”软件——这是比特币协议的参考实现。

“比特币核心”是中本聪于2009年发布的程序。当时,程序只是简单命名为“比特币”。为了避免混淆,后来更名为“比特币核心”。全节点亦可运行其他实现,前提是该实现与“比特币核心”兼容。

全节点是比特币保持去中心化的关键。它们负责下载、验证区块和交易,将相关信息广播到整个网络。由于每个全节点独立检验信息的真伪,用户在网络内做任何事情都无需依赖第三方,

储存区块链完整记录的全节点成为“完整归档节点”。部分用户会丢弃旧区块,节省储存空间——比特币区块链所含的交易数据超过200GB。

轻节点

轻节点在执行能力方面不如全节点,但前者的资源需求也相对较低。用户可通过轻节点接入网络,而无需运行全节点的所有功能。

全节点需要下载所有区块并逐一验证,轻节点只需下载每个区块的一部分(又称为“区块头”)。虽然区块头容量很少,但含有足够的信息,允许用户查看交易所在的具体区块。

对于受带宽或储存空间限制的设备,轻节点是理想选择。因此,轻节点在桌面电脑和移动钱包中很常见。由于无法进行验证,轻节点只能依赖全节点。

挖矿节点

挖矿节点是在全节点的基础上,额外执行另一项任务:创建区块。正如上文所提到,挖矿需要专门的设备和软件,目的是为区块链添加新数据。

挖矿节点将采集到的待处理交易,连同其他信息进行散列运算,得出一个数值。如果数值低于协议设定的目标阈值,该区块则视为有效,可以向其他全节点发出广播。

如果想要独立进行挖矿,矿工必须先运行全节点功能。否则,矿工无法得知区块中的交易信息。

参与者如果想挖矿但无法运行全节点功能,可连接到服务器,获取所需信息。比如,矿池(即与其他节点合作)只要求其中一个节点运行全节点功能。

想了解节点类型的细分,请参阅《什么是节点?》。

如何运行比特币全节点

全节点对开发者、商户和终端用户有利。在自有的硬件里运行“比特币核心”客户端,用户的隐私和安全得到更高的保障,比特币网络因而更加稳固。用户若使用全节点,参与网络互动时无需依赖任何人。

一些面向比特币的公司提供“即插即用”节点,将预制硬件直接发送给用户。用户只需为硬件接入电源,即可开始下载区块链。这种方法可能更适合技术层次较低的用户,但成本远高于自行组装硬件。

大部分情况下,一部旧台式或手提电脑就足够。然而,日常使用的电脑不宜运行全节点,避免运行速度受到严重制约。随着区块链持续增长,用户必须确保设备拥有足够空间,容纳完整的区块链记录。

1TB的硬盘可以满足未来数年的数据量,前提是区块容量不出现重大变化。其他硬件要求包括2GB RAM(大部分电脑的原装配置一般会更高)和大量带宽。

硬件准备好之后,可以参考bitcoin.org的《全节点运行指南》,了解具体的设置步骤。

如何进行比特币挖矿?

比特币处于起步阶段时,手提电脑可以满足区块创建的需求。当时,比特币名不经传,挖矿竞争几乎不存在。由于网络尚不活跃,协议自然会设定较低的挖矿难度。

随着网络的散列率提高,矿工必须升级设备才可保证竞争力。经过多轮硬件转型,挖矿业界最终进入所谓的“专用集成电路(ASICs)”时期。

顾名思义,这些设备专为特定用途而制。它们非常高效,但只能执行单项任务。因此,挖矿ASIC可以说是只能用于挖矿的计算机。除了进行比特币挖矿,比特币ASIC还可开采算法不同的数字货币。

现在,比特币挖矿需要巨大的投入,包括硬件和能源。截止至撰稿时,一台优秀的挖矿设备能够执行每秒10万亿次的操作。伴随高效而来的是高能耗。除非拥有多台挖矿机和廉价电力,一般矿工很难通过比特币挖矿获利。

然而,有了恰当的设备,建立挖矿作业相当直接——许多ASIC设备自带软件。常见的做法是将挖矿机接入矿池,与其他人合作挖矿。如果矿池成功创建区块,区块奖金会按照散列率比例分配给各个合作矿工。

矿工亦可选择单独挖矿;创建区块的成功率会很低,但矿工可以独占区块奖金。

挖矿需要多长时间?

这个问题没有确切的答案,因为挖矿时长受多种因素影响,比如矿工能够利用的电量和散列率。另外,运营挖矿设备的实际成本亦需考虑在内。

想大致了解比特币挖矿利润,不妨使用挖矿计算机估算成本。

谁可以向比特币系统贡献代码?

“比特币核心”软件采用开源制,意味着任何人都可贡献代码。用户可以提议新功能,经过审查后添加至7万多行的代码之中;亦可报告错误、翻译文档或改进文档。

软件变更需要经过严格的审核。毕竟,系统处理的资金多大数千亿美元,必须保证没有任何漏洞。

若有意参与比特币代码贡献,不妨查阅开发员Jimmy Song的博客或“比特币核心”的官方网站