目錄
區塊鏈基礎知識25講
第一講:理解分層的概念
軟件系統的分層
- 應用層與實現層
- 功能性與非功能性
應用層關心什麼?
應用層一般與客戶的功能需求有關。比如手機:應用層關注的功能性特徵拍照、打電話、發郵件、上網、玩遊戲;非功能性特徵:擁有漂亮的用戶界面、操作簡單、拍出的照片效果很好。
實現層:永久保存本地數據、自動連接最近的基站、使用硬件加速優化屏幕的動畫效果。
理解完備性
完備性是任何軟件系統中都是重要的非功能性特徵,它往往包含以下3個方面的內容。
- 數據完備性:軟件系統中的數據要完整、正確且無衝突。
- 行爲完備性:軟件系統要可順利運行,並且保證不存在邏輯錯誤。
- 安全性:軟件系統只對認證用戶授權有限的數據訪問與使用功能。
第二講:區塊鏈與軟件架構
本節重點時理解區塊鏈的核心作用,爲什麼需要區塊鏈?
根據有無中心的標準來劃分軟件架構可以分爲:去中心化系統加過和中心化系統架構。
左邊的就是中心化的系統架構,右邊的就是去中心化的系統架構。
去中心化的系統架構有很多好處:
- 更強的計算能力;
- 更低的成本;
- 更高的可靠性;
- 自增長的能力。
去中心化的不足之處:
- 節點間的協調更難;
- 節點間冗餘通信;
- 對網絡的過度依賴;
- 系統編程複雜度更高;
- 安全問題。
每個事物都具有兩面性,有優點也有缺點,爲了取長補短,人們一般會在事物之間找一個平衡。設計軟件系統架構時,就出現了具有中心化與去中心化優勢的混合系統。
上面的架構圖就是一個混合系統。
那麼,如何甄別一個系統到底是不是去中心化的系統?
一個分辨的技巧:如果存在這樣的單獨節點,比如其中有一個單獨的關閉按鈕可以切斷整個系統,那麼這個系統就不是去中心化的。
區塊鏈的作用
區塊鏈是去中心化系統中用來實現並確保系統完備性的工具。更令人“沮喪”的是當我們我們爲去中心化的產業模式感到無比興奮的時候,突然發現區塊鏈是能夠幫助我們實現目標的唯一手段。