肖臻公开课(六)——比特币中的网络
生活随笔
收集整理的這篇文章主要介紹了
肖臻公开课(六)——比特币中的网络
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本筆記對應北京大學肖臻老師《區塊鏈技術與應用》公開課第六課。
0.前言
在本節課中,肖老師主要講了比特幣的底層網絡實現。以計算機網絡傳統架構來說,比特幣網絡工作在應用層,底下的網絡層是一個P2P覆蓋網絡。
要明確一點,比特幣網絡中每個節點是平等的不存在某些P2P網絡中的超級節點和主節點。
1.加入網絡與離開網絡
- 加入網絡:
在加入網絡前,首先要尋找一個種子節點。種子節點會告訴你它知道的其他節點。
節點與節點之間通過TCP進行通信,便于穿透防火墻。
- 離開網絡:
離開網絡不需要通知其他節點,直接離線即可,其他網絡沒接收到此節點的消息就知道此節點離線了。
- 比特幣網絡設計原則:
魯棒、簡單、而非高效。
2.交易傳播
- 比特幣每個節點都維護了一個**“鄰居”節點的列表**,每次發送消息,都向此列表中所有節點發送消息,接到過的消息不會再次轉發,即:洪泛法。注意,“鄰居節點”的選擇是隨機的,這樣有利于魯棒性。
- 比特幣每個節點還維護一個待上鏈的交易列表,節點每次接到交易后,就通過以上的過程對交易進行傳播。但是要注意3點:
1.如果此交易驗證后,不合法,那么就不會進行傳播。
2.如果節點接受到一個有沖突的交易,那么以自己已經保存的交易為準,新接受到的交易不會受理。
3.如果發布的區塊鏈中包含的交易,與自己集合中的交易有沖突,那么刪除自己集合中的交易。
3.區塊傳播
區塊傳播與交易傳播是類似的,在驗證其合法性后,并檢查是否是在最長合法鏈上,然后采用洪泛法進行傳播。
注意1:因為傳播方式的原因限制,所以比特幣系統中設計一個區塊最大只有1M,即便如此,一個區塊的傳播仍然需要幾十秒。
注意2:BEST EFFORT,比特幣網絡的傳輸是“盡最大努力交付”的一個網絡。
總結
以上是生活随笔為你收集整理的肖臻公开课(六)——比特币中的网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓开发,拼接屏幕、大屏幕、户外广告无人
- 下一篇: 小谈星际的操作与APM