
先认识节点与客户端
节点是运行区块链客户端、连接网络的软件实例;客户端是实现协议规则的软件。入门时可以沿着三个问题理解节点:它自己验证哪些内容,保存哪些数据,是否承担出块或投票职责。这些维度可以重叠,不能把所有名称都看作互斥类别。
以太坊:数据保存与软件职责
以太坊开发文档将节点区分为全节点、归档节点和轻节点。全节点验证区块及状态;归档节点还保存历史状态,便于查询过去的账户情况;轻节点利用区块头和证明核验按需获取的信息。完整节点的软件分工包括执行客户端与共识客户端,参与验证者活动还涉及验证者软件。

理解这些名称时,要把“保留多久的数据”与“承担什么职责”分开。归档描述历史查询能力,验证者描述共识角色;增加历史存储与参与共识解决的是不同问题。

比特币:完整验证与SPV
比特币开发指南区分全节点与简化支付验证客户端,即SPV。全节点下载并验证区块;SPV主要获取区块头,借助默克尔证明确认交易被纳入某个区块。交易存在于区块中的证明,并不等于对该交易全部有效性规则的独立检查。指南也指出,数据提供方可能隐瞒信息,特定查询可能暴露用户关注的地址。
因此,阅读“轻量验证”时,需要继续问:证明覆盖哪些事实,哪些信息仍依赖其他节点?不同区块链的证明机制与共识规则不同,不能把比特币SPV的结论直接套用到所有轻客户端。
不同需求对应哪些条件
需要独立核验链上数据时,全节点的验证能力是关注重点,同时要考虑存储、带宽与维护成本。需要反复查询过去某个区块时的账户状态时,归档能力更相关。设备资源有限时,轻客户端可以减少数据处理负担,但需要理解其证明范围和数据获取依赖。
常见问题:名称能说明全部能力吗
全节点是否意味着保存所有历史状态?不能仅凭“全”字判断,完整验证和永久保存历史状态是两个维度。运行节点是否自动成为验证者?也不能这样理解,以太坊的普通节点与验证者职责有明确区别。
同步方式是不是另一种节点类型?同步方式主要影响节点如何建立可用的数据与状态,节点类型则描述验证和保存数据的能力。判断一个客户端是否适合某项用途,应分别查看验证范围、历史查询能力与同步条件。