区块链节点通过它们的连接、交互组成网络,该网络通过共识机制将新区块添加到链上,本文将解释如何有效地运营自己的区块链节点。
1. 什么是区块链节点?
在深入讲解如何运行节点之前,我们有必要了解一下什么是区块链节点。通常在计算机网络中节点可以是计算机或任何涉及在计算机网络内接收和发送数据的设备,因此在区块链网络中每个账本参与者都是一个节点。
基于P2P(点对点)网络的原理,公有链技术本质上是去中心化跟开源的,在大多数网络中,公有链没有专用服务器,不是一个授权机构,依赖于用户之间的共识。节点通常通过共享状态信息、对其协议的治理进行投票以及验证传入交易的新块来在网络内进行通信。
来自不同地理位置的多样化和分散的节点有助于建立一个更强大的共识机制。如果有足够多的节点维护他们的区块链账本副本并继续区块生产,那么网络可以无限期地运行下去。
也正因此,由于每一个用户对于整个网络的安全性和完整性都至关重要,成为某个加密项目社区的一员不仅是件令人兴奋的事,也是一种责任。
2. 如何运营区块链节点?
通常来说,节点分两种主要类型:一种是存储完整账本的全节点(full node),这种节点通过验证数据来保证区块链上数据的安全性和正确性;另一种是轻节点 (lightweight node),即每个参与的用户。每一个轻节点都需要连接到一个全节点,以便同步网络的当前状态并能够参与运行。
首先,要部署区块链节点,新节点运营商必须要达到硬件和软件要求门槛,例如兼容的操作系统、足够的可用磁盘空间、RAM 内存和网速。接着,运营商需根据他们所期望的参与程度下载所需的核心软件。
针对所有区块链,你都可以在运行节点上配置所需的设备、内存要求和处理能力。市场上有门槛较低的链,但也有其他一些链因为网络设计导致节点运行困难而昂贵。当然,昂贵的节点运行要求运营商的大量财务投入,可以在成本上筛掉一些试图投机的恶意节点。
例如,比特币的网络允许用户运行全节点或轻节点。对于比特币全节点来说,必须下载存储区块链历史记录并保存在本地文件中,在撰写本文时,其硬盘内存需超过 380 GB。
【如图】区块链节点通过它们的连接、交互和在全节点的情况下共同组成网络
再拿以太坊举个例子,根据复杂程度不一,可运行的节点为:全节点、轻节点和存档节点。
全节点更具独立性,对自己的数字资产拥有更完整的主权,不像轻节点那样需要依赖其他节点访问区块链。全节点可以连接到区块链的主网络,也可以在测试网或其他安全环境上运行,以测试和开发新软件。
轻节点对没有强大硬件或带宽能力的用户很友好,因为不需要下载以太坊的完整历史、钱包余额或智能合约代码。可以在手机或其他更小、功能更弱的设备上运行,但它们可以通过检验区块头的状态根,从而验证数据的有效性。
【如图】全节点对网络负有更大的责任,需要更复杂的硬件和软件,但他们的努力在金钱方面得到了更直接的回报。
就运营商资源而言,以太坊存档节点可能是运行难度最高的节点之一。它们需要更多的硬件设备来运行,也需要使用大容量的 RAM 和磁盘空间。即便使用先进的设备,新的以太坊存档节点同步也需要花费数周时间,如果使用速度较慢的 HDD 硬盘同步存档节点,则该节点将无法实现完全同步,因为新块生成的速度将超过这类计算机同步的速度。另外,如果客户端的节点版本出现任何错误,则该节点需要重新同步。无形的时间消耗,增加了整个运营成本。
当然,为了防止节点脱机,运行节点时应该进行定期检测,可以向兼容节点发送请求或从区块链请求数据。不然的话,如果遇到节点崩溃的情况需要手动重启设备,这很可能会之前通过验证或挖掘新块产生的收入都将丢失。
3. 节点运营的难点
节点运营商通常会有带宽限制与硬件性能方面的问题。很多节点运营商会向互联网提供商获取无流量限制的服务,值得注意是要警惕网络被其他不明原因占用的情况。在早期的比特币网络中,病毒签名曾被上传到区块链,导致 Windows 用户的病毒软件检测到病毒后仍遇到了问题。虽然用户的设备并没有受到感染,但他们运营节点的整体性能受到了损害。
为了解决技术以及操作门槛跟效率问题,许多区块链节点运营服务公司(BaaS)应运而生。节点运营商部署必要的资本和资源来连接其基础设施,并维护其与所需区块链相关的功能。
【如图】区块链服务提供商托管运行企业和其他实体的节点,为节点运营者提供诸多好处,降低了节点运营者的时间成本或专业知识要求。
根据每个客户的需求,区块链服务提供商可以达成对已集成公链的完全访问,只要运营者满足最低要求,包括在所需网络上的最低投资。服务提供商则会承担节点操作相关的繁琐内容,让客户可以专注于他们本身的专业领域而不用在操作上耗费精力。
目前市场上比较流行的区块链服务提供商有Blockdaemon、Infura、GetBlock、Alchemy、QuickNode、Figment等等。
4. 节点运营是否真的有利可图?
启动和维护节点有助于区块链的去中心化。在某些网络上,运行一个节点可以为运营商提供回报,因为该节点会因验证新交易和参与产生新区块的投票过程而获得报酬。
但同时,区块链节点运营也会消耗大量时间和资源,在投入和产出比上,对矿工或验证者来说是有利可图的。全节点的报酬丰厚,因为它们验证区块并存储整个区块链账本,因此验证节点可以产生可预期的收入。
尽管运行轻节点不会产生加密回报,但它仍然有助于增强用户和其他节点之间的信任、安全和隐私。拥有自己的节点意味着您无需信任第三方网络的状态或提交给网络进行验证的交易的真实性。
为了更好地说明这一点,假设您是一家仅接受实物黄金作为服务付款交易站的所有者,现在您想验证黄金是否是真实的并且确认具体的数量,您是会将其发送给检查员网络,还是安排在内部进行所有验证?换句话说,运行你自己的节点符合加密世界无处不在的精神:去信任;要验证。
免责声明
本文为知识科普交流之用,不作为任何投资建议。