作者:LarryHu
翻譯&校對:haiki&阿劍
來源:以太坊愛好者
此文旨在幫助你理解P2P網絡,并闡述一些以太坊的實現細節。P2P技術利用終端設備的豐富資源,能夠緩解中心化系統的短板,而且從九十年代開始,這項技術就已經被eMule,bitTorrent和Skype等知名軟件所采用。P2P技術也是比特幣或者以太坊區塊鏈系統的核心組件。很多人都聽說過P2P,但是不知道它到底是什么。那就讓我們從了解什么是P2P網絡開始吧。
什么是P2P網絡?
點對點網絡是一種網絡覆蓋層——就是說,它是建立在公開互聯網之上的。從數學的角度來說,P2P網絡可以被視作一個有向圖G=(V,E),其中V是網絡中的對等節點集合,E?是對等節點所連成的邊的集合。每個對等節點p都有一個獨一無二的標識號pid。集合E中的邊指p可通過直接相連的路徑向q發送消息;也就是說,p使用q的pid作為目的地址,在網絡之上向q發送消息。盡管在底層的TCP/IP網絡中,相似的IP地址可以轉譯為在地理位置上相互接近,但很少有這么明確的直接關聯。
國務院:推進科普與區塊鏈技術深度融合:為貫徹落實黨中央、國務院關于科普和科學素質建設的重要部署,依據《中華人民共和國科學技術進步法》、《中華人民共和國科學技術普及法》制定《全民科學素質行動規劃綱要(2021-2035年)》,其中要求實施智慧科普建設工程。推進科普與區塊鏈等技術深度融合,強化需求感知、用戶分層、情景應用理念,推動傳播方式、組織動員、運營服務等創新升級,加強“科普中國”建設,強化科普信息落地應用,與智慧教育、智慧城市、智慧社區等深度融合。(新華社)[2021/7/10 0:40:52]
理想情況下,所有的對等節點間都應該有一條路徑相連。但因為每個節點對網絡拓撲和其他對等節點只有一個不完整的視圖,所以網絡覆蓋層需要中間節點將消息轉發至正確目的。圖的結構為每對節點提供了多條中間路徑,因此就算對等節點改變,也可通過圖的連通性提供網絡的恢復能力。對每個對等節點來說,圖的連通性通過與其他對等節點的鄰接關系來反映。當對等節點加入或者離開網絡,鄰接的對等節點可能會持有不正確的鄰接信息。因此使用網絡覆蓋層維護機制保存更新的鄰接信息,使得所有節點間保持連通性。
動態 | 報告:區塊鏈等熱點詞促使童書科普百科類成交額同比增速最高:近日,京東圖書與艾瑞咨詢聯合發布了《2019中國圖書市場報告》。報告指出,AI、5G、區塊鏈、機器人、VR、智能家居、AR這些熱點詞,不斷點燃科技熱潮,科技在改變大眾生活的同時,也吸引了越來越多家長的關注,從小培養孩子對科技的興趣和熱愛。因此童書中科普百科類成交額同比增速最高,占比將近40%。[2020/1/8]
P2P網絡中的參與者向其他網絡參與者提供部分資源。不需要中心化的協調者,每個對等節點都可貢獻計算周期,磁盤存儲和網絡帶寬。傳統的客戶端-服務器模型中,服務器提供資源,客戶端使用資源;與之相對的,在P2P網絡中,對等節點既是網絡資源的供應者,也是消費者。因此,P2P網絡可以很好地解決客戶端-服務器模型下的一些短板,比如可擴展性和單點故障。
聲音 | 浪潮集團云南分公司總經理:云南區塊鏈產業發展需從“科普”到“專精”不斷深化:據昆明日報消息,浪潮集團云南分公司總經理鄭昕表示,云南區塊鏈產業發展需從“科普”到“專精”不斷深化。下一步,浪潮將繼續加大云南農業產業高質量發展體系建設力度,重點以普洱茶等云南優勢產業為切入點,打造云南“綠色、有機農產品高地”的品牌形象,并在此基礎上,開展基于區塊鏈的供應鏈金融服務,解決中小企業貸款難、貸款貴問題。[2019/11/11]
一般來說,P2P網絡會有一個門檻,節點的資源貢獻高于這個門檻才能加入網絡。度量資源貢獻的標準應該是公平的,比如說,要求網絡中每個對等節點的平均貢獻應該在P2P系統總體平均值的統計范圍內等。資源貢獻應該是雙方互惠的。付出貢獻后可得到的利益,吸引著用戶加入P2P應用。
以太坊的P2P網絡是如何工作的?
動態 | 幣安科普MimbleWimble算法:幣安官方推特今日發布隱私算法Mimblewimble的科普貼,在下方留言區大量網友留言猜測是否是基于 Mimblewimble算法的隱私幣Grin或者Beam即將登陸幣安交易所,其中猜測Grin的呼聲更高。[2019/9/2]
以太坊的官方客戶端節點軟件?Geth,基于一種覆蓋層維護機制實現了對等節點發現協議。雖然Kademlia是為了在P2P網絡中有效地定位和存儲內容而設計的,以太坊的P2P網絡只用它來發現新的對等節點。
Kademlia
以太坊網絡中,每個客戶端節點都配備有一個?
enode?ID,之后將此ID用SHA3算法
散列為一個256位的值。Kademlia使用XOR操作定義距離,因此兩個256位的數字之間的距離是他們的按位異或值。每個對等節點都擁有一個包含256個不同的桶的數據結構,每個桶i中存儲與本節點距離在2
聲音 | ETC Labs主管:科普教育是未來幾年公鏈面臨的巨大挑戰:ETCLabs主管Darin Kotalik認為,科普教育是未來幾年公鏈面臨的巨大挑戰,人們必須要對區塊鏈有基本的認識,分清楚公鏈和私鏈的區別。[2019/8/25]
i-1?到2
i?之間的16個節點。為了發現一個新的對等節點,以太坊節點選擇自己作為目標x,從桶中尋找到16個與目標x最近的節點,之后請求這16個節點,讓它們從自己的桶中各找出16個與目標x“更近”的節點并返回,這樣以來,會得到至多16x16個新發現的節點。之后請求這16x16個新發現的節點中離目標x最近的16個節點,讓它們返回與x更近的16個節點。這個過程持續迭代,直到沒有新節點被發現。
-異或操作示意圖-
-bucket與距離對應的示意圖-
對等節點間通信
Geth使用UDP連接交換P2P網絡的信息。有4種類型的UDP消息。一條?
*ping*?消息請求一條?
*pong*?消息作為返回。此對消息用來判斷相鄰節點是否可響應。一條?
*findnode*?消息請求一條?
*neighbors*?消息作為返回。當建立好對等節點的連接之后,Geth節點通過加密和認證的TCP連接來交換區塊鏈信息。
數據結構
Geth客戶端用兩種數據結構存儲其他節點的信息。第一種是稱作?
db?的長期數據庫,它存儲在磁盤內,客戶端重啟之后數據也是持久存在的。
db?中包含客戶端交互過的每個節點信息。db的每條記錄包含節點ID,IP地址,TCP端口,UDP端口,最后一次向節點發送ping的時間,最后一次從節點收到pong的時間,節點響應?
findnode?消息的失敗次數。如果最后一次從一個節點收到?
pong?消息的時間超過了一天,此節點將會被移出db。
第二種數據結構是稱作?table?的短期數據庫。當客戶端重啟時?table?是空的。table?包含256個桶,每個桶存儲至多16條記錄。每條記錄存儲其他以太坊節點的信息——節點的ID,IP地址,TCP端口和UDP端口。如果記錄中的某個節點對于?findnode?消息連續響應失敗,多于4次時將被移出table。
當某個客戶端第一次啟動時,它的db是空的,只知道6個硬編碼的引導節點。隨后,當客戶端開始發現對等節點,客戶端依據上面描述的機制,將節點加入db和table。
如果你想查閱更多關于以太坊P2P網絡的內容,可以參見下面一些由以太坊社區成員貢獻的文章:
“RLPxNodeDiscoveryProtocol”byFelixLange,Gustav-Simmonsson,andRomanMandeleil
“PeertoPeer”byFelixLange
“KademliaPeerSelection”byJamesRay
參考:
VasiliosDarlagiannis,(2010).P2PSystemsandOverlayNetworks,Retrieved
from:?https://www.iti.gr/iti/files/document/seminars/p2p_eketa_090610_v2.pdf
S.UmamaheswariandDr.V.Leela,(2011,Mar.01).P2POverlayMaintenanceAlgorithm,Retrievedfrom:?http://journals.sagepub.com/doi/pdf/10.1260/1748-3018.6.3.555
?
作者:黃慧 來源:中新網 中新網1月17日電為更快實現“最多跑一次”,各地政府應用新技術的步伐越來越快.
1900/1/1 0:00:00作者:鄧建鵬 本文將刊于《衡陽師范學院學報》2020年第1期,由作者授權巴比特資訊網絡首發,未經許可嚴禁轉載。內容摘要:區塊鏈是近年技術上的重要革新,近期更是引起黨中央的高度重視.
1900/1/1 0:00:00來源:第一財經 作者:王建 區塊鏈、數字貨幣和金融安全是三個有內在緊密聯系的話題,我先從數字貨幣說起.
1900/1/1 0:00:00Bakkt比特幣期權的熱度到此為止了?如果說這家機構交易平臺最新推出的比特幣產品表現不佳,那就太輕描淡寫了,因為Bakkt上的比特幣期貨合約期權交易量實際上已降至零.
1900/1/1 0:00:00文:嚯嚯 來源:蜂巢財經 “打敗創業者的永遠不是敵人,而是自己。”2月4日,明星跨鏈項目Cosmos內部出現分裂,創始人Jae離隊,另一名核心成員Zaki指責Jae因開發資源分配不均等問題,導致.
1900/1/1 0:00:00來源:LongHash 當人們第一次了解到比特幣的時候,通常會覺得自己錯失良機,沒趕上過去十年里這個加密資產價格暴漲的那趟船.
1900/1/1 0:00:00