作者: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地址可以轉譯為在地理位置上相互接近,但很少有這么明確的直接關聯。
TRON數字錢包科普資料《波場錢包的現在過去與未來》已上線:據最新消息顯示,由TokenPocket聯合波場TRON官方,以及 TokenPocket 社區志愿者共同撰寫的《波場錢包的現在過去與未來》已正式上線。《波場錢包的現在過去與未來》又稱為波場錢包小白書,詳細介紹了當前TRON錢包與TRON生態密切結合的實例,是目前市面上最為詳細的TRON數字錢包科普資料。波場錢包作為波場公鏈生態中極為重要的入口,是波場生態的重要構成要素。波場錢包從一開始只提供權限管理、轉賬收款、節點投票等基礎功能,到如今不僅可以為用戶提供法幣交易、閃兌和去中心化交易所等方便快捷的交易服務,還能讓用戶直接在錢包上體驗波場上DApp,挖礦、DeFi、Staking等資產增值服務。詳情見原文鏈接。[2020/8/20]
理想情況下,所有的對等節點間都應該有一條路徑相連。但因為每個節點對網絡拓撲和其他對等節點只有一個不完整的視圖,所以網絡覆蓋層需要中間節點將消息轉發至正確目的。圖的結構為每對節點提供了多條中間路徑,因此就算對等節點改變,也可通過圖的連通性提供網絡的恢復能力。對每個對等節點來說,圖的連通性通過與其他對等節點的鄰接關系來反映。當對等節點加入或者離開網絡,鄰接的對等節點可能會持有不正確的鄰接信息。因此使用網絡覆蓋層維護機制保存更新的鄰接信息,使得所有節點間保持連通性。
人民數字FINTECH推出區塊鏈科普動畫:人民日報數字傳播發布微博稱,人民數字FINTECH出品《趣味科普|區塊鏈動畫》。[2020/3/31]
P2P網絡中的參與者向其他網絡參與者提供部分資源。不需要中心化的協調者,每個對等節點都可貢獻計算周期,磁盤存儲和網絡帶寬。傳統的客戶端-服務器模型中,服務器提供資源,客戶端使用資源;與之相對的,在P2P網絡中,對等節點既是網絡資源的供應者,也是消費者。因此,P2P網絡可以很好地解決客戶端-服務器模型下的一些短板,比如可擴展性和單點故障。
一般來說,P2P網絡會有一個門檻,節點的資源貢獻高于這個門檻才能加入網絡。度量資源貢獻的標準應該是公平的,比如說,要求網絡中每個對等節點的平均貢獻應該在P2P系統總體平均值的統計范圍內等。資源貢獻應該是雙方互惠的。付出貢獻后可得到的利益,吸引著用戶加入P2P應用。
動態 | 鏈客社區聯合北京交通廣播推出區塊鏈技術科普節目:12月11日15:15—16:00,區塊鏈技術社區——鏈客區塊鏈技術社區將聯合北京交通廣播FM103.9從零開始為大眾科普解碼區塊鏈技術,蜻蜓FM及北京廣播網同期進行全球直播。首期做客嘉賓為鏈客區塊鏈技術社區創始人郄建軍和百度區塊鏈產品負責人于雅楠。[2019/12/11]
以太坊的P2P網絡是如何工作的?
以太坊的官方客戶端節點軟件?Geth,基于一種覆蓋層維護機制實現了對等節點發現協議。雖然Kademlia是為了在P2P網絡中有效地定位和存儲內容而設計的,以太坊的P2P網絡只用它來發現新的對等節點。
Kademlia
以太坊網絡中,每個客戶端節點都配備有一個?
enode?ID,之后將此ID用SHA3算法
散列為一個256位的值。Kademlia使用XOR操作定義距離,因此兩個256位的數字之間的距離是他們的按位異或值。每個對等節點都擁有一個包含256個不同的桶的數據結構,每個桶i中存儲與本節點距離在2
聲音 | CNBC主持人:加密貨幣最大的缺點之一就是難以向外行快速科普:CNBC主持人Ran NeuNer近期發推稱,加密貨幣最大的缺點之一就是很難向外行快速解釋。當人們要求我向他們解釋比特幣時,我知道他們至少需要一個小時才能真正理解。[2019/9/10]
i-1?到2
i?之間的16個節點。為了發現一個新的對等節點,以太坊節點選擇自己作為目標x,從桶中尋找到16個與目標x最近的節點,之后請求這16個節點,讓它們從自己的桶中各找出16個與目標x“更近”的節點并返回,這樣以來,會得到至多16x16個新發現的節點。之后請求這16x16個新發現的節點中離目標x最近的16個節點,讓它們返回與x更近的16個節點。這個過程持續迭代,直到沒有新節點被發現。
-異或操作示意圖-
動態 | 美國演說家Anthony Robbins開始科普什么是比特幣:美國演說家安東尼·羅賓(Anthony Robbins)在自己的網站上發布了一篇比特幣的科普文章,并在推特上向自己的粉絲介紹什么是比特幣,目前他的推特賬戶共有粉絲304萬人。[2019/1/1]
-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
?
Tags:以太坊區塊鏈tronABLE以太坊交易平臺有哪些區塊鏈工程專業學什么課程好tronlink波寶錢官網地址Dai Stablecoin
據Cointelegraph1月22日報道,加密貨幣支付付公司Circle的首席執行官JeremyAllaire預測,通過通證的方式將資產證券化將在未來兩到三年的時間內逐步成為現實.
1900/1/1 0:00:00減產大戲輪番上演成為2020年的幣圈最真實的寫照。最新統計數據顯示,第一季度減產幣種有Beam、ETC,第二季度減產的幣種有BCH、BSV、BTC、DASH,第三季度減產幣種有XZC、ZEC,第.
1900/1/1 0:00:001月15日,在易趣財經、一本區塊鏈、《金融理財》雜志社主辦的“破界?融合區塊鏈與數字金融高峰論壇”上.
1900/1/1 0:00:00原創:ArtemPopov 對于潛在加密市場參與者而言,價格相對波動不大的穩定幣對他們極大的吸引力。2019年初,全球穩定幣的投資金額總量達到3.5億美元,并且一度快速增長.
1900/1/1 0:00:00來源:小蔥區塊鏈 作者:殷耀平 “金融體系會因為區塊鏈發生很大的改變,但絕對不會是顛覆式的”。近日參加“破界.融合——區塊鏈與數字金融高峰論壇”時,清華大學中國金融研究中心主任何平在談及區塊鏈對.
1900/1/1 0:00:00在發布了關于比特幣的一系列漫長而神秘的推文之后,SpaceX和特斯拉首席執行官埃隆·馬斯克在1月20日的播客中闡述了他對加密貨幣的立場.
1900/1/1 0:00:00