【揭祕區塊鏈技術從入門到精通】比原鏈總體設計&架構解讀視頻連接:html
優酷視頻:https://v.youku.com/v_show/id_XMzcxNjc1NjQwMA==.html算法
騰訊視頻:https://v.qq.com/x/page/l0718b48kp4.html數據庫
Bilibili:https://www.bilibili.com/video/av26608101網絡
本文將會給你們介紹一下比原鏈整體的技術架構。以下圖所示:比原鏈分爲三個層次架構
第一層就是你們接觸比較多的錢包層,就是進行收款和打款的模塊,錢包通常帶操做界面,你們均可以平常使用,因此會比較熟悉。分佈式
第二層是最核心的內核層,內核能夠理解爲分佈式系統中每一個節點認同的一套規則,只有有相同的規則,兩個節點才能達成一致。若是規則不一樣,其實就是發生分叉了。ide
第三層是通訊層,通訊層是節點之間交換信息的方式,包含區塊同步,交易同步等。性能
首先來看內核層,內核層主要由五個模塊構成:區塊鏈
孤兒塊管理:孤兒塊就是由礦工挖出但未成爲主鏈區塊的區塊(在相同高度產生2個甚至更多的合法區塊,一個區塊成爲主鏈,剩下的則稱爲孤兒塊),孤兒塊管理就是將未成爲主鏈區塊的孤兒塊存儲起來。spa
共識層:確認一個塊是否合法。分爲區塊頭驗證和交易驗證。區塊頭驗證須要驗證它的父塊和時間戳,同是須要算力來保證記帳權利。交易驗證比原特別的設計了一層BC層,這層在交易驗證時會得到更好的性能,交易驗證還和智能合約相關,交易被驗證時參數會參入虛擬機驗證該交易是否合法。
區塊樹管理:又成爲Block Index,做用是記錄全網全部的塊,保存了全網全部塊的一張鏡像圖。由於有孤兒塊,全部它並非鏈式結構的,會有分叉的狀況,因此稱爲區塊樹
數據存儲:將區塊數據作持久化存儲。包含兩種數據,第一種是區塊數據,會在網絡上進行廣播的原生區塊信息;第二種是UTXO數據,存儲UTXO數據是爲了更快的驗證一筆UTXO是否能夠花費,而不須要去遍歷全部區塊信息
交易池:維護了全部全網發出的可是還未被確認的交易。跟它關聯最大的是挖礦模塊,挖礦模塊每次要產生一個新區塊的時候,它會從交易池拿一些交易打包成塊,而後用Tensority共識算法進行工做量驗算。
而後來講一下錢包層:
私鑰模塊:主要用於管理私鑰(私鑰的生成,存儲,備份等)和簽名。
帳戶模塊:在比原的設計中,使用了帳戶-地址-密鑰三層體系,每一個人能夠擁有多把私鑰,經過私鑰不一樣的組合形式造成帳戶,每一個帳戶能夠又無限多個地址,地址是由帳戶的私鑰派生出的二級私鑰造成的地址,使用多地址能夠更好的保護用戶的隱私。
資產模塊:管理帳戶下建立資產的模塊,任何issue的資產都是在這個模塊中交互。
交易模塊:能夠理解成跟我相關的交易數據,它主要作了兩件事:
將和你相關的交易從全部交易所中篩選出來;
維護錢包層UTXO的數據庫,記錄本人所擁有的UTXO;
最後說一下通信層:
節點發現:P2P相關,是很是獨立和成熟的一塊,經過節點發現這個模塊得到種子節點,而後經過種子節點來獲取其餘更多的節點。
交易同步:在各個節點以前同步交易。
區塊同步:又稱爲被動區塊同步,若是發現存在區塊高度高於本身的其餘節點時,不斷請求區塊同步。
新區塊快速廣播模塊:新區塊主動同步,當挖到一個新的區塊時進行強制廣播,從而更快的在全網傳播。
上述內容爲比原鏈的基本架構,後續咱們將進一步深刻探討和講解具體流程。