區(qū)塊鏈的協(xié)議分層P2P網(wǎng)絡(luò)介紹
P2P意思是對等網(wǎng)絡(luò),這是計(jì)算機(jī)網(wǎng)絡(luò)里的一個重要概念,更是大家都比較關(guān)注的區(qū)塊鏈的組網(wǎng)方式。
今天我們再來回顧一下區(qū)塊鏈的協(xié)議分層吧:
在之前的課程里,除了網(wǎng)絡(luò)這一部分,基本上每一個都進(jìn)行了相關(guān)的介紹,為了讓更多的人能夠看懂,看明白,我依然會采用最簡單樸實(shí)的語言開展今天的內(nèi)容。在完成今天的課程后,涉及區(qū)塊鏈技術(shù)部分的基礎(chǔ)內(nèi)容將告一段落,后期將著重對每一個細(xì)節(jié)及應(yīng)用進(jìn)行深入學(xué)習(xí)。
1、P2P是一種分布式網(wǎng)絡(luò)
P2P在計(jì)算機(jī)術(shù)語里表示對等網(wǎng)絡(luò),所謂對等,就是說網(wǎng)絡(luò)里每一個節(jié)點(diǎn)(一臺機(jī)器)的地位都是對等的。讓我們想一想互聯(lián)網(wǎng)的宗旨,它目的是讓所有人都能連接起來,但是很早以前的方式都是我們每個人通過一臺中心服務(wù)器進(jìn)行連接的,比如逛論壇:論壇是中心,每個游客通過論壇進(jìn)行交流。而對于P2P來講,可以實(shí)現(xiàn)“面對面”交流。
我們來看看百度百科上的解釋:
對等網(wǎng)絡(luò),即對等計(jì)算機(jī)網(wǎng)絡(luò),是一種在對等者(Peer)之間分配任務(wù)和工作負(fù)載的分布式應(yīng)用架構(gòu),是對等計(jì)算模型在應(yīng)用層形成的一種組網(wǎng)或網(wǎng)絡(luò)形式。“Peer”在英語里有“對等者、伙伴、對端”的意義。因此,從字面上,P2P可以理解為對等計(jì)算或?qū)Φ染W(wǎng)絡(luò)。
國內(nèi)一些媒體將P2P翻譯成“點(diǎn)對點(diǎn)”或者“端對端”,學(xué)術(shù)界則統(tǒng)一稱為對等網(wǎng)絡(luò)(Peer-to-peer networking)或?qū)Φ扔?jì)算(Peer-to-peer computing),其可以定義為:網(wǎng)絡(luò)的參與者共享他們所擁有的一部分硬件資源(處理能力、存儲能力、網(wǎng)絡(luò)連接能力、打印機(jī)等)。
這些共享資源通過網(wǎng)絡(luò)提供服務(wù)和內(nèi)容,能被其它對等節(jié)點(diǎn)(Peer)直接訪問而無需經(jīng)過中間實(shí)體。在此網(wǎng)絡(luò)中的參與者既是資源、服務(wù)和內(nèi)容的提供者(Server),又是資源、服務(wù)和內(nèi)容的獲取者(Client)。
在P2P網(wǎng)絡(luò)環(huán)境中,彼此連接的多臺計(jì)算機(jī)之間都處于對等的地位,各臺計(jì)算機(jī)有相同的功能,無主從之分,一臺計(jì)算機(jī)既可作為服務(wù)器,設(shè)定共享資源供網(wǎng)絡(luò)中其他計(jì)算機(jī)所使用,又可以作為工作站,整個網(wǎng)絡(luò)一般來說不依賴專用的集中服務(wù)器,也沒有專用的工作站。
網(wǎng)絡(luò)中的每一臺計(jì)算機(jī)既能充當(dāng)網(wǎng)絡(luò)服務(wù)的請求者,又對其它計(jì)算機(jī)的請求做出響應(yīng),提供資源、服務(wù)和內(nèi)容。通常這些資源和服務(wù)包括:信息的共享和交換、計(jì)算資源(如CPU計(jì)算能力共享)、存儲共享(如緩存和磁盤空間的使用)、網(wǎng)絡(luò)共享、打印機(jī)共享等。
比如我們經(jīng)常使用的文件內(nèi)容共享和下載工具,如Napster、Gnutella、eDonkey、eMule、Maze、BT等,用戶可以直接從任意一臺安裝同類軟件的PC上下載或上傳文件,并檢索、復(fù)制共享的文件。
這里面你可以認(rèn)為不用通過中央服務(wù)器就能下載文件,而且速度還超級快。這些都是P2P的范疇。
2、P2P代表的是共享精神
如果采用中央服務(wù)器的方式,經(jīng)常會碰到用戶訪問并發(fā)量大,下載速度越來越慢的限制,而通過P2P這種方式很好解決了這個問題,且有效平衡利用各種閑置的計(jì)算機(jī)等資源,降低成本。
大家使用過或聽說過的阿里云服務(wù),實(shí)際上就是將計(jì)算分配到很多小型PC上進(jìn)行運(yùn)行,那個PC可能已經(jīng)閑置,可能已經(jīng)跟不上時代發(fā)展速度被淘汰,但是在分布式大行其道的今天它依然有很大利用價值。
傳統(tǒng)銀行業(yè)雖然有些守舊,但是也采用架設(shè)分布式PC服務(wù)器的方式,逐步替代IBM大型主機(jī),在基本保持運(yùn)行性能的情況下,有效降低了成本,是技術(shù)創(chuàng)造效益的典型案例。
其實(shí),不論現(xiàn)實(shí)世界,還是計(jì)算機(jī)世界,P2P代表的是一種共享精神,在計(jì)算機(jī)世界里共享計(jì)算、存儲資源,在現(xiàn)實(shí)世界里共享信息、交通等資源。比如現(xiàn)在流行的共享單車就是將單車資源進(jìn)行全國范圍的共享,既方便了人們的出行,又大幅壓縮了出行成本,還能給企業(yè)創(chuàng)造利潤,更是低碳環(huán)保的良好措施。
對于區(qū)塊鏈網(wǎng)絡(luò)來講,每個節(jié)點(diǎn)基本都是對等的,它們都需要維護(hù)一個相同的全網(wǎng)賬本,并實(shí)時通信保證每個節(jié)點(diǎn)都能及時處理收到的交易,以及挖掘的區(qū)塊都能及時讓所有其他節(jié)點(diǎn)知曉。正是這種“同步”、“共享”的簡單策略,讓所有節(jié)點(diǎn)都盡量統(tǒng)一并保留一份相同的數(shù)據(jù),區(qū)塊也是通過這種P2P網(wǎng)絡(luò)進(jìn)行全網(wǎng)發(fā)送的。
3、一個好玩的比特幣+P2P小DEMO
最好告訴大家一個好玩的小例子,不過可能很多人看不懂,沒關(guān)系,看不懂就繼續(xù)看,好好揣摩下這里的神奇。
這個項(xiàng)目在李笑來老師里《這個項(xiàng)目讓你腦高潮到核爆炸!》這篇公眾號文章里有提到過,這個項(xiàng)目具體是做什么的呢:
不用任何服務(wù)器,不需要域名。將內(nèi)容存放于一個webtorrent網(wǎng)絡(luò)中(也是今天我們學(xué)到的這個P2P網(wǎng)絡(luò)),通過解析一筆最新的比特幣特殊交易,獲取這個文件的最新鏈接,并用腳本下載它到本地進(jìn)行展示。
這樣一來,只要互聯(lián)網(wǎng)不消失,只要比特幣還存在(當(dāng)然比特幣即使不存在,還有其他區(qū)塊鏈網(wǎng)絡(luò)存在),你就可以任意分享一個文件,不需要架設(shè)服務(wù)器,不需要域名,你就有辦法讓別人下載到你這個文件,神奇吧!





