自學區(qū)塊鏈(五)BTC-網(wǎng)絡

BTC-網(wǎng)絡

新發(fā)布的區(qū)塊、交易在BTC網(wǎng)絡是怎么傳播的呢?下面先看BTC網(wǎng)絡的工作原理:BTC工作在應用層。底層是網(wǎng)絡層

應用層(application layer):運行BTC協(xié)議

網(wǎng)絡層(network layer):P2P Overlay Network(BTC中的節(jié)點地位是平等的,沒有超級節(jié)點)


如何加入網(wǎng)絡

加入網(wǎng)絡需要知道一個種子節(jié)點(seed node),它會告訴你它所知道的其他節(jié)點,節(jié)點之間是通過TCP協(xié)議來傳輸?shù)模ㄓ欣诖┩阜阑饓Γ?/p>

離開網(wǎng)絡不用做什么操作,直接退出程序就行,其他節(jié)點一段時間沒有收到你的消息,會自動刪除。

設計原則

設計原則是:簡單、魯棒性(robust),而不是高效

消息傳播

消息傳播采取 flooding的方式,鄰居節(jié)點選取是隨機的,如果該節(jié)點后面再收到這個消息就不會轉發(fā)給鄰居節(jié)點。

flooding:是指從任何節(jié)點通過一個路由器發(fā)送的信息包會被發(fā)送給與該路由器相連的所有其他節(jié)點(除了發(fā)送信息包出來的那個節(jié)點)。flooding是快速散布路由更新信息到整個大型網(wǎng)絡的每個節(jié)點的一種方法。它有時也被用于多點傳輸信息包(在真實或虛擬網(wǎng)絡中從一個來源節(jié)點傳輸?shù)皆S多特定節(jié)點)。

BTC系統(tǒng)中節(jié)點要維護一個等待上鏈的交易的集合,第一次聽到這個交易,節(jié)點會加入集合并轉發(fā)給其他鄰居節(jié)點(當然前提是交易合法),如果已經(jīng)寫到區(qū)塊鏈中那么就從中刪掉該交易。?

遇到有沖突的交易,會根據(jù)收到消息不同時間,每個節(jié)點存入等待上鏈的交易的集合可能不一樣(先收到的會存入,后面的認定非法交易),具體寫入哪一個需要看哪個節(jié)點先拿到記賬權。

BTC協(xié)議規(guī)定最大區(qū)塊大小是1M,在整個系統(tǒng)中帶寬是瓶頸,可能1M大小的交易信息的區(qū)塊傳播給全網(wǎng)絕大多數(shù)節(jié)點需要十幾秒。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容