如果你是一位区块链开发的小白,关于节点及它们是如何在区块链中工作的,肯定有很多疑问。包括什么是区块链节点?为什么运行自己的以太坊节点很难?什么是节点提供商,我为什么需要它?
相信我,关于这些内容的确非常令人困惑,以下就是“酷宇宙”给大家做个容易的介绍。
什么是区块链中的节点?
我们还是从基础开始吧!节点本质上是一个运行在单台计算机上的程序,它允许你与区块链上的其余部分进行连接。它与其他节点连接来回发送信息,验证节点之间发送的交易是否有效,并存储有关区块链的相关重要信息。
区块链在本质上是由许多不同节点所组成。也就是说,运行“以太坊”或“比特币”的区块链的物理硬件就是散布在全世界不同地点由个人运行的节点集合。区块链没有所谓的主服务器或单一的物理来源,这就是它去中心化的原因。
然后大家需要注意的是,如果不使用节点,就无法访问区块链上的信息,所以大家可以简单地将节点想象成区块链的浏览器。
“区块链”是个人运行的计算机(节点)的集合,按照一定的规则集体参与验证该区块链的状态。
你可以通过API(应用程序编程接口)向节点发送请求并从节点接收响应,从而在节点之间进行交互。假设你在计算机的端口上运行一个节点;
您可以发送如下请求:使用AlchmyComposr在线尝试一下(直达链接),该请求将要求您的节点通过调用blocknumbr的方法返回最新的区块号或最近生成的块号,这是一个示例响应:
如您所见,本例中最新的块是0xa1c,将它转换十进制形式为。
为什么运行节点很困难?
有几件事让你连接到自己的节点上进行开发非常麻烦,让“酷宇宙”介绍一些原因:
节点需要很长时间来搭建,甚至长达数周!
任何开发人员的麻烦都是需要耗费大量时间来设置一个工具,而这个工具对有构建的东西没啥用,而节点是最糟糕的违规者之一。
通常有两种主要的节点类别:轻节点和全节点。
轻节点仅同步块头和来自完整节点的查询请求,而全节点则保留了区块链的整个状态,包括曾经创建的每笔交易。大多数查询采用轻节点,但全节点是区块链的主干,它们是提供大多数信息所必需的。
轻节点相对简单,但仍然需要安装节点程序、设置配置变量、下载块头、检查端口及健康状况以确保它们的正常运行。
全节点相对麻烦,最大的问题是它需要从头开始下载从0到最新的每个区块,并手动重放任何人之前提交的每个块和交易。对于以太坊主网来说超过了万个区块和数十亿笔交易。这个过程可能需要耗费几周的同步时间。
在以太坊中还有一种被称为存档节点的类型,对于历史查找非常有用。
节点必须由你来管理!接下来让我们来简单回顾一下:
节点每隔几周都需要升级一下,偶尔会从头开始重新构建(如硬分叉或客户端升级)因为大多数节点在设计时并没有考虑到可靠性,所以某些查询(如th_gtLogs)可能涉及运行数百万个块和交易,因此经常出现超时或节点崩溃的情况,我们称之为“死亡查询”。因此你必须密切