區塊鏈技術
一、區塊鏈P2P網絡協議
1、中心化 (依賴Server ,b/s)
2、分佈式 (微服務)
3、去中心化(區塊鏈技術p2p)
P2P網絡實現
1、Hyperledger Fabric -> gRPC對等服務(對等協議,不適合公有鏈)
2、Ethereum -> Kad DHT技術
密碼學——哈希(HASH)
1、將不定長度的數據轉換成固定長度的哈希值
2、MD5、SHA1、SHA2 (傳統加密) 區塊鏈中常用SHA2-256
密碼學——哈希(HASH)實現特點
1、正向快速、逆向困難
2、輸入敏感
3、抗碰撞
密碼學——加解密算法
1、對稱加密:密鑰相同、易泄露(AES、DES等)
2、非對稱加密:公鑰/私鑰、效率低(RSA、橢圓曲線等);在區塊鏈中採用了橢圓曲線加密
二、區塊數據存儲
賬本結構
共識算法(即分佈式一致性算法) 類型
1、強一致性(CAID)
2、最終一致性(常規分佈式解決方案)
- CAP原理
- 一致性(Consistency)
- 可用性(Availablity)
- 分區容錯性(Partition Tolerance)
選項 | 選項 |
---|---|
C(Consistence) | 一致性,指數據在多個副本之間能夠保持一致的特性(嚴格的一致性)。 |
A(Availability) | 可用性,指系統提供的服務必須一直處於可用的狀態,每次請求都能獲取到非錯的響應——但是不保證獲取的數據爲最新數據。 |
P(Network partitioning) | 分區容錯性,分佈式系統在遇到任何網絡分區故障的時候,仍然能夠對外提供滿足一致性和可用性的服務,除非整個網絡環境都發生了故障。 |
- 3 選 2 組合
組 合 | 分析結果 |
---|---|
CA | 滿足原子和可用,放棄分區容錯。說白了,就是一個整體的應用。 |
CP | 滿足原子和分區容錯,也就是說,要放棄可用。當系統被分區,爲了保證原子性,必須放棄可用性,讓服務停用。 |
AP | 滿足可用性和分區容錯,當出現分區,同時爲了保證可用性,必須讓節點繼續對外服務,這樣必然導致失去原子性。 |
- ACID原理
- A代表原子性
- C代表一致性
- I代表隔離性(獨立性)
- D代表持久性
選項 | 說明 |
---|---|
事務的原子性(Atomicity) | 是指一個事務要麼全部執行,要麼不執行,也就是說一個事務不可能只執行了一半就停止了。比如你從取款機取錢,這個事務可以分成兩個步驟:1劃卡,2出錢。不可能劃了卡,而錢卻沒出來。這兩步必須同時完成,要麼就不完成。 |
事務的一致性(Consistency) | 是指事務的運行並不改變數據庫中數據的一致性。例如,完整性約束了a+b=10,一個事務改變了a,那麼b也應該隨之改變。 |
獨立性(Isolation) | 事務的獨立性也有稱作隔離性,是指兩個以上的事務不會出現交錯執行的狀態。因爲這樣可能會導致數據不一致。 |
持久性(Durability) | 事務的持久性是指事務執行成功以後,該事務對數據庫所作的更改便是持久的保存在數據庫之中,不會無緣無故的回滾。 |
區塊鏈——共識算法
-
共識算法系列分類
- Paxos 算法
- 拜贊庭容錯 算法
-
共識算法(分佈式一致性算法)
算法不同維度 對比