Gitee + 區塊鏈:基於 IPFS 的去中心化代碼託管環境探索

Gitee 團隊一直在探索去中心化的存儲技術,甚至是建立於區塊鏈上的完全去中心化的存儲,以為開發者提供更安全、穩定的代碼託管環境,為此我們一直在跟蹤和研究兩大核心技術問題,一是去中心化的底層存儲技術,二是適用的高效共識算法。

Gitee + 區塊鏈:基於 IPFS 的去中心化代碼託管環境探索

一、去中心化的底層存儲協議

在底層存儲協議方面, Gitee 團隊深入研究了 IPFS 協議,同時在探索 IPFS 協議作為底層存儲技術在實現去中心化代碼託管的落地可行性和優缺點。

IPFS(InterPlanetary File System – 星際文件系統)是一個基於內容哈希尋址的點對點的超媒體分發協議,2014 年開始由 Protocol labs在開源社區下推動發展,目前已經提供了基於 Golang 的開源實現(詳情請訪問:https://github.com/ipfs/ipfs),站在存儲角度,IPFS 具有如下主要特點:

1. 去中心化存儲,相對目前的基於 HTTP 的中心化存儲網絡,去中心化存儲可以避免大型中心服務器的單點故障的問題。

2. 基於內容尋址,IPFS 的內容定位不在通過URI的形式,而是通過內容的唯一 hash 進行定位得到內容的存儲地址。

3.天然抵抗 DDOS,基於其去中心化和內容尋址的特點,IPFS 網絡具備天然抵抗 DDOS 的特性。

4.減少存儲冗餘,IPFS 會對文件按照一定的尺寸進行拆分,然後對每個分片計算 hash,對於相同 hash 的分片只會存儲一份,對於有大量重複文件的場景,這會大大的減少存儲的冗餘。

5.天然的 CDN,IPFS 是一個基於 p2p 的去中心化網絡,任何一個節點均可作為入口節點,再結合其分片存儲的功能,這讓 IPFS 網絡具備天然的內容加速功能。

6. 自動版本管理,IPFS 的實現中默認內置了 Git 的實現,從而實現存儲的版本化管理。

IPFS 的特性拓展 Gitee 代碼存儲的想象空間,近期,我們測試了 IPFS 在文件存儲的方面的性能,發現其目前的 Golang 實現版本在私有 IPFS 存儲網絡的情況下,性能相比目前的基於 S3 協議的對象存儲不相上下,大文件存儲(大於等於 1G)方面性能比 S3 協議甚至更優,這對我們的存儲技術探索之路來說,是值得振奮的消息。

二、共識算法

關於共識算法方面,Gitee 團隊研究對比了幾個前沿的區塊鏈存儲項目,例如:Filecoin, Blockstack, Storj 等,也在測試他們各自的共識算法以便於找到或改進得到更適合 Gitee 去中心化代碼託管環境的共識機制。

Gitee 團隊持續加大對此方向的研究,包括研發和測試用於代碼託管的公鏈,並持續分享相關的探索成果。


分享到:


相關文章: