consensus-shipyard / consensuslab

The go-to place for scalable decentralised consensus research
66 stars 3 forks source link

🚧 | G2: Parallelisation of execution in FEVM order-execute models #200

Closed jsoares closed 1 year ago

jsoares commented 1 year ago

Description

The final goal of G2 is to deliver an MVP implementation of a solution that significantly improves F(E)VM performance by employing parallel execution. The solution is expected to apply the best practices from the state-of-the-art. It needs to demonstrate clear performance improvement, which is measured with benchmarks based on realistic workloads. The results are to be well documented.

Prior Work

The prior work on this area has studied the state-of-the-art and identified potentially applicable techniques. The performance of FVM was measured and analyzed [slides] using a synthetic benchmark [slides] based on a simple actor that maintains a cumulative hash of incoming invocations in its state. There are some experimental changes to the FVM, enabling concurrent execution and capturing system calls of invocation containers. The performance measurement aimed at showing limits of speedup achievable through parallel execution of invocation containers with transactions split into chunks and executed in separate threads, assuming those transactions are completely independent.

However, it turns out that write accesses change the CIDs of memory locations, and hence the dependencies will not be captured correctly. This is especially difficult with arbitrary native WASM actors since the structure and semantics of the actor state is determined by the actor code. Solving this issue effectively would require further research. On the other hand, in the case of FEVM, the EVM runtime running on top of FVM has a well-defined representation of the state, which will ease the detection of non-conflicting state updates.

Because of that and since FEVM is the first mechanism of running user-defined actors to be deployed to the mainnet, we plan to switch focus on targeting FEVM in the following milestones.

Dependencies

Roadmap

ETA: 2023-09-30

Children:

Resources

tbd