比特币官方客户端钱包是用什么语言开发的_『学概念找员外』比特币网络(三)...
「力場(chǎng) lichang.io」公鏈挖礦第一社區(qū)!
網(wǎng)絡(luò)大小
比特幣網(wǎng)絡(luò)大小很難測(cè)量,因?yàn)樗S時(shí)都在變化,而且沒(méi)有一個(gè)中央權(quán)威機(jī)構(gòu)。有些人通過(guò)研究給了一些估計(jì):往高說(shuō),每個(gè)月可能有100萬(wàn)個(gè)IP地址成為比特幣網(wǎng)絡(luò)的節(jié)點(diǎn)(也可能是臨時(shí)成為節(jié)點(diǎn))。往低說(shuō),大約只有5000~10000節(jié)點(diǎn)永遠(yuǎn)在線并處理交易。這個(gè)數(shù)字有點(diǎn)出乎意料得小,不過(guò)這也是員外能查到的更新最近的數(shù)據(jù)了。
存儲(chǔ)空間需求
完全有效的節(jié)點(diǎn)必須永久在線,這樣才能接收到所有的交易數(shù)據(jù)。一個(gè)節(jié)點(diǎn)離線時(shí)間越久,當(dāng)它重新連接到網(wǎng)絡(luò)的時(shí)候,就需要越多時(shí)間來(lái)更新所有交易。就像你很久沒(méi)有登錄微信或者QQ了,在登錄的第一時(shí)間,會(huì)有些許卡頓,這就是軟件在自動(dòng)的同步之前的所有聊天記錄。這些節(jié)點(diǎn)還需要把完整的共識(shí)區(qū)塊鏈都存儲(chǔ)下來(lái),也需要有好的網(wǎng)絡(luò)連接,確保可以接收到所有交易并將其轉(zhuǎn)播給其他節(jié)點(diǎn)。目前的存儲(chǔ)空間大約要200多GB,低配電腦想要滿足要求就略顯吃力了。
最后,完全有效節(jié)點(diǎn)必須維護(hù)在交易中產(chǎn)生的(交易的輸出)、未被消費(fèi)掉的比特幣的完整列表,這個(gè)列表最好放在內(nèi)存而非硬盤里,這樣,在接收到一個(gè)交易信息的時(shí)候,節(jié)點(diǎn)才能快速查看、運(yùn)行腳本,驗(yàn)證簽名是否有效,然后把交易放入交易池。到2014年年中,大約有4400萬(wàn)的交易被納入?yún)^(qū)塊鏈,其中有1200萬(wàn)個(gè)交易產(chǎn)生的比特幣沒(méi)有被使用。還好,這個(gè)數(shù)據(jù)不大,可以很容易地放進(jìn)1G內(nèi)存里。
輕量節(jié)點(diǎn)
除了完全有效節(jié)點(diǎn)之外,還有一種輕量節(jié)點(diǎn)(nightweight nodes),或者稱為輕客戶端,也叫簡(jiǎn)單付款驗(yàn)證 (Simple Payment Verification,簡(jiǎn)稱SPV)客戶端。事實(shí)上,在比特幣系統(tǒng)里的大部分節(jié)點(diǎn)都是輕量節(jié)點(diǎn)。這些節(jié)點(diǎn)不會(huì)存儲(chǔ)整個(gè)比特幣區(qū)塊鏈,它們只存儲(chǔ)它們所關(guān)心的、需要進(jìn)行核驗(yàn)的部分交易。如果你使用一個(gè)錢包軟件,那里面就會(huì)有一個(gè)SPV節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)只會(huì)下載向你的賬戶付款的交易及區(qū)塊頭部。
一個(gè)SPV節(jié)點(diǎn)的安全等級(jí)遠(yuǎn)不如全節(jié)點(diǎn)。它可以核驗(yàn)?zāi)切┖茈y被挖到的區(qū)塊,因?yàn)樗袇^(qū)塊頭部數(shù)據(jù),但它不能核驗(yàn)一個(gè)區(qū)塊里所有交易記錄的有效性,因?yàn)樗鼪](méi)有所有的交易歷史記錄,也沒(méi)有那些未被消費(fèi)的比特幣的列表。SPV節(jié)點(diǎn)只驗(yàn)證那些和它們相關(guān)的交易,所以它們必須依賴那些全節(jié)點(diǎn)去驗(yàn)證網(wǎng)絡(luò)上的其他所有交易。這雖然是一種安全性上的妥協(xié),卻不是個(gè)壞主意:輕量節(jié)點(diǎn)依賴全節(jié)點(diǎn)去處理那些比較難的工作,但當(dāng)某個(gè)區(qū)塊由于某些原因未被礦工挖出來(lái)時(shí)(挖礦成本巨大),這些輕量節(jié)點(diǎn)也會(huì)做一些核驗(yàn)來(lái)確保這個(gè)區(qū)塊不會(huì)被拒絕。
作為一個(gè)SPV節(jié)點(diǎn)可以節(jié)省很多資源。區(qū)塊頭部的大小只是整個(gè)區(qū)塊鏈的千分之一。所以輕量節(jié)點(diǎn)不需要200多GB的存儲(chǔ)空間,只需要200MB即可,即使一部智能手機(jī)也能成為比特幣網(wǎng)絡(luò)的輕量節(jié)點(diǎn)。
比特幣是一個(gè)開源協(xié)議,比特幣網(wǎng)絡(luò)一定是由實(shí)現(xiàn)方式各不相同的軟件系統(tǒng)在無(wú)縫交互。這樣,即使有些軟件系統(tǒng)有缺陷,也不至于使整個(gè)比特幣網(wǎng)絡(luò)癱瘓。比較好的現(xiàn)象是,人們用不同的語(yǔ)言不斷地重新實(shí)現(xiàn)協(xié)議,有些人用C++、有些人用Go語(yǔ)言,還有不少人用其他語(yǔ)言。不好的現(xiàn)象是,絕大部分的節(jié)點(diǎn)都會(huì)調(diào)用比特幣官方客戶端的資源庫(kù)(bitcoind library),這個(gè)庫(kù)是比特幣核心代碼開發(fā)者們用C++開發(fā)的庫(kù),而且有些節(jié)點(diǎn)用的是過(guò)時(shí)的版本。所以,即使在同一時(shí)間,大家運(yùn)行的客戶端都會(huì)略有不同。
總結(jié)
以上是生活随笔為你收集整理的比特币官方客户端钱包是用什么语言开发的_『学概念找员外』比特币网络(三)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python如何使用图片做背景_用Pyt
- 下一篇: python按键盘上哪个键运行_pyth