原文精选:除了完全有效节点之外,还有一种轻量节点(nightweight nodes),或者称为轻客户端,也叫简单付款验证(Simple Payment Verification,简称SPV)客户端。事实上,在比特币系统里的大部分节点都是轻量节点。这些节点不会存储整个比特币区块链,它们只存储它们所关心的、需要进行核验的部分交易。如果你使用一个钱包软件,那里面就会有一个SPV节点,这个节点只会下载向你的账户付款的交易及区块头部。
一个SPV节点的安全等级远不如全节点。它可以核验那些很难被挖到的区块——因为它有区块头部数据,但它不能核验一个区块里所有交易记录的有效性——因为它没有所有的交易历史记录,也没有那些未被消费的比特币的列表。SPV节点只验证那些和它们相关的交易,所以它们必须依赖那些全节点去验证网络上的其他所有交易。这虽然是一种安全性上的妥协,却不是个坏主意:轻量节点依赖全节点去处理那些比较难的工作,但当某个区块由于某些原因未被矿工挖出来时(挖矿成本巨大),这些轻量节点也会做一些核验来确保这个区块不会被拒绝。
读书笔记:
1,轻量节点(nightweight nodes),也叫简单付款验证(Simple Payment Verification,简称SPV)客户端。
2,比特币系统里的大部分节点都是轻量节点。这些节点不会存储整个比特币区块链,而是需要进行核验的部分交易。
3,一个BTC钱包软件里面就会有一个SPV节点,这个节点只会下载向你的账户付款的交易及区块头部。
4,SPV节点的安全等级远不如全节点。
原文精选:作为一个SPV节点可以节省很多资源。区块头部的大小只是整个区块链的千分之一。所以轻量节点不需要几十G的存储空间,只需要几十MB即可,即使一部智能手机也能成为比特币网络的轻量节点。
比特币是一个开源协议,比特币网络一定是由实现方式各不相同的软件系统在无缝交互。这样,即使有些软件系统有缺陷,也不至于使整个比特币网络瘫痪。比较好的现象是,人们用不同的语言不断地重新实现协议,有些人用C++、有些人用Go语言,还有不少人用其他语言。不好的现象是,绝大部分的节点都会调用比特币官方客户端的资源库(bitcoind library),这个库是比特币核心代码开发者们用C++开发的库,而且有些节点用的是过时的版本。所以,即使在同一时间,大家运行的客户端都略有不同。
读书笔记:
1,一个SPV节点可以节省很多资源,只需要几十兆的空间就行了,所以现在基于手机的APP就做成了BTC钱包。
2,比特币是一个开源协议,比特币网络一定是由实现方式各不相同的软件系统在无缝交互。
一叶之秋带你一分钟速读经典书籍,每天一分钟(只需阅读读书笔记部分),天天获新知。
作者:全职高手一叶之秋
链接:https://www.jianshu.com/p/160d8bf73f44
共同学习,写下你的评论
评论加载中...
作者其他优质文章