# EVM Integration

To maintain the full compatibility with EVM, Arcology's concurrency control has been properly integrated into the original implementation. In Arcology, the integration of Arcology's concurrency control with the EVM is achieved through a **lightweight plugin**. This approach aims to minimize disruptions to the existing EVM workflow while adding the necessary components for concurrency control.

Another challenge with using the sequential EVM for parallel processing is keeping track of state access that happened between EVM and its StateDB. To keep track of all the state access,  Arcology inserted an **intermediate layer** between the EVM and the storage layer to intercept state accesses. The records are later assessed by a dedicated conflict detection module to protect the state consistency. Only conflict free transactions get the change to persist the state transitions.&#x20;

### Tasks

The plugin acts as a bridge between the EVM and Arcology's concurrency control system. It enables developers to benefit from the advantages of parallel execution and concurrency control without requiring extensive modifications to the existing EVM workflow. It maintains compatibility while allowing developers to directly utilize the parallel design features through the provided Solidity library APIs.

The EVM plugin is responsible for two major tasks:

* State Access Redirection
* Concurrent API Handling


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.arcology.network/parallel-execution-design/eu/evm-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
