原文:Javed Khan | celestia blog 编译:GWEI Research
简介
自去年发布以来,OP Stack 在汇总开发人员中获得了巨大的吸引力。它被创建新汇总的开发人员和 Caldera 和 Conduit 等模块化基础设施提供商所接受,使开发人员能够快速启动他们自己的rollups 。
正如去年的公告所述,模块化是 OP Stack 愿景的一个基本方面:
Optimism 快速接近的 Bedrock 升级将模块化 OP Stack 的执行层和证明系统,从而实现与未来欺诈和有效性证明的兼容性。
受此启发,Celestia Labs 一直专注于进一步推动 OP Stack 的模块化。因此,今天,我们很高兴地宣布 OP Stack 的模块化数据可用性 (DA) 接口的 Beta 版发布,这是 OP Labs 关注开发人员反馈的第一个 OP Stack Mod。该接口允许开发人员定义 DA 层并从他们喜欢的任何区块链继承安全性,无论是以太坊、Celestia 还是比特币。
开发人员今天可以开始试验使用 Celestia 进行 DA 并“定居”在以太坊上的 OP Stack 版本。 Caldera 将很快发布 Taro 测试网,它允许开发人员和用户使用 Modular DA 试用 OP Stack 的第一个公共测试网。
数据可用性层是 rollup 架构的基础,确保独立验证 rollup 链所需数据的可用性。下面我们将探讨 OP 堆栈中数据可用性的基础知识,以及我们如何通过定义良好的 DA 接口将其模块化以从 L1 发布和检索数据。
OP Stack 如何处理当今的数据可用性?出于我们的目的,我们深入研究了两个基本组件,Rollup 节点和 Batcher,如下所述。
要更广泛地了解 OP Stack 的其余部分如何在幕后工作,请查看 Optimism 文档。
Rollup 节点是负责从 L1 块(及其相关的收据)派生出正确的 L2 链的组件。 rollup 节点检索 L1 块,过滤数据交易(通常以交易calldata的形式),并从该数据中导出正确的 L2 链。
批处理提交者,也称为批处理者,是将 L2 排序器数据提交给 L1 以供验证者使用的实体。 rollup 节点和 batcher 都在一个循环中工作,使得 batcher 新提交的 L2 块数据由 rollup 节点从 L1 中检索,并用于派生下一个 L2 块。
批处理程序提交的每个事务都包含calldata,它是 L2 排序器数据,分为称为帧的字节,是 Optimism 中数据的最低抽象级别。
在为 OP Stack 创建模块化 DA 接口时,我们的目标很简单:使汇总开发人员能够将任何区块链指定为其数据可用性层,无论是以太坊、Celestia 还是比特币。在没有这样的接口的情况下,新 DA 层的每次集成都可能需要开发人员实现和维护 OP Stack 的一个单独分支。
OP Stack 已经包含在代码库中指定L1Chain和L2Chain的抽象,允许我们为数据可用性链建模一个新的与区块链无关的接口,我们称之为DAChain。
使用下面定义的接口,开发人员可以实现DAChain来读取和写入任何底层区块链甚至像 S3 这样的集中式后端的数据。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]编写阶段以下为接口的 Celestia 实现编写示例概述了与批处理程序的集成:
SimpleTxManager.send是负责创建和发送实际交易的函数,它被修改为调用WriteFrame将帧写入 Celestia 并返回一个引用。
然后将引用作为calldata提交到批处理收件箱地址,以代替通常的帧数据。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]读取阶段以下是与rollup节点集成的接口的 Celestia 实现的概述:
DataFromEVMTransactions是负责从交易列表中返回帧数据的函数。它被修改为使用从批处理收件箱calldata中检索到的帧引用来实际获取帧并将其附加到返回数据。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]请注意,对NamespacedData的调用返回在给定BlockHeight提交的所有 blob 的字节切片数组,因此我们只返回我们感兴趣的TxIndex。
通过对Rollup节点和批处理程序进行一些小的修改,我们可以使 OP Stack 使用 Celestia 进行 DA。
这意味着派生 L2 链所需的所有数据都可以作为本地 blob 数据在 Celestia 上提供,而不是发布到以太坊,尽管一个小的固定大小的帧引用仍然作为批处理程序calldata发布到以太坊。帧参考用于使用 celestia-node ?轻节点在 Celestia 上查找相应的帧。
如何整合运作?
如上所述,批处理程序将 L2 排序器数据作为称为帧的字节提交到以太坊 L1 上的批处理收件箱合约地址。
我们保留批处理程序和calldata事务以保证帧的排序,但我们用固定大小的帧引用替换calldata中的帧。什么是参考帧?它是对 Celestia 数据交易的引用,该交易已成功将帧数据作为 Celestia 的一部分包含在内。
我们通过在批处理服务中嵌入一个 celestia-node 轻节点来做到这一点。每当有新的 batch 等待提交时,我们首先使用轻节点向 Celestia 提交数据事务,然后在 batchercalldata中仅提交帧引用。
在读取阶段,我们做相反的事情,即我们使用批处理事务calldata中的帧引用来解析它并从 Celestia 检索相应的实际帧数据。同样,我们在 rollup 节点中嵌入了一个 celestia-node 轻节点来查询它的交易。
在派生 L2 链时,rollup 节点现在透明地从轻节点读取数据,并能够继续构建新区块。轻节点只下载由 rollup 提交的数据,而不是像以太坊那样下载整个链。
欺诈证明是 Optimism 后 Bedrock 路线图的关键部分,我们希望探索升级我们的 OP Stack x Celestia 集成,以在以太坊主网上使用欺诈证明。
为此,我们可以利用量子引力桥 (QGB),它将跨链 DA 证明中继到以太坊,以启用链上验证汇总数据已在 Celestia 上可用,以便汇总数据可以在欺诈证明。这将允许 OP Stack Rollup 直接利用 Celestia 提供的 DA 保证。
GWEI Research
个人专栏
阅读更多
IOSG
区块律动BlockBeats
曼昆区块链法律
Foresight News
吴说区块链
西柚yoga
ETH中文
金色早8点
金色财经 子木
ABCDE
dYdX自从宣布迁移到Cosmos生态之后, 一直收到以太坊生态和Cosmos生态的双重关注, 以太坊的一些OG可能没有办法理解为什么一个如此火爆的应用会迁入Cosmos生态.但是也许是因为过度.
6月5日晚,美国证券交易委员会(SEC)对加密货币交易所币安和赵长鹏提起诉讼,这一黑天鹅事件引发了整个加密市场的巨大关注,不少KOL表达了对币安的支持,行业凝聚力也达到空前加强.
重点内容: 目前AI + Crypto结合的点主要有2个比较大的方向:分布式算力和ZKML。本文将围绕去中心化的分布式算力网络做出分析和反思.
作者:Stacy Muur, Spin首席营销官;编译:Felix, PANewsOuroboros Capital发文概述了其对Frax Finance的投资论点,认为在未来6至12个月内.
作者:Suhail Doshi,Mixpanel 创始人 编译:深潮TechFlow用户就是使用你的产品的人,无论他们是否已经支付或做了什么,在你的产品中都是重要的.
金色周刊是金色财经推出的一档每周区块链行业总结栏目,内容涵盖一周重点新闻、行情与合约数据、矿业信息、项目动态、技术进展等行业动态。本文是项目周刊,带您一览本周主流项目以及明星项目的进展.