> ## Documentation Index
> Fetch the complete documentation index at: https://stablelabs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 执行层

> 基于 Block-STM 的并行执行、乐观区块处理及未来 StableVM++ 性能优化。

## Stable EVM

<img className="block" src="https://mintcdn.com/stablelabs/J4B7HU7gv5jVOi-7/images/stableevm.png?fit=max&auto=format&n=J4B7HU7gv5jVOi-7&q=85&s=9fb4ea5e32b682c917a2e4575697860c" alt="Stable EVM" width="1200" height="774" data-path="images/stableevm.png" />

**Stable EVM** 是 Stable 区块链的以太坊虚拟机兼容执行层，使用户能够通过现有的以太坊工具和钱包（如 MetaMask）无缝与链进行交互。Stable EVM 结合了 EVM 的开发体验与 StableSDK 的模块化、高性能基础设施。

Stable 的以太坊兼容执行层，支持使用现有的以太坊工具与钱包无缝交互。同时 Stable EVM 引入一系列 预编译合约，允许 EVM 智能合约安全且原子性地调用Stable底层接口。通过这种设计，智能合约可执行包括代币转账、质押、参与治理等特权操作。

## 未来路线图一：Optimistic并行执行（OPE）

传统区块链系统依赖顺序执行机制，逐个处理交易以确保所有节点的一致状态。虽然这种方式保证了确定性，但极大限制了吞吐量和可扩展性，尤其在现代区块链需要支持每秒成千上万笔交易时更为突出。

为突破此瓶颈，Stable 将采用 **Block-STM**，一种已验证的并行执行引擎，支持 **Optimistic并行执行（Optimistic Parallel Execution，简称 OPE）**，允许在保证确定性的前提下并行处理交易，显著提升性能。

### Block-STM 的工作原理

Block-STM 使用Optimistic并发控制机制：首先假设交易之间不会冲突并进行并行执行，随后进入验证阶段检查冲突并处理重执行。核心依赖以下五项关键技术：

**1. 多版本内存结构**

Block-STM 为每个内存键（memory key）存储多个版本：

* 每个交易读取先前交易已提交的最新版本；
* 执行过程中，读取和写入都会进行版本标记；
* 验证阶段会检查这些版本以确认是否存在冲突。

**2. 基于读取集（Read-Set）/写入集（Write-Set）的验证机制**

* 执行时，交易会记录其读取的键及其版本（Read-Set）；
* 执行结束后，其写入操作记录为 Write-Set；
* 验证阶段，若任意 Read-Set 中的键在执行期间被其他交易修改，则该交易判定为冲突，程序中止然后进行重试并增加尝试编号（incarnation）。

**3. 通过 ESTIMATE 标记实现快速冲突检测**

* 失败的交易会将其 Write-Set 标记为 ESTIMATE；
* 若其他交易读取到 ESTIMATE 标记的值，会立即停止并等待该交易重试（触发 `READ_ERROR`）；
* 该机制可快速识别依赖关系，减少不必要的执行负担。

**4. 预设交易顺序**

* 区块内的所有交易按照预设的确定顺序执行；
* 验证与提交阶段也遵循上述相同顺序；
* 即便并行执行，这能确保所有节点最终状态仍一致。

**5. 任务调度器（Collaborative Scheduler）**

* 任务调度器以线程安全的方式为执行和验证分配任务；
* 优先处理索引较早的交易，加速处理早期提交的任务、减少重试；
* 调度器管理已多次尝试的任务，直到成功提交。

### Block-STM 的核心优势

* **无锁并行**：基于 MVCC（多版本并发控制），允许多个交易同时读取/写入，无需加锁。在执行后才进行冲突检查，最大限度提升吞吐量。
* **ESTIMATE 标记机制**：失败交易通过 ESTIMATE 标记提前通知依赖交易暂停，避免资源浪费。
* **高效调度与优先提交机制**：通过任务调度器优先提交索引较早的交易，提高整体吞吐并缩短执行周期。
* **确定性与共识兼容性**：即使某些交易需要重试，也将在相同顺序下提交，确保所有节点达成相同的最终一致性。

### Stable 上的 OPE

<img className="block" src="https://mintcdn.com/stablelabs/J4B7HU7gv5jVOi-7/images/ope.png?fit=max&auto=format&n=J4B7HU7gv5jVOi-7&q=85&s=e50cde9a358422f56b5c8df4088fcf1d" alt="Optimistic Parallel Execution on Stable" width="1393" height="1077" data-path="images/ope.png" />

Stablechain 将把 **Optimistic并行执行（OPE）** 作为其执行层的核心功能，并结合 **Optimistic区块处理（Optimistic Block Processing，简称 OBP）**。需要注意的是，OPE 与 OBP 是互补但本质不同的两种优化策略。

### 关于 OBP

* OBP 并不涉及并行，而是优化执行时机；
* 在 `ProcessProposal` 阶段，Stable 会在交易 gossip 的同时预先执行区块；
* 执行结果缓存在内存中，在 `FinalizeBlock` 阶段复用，节省时间并避免重复计算。

通过结合 OPE 与 OBP，Stable 能在高交易负载下最大限度降低执行延迟与资源争用，带来卓越性能表现。

### 性能预期

内部基准测试表明，结合 **基于 Block-STM 的 OPE** 与 **StableDB**，Stable 的交易处理吞吐量有望提升 **至少 2 倍**。

## 未来路线图二：StableVM++

虽然 OPE 与 OBP 聚焦于优化「并行执行多笔交易」，但另一个关键的提升性能手段是：「如何更高效地处理每一笔交易」。

Stable 正在探索替代的 EVM 实现方式以加速交易执行。在当前选项中，**EVMONE**（一个高性能 C++ 编写的 EVM）是最具潜力的替代现有 Go 实现的EVM。理论基准测试表明，这一更换预计将带来高达 **6 倍的 EVM 执行性能提升**。
