Walrus为数据存储带来可编程性

要点总结

  • 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|英文电报群|中文电报群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/86884.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React:利用计算属性名特点更新表单值

需求:三个input框,在input框输入时候,获取最新值,进行数据更新 思路:name属性的变量设置的和表单的变量一样,方便通过name属性更新值 function TenantManage() {const [formData, setFormData] useState…

【软考高项论文】论信息系统项目的范围管理

摘要 在信息系统项目管理里,范围管理极为关键。有效的范围管理可保障项目按时、按质、按量完成,避免变更带来的混乱与成本超支。本文结合作者参与的一个 2024 年 3 月启动的信息系统项目,详细阐述项目范围管理的过程,包括范围规划…

盖雅工场 2025 香港 SAP NOW 大会深度解析:AI 重构亚太劳动力管理数字化生态

一、前沿技术亮相:AI 驱动人力资源数字化转型全景展示 在 6 月 13 日举办的 2025 香港 SAP NOW 大会上,亚太劳动力管理领军企业盖雅工场(GaiaWorks)以「AI 劳动力管理」为核心,通过主题演讲与沉浸式展台演示&#xf…

Latent Diffusion中VAE损失函数源码解读及对损失函数的理解

最近因为工作需求,接触了Latent Diffusion中VAE训练的相关代码,其中损失函数是由名为LPIPSWithDiscriminator的类进行计算的,包括像素级别的重建损失(rec_loss)、感知损失(p_loss)和基于判别器&…

MIT 6.824学习心得(1) 浅谈分布式系统概论与MapReduce

一个月前机缘巧合,有朋友向我推荐了麻省理工学院非常著名的分布式系统课程MIT 6.824,是由世界五大黑客之一,蠕虫病毒之父Robert Morris教授进行授课。由于我自己也在做基于分布式微服务架构的业务项目,所以对构建分布式系统这个课…

PCL点云库入门(第21讲)——PCL库点云特征之RSD特征描述Radius-based Surface Descriptor(RSD)

一、算法原理 RSD: Radius-based Surface Descriptor由 Marton Zsolt et al. 于 2010 年提出,主要用于 点云中物体的几何形状识别(如球形、柱面、平面等),广泛用于机器人抓取、点云分割和物体识别等任务中。 1.1、RSD 特征的核心…

zookeeper Curator(4):分布式锁

文章目录 分布式锁分布式锁的实现zookeeper 分布式锁原理Curator 实现分布式锁API1. InterProcessMutex(分布式可重入互斥锁)2. InterProcessSemaphoreMutex(分布式非可重入互斥锁)3. InterProcessReadWriteLock(分布式…

设置方法区内存的大小

方法区内存配置 方法区(Method Area)是JVM内存模型的一部分,用于存储类信息、常量、静态变量等数据。在HotSpot虚拟机中,方法区的具体实现为永久代(PermGen)或元空间(Metaspace)&am…

用Flink打造实时数仓:生产环境中的“坑”与“解药”

目录 一、实时数仓的“野心”与“现实” 二、数据采集与接入:别让“源头”卡脖子 2.1 问题1:Kafka数据乱序与延迟 2.2 问题2:MySQL CDC数据同步异常 三、数据处理与计算:别让“算力”成瓶颈 3.1 问题3:多表Join性能低下 3.2 问题4:窗口计算触发延迟 四、状态管理与…

linux 下 Doris 单点部署

目录 1. Doris 下载 2. 环境准备 2.1 Linux 操作系统版本需求 2.2 部署依赖 3. Doris 部署 3.1 修改系统配置 3.1.1 修改系统句柄数 3.1.2 关闭swap分区 3.1.3 修改最大内存映射区域数量 3.2 开放端口 3.3 fe 部署 3.4 be 部署 3.5 be添加到Doris集群 4 验证 4.…

mysql 小版本升级实战分享

环境说明 当前版本:5.6.51 升级目标版本 mysql 5.7.41 服务启停通过systemd管理 升级准备: 环境检查 首先查看当前MySQL的版本信息,执行命令mysql -V,如图: 备份数据 备份所有数据库: 当数据量不是特别大的时候…

Python Ai语音识别教程

语音识别是将人类语音转换为文本的技术,在现代应用中非常有用。本教程将介绍如何使用Python实现基本的AI语音识别功能。 一、文字转语音 #文字转语音 #安装第三方库 pip install pyttsx3 #导包 : import pyttsx3import pyttsx3#创建语音引擎 a1 pytts…

Day11 制作窗口

文章目录 1. 显示窗口(harib08d)2. 消除闪烁1(harib08g)3. 消除闪烁2(harib08h) 本章的前三节做了如下修改: 解决了鼠标无法隐藏在屏幕右侧和下侧的问题。当鼠标隐藏在右侧时会在屏幕最左侧产生…

python+uniapp基于微信小程序蜀味道江湖餐饮管理系统nodejs+java

文章目录 具体实现截图本项目支持的技术路线源码获取详细视频演示:文章底部获取博主联系方式!!!!本系统开发思路进度安排及各阶段主要任务java类核心代码部分展示主要参考文献:源码获取/详细视频演示 ##项目…

postgresql增量备份系列二 pg_probackup

已经很久没有发文章了,主要是最近工作上的内容都不适合发文章公开。可能往后文章发表也不这么频繁了,不过大家有问题我们可以交流。之前有写过PG增量备份的其他工具使用方法,pg_probackup也是应用比较多的PG备份工具。 一. pg_probackup pg_probackup 是一个用于管理 Postg…

云手机主要是指什么?

云手机是指一种可以运行在云服务器中的手机,主要是将云计算技术运用于网络终端服务,通过云服务器来实现云服务的手机,也是一款深度结合了网络服务的手机,通过自带的系统和网络终端可以通过网络实现众多功能。 那么,下面…

CAU数据挖掘 支持向量机

SVM大致思想 线性分类问题 在一群点中用线性函数分类: 但也有线性不可分问题: 线性不可分问题: 最大间隔法 两个平行超平面间隔距离最大 软间隔 部分难以区分的点忽略 升维 通过升维将非线性变为线性 计算统计理论基础 学习过…

探索理解 Spring AI Advisors:构建可扩展的 AI 应用

Spring AI Advisors API 提供了一种灵活且强大的方式来拦截、修改和增强 Spring 应用程序中的 AI 驱动交互。其核心思想类似于 Spring AOP(面向切面编程)中的“通知”(Advice),允许开发者在不修改核心业务逻辑的情况下…

Linux SSH服务全面配置指南:从基础到安全加固

Linux SSH服务全面配置指南:从基础到安全加固 概述 作为网络安全工程师,SSH(Secure Shell)服务的安全配置是我们日常工作中不可忽视的重要环节。本文将从基础配置到高级安全加固,全面解析SSH服务的各项参数&#xff…

.NET测试工具Parasoft dotTEST内置安全标准,编码合规更高效

在追求开发速度的时代,确保代码安全并满足严苛的行业合规标准如OWASP、CWE、PCI DSS、ISO 26262等已成为开发者的核心挑战,但开发人员常因复杂的编码标准和漏洞排查而效率低下。.NET测试工具Parasoft dotTEST内置安全标准,实现即插即用&#…