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