時(shí)間:2023-05-25|瀏覽:240
1. 為什么需要去中心化數(shù)據(jù)庫?
Web2應(yīng)用的數(shù)據(jù)存儲(chǔ)有兩種基本方式,文件系統(tǒng)(File System)和數(shù)據(jù)庫(Database)。由于Web3缺乏數(shù)據(jù)庫產(chǎn)品,大部分的DApp除了將少量重要數(shù)據(jù)存儲(chǔ)在昂貴的智能合約外,仍然使用的是中心化數(shù)據(jù)庫來存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)。隨著IPFS等去中心化文件系統(tǒng)開始逐漸用于存儲(chǔ)Web3應(yīng)用的NFT數(shù)據(jù),去中心化文件系統(tǒng)被Web3所認(rèn)可和接受,去中心化數(shù)據(jù)庫的技術(shù)也經(jīng)歷了一輪迭代,新出了多種產(chǎn)品。
去中心化數(shù)據(jù)庫相比傳統(tǒng)中心化數(shù)據(jù)庫有著獨(dú)特優(yōu)勢,它能降低Web3項(xiàng)目單點(diǎn)失敗風(fēng)險(xiǎn),讓Dapp完全去中心化。
去中心化數(shù)據(jù)庫適合用來存儲(chǔ)訪問頻率高的熱數(shù)據(jù),存Dapp的非財(cái)務(wù)數(shù)據(jù),比如:
NFT metadata
DAO投票數(shù)據(jù)
DEX訂單薄
去中心化的社交數(shù)據(jù),博客數(shù)據(jù),郵件。
Dapp需要的復(fù)雜的關(guān)系型數(shù)據(jù)庫數(shù)據(jù)。
近兩年來,出現(xiàn)了許多去中心化數(shù)據(jù)庫項(xiàng)目,其中一些創(chuàng)新性的項(xiàng)目受到廣泛關(guān)注。
Ceramic:Ceramic 是一個(gè)于 2019 年開始的項(xiàng)目。數(shù)據(jù)以流的形式存儲(chǔ)和管理,并將格式化的事件日志添加到流中。日志將被制成文件并上傳到 IPFS。提供 GraphQL API 查詢。Ceramic 沒有像 IPFS 那樣的激勵(lì)模型,并支持?jǐn)?shù)據(jù)創(chuàng)建、讀取和更新(CRU)。
OrbitDB:OrbitDB 是與 Ceramic 相比較早的項(xiàng)目,也使用 IPFS 文件系統(tǒng)進(jìn)行文件存儲(chǔ)。它支持 NoSQL 數(shù)據(jù)庫和文件的存儲(chǔ)。
Tableland:該項(xiàng)目于 2022 年啟動(dòng),目前處于公共測試階段。Tableland 的生產(chǎn)版本將于 2023 年發(fā)布。數(shù)據(jù)存儲(chǔ)需要使用智能合約,這些智能合約定義 SQL 語句并設(shè)置使用權(quán)限。讀取數(shù)據(jù)是在鏈下進(jìn)行的,不需要支付。當(dāng)前,該合約已部署在 ETH 和 OP 等 L2 上。
Polybase:該項(xiàng)目現(xiàn)已在測試網(wǎng)絡(luò)上運(yùn)行。它是一個(gè)支持 CRUD 操作的 NoSQL 數(shù)據(jù)庫,每個(gè)操作都需要支付費(fèi)用。此外,Polybase 還支持各種文件系統(tǒng)來存儲(chǔ)數(shù)據(jù)庫文件,包括本地磁盤、IPFS、Filecoin、Polystore,甚至 AWS S3。Polybase 還利用支付通道進(jìn)行數(shù)據(jù)查詢支付,降低了鏈上交易的頻率,并避免由于付款引起的查詢延遲。
Web3Q:項(xiàng)目于 2022 年啟動(dòng),測試網(wǎng)絡(luò)已經(jīng)上線。提出了一種新的 URL 模式 Web//access protocol 用于訪問數(shù)據(jù)。它的收費(fèi)模型很特別,刪除數(shù)據(jù)是可以退費(fèi)的。
Kwill:Kwill 是基于 Arweave 的 SQL 數(shù)據(jù)庫系統(tǒng),使用智能合約進(jìn)行支付。
KYVE:KYVE 是一個(gè)基于 Arwave 的數(shù)據(jù)庫系統(tǒng)。
SQL和NoSQL都是可以用來做數(shù)據(jù)庫的,SQL更成熟更高效,NoSQL更豐富更靈活。SQL的數(shù)據(jù)結(jié)構(gòu)需要高度一致,聯(lián)合查詢能力更強(qiáng),成熟高效;NoSQL的KV形式更契合以太坊的設(shè)計(jì)模式,能支持豐富的數(shù)據(jù)類型,靈活易擴(kuò)展。
功能上,能支持CRUD是最好的,但支持UD會(huì)給系統(tǒng)帶來復(fù)雜度。如果系統(tǒng)采用本地存儲(chǔ),則可能不支持歷史值查詢。如果使用IPFS和Arweave,則需要數(shù)據(jù)庫是append-only的,否則一份數(shù)據(jù)有多個(gè)版本,存儲(chǔ)成本翻倍上升。
底層文件系統(tǒng)的選擇有2種。
文件存在本地是更靈活的,可以自定義檢索邏輯,效率更高,且避免了使用Arweave等去中心化文件系統(tǒng)帶來的不可靠性和復(fù)雜度。比如:用戶用TokenA付費(fèi)給數(shù)據(jù)庫礦工,礦工則需要支付Arweave coin來存數(shù)據(jù),兩層網(wǎng)絡(luò)疊加帶來了復(fù)雜性。
數(shù)據(jù)庫文件存儲(chǔ)在IPFS和Arweave等去中心化文件系統(tǒng)中;
存儲(chǔ)在節(jié)點(diǎn)本地或S3云上。
和去中心化存儲(chǔ)類似,改善存儲(chǔ)數(shù)據(jù)檢索速度、激勵(lì)模型和代幣經(jīng)濟(jì)學(xué)以及用于保證數(shù)據(jù)可用性的保證算法是決定一個(gè)協(xié)議是否會(huì)被廣泛使用的關(guān)鍵因素。
好的激勵(lì)模型和代幣模型不僅能調(diào)用節(jié)點(diǎn)的參與積極性,也能激勵(lì)節(jié)點(diǎn)做正確的事情。比如:提供有效的檢索功能,而不是只存數(shù)據(jù)獲得存儲(chǔ)獎(jiǎng)勵(lì)。
數(shù)據(jù)可用性保證算法會(huì)隔一段時(shí)間檢查了節(jié)點(diǎn)對(duì)數(shù)據(jù)的存儲(chǔ),需要節(jié)點(diǎn)提供數(shù)據(jù)可用性證,這個(gè)證明與節(jié)點(diǎn)的激勵(lì)相輔相成以防止數(shù)據(jù)丟失。
數(shù)據(jù)的檢索素的則影響著用戶體驗(yàn),對(duì)Dapp的使用便利性和流暢度來講至關(guān)重要。
去中心化數(shù)據(jù)庫領(lǐng)域具有高度的關(guān)注價(jià)值和緊迫需求,但是目前還沒有被廣泛接受和使用的產(chǎn)品。
去中心化數(shù)據(jù)庫技術(shù)的成熟度低于去中心化文件存儲(chǔ)系統(tǒng)。因?yàn)槿ブ行幕瘮?shù)據(jù)庫技術(shù)是基于分布式文件系統(tǒng)的。許多項(xiàng)目是在2022年啟動(dòng)的。
改善存儲(chǔ)數(shù)據(jù)檢索速度、激勵(lì)模型和代幣經(jīng)濟(jì)學(xué)以及用于保證數(shù)據(jù)可用性的保障算法是決定一個(gè)協(xié)議是否會(huì)被廣泛使用的關(guān)鍵因素。協(xié)議的重點(diǎn)將是減少檢索時(shí)間,這對(duì)Dapp的使用便利性和流暢度來講至關(guān)重要。
熱點(diǎn):數(shù)據(jù)