Gaia-1-A decentralized storage architecture

FROM : https://docs.blockstack.org/storage/overview.html#

Blockstack網(wǎng)絡(luò)使用名為Gaia的存儲(chǔ)系統(tǒng)存儲(chǔ)應(yīng)用程序數(shù)據(jù)。事務(wù)元數(shù)據(jù)存儲(chǔ)在blockstack區(qū)塊鏈上,用戶應(yīng)用程序數(shù)據(jù)存儲(chǔ)在Gaia存儲(chǔ)中。在區(qū)塊鏈之外存儲(chǔ)數(shù)據(jù)可以確保blockstack應(yīng)用程序可以為用戶提供高性能和高可用性的數(shù)據(jù)讀寫,而不需要引入中央信任方。

理解blockstack架構(gòu)中的Gaia
用戶控制或Gaia是如何去中心化的?
理解數(shù)據(jù)存儲(chǔ)
Gaia和其他存儲(chǔ)系統(tǒng)

理解blockstack架構(gòu)中的Gaia

下圖描述了blockstack架構(gòu)和Gaia在其中的位置:


image

區(qū)塊鏈需要在大量人群中達(dá)成共識(shí),因此速度可能很慢。此外,區(qū)塊鏈并不是設(shè)計(jì)用來存儲(chǔ)大量數(shù)據(jù)的。這意味著對(duì)用戶可能編寫和存儲(chǔ)的每一位數(shù)據(jù)都使用區(qū)塊鏈?zhǔn)前嘿F的。例如,假設(shè)一個(gè)應(yīng)用程序在鏈中存儲(chǔ)每條tweet。

Blockstack使用分層方法解決區(qū)塊鏈性能問題。系統(tǒng)的底層是一個(gè)區(qū)塊鏈和blockstack命名系統(tǒng)(BNS)。區(qū)塊鏈控制系統(tǒng)中名稱(標(biāo)識(shí))、域名、用戶名和應(yīng)用程序名等名稱的所有權(quán)。

Blockstack中的名稱對(duì)應(yīng)于OSI堆棧中的路由數(shù)據(jù)。路由數(shù)據(jù)存儲(chǔ)在第二層Atlas對(duì)等網(wǎng)絡(luò)中。每個(gè)加入blockstack網(wǎng)絡(luò)的核心節(jié)點(diǎn)都能夠獲得該路由數(shù)據(jù)的完整副本。Blockstack使用路由數(shù)據(jù)將名稱(用戶名、域和應(yīng)用程序名)與特定的存儲(chǔ)位置關(guān)聯(lián)起來。

最后一層是Gaia存儲(chǔ)系統(tǒng)。Gaia系統(tǒng)由Azure、DigitalOcean、Amazon EC2等云軟件供應(yīng)商上的中心服務(wù)和存儲(chǔ)資源組成。通常,計(jì)算資源和存儲(chǔ)資源屬于同一個(gè)云供應(yīng)商。Gaia目前支持S3和Azure Blob存儲(chǔ),但是驅(qū)動(dòng)程序模型也支持其他后端支持。

由于Gaia將應(yīng)用程序和用戶數(shù)據(jù)存儲(chǔ)在區(qū)塊鏈之外,blockstack應(yīng)用程序通常比在其他區(qū)塊鏈上創(chuàng)建的應(yīng)用程序性能更好。此外,用戶可以選擇數(shù)據(jù)的位置,Gaia允許應(yīng)用程序通過統(tǒng)一的API訪問用戶數(shù)據(jù)。當(dāng)用戶登錄時(shí),身份驗(yàn)證過程向應(yīng)用程序提供Gaia hub的URL,然后Gaia hub代表該用戶將數(shù)據(jù)寫入存儲(chǔ)器。

用戶控制或Gaia是如何去中心化的?

Gaia Hub作為一個(gè)服務(wù)運(yùn)行,它向數(shù)據(jù)存儲(chǔ)寫入數(shù)據(jù)。hub服務(wù)通過要求請(qǐng)求者提供有效的身份驗(yàn)證令牌來寫入數(shù)據(jù)存儲(chǔ)。通常,hub服務(wù)運(yùn)行在計(jì)算資源上,而存儲(chǔ)本身運(yùn)行在單獨(dú)的專用存儲(chǔ)資源上。通常,這兩個(gè)資源屬于同一個(gè)云計(jì)算提供者。

image

Gaia的去中心化方法側(cè)重于用戶對(duì)數(shù)據(jù)及其存儲(chǔ)的控制。如果用戶可以選擇使用哪個(gè)Gaia hub提供者,那么這個(gè)選擇就是啟用用戶控制應(yīng)用程序所需的全部去中心化。

用戶數(shù)據(jù)的控制取決于訪問用戶數(shù)據(jù)的方式。當(dāng)應(yīng)用程序獲取給定用戶alice.id的文件data.txt時(shí),查找將遵循以下步驟:

1.獲取alice.id的zonefile。
2.從她的zonefile中讀取她的個(gè)人資料URL。
3.獲取Alice的簡(jiǎn)介。
4.驗(yàn)證配置文件是否由alice.id的Key進(jìn)行簽名
5.從配置文件中讀取gaiaHubUrl(例如https://gaia.alice.org/)
6.從https://gaia.alice.org/data.txt獲取文件。

因?yàn)閍lice.id可以訪問她的zonefile,她可以更改她的配置文件存儲(chǔ)的位置。例如,如果當(dāng)前概要文件的服務(wù)或存儲(chǔ)被破壞,她可能會(huì)這樣做。要更改配置文件的存儲(chǔ)位置,她需要將自己的Gaia hub URL從另一個(gè)hub提供者更改為另一個(gè)Gaia hub URL。如果Alice自己有足夠的計(jì)算和存儲(chǔ)資源,她可以運(yùn)行自己的Gaia存儲(chǔ)系統(tǒng),并完全繞過商業(yè)Gaia hub提供商。

Note
具有現(xiàn)有身份的用戶還不能將數(shù)據(jù)從一個(gè)中心遷移到另一個(gè)中心。

直接代表Alice編寫的應(yīng)用程序不需要執(zhí)行查找。相反,blockstack身份驗(yàn)證流向應(yīng)用程序提供Alice選擇的應(yīng)用程序根URL。此身份驗(yàn)證流也在Alice的控制范圍內(nèi),因?yàn)锳lice的瀏覽器必須生成身份驗(yàn)證響應(yīng)。

理解數(shù)據(jù)存儲(chǔ)

Gaia hub按照給定的方式存儲(chǔ)書面數(shù)據(jù)。它提供了關(guān)于數(shù)據(jù)的最小保證。它不能確保數(shù)據(jù)被有效格式化、包含有效簽名或加密。相反,設(shè)計(jì)哲學(xué)是這些關(guān)注點(diǎn)是客戶端關(guān)注點(diǎn)。

客戶機(jī)庫(如blockstack.js)能夠提供這些保證。Blockstack使用了端到端原則的自由定義來指導(dǎo)這個(gè)設(shè)計(jì)決策。

Gaia和其他存儲(chǔ)系統(tǒng)

下面是Gaia與其他去中心化存儲(chǔ)系統(tǒng)的對(duì)比。為了簡(jiǎn)潔起見,省略了所有存儲(chǔ)系統(tǒng)共有的特性。

特性 Gaia SIA Storj ipfs DAT SSB
用戶控制托管數(shù)據(jù)的位置 X
數(shù)據(jù)可以在普通的Web瀏覽器中查看 X X
讀/寫數(shù)據(jù) X X X
可以刪除數(shù)據(jù) X X X
可以列出數(shù)據(jù) X X X X X
回收已刪除的數(shù)據(jù)空間 X X X X
數(shù)據(jù)查找具有可預(yù)測(cè)的性能 X X
可以委托寫權(quán)限 X
可以委托列表權(quán)限 X
本機(jī)支持多個(gè)后端 X
數(shù)據(jù)是全局可尋址的 X X X X X
需要加密貨幣才能工作 X X
數(shù)據(jù)是內(nèi)含尋址 X X X X X
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容