区块链中的节点与超节点
作者:量化踢马河 时间:2019年12月02日
在电信网络中,一个节点是一个连接点,表示一个再分发点或者是一个通信端点,如一些终端设备。节点的定义依赖于所提及的网络和协议层。一个物理网络节点是一个连接到网络的有源电子设备,能够通过通信渠道发送、接受和转发信息。
在区块链环境中,节点通常指的是下载了加密货币软件以参与对等点网络之间的计算机。由于区块链是一个分布式系统,被构造为对等点(P2P)之间的网络架构,在P2P网络中,所有的节点给共同承担提供网络服务的责任,即表示参与进网络的计算机彼此相等,网络节点的互联允许相同的操作。
由于区块链的去中心化,任何人只要下载节点软件并执行,就都能参与其中。节点的功能包括:路由、区块链数据库、采矿以及钱包和钱包服务。节点是最大数据结构——区块链的组成部分。节点所有者通过贡献其计算资源进行存储和验证交易,他们将有机会获取加密货币作为奖励。
网络中的每个节点虽然被认为是相等的,但是节点在支持网络的方式上却扮演着不同的角色。并非所有节点都会存储区块链的完整副本或者进行验证交易。
节点的作用
当矿工或者用户通过相关协议或某种机制尝试向区块链上添加新的交易区块时,会将数据传输到网络的所有节点,节点根据签名和交易的有效性,将可以选择接受或拒绝该区块。当节点接受新区块时,会将其保存在已有的其它区块中。因此,节点的主要作用即:检查交易区块是否合法有效并选择接受或拒绝;存储区块链交易历史记录;并将该记录传输并扩展到可能需要与区块链同步的其它节点。
节点分类
全节点:
全节点又称“完整验证节点”,是真正支持并为BTC比特币提供安全网络的节点,他们参与执行区块验证交易事物,拒绝不遵从系统共识的区块,全节点可以将新建交易及新增区块增加到区块链上。
目前,BTC比特币网络上大约有9700个公开节点在运行,这些公开节点也指那些能探查到并可以访问的节点,也叫侦听节点,其中有许多志愿者/组织运行着BTC比特币全节点来帮助BTC比特币的生态系统。事实上,除了公开节点之外,还存在着许多隐藏节点,这些节点通常躲在防火墙之后,通过类似Ror这样的隐藏式协议运行,或者只是被设置为不能探视访问的状态而已。
超级节点
超级节点又名“听力节点”,与侦听节点一样都是可以公开的全节点。它们负责与其它节点建立连接并传递信息。超级节点基本上都充当着数据库和通信传递的再分发点。由于一个超级节点需要全天候运行、支持建立多个连接且能够将所有区块链的更新历史和交易数据传输到整个网络上的多个节点,因此超级节点的运行需要更大的计算量和更好的网络连接。
采矿节点
矿工挖矿除了需要相应的硬件和软件之外,还必须拥有区块链的副本,这些即为采矿节点。在开始采矿之前,矿工需要先收集所有先前被全节点接受,有效的,且正在等待处理的交易事务。之后,矿工需要创建一个候选区块并对该区块进行挖掘尝试,如果矿工找到该区块的有效解决方案,则要将其方案广播到整个网络,并让其他全节点验证其区块的有效性。
安全性
节点可以是在线的,也可以是离线的。在线节点负责与其它节点之间的传输、接收和保持最终区块,而离线的则不然。当离线节点恢复在线状态时,它首先必须通过下载自断开连接之后添加到区块链中的所有区块来赶上其余节点,即与区块链同步。
理论上来说,一个完整的区块链可以在单个节点上运行,但是如果其存储在单个设备中,将会极易受到断电、黑客袭击或者系统故障等情况影响,因此区块链中运行的为自己的越多越好,只有这样,在面对这些灾难时,区块链的恢复能力才能越好,安全性才会越高。在区块链运行过程中,无论有多少个节点突然断开连接,只要还有一个具有完整历史记录的节点存在,就可以保证整个链上所有节点恢复联机并同步数据。
网络中节点的数量庞大,但是节点很容易受到黑客攻击。窃取地址攻击是一种常见的攻击方式,对此开发人员建议使用区块链软件的最新版本。