因此,我看到许多乐观的汇总解决方案说,它们通过"calldata“将链的交易数据存储在rollup上,这比合同存储成本便宜得多(我知道这是由于不断扩展的国家trie)。查找回调数据是如何工作的,它似乎是函数参数的只读内存槽。但是,如果是内存,这意味着在函数完成后它是非持久性的,因此,如果必要的话,用户将无法使用这些数据来重建链。
在事务完成后,Calldata存储在区块链中的哪里?在交易中有trie吗?对于乐观结束语,我的猜测是,一旦通过事务启动了提交块函数,直到函数结束(通常的两周结束期之后),事务和调用数据才会从内存中删除。因此,任何想要创建汇总状态的人都可以使用这些回调数据,并且在两周后,随着防欺诈期限的结束,就可以将其从calldata中删除。这是正确的吗?
基本上,如果我想重新创建子链的状态,那么在哪里可以找到乐观滚动的事务数据?
发布于 2021-01-06 00:31:47
这里有一个ethresear.ch线程,它涵盖了相同的主题,对于任何可能会遇到这个问题的人(就像我一样):https://ethresear.ch/t/clarification-on-how-calldata-persists-on-the-blockchain-and-how-optimistic-rollups-use-it/8136
这条线索的一些答案是:
调用数据存储为eth链历史的一部分。如果你想要验证整个链,你需要有呼叫数据,所以它需要是可用的,一个中国被认为是有效的。(我)调用数据不仅仅是在noop事务中发送的--它是由EVM合并的,产生的根存储在合同的存储中。因此,任何想要引用调用数据的争议都可以通过merkle证明,并以合同所包含的根为基础。
https://ethereum.stackexchange.com/questions/89494
复制相似问题