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