
异步执行:异步执行允许 Monad 通过将共识与执行分离来大幅提高执行吞吐量。通过将共识与执行分离使得 Monad 能够大幅增加执行预算,因为执行从占用区块时间的一小部分变成占用整个区块时间。首先,Monad 区块提案不包括状态根,为了预防节点分叉,区块提案还包括来自 3 个区块之前的状态根,允许节点检测它们是否分叉;其次,领导者节点以延迟的状态视角来构建区块,为了防御 DDoS 攻击,Monad 节点会验证该账户的余额是否足以满足与正在进行的交易相关的用户账户中的最高借记;最后,节点收到提议的区块后,虽然此时区块尚未最终确定,在此期间节点仍然可以在本地执行提议的区块,但不保证它会被投票或最终确定。由于这些特点,允许 Monad 实现显著的速度提升,使得单分片区块链可以扩展到数百万用户;
并行执行:Monad 使用乐观执行的方法,即在块中较早的交易完成之前开始执行后续交易,每个交易的更新状态会按顺序合并。这有时会导致执行结果不正确,为解决这个问题,Monad 通过追踪在执行交易过程中使用的输入,并将它们与之前交易的输出进行比较。如果存在差异,表明需要使用正确的数据重新执行该交易。此外,Monad 在执行交易时采用了一种静态代码分析器来预测交易间的依赖关系,以避免无效的并行执行。在最佳情况下,Monad 可以提前预测许多依赖关系;在最坏情况下,它会回退到简单的执行模式。Monad 的并行执行技术不仅提高了网络效率和吞吐量,而且通过优化执行策略,减少了因为并行执行导致的交易失败的情况;
MonadDB:MonadDB 是 Monad 中的关键组件,用于在提供高性能的同时保持与以太坊的完全兼容性。MonadDB 是一个定制的 KV 数据库,旨在存储经过验证的区块链数据。首先,MonadDB 在磁盘和内存中原生实现了 Merkle Patricia Trie 数据结构,并且实现了自己的索引系统,消除了文件系统依赖性,因此可以高效地将 Merkle Patricia Trie 节点存储在磁盘上;其次,MonadDB 采用异步 I/O ,充分利用了最新内核对异步 I/O 的支持,避免生成大量内核线程来处理待处理的 I/O 请求,以尝试异步执行工作;最后,MonadDB 还使用了并发控制、顺序写、数据压缩等技术,进一步优化了 MonadDB 的性能。由于这些特点,MonadDB 减少数据存取时间,提高交易处理速度,从而提升整个区块链网络的性能。
MegaETH 是目前最快的 Layer2 区块链,由 MegaLabs 开发。MegaETH 的独特之处在于专注实时区块链性能,为需要即时响应的应用程序提供超低延迟和可扩展性。
