要點總結
- Walrus 是下一代去中心化存儲協議,旨在突破傳統中心化云存儲的局限,如高昂成本、單點故障、審查和隱私風險等,同時相較于其他去中心化存儲系統也做出了諸多創新,尤其是在可編程性與性能上的提升。
- “blob” 即 Binary Large Object(二進制大型對象),可用于存儲傳統上難以處理的非結構化數據。blob 存儲系統針對非結構化數據進行了優化,以實現高持久性、可用性和可擴展性。
- 在 Walrus 上,blob 和存儲資源可以表示為對象,使其能夠立即作為資源在 Sui 上的 MoveVM 智能合約中使用。作為一項核心創新,Walrus 對數據和存儲空間的代幣化使開發者能夠自動續訂、構建以數據為中心的去中心化應用程序,并利用可訪問的鏈上數據進行創新。
- Walrus 上 blob 的生命周期(寫入、存儲、讀取和管理)已針對去中心化和高彈性進行了優化。此過程使用 Sui 作為元數據的安全協調層,并發布鏈上可用性證明 (Proof-of-Availability ,PoA) 證書,確保 blob 成功存儲。
- 對于開發者而言,Walrus 是跨鏈的,他們可以使用一系列開發者工具和 SDK 從 Solana 和以太坊等其他區塊鏈生態導入數據。開發者可以瀏覽精選的工具和基礎設施項目列表,立即開始使用 Walrus 進行構建。
Walrus 是一款新一代去中心化存儲協議,通過高性能、高韌性和低成本的設計,解決了中心化云存儲和現有去中心化存儲系統的諸多局限。作為一套二進制大型對象(blob)存儲協議,Walrus 允許開發者存儲、讀取、管理和編程操作大型數據與多媒體文件,如視頻、圖像和 PDF 等,同時其去中心化架構確保了數據的安全性、可用性和可擴展性。
Walrus 的核心創新之一在于將數據和存儲容量作為可編程的鏈上資源進行管理。一個 blob 在 Walrus 上的完整生命周期 — — 從初始注冊與空間獲取,到編碼分發、節點存儲再到鏈上生成可用性證明(PoA)證書 — — 均通過與?Sui?的交互來完成。Sui 作為安全控制平面,使 Walrus 在高效安全的 blob 數據存儲與讀取方面保持專業性。
這種集成打造出一個強大的可編程數據平臺。blob 和存儲資源可以表示為對象,在 Sui 的 MoveVM 智能合約中即刻作為資源使用。這項創新將數據存儲從單一的服務工具轉變為可編程資產,使開發者能夠:
- 將存儲空間視為可擁有、可轉移、可交易的資產,并通過智能合約操作
- 自動化存儲管理,例如設置周期性自動續期
- 構建全新的數據驅動型應用,并實現鏈上與鏈下數據的動態交互
除了依托 Sui 作為控制平面,Walrus 本身對開發者而言是可兼容任何區塊鏈。開發者可借助各種工具和 SDK,將來自 Solana、Ethereum 等其他區塊鏈的數據接入 Walrus 進行存儲,并可結合自己偏好的開發環境與智能合約語言,打造個性化的去中心化數據棧。開發者還可探索 Walrus 生態中不斷擴展的集成服務,例如?Seal,為 Walrus 的 blob 存儲帶來去中心化加密與機密管理功能。
了解 blob 存儲
在數據領域,“blob” 是 Binary Large Object(大型二進制對象)的縮寫,用于存儲二進制數據(例如包含不可打印字符或任意位模式的數據)。在 blob 存儲中,每條數據以“對象”的形式存在,包含數據本身、元數據以及唯一標識符。此類系統通常專為處理非結構化數據的高耐久性、高可用性和可擴展性而設計。
與需要固定模式(如表)或半結構化數據格式(如?JSON)的結構化數據系統不同,blob 存儲不強制使用固定的組織格式。相反,blob 通常被視為字節集合,這使得它們適用于存儲各種數據類型,即使是傳統上難以容納的非結構化數據,例如 Word 文檔、圖像或音頻和視頻文件。blob 的適應性進一步擴展到典型的結構化和非結構化數據之外,并擴展到特殊用途,包括區塊鏈數據可用性、零知識證明、加密制品,甚至應用程序源代碼。
互聯網上非結構化數字信息的海量激增,推動了對 blob 存儲日益增長的需求。blob 存儲為存儲非結構化數據提供了關鍵優勢,例如可擴展性、效率和可訪問性。與此同時,對 blob 存儲的需求也推動了大規模中心化 blob 存儲解決方案的廣泛采用 — — 這些解決方案通常由 Amazon S3 等云服務提供商提供 — — 這使得互聯網數據容易受到中心化中斷和檢索失敗的影響。
對更高數據主權和彈性的渴望是去中心化 blob 存儲的主要驅動力。作為一種去中心化 blob 存儲協議,Walrus 可以在信任最小化、抗審查的框架內提供 blob 存儲,從而解決中心化控制的固有局限性,例如單點故障和數據被刪除的可能性。
在 Walrus 中,客戶端負責協調數據流
客戶端是用戶或應用程序與 Walrus 網絡交互的主要接口。客戶端軟件負責通過與存儲數據分片的存儲節點以及處理關鍵元數據和存儲合約方面的 Sui 進行通信來啟動 blob 生命周期。
除了核心的客戶端-節點-Sui 交互之外,Walrus 還可以與更廣泛的服務集成,以增強數據的可訪問性和性能。發布者或應用程序可以利用內容分發網絡 (Content Delivery Networks,CDN) 或緩存層,它們與 Walrus 和客戶端協同工作,提供讀/寫服務并將數據發布到網絡。
在 Walrus 上,blob 的生命周期由客戶端軟件管理,并在 Sui 上驗證。除了此生命周期之外,進一步的基礎設施支持 Walrus 的實際效用和性能。
了解 blob 的基本生命周期(由客戶端管理,并在 Sui 上驗證)有助于更深入地理解 Walrus 的核心價值和可編程性。但需要注意的是,Walrus 的實際效用和性能可以通過周邊基礎設施得到增強,而所有這些最終都依賴于 Walrus 協議提供的核心保障。
Walrus 協議中 blob 的生命周期
Walrus 協議中 blob 的生命周期是一個與 Sui 集成的結構化流程。雖然 Walrus 協議專注于高效安全地存儲和檢索 blob 數據,但它與 Sui 協同工作,作為其安全控制平面。Sui 管理 Walrus 的元數據、可用性證明,并實現存儲數據的可編程性。
blob 的生命周期大致可分為四個主要階段:寫入、存儲/維護、讀取/檢索和管理。
第一階段:寫入 blob
將新數據引入 Walrus 的過程由客戶端軟件協調,并與 Walrus 的去中心化存儲節點委員會和 Sui 協調。
存儲節點負責 blob 數據的物理存儲。但是,它們并不直接存儲整個 blob。相反,blob 被編碼成更小、冗余的碎片,稱為“分片”。委員會中的每個存儲節點都保存著來自各個 blob 的這些分片的集合。
在 Sui 上獲取空間:
- 客戶端軟件通過與公共 Sui Walrus 合約交互來啟動該過程,以獲取“存儲資源”,即在規定時間內預留一定數量的存儲空間。這些存儲資源在 Sui 上以對象的形式表示,這使得存儲資源可以通過智能合約訪問,并使構建者能夠將存儲空間視為可編程、可擁有、可轉讓和可交易的東西。
- 客戶端提交一系列交易來保護此存儲資源并注冊 blob,提供 blob 的大小并注冊其內容的承諾哈希。
使用 RedStuff 編碼并生成分片:
- 一旦存儲資源得到保障,客戶端軟件就會使用 Walrus 的?RedStuff?算法(一項基于高級糾刪碼的關鍵技術創新)對 blob 進行編碼。
- 此過程將原始 blob 轉換為一組主分片和次分片,從而引入必要的冗余,以確保容錯能力和高效恢復。
分發到存儲節點:
- 然后,客戶端將這些生成的分片對分發到 Walrus 委員會中當前活躍的存儲節點。每個節點都會收到該 blob 的唯一主分片和次分片對。
獲取并發布可用性證明 (PoA) 證書:
- 分發分片后,客戶端會監聽來自存儲節點的確認。每個確認都是來自存儲節點的簽名消息,確認已收到并接受其分配的分片。
- 客戶端必須從基準 2/3 法定節點(此法定節點數在協議層定義,基于網絡的拜占庭容錯性)收集這些確認。簽名確認的集合構成“寫入證書”。
- 然后,客戶端在 Sui 上發布此寫入證書。此鏈上發布將作為該 blob 的官方可用性證明 (PoA) 證書,以不可篡改的方式記錄該 blob 已成功存儲,并表明參與存儲節點有合約義務在存儲資源指定的期限內維護這些分片。一旦 PoA 在 Sui 上得到完全確認,此過程即正式完成。
第二階段:存儲和維護 blob
建立 PoA 證書后,blob 的責任將轉移到 Walrus 存儲網絡。
存儲節點職責:
- 每個確認 blob 分片的存儲節點都有義務維護其可用性。這包括確保分片可檢索,并在 blob 編碼數據的其他部分丟失或對等節點需要重建其自身的分片時,使用 RedStuff 的自愈功能參與恢復過程。
- 每個存儲節點被分配存儲的分片數量與其從代幣持有者那里委托的權益數量成正比。存儲節點被分配存儲的分片越多,其存儲數據的費用就越多。委托人將根據其質押的 WAL 比例獲得一定比例的存儲費用。
周期轉換和委員會重組:
- 活躍存儲節點委員會在每次周期轉換時,如果其權益超過或低于保持活躍委員會所需的權益量,委員會就會發生變化。
- 該協議包含一個多階段周期轉換機制,用于平穩管理這些轉換,確保即使個別節點加入或退出網絡活躍委員會,所有存儲的 blob 仍然持續可用。
第三階段:讀取和檢索 blob
當客戶端軟件需要訪問存儲在 Walrus 上的 blob 時,將執行以下步驟。
客戶端請求和元數據檢索:
- 客戶端使用其唯一的 blob ID 發起 blob 請求。第一步是從 Sui 檢索 blob 的元數據。元數據作為 blob 的 Sui 對象的一部分存儲,包含重要信息,例如 blob 每個分片的承諾(哈希值)。
從存儲節點獲取分片:
- 獲得分片承諾后,客戶端軟件會向委員會中的存儲節點請求實際的數據分片。
- 客戶端會從多個節點收集響應,并根據元數據中對應的承諾哈希值驗證收到的每個分片,以確保數據的完整性。
- 客戶端會等待,直到達到 1/3 的正確輔助分片法定人數。與寫入所需的 2/3 節點法定人數相比,較低的讀取法定人數使 Walrus 上的讀取操作極具彈性。即使最多三分之一的存儲節點不可用,所有情況下都可以恢復 blob;即使最多三分之二的存儲節點不可用,同步完成后也可以恢復 blob。
使用 RedStuff 重建 blob:
- 一旦客戶端軟件收到所需數量的有效分片,它就會使用 RedStuff 解碼算法重建原始 blob。 RedStuff 檢查是否已滿足足夠的法定人數來創建分片。
- 作為最后的驗證步驟,客戶端通常會重新編碼重建的 blob,并計算其 blob ID 哈希值。如果重新計算的 ID 與原始請求的 blob ID 匹配,則認為該 blob 一致且有效。否則,將標記不一致。
第四階段:管理存儲的 blob
blob 存儲完成后,可以續訂或刪除其生命周期。
blob 續訂和付款(延長存儲):
- 用戶可以通過支付所需存儲時間的存儲費用來延長 blob 的存儲期限,最長可達系統定義的最長期限(目前為兩年)。
- 該交易會更新 Sui 上關聯的存儲資源對象,從而延長節點存儲數據的義務。
- 這允許通過定期續訂實現無限期的存儲生命周期,續訂可以通過智能合約進行編程。
刪除 blob/解除關聯:
- 可以刪除代表已存儲 blob 的 Sui 對象。雖然數據存儲的哈希值不可變,但從功能上來說,可以通過解除 blob ID 與其底層 Sui 存儲資源對象的關聯來實現 blob 的刪除。
- 一旦解除關聯,存儲資源將變為空閑,并且該存儲空間可以與新的 blob 重新關聯或在二級市場上交易。
- 如果客戶端上傳了編碼不一致的分片(由一定數量的節點在鏈上證明),網絡可能會拒絕提供該 blob 的分片,從而有效地將該 blob 的數據視為不可訪問或“已刪除”。
開啟 Walrus blob 之旅
Walrus 提供了一種去中心化的傳統云存儲替代方案,能夠為大規模 blob 提供高可用性和完整性。它還改進了去中心化的存儲方式,引入了可編程性,增強了經濟激勵機制,降低了成本,為動態數據提供了靈活性,并提供了一個通用的 blob 存儲系統。
將 Walrus 存儲的 blob 表示為 Sui 上的對象,使開發者能夠使用 Move 智能合約以新穎的方式與其數據進行交互和管理,例如自動化 blob 生命周期管理、開發鏈上和鏈下數據之間的動態交互以及允許鏈上數據驗證。
Walrus 上的 blob 生命周期是這些優勢的核心,它確保流程的每一步都針對去中心化、彈性、可用性和靈活性進行了優化。
了解?Walrus?并查看?Walrus 文檔,立即開始使用 Walrus 進行構建!探索?Awesome Walrus 代碼庫,獲取 Walrus 生態中精選的開發者工具和基礎設施項目列表。
關于 Sui Network
Sui是基于第一原理重新設計和構建而成的L1公有鏈,旨在為創作者和開發者提供能夠承載Web3中下一個十億用戶的開發平臺。Sui上的應用基于Move智能合約語言,并具有水平可擴展性,讓開發者能夠快速且低成本支持廣泛的應用開發。獲取更多信息:https://linktr.ee/sui_apac
官網|英文Twitter|中文Twitter|Discord|英文電報群|中文電報群