值得注意的是,eWASM 的工作正由 eth1x64 研究开发项目推动,他们的目标是提供最小可用的技术规范和 Phase 2 简单版本的原型。他们已经写了很多很棒的研究帖,探究了其中的可能性。了解一下! Phase 2 最终会采取的形式仍在未定之天,但有这些研究成果再加上 eWASM 团队的不懈努力,我估计我们会在 Phase 1/1.5 接近投产的时候获得更清晰的概念。 关于跨分片交易 问:我们已经搞清楚怎么实现了吗?Shard 1 中的一个合约可以在一笔交易中处理完对不同分片的合约调用吗?用什么标准来决定一个智能合约/一个 EOA 会在哪个分片上? Danny:Layer-1 的跨分片交易在分片化的 Eth2 系统中确定会通过异步的方式来实现,也就是通过分片链和信标链的交联(crosslink)机制来实现。当分片 A 交联到信标之后,分片 B 就可以使用一个来自分片 A 的收据,来协助 ETH 的转移及合约的互动。除此之外,还有很多 Layer-2 方案可以支持最优化和最快速的跨分片交易执行。我估计随着时间推演,这种方式会成为常态。 因为跨分片交互的异步属性,要让合约能在一笔内完成对不同分片的调用就行不通了。有一些比如 “yanking” 或者 “commit capabilities” 这样的机制也许能为实现你的需求提供帮助。 举个例子,我也许会 yank 一个火车票合约和一个旅馆合约到同一个分片上,然后原子化地完成预定;或者,我可以承诺会同时预订两者,然后当一次 crosslink 完成的时候,原子化地解决这个承诺。 至于账户会放到哪个分片上,当前的计划考虑各分片的自然经济负载均衡。也就是说,每一个账户和合约都可以部署到用户想要的任意分片上。这样就自然会有人追求更低的手续费、或者离一些重要的合约 “更近”。我预计,对于合约来说,它会在长期中掩盖掉这一点,使得用户用起来就像在跟一个 “以太坊” 交互,而不是在跟某个特定的分片交互。这里面有用户体验上的挑战,但没有无法克服的问题。 也就是说,有实力的用户/开发者会对分片选择保持关注,在可行的时候作出战略选择。 Aditya Asgaonkar:我们已知跨分片交易从信标链的角度来看是怎么一回事。细节请参考我写的博客文章。给定跨分片交易的异步设计,你描述的情形就不太可能了。迄今为止,对这样的标准还没有计划。合约/EOA 应该能创建在任意分片上。 问:那分片之间又如何分摊负载呢?如果大家都对各个合约都希望放到某个特定分片上,因为比如说那里有个很重要的信息输入机制(oracle),或者是那里有个大家都想用的 Uniswap。 Aditya Asgaonkar:当前的预期是 Gas 费用市场会自然根据分片的负载产生一种均衡。直观来说,如果某个分片变得很慢、很贵,那用户会离开这个分片,迁移到另一个更快、更便宜的分片上。如果用户呆在这条手续费更贵的分片上确实有更多的好处,比如该分片上有一个他要频繁访问的合约,那用户自然也会选择留下。问:那就是说,dApp 很大程度上会让这种选择自动化咯? Aditya Asgaonkar:从 Phase 2 研究当前的情况来看,不太可能是你说的这样。在我们现在的设想中,任何的跨分片活动(交易、账户/合约迁移)都需要一些用户为目标分片提供相关的数据。这是为了免去一个分片读取另一个分片数据的需要,这样会打破我们追求的可扩展性。总的来说,我会认为,Phase 2 的设计仍有很大的改动可能,因为这是一个正在进行中的研究领域。我们应该能在未来的 AMA 中更具体地讨论这些事情。 (责任编辑:admin1) |