比特币网络里的节点大致可以分为三类:
1)完整节点 (Full node)
2)修剪节点 (Pruning node)
3)SPV 节点,即轻量节点 (Lightweight node)
全节点对维护 BTC 网络的去中心化是极为重要的,并且我们最好能以尽量低的成本让普通人运行。PC/Mac作为生产力工具,淘汰的其实比较慢,比如我手里的2014 mid mbp,硬盘只有256GB,下载 Bitcoin-Core 钱包同步完区块后硬盘就基本满了(系统、应用等也占据部分空间),别指望还能用它来办公。
如果你家里有闲置的电脑,并且愿意让它24小时开机联网,那么你的确可以为保存全网的账本贡献一份力。可惜大部分人没有运行全节点的意愿,设备、网络、硬盘都是成本,况且这还是完全无偿的。
掏钱买个树莓派做全节点?过于折腾,小白直接劝退。
其实早就有人想到办法了,2016年1月份 drizzt 在 bitcointalk 上发了个帖子,宣布首个运行在安卓系统上的 Bitcoin Core 节点上线。这个应用叫 ABCore,是开源项目,我下载安装后,发现它其实是修剪节点(Pruning node)。
所谓修剪(Pruning)机制,是在保持区块链安全性的前提下,将无意义的区块删减掉,数据删除后不会造成双花问题。这个和 SPV 完全不是一个概念,因为 SPV 只保留了区块头信息,而市面上大部分「去中心化」钱包都是 SPV机制,本质上你只能相信它们主动连接的节点是可靠的,这样的节点并不能独立验证比特币的转账交易。与之对应,修剪节点可以独立实现作为一个节点的基本功能。
像手机这样的电子消费品淘汰比较快,我家里也有好几个吃灰的安卓机,拿来跑节点正合适。
1)下载 ABCore,源码连接:网页链接 ,目前由 GreenAddress 钱包团队维护,如果你手机装了 Play Store,可以直接去里面下。(暂不支持 iOS 系统)
2)打开应用进入 Daemon Configuration 配置页面,确保你勾选了 Pruning 和 Blocks only 两个选项,你也可以手动设置 Pruning MB 的大小,这个数值是保存在你手机里区块数据的容量上限。超过后软件会自动将以往的数据删掉。
3)关闭手机的自动休眠,将亮度调至最低,找一个信号良好的角落插上充电线就可以了。
我用来做节点的是裂屏的荣耀8c,你用任何一个几百块的安卓手机都可以跑,同步完后大概占用不到1.4GB的空间,绰绰有余。
如果发现节点同步过慢,有可能是当前网络环境找不到 Peer node,一般科学上网即可解决。