1. 河豚號(hào) > 生活百科 >

p2p應(yīng)用采用什么結(jié)構(gòu)(詳解p2p網(wǎng)絡(luò)架構(gòu)基礎(chǔ)知識(shí))

 

比特幣網(wǎng)絡(luò)之網(wǎng)絡(luò)構(gòu)架

 

1 P2P網(wǎng)絡(luò)架構(gòu)

比特幣采用了基于國(guó)際互聯(lián)網(wǎng)(Internet)的P2P(peer-to-peer)網(wǎng)絡(luò)架構(gòu)。P2P是指位于同一網(wǎng)絡(luò)中的每臺(tái)計(jì)算機(jī)都彼此對(duì)等,各個(gè)節(jié)點(diǎn)共同提供網(wǎng)絡(luò)服務(wù),不存在任何“特殊”節(jié)點(diǎn)。每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)與“扁平(flat)”的拓?fù)浣Y(jié)構(gòu)相互連通。在P2P網(wǎng)絡(luò)中不存在任何服務(wù)端(server)、中央化的服務(wù)、以及層級(jí)結(jié)構(gòu)。P2P網(wǎng)絡(luò)的節(jié)點(diǎn)之間交互運(yùn)作、協(xié)同處理:每個(gè)節(jié)點(diǎn)在對(duì)外提供服務(wù)的同時(shí)也使用網(wǎng)絡(luò)中其他節(jié)點(diǎn)所提供的服務(wù)。P2P網(wǎng)絡(luò)也因此具有可靠性、去中心化,以及開(kāi)放性。早期的國(guó)際互聯(lián)網(wǎng)就是P2P網(wǎng)絡(luò)架構(gòu)的一個(gè)典型用例:IP網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)完全平等。當(dāng)今的互聯(lián)網(wǎng)架構(gòu)具有分層架構(gòu),但是IP協(xié)議仍然保留了扁平拓?fù)涞慕Y(jié)構(gòu)。在比特幣之外,規(guī)模最大也最成功的P2P技術(shù)應(yīng)用是在文件分享領(lǐng)域:Napster是該領(lǐng)域的先鋒,BitTorrent是其架構(gòu)的最新演變。

比特幣所采用的P2P網(wǎng)絡(luò)架構(gòu)不僅僅是選擇拓?fù)浣Y(jié)構(gòu)這樣簡(jiǎn)單。比特幣被設(shè)計(jì)為一種點(diǎn)對(duì)點(diǎn)的數(shù)字現(xiàn)金系統(tǒng),它的網(wǎng)絡(luò)架構(gòu)既是這種核心特性的反映,也是該特性的基石。去中心化控制是設(shè)計(jì)時(shí)的核心原則,它只能通過(guò)維持一種扁平化、去中心化的P2P共識(shí)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。

“比特幣網(wǎng)絡(luò)”是按照比特幣P2P協(xié)議運(yùn)行的一系列節(jié)點(diǎn)的集合。除了比特幣P2P協(xié)議之外,比特幣網(wǎng)絡(luò)中也包含其他協(xié)議。例如Stratum協(xié)議就被應(yīng)用于挖礦、以及輕量級(jí)或移動(dòng)端比特幣錢包之中。網(wǎng)關(guān)(gateway)路由服務(wù)器提供這些協(xié)議,使用比特幣P2P協(xié)議接入比特幣網(wǎng)絡(luò),并把網(wǎng)絡(luò)拓展到運(yùn)行其他協(xié)議的各個(gè)節(jié)點(diǎn)。例如,Stratum服務(wù)器通過(guò)Stratum協(xié)議將所有的Stratum挖礦節(jié)點(diǎn)連接至比特幣主網(wǎng)絡(luò)、并將Stratum協(xié)議橋接(bridge)至比特幣P2P協(xié)議之上。我們使用“擴(kuò)展比特幣網(wǎng)絡(luò)(extended bitcoin network)”指代所有包含比特幣P2P協(xié)議、礦池挖礦協(xié)議、Stratum協(xié)議以及其他連接比特幣系統(tǒng)組件相關(guān)協(xié)議的整體網(wǎng)絡(luò)結(jié)構(gòu)。

2 節(jié)點(diǎn)類型及分工

盡管比特幣P2P網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)相互對(duì)等,但是根據(jù)所提供的功能不同,各節(jié)點(diǎn)可能具有不同的分工。每個(gè)比特幣節(jié)點(diǎn)都是路由、區(qū)塊鏈數(shù)據(jù)庫(kù)、挖礦、錢包服務(wù)的功能集合。一個(gè)全節(jié)點(diǎn)(full node)包括如圖6-1所示的四個(gè)功能:

 

比特幣網(wǎng)絡(luò)之網(wǎng)絡(luò)構(gòu)架

 

每個(gè)節(jié)點(diǎn)都參與全網(wǎng)絡(luò)的路由功能,同時(shí)也可能包含其他功能。每個(gè)節(jié)點(diǎn)都參與驗(yàn)證并傳播交易及區(qū)塊信息,發(fā)現(xiàn)并維持與對(duì)等節(jié)點(diǎn)的連接。在圖6-1所示的全節(jié)點(diǎn)用例中,名為“網(wǎng)絡(luò)路由節(jié)點(diǎn)”的橙色圓圈即表示該路由功能。

一些節(jié)點(diǎn)保有一份完整的、最新的區(qū)塊鏈拷貝,這樣的節(jié)點(diǎn)被稱為“全節(jié)點(diǎn)”。全節(jié)點(diǎn)能夠獨(dú)立自主地校驗(yàn)所有交易,而不需借由任何外部參照。另外還有一些節(jié)點(diǎn)只保留了區(qū)塊鏈的一部分,它們通過(guò)一種名為“簡(jiǎn)易支付驗(yàn)證(SPV)”的方式來(lái)完成交易驗(yàn)證。這樣的節(jié)點(diǎn)被稱為“SPV節(jié)點(diǎn)”,又叫“輕量級(jí)節(jié)點(diǎn)”。在如上圖所示的全節(jié)點(diǎn)用例中,名為完整區(qū)塊鏈的藍(lán)色圓圈即表示了全節(jié)點(diǎn)區(qū)塊鏈數(shù)據(jù)庫(kù)功能。在圖6-3中,SPV節(jié)點(diǎn)沒(méi)有此藍(lán)色圓圈,以示它們沒(méi)有區(qū)塊鏈的完整拷貝。

挖礦節(jié)點(diǎn)通過(guò)運(yùn)行在特殊硬件設(shè)備上的工作量證明(proof-of-work)算法,以相互競(jìng)爭(zhēng)的方式創(chuàng)建新的區(qū)塊。一些挖礦節(jié)點(diǎn)同時(shí)也是全節(jié)點(diǎn),保有區(qū)塊鏈的完整拷貝;還有一些參與礦池挖礦的節(jié)點(diǎn)是輕量級(jí)節(jié)點(diǎn),它們必須依賴礦池服務(wù)器維護(hù)的全節(jié)點(diǎn)進(jìn)行工作。在全節(jié)點(diǎn)用例中,挖礦功能如圖中名為“礦工”的黑色圓圈所示。

用戶錢包也可以作為全節(jié)點(diǎn)的一部分,這在桌面比特幣客戶端中比較常見(jiàn)。當(dāng)前,越來(lái)越多的用戶錢包都是SPV節(jié)點(diǎn),尤其是運(yùn)行于諸如智能手機(jī)等資源受限設(shè)備上的比特幣錢包應(yīng)用;而這正變得越來(lái)越普遍。在圖6-1中,名為“錢包”的綠色圓圈代表錢包功能。

在比特幣P2P協(xié)議中,除了這些主要的節(jié)點(diǎn)類型之外,還有一些服務(wù)器及節(jié)點(diǎn)也在運(yùn)行著其他協(xié)議,例如特殊礦池挖礦協(xié)議、輕量級(jí)客戶端訪問(wèn)協(xié)議等。

圖2描述了擴(kuò)展比特幣網(wǎng)絡(luò)中最為常見(jiàn)的節(jié)點(diǎn)類型。

 

比特幣網(wǎng)絡(luò)之網(wǎng)絡(luò)構(gòu)架

 

 

比特幣網(wǎng)絡(luò)之網(wǎng)絡(luò)構(gòu)架

 

本文由網(wǎng)上采集發(fā)布,不代表我們立場(chǎng),轉(zhuǎn)載聯(lián)系作者并注明出處:http://m.zltfw.cn/shbk/37015.html

聯(lián)系我們

在線咨詢:點(diǎn)擊這里給我發(fā)消息

微信號(hào):15705946153

工作日:9:30-18:30,節(jié)假日休息