區塊鏈學習筆記5——BTC網路
學習視頻:北京大學肖臻老師《區塊鏈技術與應用》
筆記參考:北京大學肖臻老師《區塊鏈技術與應用》公開課系列筆記——目錄導航頁
位元幣系統的作業程序
用戶將交易發布到位元幣網路上,節點收到交易后打包到區塊中,然后將區塊發布到位元幣網路上,那么新發布的交易和區塊在位元幣網路上是如何傳播的呢?
位元幣網路的作業原理
位元幣作業于應用層,其底層(網路層)運行的是一個P2P Overlay Network,位元幣的P2P網路非常簡單,所有節點都是對等的,
位元幣要加入網路首先要知道一個種子節點,然后與種子節點聯系,它會告訴你它所知道的網路中的其他節點,
結點之間通過tcp通信,這樣有利于穿透防火墻,
離開網路時不需要做其他操作,直接退出應用程式即可,其他節點沒有聽到你的訊息,過一段時間后就會把你刪掉,
位元幣的設計原則:簡單、魯棒,而不是高效
每個結點會維護一個鄰居節點的集合,訊息傳播采取flooding的方法,節點第一次聽到某個訊息時,會把它傳播給其他所有的鄰居節點,同時記錄這個訊息已經收到過了,下次再收到時就不會再傳播給其他鄰居節點了,
鄰居節點的選擇是隨機的,沒有考慮底層的拓撲結構(一個在加利福尼亞的結點的鄰居節點可能在阿根廷),這樣增強了魯棒性,但犧牲了效率,
每個結點還要維護一個等待上鏈的交易的集合,第一次聽到交易,若是合法交易,則將其加入該交易集合并轉發給鄰居節點,以后再收到該交易就不再轉發(避免網路上交易無限傳輸),假如網路中存在兩個沖突交易,如交易1:A->B,交易2:A->C(假設花費的同一筆錢),具體接收哪個取決于節點先接收到哪個交易,之后收到另一個交易會將其放棄,結點位置不同,收到的交易也不同,
如果交易被寫到區塊鏈上,就刪掉這個交易,
如果節點收到交易1,但又聽到交易2被寫到區塊鏈上,那么交易1為非法交易,也會被刪掉
新發布區塊在網路中傳播方式與新發布交易傳播方式類似,每個節點除檢查該區塊內容是否合法,還要檢查是否位于最長合法鏈上,區塊越大,則網路上傳輸越慢,BTC協議對于區塊大小限制為不大于1M大小,(位元幣網路所采取的傳輸方式是非常耗帶寬的,按照1M的大小來算,一個新發布的區塊有可能需要幾十秒才能傳播到網路上的絕大多數結點)
位元幣網路傳播屬于 Best effort(盡力而為) ,不能保證一定傳輸成功,以一個交易發布到網路上,未必所有節點都能收到,也未必所有節點收到交易順序都一致,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/394000.html
標籤:區塊鏈
