有不少礦工朋友不明白節點與全節點有何不同,其實全節點才是在比特幣網路中起主要作用的那個,我們知道,比特幣網路是一種點對點的電子現金支付系統,這里的點對點實際上指的是節點對節點。比特幣網路中每筆交易由發起方向周圍的節點進行廣播,節點收到后,再廣播給自己周圍的節點,這樣交易資訊就能擴散至全網,從礦工到普通用戶都可以看作是比特幣網路中的一個節點,而擁有完整區塊鏈賬本的節點才稱為全節點,
正因如此,全節點需要占用很大的內存去同步所有區塊鏈上的數據,確保能快速驗證交易的正確性。區塊鏈上的所有交易都是實時發生的,全節點在區塊鏈分布式賬本中主要作用之一就是負責鏈上交易廣播和驗證。
全節點除了保存完整賬本和驗證交易外,另一個主要作用就是作為比特幣網路的第二層防御(第一層是算力),這一點中本聰在比特幣白皮書中就有提到,一旦有人掌握51%的算力試圖改變比特幣區塊共識,誠實的全節點將會生成最長的、超過攻擊者的鏈條,從而拒絕這些惡意交易,由此來維護分布式賬本的安全,
在早期比特幣用戶非常少的情況下,區塊鏈上記錄的數據也非常小,這時所有在比特幣網路中運行的計算機客戶端都可以看作是一個全節點,這些節點保存著整個比特幣網路的數據,網路中每發生一次交易,接收到資訊的節點會對交易資訊安全性、合規性等等進行驗證,驗證通過后再廣播到其它節點,
所有用戶都可以參與運行比特幣全節點,但這完全是自愿原則,并不會有額外獎勵。不過如果發生硬分叉導致區塊鏈被一分為二,那么運行全節點除了能夠驗證區塊鏈規則外,還可以發表自己的意見,運行全節點可看成是一種間接的投票方式,可以讓礦工知道用戶支持的是哪種規則。
截止到8月26號,全球比特幣全節點數達到12120個。可以看到大部分全節點都集中在歐洲和北美,其中美國有1803個占總數14.88%,德國全節點數僅次于美國,有1729個占總數14.27%,大陸只有121個占總數0.99%,
其實個人用戶想要運行全節點也沒那么難,Bitcoin Core官網上列出了運行比特幣全節點的基本要求:
1、能運行最新版本的Windows、Mac OS X或Linux的臺式機或筆記本電腦;
2、350G的可用磁盤空間,最少100 M/s的讀寫速度;
3、2G內存 (RAM);
4、寬頻速度至少為50Kb/s;
5、每月大概需要上傳200G,并下載20G的數據,首次啟動節點時還需額外使用約340G;
6、每天至少開機運行6小時,最好是不間斷運行;
7、需要禁用電腦自動睡眠功能,以確保電腦運行時支持網路。
可以看到,運行全節點的成本還挺高。大陸的礦工雖多,但基本都是加入礦池的,所以大陸的全節點數量并不多,這一百多個全節點基本都是各大礦池自己要努力去保持整個比特幣網路的穩定性或是對隱私保護有較高要求的礦工建立的,