Celestia : OP 堆栈的模块化数据可用性

    简介自去年发布以来,OPStack在汇总开发人员中获得了巨大的吸引力。它被创建新汇总的开发人员和Caldera和Conduit等模块化基础设施提供商所接受,使开发人员能够快速启动他们自己的rollups。正如去年的公告所述,模块化是OPStack愿景的一个基本方面:EachlayeroftheOPStackisdescribedbyawell-definedAPI,tobefilledbyamoduleforthatlayer.[...]WanttoswapoutEthereumforCelestiaasadataavailabilitylayer?Sure!WanttorunBitcoinastheexecutionlayer?Whynot!OPStack的每一层都由定义良好的API描述,由该层的模块填充。[...]想要将以太坊换成Celestia作为数据可用性层?当然!想要运行比特币作为执行层?为什么不!Optimism快速接近的Bedrock升级将模块化OPStack的执行层和证明系统,从而实现与未来欺诈和有效性证明的兼容性。受此启发,CelestiaLabs一直专注于进一步推动OPStack的模块化。

    因此,今天,我们很高兴地宣布OPStack的模块化数据可用性(DA)接口的Beta版发布,这是OPLabs关注开发人员反馈的第一个OPStackMod。该接口允许开发人员定义DA层并从他们喜欢的任何区块链继承安全性,无论是以太坊、Celestia还是比特币。开发人员今天可以开始试验使用Celestia进行DA并“定居”在以太坊上的OPStack版本。Caldera将很快发布Taro测试网,它允许开发人员和用户使用ModularDA试用OPStack的第一个公共测试网。数据可用性层是rollup架构的基础,确保独立验证rollup链所需数据的可用性。下面我们将探讨OP堆栈中数据可用性的基础知识,以及我们如何通过定义良好的DA接口将其模块化以从L1发布和检索数据。OP堆栈中的数据可用性:今天OPStack如何处理当今的数据可用性?出于我们的目的,我们深入研究了两个基本组件,Rollup节点和Batcher,如下所述。Rollup节点Rollup节点是负责从L1块(及其相关的收据)派生出正确的L2链的组件。

    rollup节点检索L1块,过滤数据交易(通常以交易calldata的形式),并从该数据中导出正确的L2链。Batcher——批处理提交者批处理提交者,也称为批处理者,是将L2排序器数据提交给L1以供验证者使用的实体。rollup节点和batcher都在一个循环中工作,使得batcher新提交的L2块数据由rollup节点从L1中检索,并用于派生下一个L2块。批处理程序提交的每个事务都包含calldata,它是L2排序器数据,分为称为帧的字节,是Optimism中数据的最低抽象级别。用于OPStack的模块化DA接口在为OPStack创建模块化DA接口时,我们的目标很简单:使汇总开发人员能够将任何区块链指定为其数据可用性层,无论是以太坊、Celestia还是比特币。在没有这样的接口的情况下,新DA层的每次集成都可能需要开发人员实现和维护OPStack的一个单独分支。OPStack已经包含在代码库中指定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。将Celestia集成为DA层显示与Celestia+OP堆栈集成相比的OP堆栈架构的图表。通过对Rollup节点和批处理程序进行一些小的修改,我们可以使OPStack使用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路线图的关键部分,我们希望探索升级我们的OPStackxCelestia集成,以在以太坊主网上使用欺诈证明。为此,我们可以利用量子引力桥(QGB),它将跨链DA证明中继到以太坊,以启用链上验证汇总数据已在Celestia上可用,以便汇总数据可以在欺诈证明。这将允许OPStackRollup直接利用Celestia提供的DA保证。

Pixel Artist Pixel Artist
Happy Kittens Puzzle Happy Kittens Puzzle
Penguin Cafe Penguin Cafe
Animal Connection Animal Connection
Snakes N Ladders Snakes N Ladders
Pixel Skate Pixel Skate
BeeLine BeeLine
Draw Parking Draw Parking
Draw Racing Draw Racing
Soccer Balls Soccer Balls
Happy Fishing Happy Fishing
Crashy Cat Crashy Cat

FREE GAMES FOR KIDS ONLINE